diff --git a/.DS_Store b/.DS_Store index f60f5a23..e91b0c2a 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/client/dojoConfig.ts b/client/dojoConfig.ts index 3bb2ccf3..160d011d 100644 --- a/client/dojoConfig.ts +++ b/client/dojoConfig.ts @@ -1,12 +1,12 @@ -import manifest from "../contracts/manifests/dev/deployment/manifest.json"; +import manifest from "../contracts/manifests/sepolia/deployment/manifest.json"; import { createDojoConfig } from "@dojoengine/core"; export const dojoConfig = createDojoConfig({ manifest, - rpcUrl: "https://api.cartridge.gg/x/mancala-alpha-v3/katana", - toriiUrl: "https://api.cartridge.gg/x/mancala-alpha-v3/torii", + rpcUrl: "https://starknet-sepolia.public.blastapi.io/rpc/v0_7", + toriiUrl: "https://api.cartridge.gg/x/mancala-alpha-sepolia-v4/torii", masterAddress: - "0x6d8a4c8c7830004f53371b56773278e0ab107fc10ecffb008a33ad84c5f2175", + "0x02A54eFf65D55a2E7D2fC7E23eF0F0e6030dB0313b16c8F0eaD0b4a83807f6d6", masterPrivateKey: - "0x5d2e95d7477224d35cd3b1ffe50c1631573e21b71977605177528acfc4b8598", + "0x0396533b7a1182ef03da483eca82e9dd2b17bee9c7fec07ac6cbbeb8bfd573cb", }); diff --git a/client/graphql.config.yml b/client/graphql.config.yml index 0b5e1896..65181c03 100644 --- a/client/graphql.config.yml +++ b/client/graphql.config.yml @@ -1,2 +1,2 @@ -schema: https://api.cartridge.gg/x/mancala-alpha-v3/torii/graphql +schema: https://api.cartridge.gg/x/mancala-alpha-sepolia-v4/torii/graphql documents: "**/*.graphql" diff --git a/client/package.json b/client/package.json index f2e4e874..3d941f66 100644 --- a/client/package.json +++ b/client/package.json @@ -17,14 +17,14 @@ }, "dependencies": { "@apollo/client": "^3.11.4", - "@cartridge/connector": "^0.3.40", - "@cartridge/controller": "^0.3.40", - "@dojoengine/core": "1.0.0-alpha.5", - "@dojoengine/create-burner": "1.0.0-alpha.5", - "@dojoengine/react": "1.0.0-alpha.5", + "@cartridge/connector": "^0.3.43", + "@cartridge/controller": "^0.3.43", + "@dojoengine/core": "1.0.0-alpha.8", + "@dojoengine/create-burner": "1.0.0-alpha.8", + "@dojoengine/react": "1.0.0-alpha.8", "@dojoengine/recs": "^2.0.13", - "@dojoengine/state": "1.0.0-alpha.5", - "@dojoengine/torii-client": "1.0.0-alpha.5", + "@dojoengine/state": "1.0.0-alpha.8", + "@dojoengine/torii-client": "1.0.0-alpha.8", "@dojoengine/utils": "1.0.0-alpha.5", "@graphql-codegen/typescript": "^4.0.9", "@graphql-codegen/typescript-operations": "^4.2.3", diff --git a/client/pnpm-lock.yaml b/client/pnpm-lock.yaml index 2ff6ca1f..24d5d507 100644 --- a/client/pnpm-lock.yaml +++ b/client/pnpm-lock.yaml @@ -5,29 +5,29 @@ dependencies: specifier: ^3.11.4 version: 3.11.4(@types/react@18.2.42)(graphql@16.9.0)(react-dom@18.3.1)(react@18.3.1) '@cartridge/connector': - specifier: ^0.3.40 - version: 0.3.40(get-starknet-core@3.3.2)(react@18.3.1) + specifier: ^0.3.43 + version: 0.3.43(get-starknet-core@3.3.2)(react@18.3.1) '@cartridge/controller': - specifier: ^0.3.40 - version: 0.3.40 + specifier: ^0.3.43 + version: 0.3.43 '@dojoengine/core': - specifier: 1.0.0-alpha.5 - version: 1.0.0-alpha.5(starknet@6.11.0)(typescript@5.5.4) + specifier: 1.0.0-alpha.8 + version: 1.0.0-alpha.8(starknet@6.11.0)(typescript@5.5.4) '@dojoengine/create-burner': - specifier: 1.0.0-alpha.5 - version: 1.0.0-alpha.5(react-dom@18.3.1)(react@18.3.1)(starknet@6.11.0)(typescript@5.5.4) + specifier: 1.0.0-alpha.8 + version: 1.0.0-alpha.8(react-dom@18.3.1)(react@18.3.1)(starknet@6.11.0)(typescript@5.5.4) '@dojoengine/react': - specifier: 1.0.0-alpha.5 - version: 1.0.0-alpha.5(@types/node@20.14.15)(@types/react@18.2.42)(@vitest/ui@2.0.5)(jsdom@24.0.0)(react@18.3.1)(starknet@6.11.0)(type-fest@2.19.0)(typescript@5.5.4) + specifier: 1.0.0-alpha.8 + version: 1.0.0-alpha.8(@types/node@20.14.15)(@types/react@18.2.42)(@vitest/ui@2.0.5)(jsdom@24.0.0)(react@18.3.1)(starknet@6.11.0)(type-fest@2.19.0)(typescript@5.5.4) '@dojoengine/recs': specifier: ^2.0.13 version: 2.0.13(typescript@5.5.4)(zod@3.23.8) '@dojoengine/state': - specifier: 1.0.0-alpha.5 - version: 1.0.0-alpha.5(@types/node@20.14.15)(@types/react@18.2.42)(@vitest/ui@2.0.5)(jsdom@24.0.0)(react@18.3.1)(starknet@6.11.0)(typescript@5.5.4) + specifier: 1.0.0-alpha.8 + version: 1.0.0-alpha.8(@types/node@20.14.15)(@types/react@18.2.42)(@vitest/ui@2.0.5)(jsdom@24.0.0)(react@18.3.1)(starknet@6.11.0)(typescript@5.5.4) '@dojoengine/torii-client': - specifier: 1.0.0-alpha.5 - version: 1.0.0-alpha.5 + specifier: 1.0.0-alpha.8 + version: 1.0.0-alpha.8 '@dojoengine/utils': specifier: 1.0.0-alpha.5 version: 1.0.0-alpha.5(starknet@6.11.0)(typescript@5.5.4) @@ -840,10 +840,10 @@ packages: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - /@cartridge/connector@0.3.40(get-starknet-core@3.3.2)(react@18.3.1): - resolution: {integrity: sha512-SoaJSy0h+gxRCjIOiAdqo8Tr56WBH13aK6yy+WdLfjwzGWmMCAj7cOmLOxi1pdq2eiSA63LY2oZ+zm1jod422w==} + /@cartridge/connector@0.3.43(get-starknet-core@3.3.2)(react@18.3.1): + resolution: {integrity: sha512-RU8IxFu2NG3fta0zddT/+82Bv1MyYQ92Z1XDwvj7WRCXGV2MdCwu8+etou7uCdwFkkZ3kiT1EB41ky6umVaOgg==} dependencies: - '@cartridge/controller': 0.3.40 + '@cartridge/controller': 0.3.43 '@starknet-react/core': 2.9.0(get-starknet-core@3.3.2)(react@18.3.1)(starknet@6.11.0) starknet: 6.11.0 typescript: 5.5.4 @@ -853,8 +853,8 @@ packages: - react dev: false - /@cartridge/controller@0.3.40: - resolution: {integrity: sha512-tEflpGoGCqZRjfPRKLgAFYL5q2alb6k1ZFoRRVtMTZifGwnKMSC3IzPuvdx1VjRBhbDsIkflFFR5xNPRUgz+rw==} + /@cartridge/controller@0.3.43: + resolution: {integrity: sha512-naR4FiJVFU0BSFgOSVq7ttaGlQCA/cjGIV96b4SRuodTmkH0ViEwutsSX3zqWEyYP56Yn1xXWsEFf5ENa9X9eQ==} dependencies: '@cartridge/penpal': 6.2.3 base64url: 3.0.1 @@ -918,8 +918,8 @@ packages: dev: false optional: true - /@dojoengine/core@1.0.0-alpha.5(starknet@6.11.0)(typescript@5.5.4): - resolution: {integrity: sha512-X+MDXFYoV3rDVFCZlOc5RXQUviuWnsaMvAqjhNNI683w6qWNYqt2e2FUauHgJI67Vi1/9/WuIetkM5hxU9QHFQ==} + /@dojoengine/core@1.0.0-alpha.8(starknet@6.11.0)(typescript@5.5.4): + resolution: {integrity: sha512-xbHiHMTNExGkvLXewfhdwyDaiFbvefnEIjXb1LQoZRtIp102LKrOaoM9UENzldMPR/Qm9zBC44ouNEZUmGFtcA==} hasBin: true peerDependencies: starknet: 6.11.0 @@ -933,14 +933,14 @@ packages: - utf-8-validate dev: false - /@dojoengine/create-burner@1.0.0-alpha.5(react-dom@18.3.1)(react@18.3.1)(starknet@6.11.0)(typescript@5.5.4): - resolution: {integrity: sha512-HcfwPGGzWrqgS0+xJIC/kAFc7aFwLIlT7bjnCCFUrwhvypg2qbb9csHekRWVsP98d2syTzNTMOYnGSJUocR62g==} + /@dojoengine/create-burner@1.0.0-alpha.8(react-dom@18.3.1)(react@18.3.1)(starknet@6.11.0)(typescript@5.5.4): + resolution: {integrity: sha512-8jutMRiIR7ODDdsQNW/11uxPNP4P+ov6rr1MmlXDdpglrATwudA2JCTN96tGj87JtZu/Z9KLLcgT5VRqFeHRNg==} peerDependencies: react: ^18.2.0 react-dom: ^18.2.0 starknet: 6.11.0 dependencies: - '@dojoengine/core': 1.0.0-alpha.5(starknet@6.11.0)(typescript@5.5.4) + '@dojoengine/core': 1.0.0-alpha.8(starknet@6.11.0)(typescript@5.5.4) '@scure/bip32': 1.4.0 '@starknet-react/core': 2.3.0(get-starknet-core@3.3.2)(react@18.3.1)(starknet@6.11.0) encoding: 0.1.13 @@ -955,17 +955,17 @@ packages: - utf-8-validate dev: false - /@dojoengine/react@1.0.0-alpha.5(@types/node@20.14.15)(@types/react@18.2.42)(@vitest/ui@2.0.5)(jsdom@24.0.0)(react@18.3.1)(starknet@6.11.0)(type-fest@2.19.0)(typescript@5.5.4): - resolution: {integrity: sha512-urM9fAurroGerpRvBqefa1JzP6p8AqTedrpiQWP+ORoHa2jHpy4BqrOluzB6kNA0cINYHnD11gVkcesl28EwFw==} + /@dojoengine/react@1.0.0-alpha.8(@types/node@20.14.15)(@types/react@18.2.42)(@vitest/ui@2.0.5)(jsdom@24.0.0)(react@18.3.1)(starknet@6.11.0)(type-fest@2.19.0)(typescript@5.5.4): + resolution: {integrity: sha512-S8yWXFTDkN9Mi8AZoD6IhZnL3YSbC3eDqVcn0AG5HXjQM40lyNw/i6ZdhVjGyNOMneDGRUh4o5ETkZUMCZ0oNg==} peerDependencies: react: ^18.2.0 starknet: 6.11.0 type-fest: ^2.14.0 dependencies: '@dojoengine/recs': 2.0.13(typescript@5.5.4)(zod@3.23.8) - '@dojoengine/state': 1.0.0-alpha.5(@types/node@20.14.15)(@types/react@18.2.42)(@vitest/ui@2.0.5)(jsdom@24.0.0)(react@18.3.1)(starknet@6.11.0)(typescript@5.5.4) - '@dojoengine/torii-client': 1.0.0-alpha.5 - '@dojoengine/utils': 1.0.0-alpha.5(starknet@6.11.0)(typescript@5.5.4) + '@dojoengine/state': 1.0.0-alpha.8(@types/node@20.14.15)(@types/react@18.2.42)(@vitest/ui@2.0.5)(jsdom@24.0.0)(react@18.3.1)(starknet@6.11.0)(typescript@5.5.4) + '@dojoengine/torii-client': 1.0.0-alpha.8 + '@dojoengine/utils': 1.0.0-alpha.8(starknet@6.11.0)(typescript@5.5.4) '@latticexyz/utils': 2.1.0 encoding: 0.1.13 fast-deep-equal: 3.1.3 @@ -1013,13 +1013,13 @@ packages: - zod dev: false - /@dojoengine/state@1.0.0-alpha.5(@types/node@20.14.15)(@types/react@18.2.42)(@vitest/ui@2.0.5)(jsdom@24.0.0)(react@18.3.1)(starknet@6.11.0)(typescript@5.5.4): - resolution: {integrity: sha512-a5RG9OWJuCSjoQMqL4Uyysai1d5AVZbRfxfdPdNT2Ykwvw/KAVOhDWItpA36PpBmnnokJWglNXMKeDWDEtL9sQ==} + /@dojoengine/state@1.0.0-alpha.8(@types/node@20.14.15)(@types/react@18.2.42)(@vitest/ui@2.0.5)(jsdom@24.0.0)(react@18.3.1)(starknet@6.11.0)(typescript@5.5.4): + resolution: {integrity: sha512-22NDEGFI9MHLCN5fPbMvOWOEN6mAWqMc0p7snFHqrAzXUTuL7oilOotyOwqhpDIZZFdJ48RvCd7CVkOVbF1vuA==} peerDependencies: starknet: 6.11.0 dependencies: '@dojoengine/recs': 2.0.13(typescript@5.5.4)(zod@3.23.8) - '@dojoengine/torii-client': 1.0.0-alpha.5 + '@dojoengine/torii-client': 1.0.0-alpha.8 '@latticexyz/utils': 2.1.0 starknet: 6.11.0 vitest: 1.6.0(@types/node@20.14.15)(@vitest/ui@2.0.5)(jsdom@24.0.0) @@ -1048,15 +1048,15 @@ packages: - zod dev: false - /@dojoengine/torii-client@1.0.0-alpha.5: - resolution: {integrity: sha512-H+6bwEOaUA1UXq9PniM3D6dJVV2g514RaTkuW6/4TV+SPs7GHa123W2kpifg4AdXwauS42Ej/h2+xRhg1W1G3g==} + /@dojoengine/torii-client@1.0.0-alpha.8: + resolution: {integrity: sha512-a08KDrrobQr055st9dTQWrKruIZzqenTXElTybK7/qi2brcGdFlutyTN+JuZZtATYAISzBlJWuoYFkC1vAZ7Zg==} dependencies: - '@dojoengine/torii-wasm': 1.0.0-alpha.5 + '@dojoengine/torii-wasm': 1.0.0-alpha.8 typescript: 5.5.4 dev: false - /@dojoengine/torii-wasm@1.0.0-alpha.5: - resolution: {integrity: sha512-5SlvWimnrhEnRJIMDy8Lew8jBv6FAVk2tBwHhgOEQNs2p3/zqROc1ejn0SaETzSyiq3E9RMprIo04yxVAtr14A==} + /@dojoengine/torii-wasm@1.0.0-alpha.8: + resolution: {integrity: sha512-xB5fKqJ9ss+DwPdm9f3fEDgrH2UHbt5SozuEDalCvE57BDsH1B+NdjkFVi7coKXadAqrVQ23thFzwG9nT5b2nQ==} dev: false /@dojoengine/utils@1.0.0-alpha.5(starknet@6.11.0)(typescript@5.5.4): @@ -1076,6 +1076,23 @@ packages: - zod dev: false + /@dojoengine/utils@1.0.0-alpha.8(starknet@6.11.0)(typescript@5.5.4): + resolution: {integrity: sha512-7uMkZMS4wrflqCyPm0/u805n69QysN9u6TvsGl+6fumbUihhpfjJV/2+YJdM00RAlTQAy4sLrnjKH1t7WX0Udg==} + peerDependencies: + starknet: 6.11.0 + dependencies: + '@dojoengine/recs': 2.0.13(typescript@5.5.4)(zod@3.23.8) + '@latticexyz/utils': 2.1.0 + mathjs: 12.4.3 + micro-starknet: 0.2.3 + starknet: 6.11.0 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + dev: false + /@emotion/is-prop-valid@0.8.8: resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} requiresBuild: true @@ -4002,7 +4019,7 @@ packages: resolution: {integrity: sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==} dependencies: '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.2 + '@noble/hashes': 1.3.3 '@scure/base': 1.1.7 dev: false @@ -4017,7 +4034,7 @@ packages: /@scure/bip39@1.2.1: resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} dependencies: - '@noble/hashes': 1.3.2 + '@noble/hashes': 1.3.3 '@scure/base': 1.1.7 dev: false diff --git a/client/src/App.tsx b/client/src/App.tsx index e7df4935..e9abdb7f 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -15,7 +15,7 @@ import Leaderboard from "./pages/Leaderboard"; import Lobby from "./pages/Lobby"; const CONTRACT_ADDRESS = - "0x4c4869d1067625074edd5f2c68774831ee26261423b8a17fc71f533e7b03f5c"; + "0x75f40d154faffb3078122f7c018d43e327911cd1dcccc64cbaba2bae7e620ac"; const policies = [ { @@ -45,13 +45,18 @@ const policies = [ ]; const options: ControllerOptions = { - rpc: "https://api.cartridge.gg/x/mancala-alpha-v3/katana", + rpc: "https://starknet-sepolia.public.blastapi.io/rpc/v0_7", theme: "realm-of-ra", }; +const connectorOptions = { + policies, + ...options, +}; + function rpc(_chain: Chain) { return { - nodeUrl: "https://api.cartridge.gg/x/mancala-alpha-v3/katana", + nodeUrl: "https://starknet-sepolia.public.blastapi.io/rpc/v0_7", }; } @@ -80,7 +85,7 @@ export default function App() { }, []); const connectors = [ - new CartridgeConnector(policies, options) as never as Connector, + new CartridgeConnector(connectorOptions) as never as Connector, ]; return ( diff --git a/client/src/components/lobby/duels.tsx b/client/src/components/lobby/duels.tsx index f927d2eb..97130fab 100644 --- a/client/src/components/lobby/duels.tsx +++ b/client/src/components/lobby/duels.tsx @@ -52,11 +52,10 @@ export default function Duels({ games, transactions, loading }: { games: any, tr challenger: data.node.player_one, challenged: data.node.player_two, winner: data.node.winner, - date: transactions[index].node.executedAt, + date: transactions[index].executedAt, } }) - if (loading) { return } diff --git a/client/src/components/lobby/live-duels.tsx b/client/src/components/lobby/live-duels.tsx index 62a2cb44..55be9fda 100644 --- a/client/src/components/lobby/live-duels.tsx +++ b/client/src/components/lobby/live-duels.tsx @@ -12,7 +12,7 @@ import { LiveSkeleton } from "./live-skeleton.tsx"; import { Link, useNavigate } from "react-router-dom"; import { UserIcon } from "@heroicons/react/24/solid"; -export default function LiveDuels({ games, transactions }: { games: any, transactions: any }) { +export default function LiveDuels({ games }: { games: any }) { const { provider } = useProvider(); const navigate = useNavigate(); const starknetIdNavigator = useMemo(() => { @@ -49,9 +49,9 @@ export default function LiveDuels({ games, transactions }: { games: any, transac // }) const data = games?.map((data: any, index: number) => { return { - challenger: data.node.player_one, - challenged: data.node.player_two, - date: transactions[index].node.executedAt, + challenger: data?.node.player_one, + challenged: data?.node.player_two, + date: data?.node.entity?.executedAt, } }) const { system } = useDojo() diff --git a/client/src/constants/config.ts b/client/src/constants/config.ts index d9090857..6ba97689 100644 --- a/client/src/constants/config.ts +++ b/client/src/constants/config.ts @@ -1,5 +1,6 @@ const CONFIG = { - GRAPHQL_ENDPOINT: "https://api.cartridge.gg/x/mancala-alpha-v3/torii/graphql", + GRAPHQL_ENDPOINT: + "https://api.cartridge.gg/x/mancala-alpha-sepolia-v4/torii/graphql", }; export default CONFIG; diff --git a/client/src/generated/graphql.tsx b/client/src/generated/graphql.tsx index d29868aa..aa6d649f 100644 --- a/client/src/generated/graphql.tsx +++ b/client/src/generated/graphql.tsx @@ -938,13 +938,9 @@ export const MancalaModelsFetchDocument = gql` status is_private time_between_move - } - } - } - transactions { - edges { - node { - executedAt + entity { + executedAt + } } } } @@ -984,20 +980,21 @@ export type MancalaModelsFetchSuspenseQueryHookResult = ReturnType; export const FetchModelsForLeaderBoardDocument = gql` query FetchModelsForLeaderBoard { - mancalaAlphaMancalaGameModels { - edges { - node { - game_id - player_one - player_two - current_player - winner - status - is_private + mancalaAlphaMancalaGameModels { + edges { + node { + game_id + player_one + player_two + current_player + winner + status + is_private + time_between_move + } + } + } } - } - } -} `; /** diff --git a/client/src/pages/Lobby.tsx b/client/src/pages/Lobby.tsx index 512737e7..614a5f8e 100644 --- a/client/src/pages/Lobby.tsx +++ b/client/src/pages/Lobby.tsx @@ -100,22 +100,29 @@ export default function Lobby() { connectWallet(); }; - const filteredGames = data?.mancalaAlphaMancalaGameModels?.edges?.filter(game => - game?.node?.player_one === account.address || game?.node?.player_two === account.address + const filteredGames = data?.mancalaAlphaMancalaGameModels?.edges?.filter( + (game) => + game?.node?.player_one === account.address || + game?.node?.player_two === account.address ); - const filteredTransactions = data?.mancalaAlphaMancalaGameModels?.edges?.reduce((acc, game, index) => { - if ( - (game?.node?.player_one === account.address || game?.node?.player_two === account.address) && - data?.transactions?.edges - ) { - const transaction = data.transactions.edges[index]; - if (transaction) { - acc.push(transaction as never); + const filteredTransactions = data?.mancalaAlphaMancalaGameModels?.edges?.reduce( + (acc: any[], game: any) => { + if ( + (game?.node?.player_one === account.address || + game?.node?.player_two === account.address) && + game?.node?.entity?.executedAt + ) { + acc.push({ + ...game.node, + executedAt: game?.node?.entity?.executedAt, + }); } - } - return acc; - }, []) || []; + return acc; + }, + [] + ) || []; + return (
@@ -356,7 +363,6 @@ export default function Lobby() { diff --git a/contracts/.tool-versions b/contracts/.tool-versions index 77ab3af6..ae428cbd 100644 --- a/contracts/.tool-versions +++ b/contracts/.tool-versions @@ -1 +1 @@ -dojo 1.0.0-alpha.6 +dojo 1.0.0-alpha.9 diff --git a/contracts/Scarb.lock b/contracts/Scarb.lock index 43af70a5..97a4aa89 100644 --- a/contracts/Scarb.lock +++ b/contracts/Scarb.lock @@ -4,7 +4,7 @@ version = 1 [[package]] name = "dojo" version = "1.0.0-alpha.4" -source = "git+https://github.com/dojoengine/dojo?tag=v1.0.0-alpha.6#ede7930735c708572af8a87f81bb76354a401b3a" +source = "git+https://github.com/dojoengine/dojo?tag=v1.0.0-alpha.9#e42ce0c220a59d75c5b08e87a81de12cfdc27a55" dependencies = [ "dojo_plugin", ] @@ -16,7 +16,7 @@ source = "git+https://github.com/dojoengine/dojo?rev=f15def33#f15def330c0d099e79 [[package]] name = "mancala" -version = "0.0.3" +version = "0.0.4" dependencies = [ "dojo", ] diff --git a/contracts/Scarb.toml b/contracts/Scarb.toml index 46313415..bd8ef834 100644 --- a/contracts/Scarb.toml +++ b/contracts/Scarb.toml @@ -1,7 +1,7 @@ [package] cairo-version = "=2.7.0" name = "mancala" -version = "0.0.3" +version = "0.0.4" edition = "2024_07" [cairo] @@ -11,7 +11,7 @@ sierra-replace-ids = true migrate = "sozo build && sozo migrate plan && sozo migrate apply" [dependencies] -dojo = { git = "https://github.com/dojoengine/dojo", tag = "v1.0.0-alpha.6" } +dojo = { git = "https://github.com/dojoengine/dojo", tag = "v1.0.0-alpha.9" } [[target.dojo]] diff --git a/contracts/dojo_dev.toml b/contracts/dojo_dev.toml index f18b8b0d..8cfbc785 100644 --- a/contracts/dojo_dev.toml +++ b/contracts/dojo_dev.toml @@ -4,16 +4,16 @@ description = "Mancala is a classic strategy board game built on Starknet blockc cover_uri = "file://assets/cover.png" icon_uri = "file://assets/icon.png" website = "https://www.realmofra.com/" -seed = "mancala_alpha" +seed = "mancala_alpha_slot" [namespace] default = "mancala_alpha" [env] -rpc_url = "https://api.cartridge.gg/x/mancala-alpha-v3/katana" -account_address = "0x6d8a4c8c7830004f53371b56773278e0ab107fc10ecffb008a33ad84c5f2175" -private_key = "0x5d2e95d7477224d35cd3b1ffe50c1631573e21b71977605177528acfc4b8598" -world_address = "0x586ef8fba1930bb47c973ab1cdf97b16fe3a0d434cc1829b5d24e1d7d8ec608" +rpc_url = "https://api.cartridge.gg/x/mancala-alpha-v5/katana" +account_address = "0x6f3c5e9f3161c9b2545d8a0a08183df56e6e9adcd04864c31e591b6c8343afe" +private_key = "0x503b610edf67c295099d5184f75159e0e9e044940c86db2e10d07595ecc6e3c" +world_address = "0x47cbe2fcd69fd466f3fae430bf46e0a9d0ce2775fdfac124cedc49dbc8bc788" [world.socials] x = "https://x.com/realm_of_ra" diff --git a/contracts/dojo_sepolia.toml b/contracts/dojo_sepolia.toml index 4881bbbf..ae45d12e 100644 --- a/contracts/dojo_sepolia.toml +++ b/contracts/dojo_sepolia.toml @@ -4,7 +4,7 @@ description = "Mancala is a classic strategy board game built on Starknet blockc cover_uri = "file://assets/cover.png" icon_uri = "file://assets/icon.png" website = "https://www.realmofra.com/" -seed = "mancala_alpha" +seed = "mancala_alpha_sepolia" [namespace] default = "mancala_alpha" @@ -13,7 +13,7 @@ default = "mancala_alpha" rpc_url = "https://starknet-sepolia.public.blastapi.io/rpc/v0_7" account_address = "0x02A54eFf65D55a2E7D2fC7E23eF0F0e6030dB0313b16c8F0eaD0b4a83807f6d6" private_key = "0x0396533b7a1182ef03da483eca82e9dd2b17bee9c7fec07ac6cbbeb8bfd573cb" -world_address = "0x7955064f111a0c0762b3010f2399292852b16dfae86abd3ab3e0545ac904dd7" +world_address = "0x33402d31efb8d45d4868531e2f4e4b03e05c69a47b9ebcc0660145f9cdd20f3" [world.socials] x = "https://x.com/realm_of_ra" diff --git a/contracts/manifests/dev/base/contracts/mancala_alpha-actions-2c0baebe.toml b/contracts/manifests/dev/base/contracts/mancala_alpha-actions-2c0baebe.toml index 09bf1990..c5e11a46 100644 --- a/contracts/manifests/dev/base/contracts/mancala_alpha-actions-2c0baebe.toml +++ b/contracts/manifests/dev/base/contracts/mancala_alpha-actions-2c0baebe.toml @@ -1,6 +1,6 @@ kind = "DojoContract" -class_hash = "0x55dc74c6636df9de2105e32d762287bb5aaf561b491728d07fabc55eb345314" -original_class_hash = "0x55dc74c6636df9de2105e32d762287bb5aaf561b491728d07fabc55eb345314" +class_hash = "0x64f1bf03ed832104e2f76ea6a35ea1f74dc6b91989170ad7c2127338420691f" +original_class_hash = "0x64f1bf03ed832104e2f76ea6a35ea1f74dc6b91989170ad7c2127338420691f" base_class_hash = "0x0" abi = "manifests/dev/base/abis/contracts/mancala_alpha-actions-2c0baebe.json" reads = [] diff --git a/contracts/manifests/dev/base/dojo-world.toml b/contracts/manifests/dev/base/dojo-world.toml index 6f56ceed..2b3b1409 100644 --- a/contracts/manifests/dev/base/dojo-world.toml +++ b/contracts/manifests/dev/base/dojo-world.toml @@ -1,6 +1,6 @@ kind = "Class" -class_hash = "0x458d0ce5b14a4844092bdb62050f462d53362304a13febbac6d973691d61be2" -original_class_hash = "0x458d0ce5b14a4844092bdb62050f462d53362304a13febbac6d973691d61be2" +class_hash = "0xa349b743d361ce4567361475a89b84a386bb383448c6926954e5fe0b525597" +original_class_hash = "0xa349b743d361ce4567361475a89b84a386bb383448c6926954e5fe0b525597" abi = "manifests/dev/base/abis/dojo-world.json" tag = "dojo-world" manifest_name = "dojo-world" diff --git a/contracts/manifests/dev/base/models/mancala_alpha-GameId-4205bbb7.toml b/contracts/manifests/dev/base/models/mancala_alpha-GameId-4205bbb7.toml index 2532f540..469b49fb 100644 --- a/contracts/manifests/dev/base/models/mancala_alpha-GameId-4205bbb7.toml +++ b/contracts/manifests/dev/base/models/mancala_alpha-GameId-4205bbb7.toml @@ -3,6 +3,7 @@ class_hash = "0x1f4d24fdabfc8bf320d1ca5c2283576c242be48a84e1e304dd0ea1ccde934f6" original_class_hash = "0x1f4d24fdabfc8bf320d1ca5c2283576c242be48a84e1e304dd0ea1ccde934f6" abi = "manifests/dev/base/abis/models/mancala_alpha-GameId-4205bbb7.json" tag = "mancala_alpha-GameId" +qualified_path = "mancala::models::mancala_game::game_id" manifest_name = "mancala_alpha-GameId-4205bbb7" [[members]] diff --git a/contracts/manifests/dev/base/models/mancala_alpha-GamePlayer-4fe4cbef.toml b/contracts/manifests/dev/base/models/mancala_alpha-GamePlayer-4fe4cbef.toml index 52984893..4d4dc70e 100644 --- a/contracts/manifests/dev/base/models/mancala_alpha-GamePlayer-4fe4cbef.toml +++ b/contracts/manifests/dev/base/models/mancala_alpha-GamePlayer-4fe4cbef.toml @@ -3,6 +3,7 @@ class_hash = "0x11694727b022fcc1b98d29b8e62ec4f377643b08f858d202c9f0df3eb1882ef" original_class_hash = "0x11694727b022fcc1b98d29b8e62ec4f377643b08f858d202c9f0df3eb1882ef" abi = "manifests/dev/base/abis/models/mancala_alpha-GamePlayer-4fe4cbef.json" tag = "mancala_alpha-GamePlayer" +qualified_path = "mancala::models::player::game_player" manifest_name = "mancala_alpha-GamePlayer-4fe4cbef" [[members]] diff --git a/contracts/manifests/dev/base/models/mancala_alpha-MancalaGame-628bb438.toml b/contracts/manifests/dev/base/models/mancala_alpha-MancalaGame-628bb438.toml index 24334acc..a5e9336c 100644 --- a/contracts/manifests/dev/base/models/mancala_alpha-MancalaGame-628bb438.toml +++ b/contracts/manifests/dev/base/models/mancala_alpha-MancalaGame-628bb438.toml @@ -3,6 +3,7 @@ class_hash = "0x73f3710ff3124f6c8e376f78e9404f7256557df6c0c79876f09bd4c33e8f3d2" original_class_hash = "0x73f3710ff3124f6c8e376f78e9404f7256557df6c0c79876f09bd4c33e8f3d2" abi = "manifests/dev/base/abis/models/mancala_alpha-MancalaGame-628bb438.json" tag = "mancala_alpha-MancalaGame" +qualified_path = "mancala::models::mancala_game::mancala_game" manifest_name = "mancala_alpha-MancalaGame-628bb438" [[members]] diff --git a/contracts/manifests/dev/deployment/manifest.json b/contracts/manifests/dev/deployment/manifest.json index af719d64..410a0d7c 100644 --- a/contracts/manifests/dev/deployment/manifest.json +++ b/contracts/manifests/dev/deployment/manifest.json @@ -1,8 +1,8 @@ { "world": { "kind": "WorldContract", - "class_hash": "0x458d0ce5b14a4844092bdb62050f462d53362304a13febbac6d973691d61be2", - "original_class_hash": "0x458d0ce5b14a4844092bdb62050f462d53362304a13febbac6d973691d61be2", + "class_hash": "0xa349b743d361ce4567361475a89b84a386bb383448c6926954e5fe0b525597", + "original_class_hash": "0xa349b743d361ce4567361475a89b84a386bb383448c6926954e5fe0b525597", "abi": [ { "type": "impl", @@ -1229,13 +1229,13 @@ ] } ], - "address": "0x586ef8fba1930bb47c973ab1cdf97b16fe3a0d434cc1829b5d24e1d7d8ec608", - "transaction_hash": "0x1a6d1ed8a57f6842fe9600e1aba151f44f8866f0cabcc770df9fc5f101e37db", + "address": "0x47cbe2fcd69fd466f3fae430bf46e0a9d0ce2775fdfac124cedc49dbc8bc788", + "transaction_hash": "0x3ff91b455301a3a579fa32527ad49a87f1756a9a8dfd42275ea6f692b8368c9", "block_number": 3, - "seed": "mancala_alpha", + "seed": "mancala_alpha_slot", "metadata": { "profile_name": "dev", - "rpc_url": "https://api.cartridge.gg/x/mancala-alpha-v3/katana" + "rpc_url": "https://api.cartridge.gg/x/mancala-alpha-v5/katana" }, "manifest_name": "dojo-world" }, @@ -1250,9 +1250,9 @@ "contracts": [ { "kind": "DojoContract", - "address": "0x4c4869d1067625074edd5f2c68774831ee26261423b8a17fc71f533e7b03f5c", - "class_hash": "0x55dc74c6636df9de2105e32d762287bb5aaf561b491728d07fabc55eb345314", - "original_class_hash": "0x55dc74c6636df9de2105e32d762287bb5aaf561b491728d07fabc55eb345314", + "address": "0x66ebcab6f4ae40dba02ac86ac2ebba2f5b459142cbf095d65e5294e4dd7f465", + "class_hash": "0x64f1bf03ed832104e2f76ea6a35ea1f74dc6b91989170ad7c2127338420691f", + "original_class_hash": "0x64f1bf03ed832104e2f76ea6a35ea1f74dc6b91989170ad7c2127338420691f", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", "abi": [ { @@ -2156,6 +2156,7 @@ } ], "tag": "mancala_alpha-GameId", + "qualified_path": "mancala::models::mancala_game::game_id", "manifest_name": "mancala_alpha-GameId-4205bbb7" }, { @@ -2668,6 +2669,7 @@ } ], "tag": "mancala_alpha-GamePlayer", + "qualified_path": "mancala::models::player::game_player", "manifest_name": "mancala_alpha-GamePlayer-4fe4cbef" }, { @@ -3197,6 +3199,7 @@ } ], "tag": "mancala_alpha-MancalaGame", + "qualified_path": "mancala::models::mancala_game::mancala_game", "manifest_name": "mancala_alpha-MancalaGame-628bb438" } ] diff --git a/contracts/manifests/dev/deployment/manifest.toml b/contracts/manifests/dev/deployment/manifest.toml index 3ffdd5de..bf0b64ef 100644 --- a/contracts/manifests/dev/deployment/manifest.toml +++ b/contracts/manifests/dev/deployment/manifest.toml @@ -1,17 +1,17 @@ [world] kind = "WorldContract" -class_hash = "0x458d0ce5b14a4844092bdb62050f462d53362304a13febbac6d973691d61be2" -original_class_hash = "0x458d0ce5b14a4844092bdb62050f462d53362304a13febbac6d973691d61be2" +class_hash = "0xa349b743d361ce4567361475a89b84a386bb383448c6926954e5fe0b525597" +original_class_hash = "0xa349b743d361ce4567361475a89b84a386bb383448c6926954e5fe0b525597" abi = "manifests/dev/deployment/abis/dojo-world.json" -address = "0x586ef8fba1930bb47c973ab1cdf97b16fe3a0d434cc1829b5d24e1d7d8ec608" -transaction_hash = "0x1a6d1ed8a57f6842fe9600e1aba151f44f8866f0cabcc770df9fc5f101e37db" +address = "0x47cbe2fcd69fd466f3fae430bf46e0a9d0ce2775fdfac124cedc49dbc8bc788" +transaction_hash = "0x3ff91b455301a3a579fa32527ad49a87f1756a9a8dfd42275ea6f692b8368c9" block_number = 3 -seed = "mancala_alpha" +seed = "mancala_alpha_slot" manifest_name = "dojo-world" [world.metadata] profile_name = "dev" -rpc_url = "https://api.cartridge.gg/x/mancala-alpha-v3/katana" +rpc_url = "https://api.cartridge.gg/x/mancala-alpha-v5/katana" [base] kind = "Class" @@ -23,9 +23,9 @@ manifest_name = "dojo-base" [[contracts]] kind = "DojoContract" -address = "0x4c4869d1067625074edd5f2c68774831ee26261423b8a17fc71f533e7b03f5c" -class_hash = "0x55dc74c6636df9de2105e32d762287bb5aaf561b491728d07fabc55eb345314" -original_class_hash = "0x55dc74c6636df9de2105e32d762287bb5aaf561b491728d07fabc55eb345314" +address = "0x66ebcab6f4ae40dba02ac86ac2ebba2f5b459142cbf095d65e5294e4dd7f465" +class_hash = "0x64f1bf03ed832104e2f76ea6a35ea1f74dc6b91989170ad7c2127338420691f" +original_class_hash = "0x64f1bf03ed832104e2f76ea6a35ea1f74dc6b91989170ad7c2127338420691f" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" abi = "manifests/dev/deployment/abis/contracts/mancala_alpha-actions-2c0baebe.json" reads = [] @@ -47,6 +47,7 @@ class_hash = "0x1f4d24fdabfc8bf320d1ca5c2283576c242be48a84e1e304dd0ea1ccde934f6" original_class_hash = "0x1f4d24fdabfc8bf320d1ca5c2283576c242be48a84e1e304dd0ea1ccde934f6" abi = "manifests/dev/deployment/abis/models/mancala_alpha-GameId-4205bbb7.json" tag = "mancala_alpha-GameId" +qualified_path = "mancala::models::mancala_game::game_id" manifest_name = "mancala_alpha-GameId-4205bbb7" [[models.members]] @@ -65,6 +66,7 @@ class_hash = "0x11694727b022fcc1b98d29b8e62ec4f377643b08f858d202c9f0df3eb1882ef" original_class_hash = "0x11694727b022fcc1b98d29b8e62ec4f377643b08f858d202c9f0df3eb1882ef" abi = "manifests/dev/deployment/abis/models/mancala_alpha-GamePlayer-4fe4cbef.json" tag = "mancala_alpha-GamePlayer" +qualified_path = "mancala::models::player::game_player" manifest_name = "mancala_alpha-GamePlayer-4fe4cbef" [[models.members]] @@ -123,6 +125,7 @@ class_hash = "0x73f3710ff3124f6c8e376f78e9404f7256557df6c0c79876f09bd4c33e8f3d2" original_class_hash = "0x73f3710ff3124f6c8e376f78e9404f7256557df6c0c79876f09bd4c33e8f3d2" abi = "manifests/dev/deployment/abis/models/mancala_alpha-MancalaGame-628bb438.json" tag = "mancala_alpha-MancalaGame" +qualified_path = "mancala::models::mancala_game::mancala_game" manifest_name = "mancala_alpha-MancalaGame-628bb438" [[models.members]] diff --git a/contracts/manifests/sepolia/base/abis/contracts/mancala_alpha-actions-2c0baebe.json b/contracts/manifests/sepolia/base/abis/contracts/mancala_alpha-actions-2c0baebe.json new file mode 100644 index 00000000..a74cb8f7 --- /dev/null +++ b/contracts/manifests/sepolia/base/abis/contracts/mancala_alpha-actions-2c0baebe.json @@ -0,0 +1,461 @@ +[ + { + "type": "impl", + "name": "ContractImpl", + "interface_name": "dojo::contract::contract::IContract" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::contract::IContract", + "items": [ + { + "type": "function", + "name": "contract_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::world::world_contract::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::world_contract::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::world_contract::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ActionsImpl", + "interface_name": "mancala::systems::actions::IActions" + }, + { + "type": "enum", + "name": "mancala::models::mancala_game::GameStatus", + "variants": [ + { + "name": "Pending", + "type": "()" + }, + { + "name": "InProgress", + "type": "()" + }, + { + "name": "Finished", + "type": "()" + }, + { + "name": "Forfeited", + "type": "()" + }, + { + "name": "TimeOut", + "type": "()" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "mancala::models::mancala_game::MancalaGame", + "members": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "player_one", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "player_two", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "current_player", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "last_move", + "type": "core::integer::u64" + }, + { + "name": "time_between_move", + "type": "core::integer::u64" + }, + { + "name": "winner", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "status", + "type": "mancala::models::mancala_game::GameStatus" + }, + { + "name": "is_private", + "type": "core::bool" + } + ] + }, + { + "type": "interface", + "name": "mancala::systems::actions::IActions", + "items": [ + { + "type": "function", + "name": "create_initial_game_id", + "inputs": [], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "create_game", + "inputs": [], + "outputs": [ + { + "type": "mancala::models::mancala_game::MancalaGame" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "join_game", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "player_two_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "create_private_game", + "inputs": [ + { + "name": "player_two_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "mancala::models::mancala_game::MancalaGame" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "move", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "selected_pit", + "type": "core::integer::u8" + } + ], + "outputs": [ + { + "type": "(core::starknet::contract_address::ContractAddress, mancala::models::mancala_game::GameStatus)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "time_out", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_score", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "(core::integer::u8, core::integer::u8)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "is_game_finished", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "forfeited", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "player_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "request_restart_game", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "restart_game", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "private", + "type": "core::bool" + } + ], + "outputs": [ + { + "type": "mancala::models::mancala_game::MancalaGame" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "IDojoInitImpl", + "interface_name": "mancala::systems::actions::actions::IDojoInit" + }, + { + "type": "interface", + "name": "mancala::systems::actions::actions::IDojoInit", + "items": [ + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradableImpl", + "interface_name": "dojo::contract::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "mancala::systems::actions::actions::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "nested" + } + ] + } +] \ No newline at end of file diff --git a/contracts/manifests/sepolia/base/abis/dojo-base.json b/contracts/manifests/sepolia/base/abis/dojo-base.json new file mode 100644 index 00000000..48004642 --- /dev/null +++ b/contracts/manifests/sepolia/base/abis/dojo-base.json @@ -0,0 +1,98 @@ +[ + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::world::world_contract::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::world_contract::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::world_contract::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradableImpl", + "interface_name": "dojo::contract::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::base_contract::base::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "flat" + } + ] + } +] \ No newline at end of file diff --git a/contracts/manifests/sepolia/base/abis/dojo-world.json b/contracts/manifests/sepolia/base/abis/dojo-world.json new file mode 100644 index 00000000..897b4d95 --- /dev/null +++ b/contracts/manifests/sepolia/base/abis/dojo-world.json @@ -0,0 +1,1226 @@ +[ + { + "type": "impl", + "name": "World", + "interface_name": "dojo::world::world_contract::IWorld" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::metadata::ResourceMetadata", + "members": [ + { + "name": "resource_id", + "type": "core::felt252" + }, + { + "name": "metadata_uri", + "type": "core::byte_array::ByteArray" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::model::ModelIndex", + "variants": [ + { + "name": "Keys", + "type": "core::array::Span::" + }, + { + "name": "Id", + "type": "core::felt252" + }, + { + "name": "MemberId", + "type": "(core::felt252, core::felt252)" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "enum", + "name": "dojo::world::world_contract::Resource", + "variants": [ + { + "name": "Model", + "type": "(core::starknet::class_hash::ClassHash, core::starknet::contract_address::ContractAddress)" + }, + { + "name": "Contract", + "type": "(core::starknet::class_hash::ClassHash, core::starknet::contract_address::ContractAddress)" + }, + { + "name": "Namespace", + "type": "()" + }, + { + "name": "World", + "type": "()" + }, + { + "name": "Unregistered", + "type": "()" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IWorld", + "items": [ + { + "type": "function", + "name": "metadata", + "inputs": [ + { + "name": "resource_selector", + "type": "core::felt252" + } + ], + "outputs": [ + { + "type": "dojo::model::metadata::ResourceMetadata" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "set_metadata", + "inputs": [ + { + "name": "metadata", + "type": "dojo::model::metadata::ResourceMetadata" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "register_namespace", + "inputs": [ + { + "name": "namespace", + "type": "core::byte_array::ByteArray" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "register_model", + "inputs": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "upgrade_model", + "inputs": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "deploy_contract", + "inputs": [ + { + "name": "salt", + "type": "core::felt252" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [ + { + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "upgrade_contract", + "inputs": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [ + { + "type": "core::starknet::class_hash::ClassHash" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "init_contract", + "inputs": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "init_calldata", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "uuid", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "emit", + "inputs": [ + { + "name": "keys", + "type": "core::array::Array::" + }, + { + "name": "values", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "function", + "name": "entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "index", + "type": "dojo::model::model::ModelIndex" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ], + "outputs": [ + { + "type": "core::array::Span::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "set_entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "index", + "type": "dojo::model::model::ModelIndex" + }, + { + "name": "values", + "type": "core::array::Span::" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "delete_entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "index", + "type": "dojo::model::model::ModelIndex" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "base", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::class_hash::ClassHash" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "resource", + "inputs": [ + { + "name": "selector", + "type": "core::felt252" + } + ], + "outputs": [ + { + "type": "dojo::world::world_contract::Resource" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "is_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "grant_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "revoke_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "is_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "grant_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "revoke_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableWorld", + "interface_name": "dojo::world::world_contract::IUpgradeableWorld" + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IUpgradeableWorld", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableState", + "interface_name": "dojo::world::update::IUpgradeableState" + }, + { + "type": "struct", + "name": "dojo::world::update::StorageUpdate", + "members": [ + { + "name": "key", + "type": "core::felt252" + }, + { + "name": "value", + "type": "core::felt252" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::world::update::ProgramOutput", + "members": [ + { + "name": "prev_state_root", + "type": "core::felt252" + }, + { + "name": "new_state_root", + "type": "core::felt252" + }, + { + "name": "block_number", + "type": "core::felt252" + }, + { + "name": "block_hash", + "type": "core::felt252" + }, + { + "name": "config_hash", + "type": "core::felt252" + }, + { + "name": "world_da_hash", + "type": "core::felt252" + }, + { + "name": "message_to_starknet_segment", + "type": "core::array::Span::" + }, + { + "name": "message_to_appchain_segment", + "type": "core::array::Span::" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::update::IUpgradeableState", + "items": [ + { + "type": "function", + "name": "upgrade_state", + "inputs": [ + { + "name": "new_state", + "type": "core::array::Span::" + }, + { + "name": "program_output", + "type": "dojo::world::update::ProgramOutput" + }, + { + "name": "program_hash", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "ConfigImpl", + "interface_name": "dojo::world::config::IConfig" + }, + { + "type": "interface", + "name": "dojo::world::config::IConfig", + "items": [ + { + "type": "function", + "name": "set_differ_program_hash", + "inputs": [ + { + "name": "program_hash", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_merger_program_hash", + "inputs": [ + { + "name": "program_hash", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_differ_program_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "get_merger_program_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "set_facts_registry", + "inputs": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_facts_registry", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [ + { + "name": "contract_base", + "type": "core::starknet::class_hash::ClassHash" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::WorldSpawned", + "kind": "struct", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "creator", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ContractDeployed", + "kind": "struct", + "members": [ + { + "name": "salt", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ContractUpgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ContractInitialized", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "init_calldata", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::WorldUpgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::MetadataUpdate", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "uri", + "type": "core::byte_array::ByteArray", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::NamespaceRegistered", + "kind": "struct", + "members": [ + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ModelRegistered", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ModelUpgraded", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "prev_class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "prev_address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreSetRecord", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "keys", + "type": "core::array::Span::", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreUpdateRecord", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreUpdateMember", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "member_selector", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreDelRecord", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::WriterUpdated", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "value", + "type": "core::bool", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::OwnerUpdated", + "kind": "struct", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "resource", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "value", + "type": "core::bool", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::DifferProgramHashUpdate", + "kind": "struct", + "members": [ + { + "name": "program_hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::MergerProgramHashUpdate", + "kind": "struct", + "members": [ + { + "name": "program_hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::FactsRegistryUpdate", + "kind": "struct", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::Event", + "kind": "enum", + "variants": [ + { + "name": "DifferProgramHashUpdate", + "type": "dojo::world::config::Config::DifferProgramHashUpdate", + "kind": "nested" + }, + { + "name": "MergerProgramHashUpdate", + "type": "dojo::world::config::Config::MergerProgramHashUpdate", + "kind": "nested" + }, + { + "name": "FactsRegistryUpdate", + "type": "dojo::world::config::Config::FactsRegistryUpdate", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StateUpdated", + "kind": "struct", + "members": [ + { + "name": "da_hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::Event", + "kind": "enum", + "variants": [ + { + "name": "WorldSpawned", + "type": "dojo::world::world_contract::world::WorldSpawned", + "kind": "nested" + }, + { + "name": "ContractDeployed", + "type": "dojo::world::world_contract::world::ContractDeployed", + "kind": "nested" + }, + { + "name": "ContractUpgraded", + "type": "dojo::world::world_contract::world::ContractUpgraded", + "kind": "nested" + }, + { + "name": "ContractInitialized", + "type": "dojo::world::world_contract::world::ContractInitialized", + "kind": "nested" + }, + { + "name": "WorldUpgraded", + "type": "dojo::world::world_contract::world::WorldUpgraded", + "kind": "nested" + }, + { + "name": "MetadataUpdate", + "type": "dojo::world::world_contract::world::MetadataUpdate", + "kind": "nested" + }, + { + "name": "NamespaceRegistered", + "type": "dojo::world::world_contract::world::NamespaceRegistered", + "kind": "nested" + }, + { + "name": "ModelRegistered", + "type": "dojo::world::world_contract::world::ModelRegistered", + "kind": "nested" + }, + { + "name": "ModelUpgraded", + "type": "dojo::world::world_contract::world::ModelUpgraded", + "kind": "nested" + }, + { + "name": "StoreSetRecord", + "type": "dojo::world::world_contract::world::StoreSetRecord", + "kind": "nested" + }, + { + "name": "StoreUpdateRecord", + "type": "dojo::world::world_contract::world::StoreUpdateRecord", + "kind": "nested" + }, + { + "name": "StoreUpdateMember", + "type": "dojo::world::world_contract::world::StoreUpdateMember", + "kind": "nested" + }, + { + "name": "StoreDelRecord", + "type": "dojo::world::world_contract::world::StoreDelRecord", + "kind": "nested" + }, + { + "name": "WriterUpdated", + "type": "dojo::world::world_contract::world::WriterUpdated", + "kind": "nested" + }, + { + "name": "OwnerUpdated", + "type": "dojo::world::world_contract::world::OwnerUpdated", + "kind": "nested" + }, + { + "name": "ConfigEvent", + "type": "dojo::world::config::Config::Event", + "kind": "nested" + }, + { + "name": "StateUpdated", + "type": "dojo::world::world_contract::world::StateUpdated", + "kind": "nested" + } + ] + } +] \ No newline at end of file diff --git a/contracts/manifests/sepolia/base/abis/models/mancala_alpha-GameId-4205bbb7.json b/contracts/manifests/sepolia/base/abis/models/mancala_alpha-GameId-4205bbb7.json new file mode 100644 index 00000000..2e3a28a5 --- /dev/null +++ b/contracts/manifests/sepolia/base/abis/models/mancala_alpha-GameId-4205bbb7.json @@ -0,0 +1,407 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "game_idImpl", + "interface_name": "mancala::models::mancala_game::Igame_id" + }, + { + "type": "struct", + "name": "mancala::models::mancala_game::GameId", + "members": [ + { + "name": "id", + "type": "core::integer::u32" + }, + { + "name": "game_id", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "mancala::models::mancala_game::Igame_id", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "mancala::models::mancala_game::GameId" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "mancala::models::mancala_game::game_id::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/contracts/manifests/sepolia/base/abis/models/mancala_alpha-GamePlayer-4fe4cbef.json b/contracts/manifests/sepolia/base/abis/models/mancala_alpha-GamePlayer-4fe4cbef.json new file mode 100644 index 00000000..442f91df --- /dev/null +++ b/contracts/manifests/sepolia/base/abis/models/mancala_alpha-GamePlayer-4fe4cbef.json @@ -0,0 +1,453 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "game_playerImpl", + "interface_name": "mancala::models::player::Igame_player" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "mancala::models::player::GamePlayer", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "pit1", + "type": "core::integer::u8" + }, + { + "name": "pit2", + "type": "core::integer::u8" + }, + { + "name": "pit3", + "type": "core::integer::u8" + }, + { + "name": "pit4", + "type": "core::integer::u8" + }, + { + "name": "pit5", + "type": "core::integer::u8" + }, + { + "name": "pit6", + "type": "core::integer::u8" + }, + { + "name": "mancala", + "type": "core::integer::u8" + }, + { + "name": "restart_requested", + "type": "core::bool" + } + ] + }, + { + "type": "interface", + "name": "mancala::models::player::Igame_player", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "mancala::models::player::GamePlayer" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "mancala::models::player::game_player::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/contracts/manifests/sepolia/base/abis/models/mancala_alpha-MancalaGame-628bb438.json b/contracts/manifests/sepolia/base/abis/models/mancala_alpha-MancalaGame-628bb438.json new file mode 100644 index 00000000..efcf7daf --- /dev/null +++ b/contracts/manifests/sepolia/base/abis/models/mancala_alpha-MancalaGame-628bb438.json @@ -0,0 +1,475 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "mancala_gameImpl", + "interface_name": "mancala::models::mancala_game::Imancala_game" + }, + { + "type": "enum", + "name": "mancala::models::mancala_game::GameStatus", + "variants": [ + { + "name": "Pending", + "type": "()" + }, + { + "name": "InProgress", + "type": "()" + }, + { + "name": "Finished", + "type": "()" + }, + { + "name": "Forfeited", + "type": "()" + }, + { + "name": "TimeOut", + "type": "()" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "mancala::models::mancala_game::MancalaGame", + "members": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "player_one", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "player_two", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "current_player", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "last_move", + "type": "core::integer::u64" + }, + { + "name": "time_between_move", + "type": "core::integer::u64" + }, + { + "name": "winner", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "status", + "type": "mancala::models::mancala_game::GameStatus" + }, + { + "name": "is_private", + "type": "core::bool" + } + ] + }, + { + "type": "interface", + "name": "mancala::models::mancala_game::Imancala_game", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "mancala::models::mancala_game::MancalaGame" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "mancala::models::mancala_game::mancala_game::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/contracts/manifests/sepolia/base/contracts/mancala_alpha-actions-2c0baebe.toml b/contracts/manifests/sepolia/base/contracts/mancala_alpha-actions-2c0baebe.toml new file mode 100644 index 00000000..5df12bbc --- /dev/null +++ b/contracts/manifests/sepolia/base/contracts/mancala_alpha-actions-2c0baebe.toml @@ -0,0 +1,17 @@ +kind = "DojoContract" +class_hash = "0x64f1bf03ed832104e2f76ea6a35ea1f74dc6b91989170ad7c2127338420691f" +original_class_hash = "0x64f1bf03ed832104e2f76ea6a35ea1f74dc6b91989170ad7c2127338420691f" +base_class_hash = "0x0" +abi = "manifests/sepolia/base/abis/contracts/mancala_alpha-actions-2c0baebe.json" +reads = [] +writes = [] +init_calldata = [] +tag = "mancala_alpha-actions" +systems = [ + "create_initial_game_id", + "join_game", + "time_out", + "forfeited", + "request_restart_game", +] +manifest_name = "mancala_alpha-actions-2c0baebe" diff --git a/contracts/manifests/sepolia/base/dojo-base.toml b/contracts/manifests/sepolia/base/dojo-base.toml new file mode 100644 index 00000000..336ad039 --- /dev/null +++ b/contracts/manifests/sepolia/base/dojo-base.toml @@ -0,0 +1,6 @@ +kind = "Class" +class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" +original_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" +abi = "manifests/sepolia/base/abis/dojo-base.json" +tag = "dojo-base" +manifest_name = "dojo-base" diff --git a/contracts/manifests/sepolia/base/dojo-world.toml b/contracts/manifests/sepolia/base/dojo-world.toml new file mode 100644 index 00000000..951e6e92 --- /dev/null +++ b/contracts/manifests/sepolia/base/dojo-world.toml @@ -0,0 +1,6 @@ +kind = "Class" +class_hash = "0xa349b743d361ce4567361475a89b84a386bb383448c6926954e5fe0b525597" +original_class_hash = "0xa349b743d361ce4567361475a89b84a386bb383448c6926954e5fe0b525597" +abi = "manifests/sepolia/base/abis/dojo-world.json" +tag = "dojo-world" +manifest_name = "dojo-world" diff --git a/contracts/manifests/sepolia/base/models/mancala_alpha-GameId-4205bbb7.toml b/contracts/manifests/sepolia/base/models/mancala_alpha-GameId-4205bbb7.toml new file mode 100644 index 00000000..cee8b155 --- /dev/null +++ b/contracts/manifests/sepolia/base/models/mancala_alpha-GameId-4205bbb7.toml @@ -0,0 +1,17 @@ +kind = "DojoModel" +class_hash = "0x1f4d24fdabfc8bf320d1ca5c2283576c242be48a84e1e304dd0ea1ccde934f6" +original_class_hash = "0x1f4d24fdabfc8bf320d1ca5c2283576c242be48a84e1e304dd0ea1ccde934f6" +abi = "manifests/sepolia/base/abis/models/mancala_alpha-GameId-4205bbb7.json" +tag = "mancala_alpha-GameId" +qualified_path = "mancala::models::mancala_game::game_id" +manifest_name = "mancala_alpha-GameId-4205bbb7" + +[[members]] +name = "id" +type = "u32" +key = true + +[[members]] +name = "game_id" +type = "u128" +key = false diff --git a/contracts/manifests/sepolia/base/models/mancala_alpha-GamePlayer-4fe4cbef.toml b/contracts/manifests/sepolia/base/models/mancala_alpha-GamePlayer-4fe4cbef.toml new file mode 100644 index 00000000..a7e2611c --- /dev/null +++ b/contracts/manifests/sepolia/base/models/mancala_alpha-GamePlayer-4fe4cbef.toml @@ -0,0 +1,57 @@ +kind = "DojoModel" +class_hash = "0x11694727b022fcc1b98d29b8e62ec4f377643b08f858d202c9f0df3eb1882ef" +original_class_hash = "0x11694727b022fcc1b98d29b8e62ec4f377643b08f858d202c9f0df3eb1882ef" +abi = "manifests/sepolia/base/abis/models/mancala_alpha-GamePlayer-4fe4cbef.json" +tag = "mancala_alpha-GamePlayer" +qualified_path = "mancala::models::player::game_player" +manifest_name = "mancala_alpha-GamePlayer-4fe4cbef" + +[[members]] +name = "address" +type = "ContractAddress" +key = true + +[[members]] +name = "game_id" +type = "u128" +key = true + +[[members]] +name = "pit1" +type = "u8" +key = false + +[[members]] +name = "pit2" +type = "u8" +key = false + +[[members]] +name = "pit3" +type = "u8" +key = false + +[[members]] +name = "pit4" +type = "u8" +key = false + +[[members]] +name = "pit5" +type = "u8" +key = false + +[[members]] +name = "pit6" +type = "u8" +key = false + +[[members]] +name = "mancala" +type = "u8" +key = false + +[[members]] +name = "restart_requested" +type = "bool" +key = false diff --git a/contracts/manifests/sepolia/base/models/mancala_alpha-MancalaGame-628bb438.toml b/contracts/manifests/sepolia/base/models/mancala_alpha-MancalaGame-628bb438.toml new file mode 100644 index 00000000..3aac2d2f --- /dev/null +++ b/contracts/manifests/sepolia/base/models/mancala_alpha-MancalaGame-628bb438.toml @@ -0,0 +1,52 @@ +kind = "DojoModel" +class_hash = "0x73f3710ff3124f6c8e376f78e9404f7256557df6c0c79876f09bd4c33e8f3d2" +original_class_hash = "0x73f3710ff3124f6c8e376f78e9404f7256557df6c0c79876f09bd4c33e8f3d2" +abi = "manifests/sepolia/base/abis/models/mancala_alpha-MancalaGame-628bb438.json" +tag = "mancala_alpha-MancalaGame" +qualified_path = "mancala::models::mancala_game::mancala_game" +manifest_name = "mancala_alpha-MancalaGame-628bb438" + +[[members]] +name = "game_id" +type = "u128" +key = true + +[[members]] +name = "player_one" +type = "ContractAddress" +key = false + +[[members]] +name = "player_two" +type = "ContractAddress" +key = false + +[[members]] +name = "current_player" +type = "ContractAddress" +key = false + +[[members]] +name = "last_move" +type = "u64" +key = false + +[[members]] +name = "time_between_move" +type = "u64" +key = false + +[[members]] +name = "winner" +type = "ContractAddress" +key = false + +[[members]] +name = "status" +type = "GameStatus" +key = false + +[[members]] +name = "is_private" +type = "bool" +key = false diff --git a/contracts/manifests/sepolia/deployment/abis/contracts/mancala_alpha-actions-2c0baebe.json b/contracts/manifests/sepolia/deployment/abis/contracts/mancala_alpha-actions-2c0baebe.json new file mode 100644 index 00000000..a74cb8f7 --- /dev/null +++ b/contracts/manifests/sepolia/deployment/abis/contracts/mancala_alpha-actions-2c0baebe.json @@ -0,0 +1,461 @@ +[ + { + "type": "impl", + "name": "ContractImpl", + "interface_name": "dojo::contract::contract::IContract" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::contract::IContract", + "items": [ + { + "type": "function", + "name": "contract_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::world::world_contract::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::world_contract::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::world_contract::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ActionsImpl", + "interface_name": "mancala::systems::actions::IActions" + }, + { + "type": "enum", + "name": "mancala::models::mancala_game::GameStatus", + "variants": [ + { + "name": "Pending", + "type": "()" + }, + { + "name": "InProgress", + "type": "()" + }, + { + "name": "Finished", + "type": "()" + }, + { + "name": "Forfeited", + "type": "()" + }, + { + "name": "TimeOut", + "type": "()" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "mancala::models::mancala_game::MancalaGame", + "members": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "player_one", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "player_two", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "current_player", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "last_move", + "type": "core::integer::u64" + }, + { + "name": "time_between_move", + "type": "core::integer::u64" + }, + { + "name": "winner", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "status", + "type": "mancala::models::mancala_game::GameStatus" + }, + { + "name": "is_private", + "type": "core::bool" + } + ] + }, + { + "type": "interface", + "name": "mancala::systems::actions::IActions", + "items": [ + { + "type": "function", + "name": "create_initial_game_id", + "inputs": [], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "create_game", + "inputs": [], + "outputs": [ + { + "type": "mancala::models::mancala_game::MancalaGame" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "join_game", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "player_two_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "create_private_game", + "inputs": [ + { + "name": "player_two_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "mancala::models::mancala_game::MancalaGame" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "move", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "selected_pit", + "type": "core::integer::u8" + } + ], + "outputs": [ + { + "type": "(core::starknet::contract_address::ContractAddress, mancala::models::mancala_game::GameStatus)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "time_out", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_score", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "(core::integer::u8, core::integer::u8)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "is_game_finished", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "forfeited", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "player_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "request_restart_game", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "restart_game", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "private", + "type": "core::bool" + } + ], + "outputs": [ + { + "type": "mancala::models::mancala_game::MancalaGame" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "IDojoInitImpl", + "interface_name": "mancala::systems::actions::actions::IDojoInit" + }, + { + "type": "interface", + "name": "mancala::systems::actions::actions::IDojoInit", + "items": [ + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradableImpl", + "interface_name": "dojo::contract::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "mancala::systems::actions::actions::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "nested" + } + ] + } +] \ No newline at end of file diff --git a/contracts/manifests/sepolia/deployment/abis/dojo-base.json b/contracts/manifests/sepolia/deployment/abis/dojo-base.json new file mode 100644 index 00000000..48004642 --- /dev/null +++ b/contracts/manifests/sepolia/deployment/abis/dojo-base.json @@ -0,0 +1,98 @@ +[ + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::world::world_contract::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::world_contract::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::world_contract::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradableImpl", + "interface_name": "dojo::contract::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::base_contract::base::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "flat" + } + ] + } +] \ No newline at end of file diff --git a/contracts/manifests/sepolia/deployment/abis/dojo-world.json b/contracts/manifests/sepolia/deployment/abis/dojo-world.json new file mode 100644 index 00000000..897b4d95 --- /dev/null +++ b/contracts/manifests/sepolia/deployment/abis/dojo-world.json @@ -0,0 +1,1226 @@ +[ + { + "type": "impl", + "name": "World", + "interface_name": "dojo::world::world_contract::IWorld" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::metadata::ResourceMetadata", + "members": [ + { + "name": "resource_id", + "type": "core::felt252" + }, + { + "name": "metadata_uri", + "type": "core::byte_array::ByteArray" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::model::ModelIndex", + "variants": [ + { + "name": "Keys", + "type": "core::array::Span::" + }, + { + "name": "Id", + "type": "core::felt252" + }, + { + "name": "MemberId", + "type": "(core::felt252, core::felt252)" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "enum", + "name": "dojo::world::world_contract::Resource", + "variants": [ + { + "name": "Model", + "type": "(core::starknet::class_hash::ClassHash, core::starknet::contract_address::ContractAddress)" + }, + { + "name": "Contract", + "type": "(core::starknet::class_hash::ClassHash, core::starknet::contract_address::ContractAddress)" + }, + { + "name": "Namespace", + "type": "()" + }, + { + "name": "World", + "type": "()" + }, + { + "name": "Unregistered", + "type": "()" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IWorld", + "items": [ + { + "type": "function", + "name": "metadata", + "inputs": [ + { + "name": "resource_selector", + "type": "core::felt252" + } + ], + "outputs": [ + { + "type": "dojo::model::metadata::ResourceMetadata" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "set_metadata", + "inputs": [ + { + "name": "metadata", + "type": "dojo::model::metadata::ResourceMetadata" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "register_namespace", + "inputs": [ + { + "name": "namespace", + "type": "core::byte_array::ByteArray" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "register_model", + "inputs": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "upgrade_model", + "inputs": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "deploy_contract", + "inputs": [ + { + "name": "salt", + "type": "core::felt252" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [ + { + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "upgrade_contract", + "inputs": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [ + { + "type": "core::starknet::class_hash::ClassHash" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "init_contract", + "inputs": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "init_calldata", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "uuid", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "emit", + "inputs": [ + { + "name": "keys", + "type": "core::array::Array::" + }, + { + "name": "values", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "function", + "name": "entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "index", + "type": "dojo::model::model::ModelIndex" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ], + "outputs": [ + { + "type": "core::array::Span::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "set_entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "index", + "type": "dojo::model::model::ModelIndex" + }, + { + "name": "values", + "type": "core::array::Span::" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "delete_entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "index", + "type": "dojo::model::model::ModelIndex" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "base", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::class_hash::ClassHash" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "resource", + "inputs": [ + { + "name": "selector", + "type": "core::felt252" + } + ], + "outputs": [ + { + "type": "dojo::world::world_contract::Resource" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "is_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "grant_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "revoke_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "is_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "grant_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "revoke_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableWorld", + "interface_name": "dojo::world::world_contract::IUpgradeableWorld" + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IUpgradeableWorld", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableState", + "interface_name": "dojo::world::update::IUpgradeableState" + }, + { + "type": "struct", + "name": "dojo::world::update::StorageUpdate", + "members": [ + { + "name": "key", + "type": "core::felt252" + }, + { + "name": "value", + "type": "core::felt252" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::world::update::ProgramOutput", + "members": [ + { + "name": "prev_state_root", + "type": "core::felt252" + }, + { + "name": "new_state_root", + "type": "core::felt252" + }, + { + "name": "block_number", + "type": "core::felt252" + }, + { + "name": "block_hash", + "type": "core::felt252" + }, + { + "name": "config_hash", + "type": "core::felt252" + }, + { + "name": "world_da_hash", + "type": "core::felt252" + }, + { + "name": "message_to_starknet_segment", + "type": "core::array::Span::" + }, + { + "name": "message_to_appchain_segment", + "type": "core::array::Span::" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::update::IUpgradeableState", + "items": [ + { + "type": "function", + "name": "upgrade_state", + "inputs": [ + { + "name": "new_state", + "type": "core::array::Span::" + }, + { + "name": "program_output", + "type": "dojo::world::update::ProgramOutput" + }, + { + "name": "program_hash", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "ConfigImpl", + "interface_name": "dojo::world::config::IConfig" + }, + { + "type": "interface", + "name": "dojo::world::config::IConfig", + "items": [ + { + "type": "function", + "name": "set_differ_program_hash", + "inputs": [ + { + "name": "program_hash", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_merger_program_hash", + "inputs": [ + { + "name": "program_hash", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_differ_program_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "get_merger_program_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "set_facts_registry", + "inputs": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_facts_registry", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [ + { + "name": "contract_base", + "type": "core::starknet::class_hash::ClassHash" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::WorldSpawned", + "kind": "struct", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "creator", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ContractDeployed", + "kind": "struct", + "members": [ + { + "name": "salt", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ContractUpgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ContractInitialized", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "init_calldata", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::WorldUpgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::MetadataUpdate", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "uri", + "type": "core::byte_array::ByteArray", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::NamespaceRegistered", + "kind": "struct", + "members": [ + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ModelRegistered", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ModelUpgraded", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "prev_class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "prev_address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreSetRecord", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "keys", + "type": "core::array::Span::", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreUpdateRecord", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreUpdateMember", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "member_selector", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreDelRecord", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::WriterUpdated", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "value", + "type": "core::bool", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::OwnerUpdated", + "kind": "struct", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "resource", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "value", + "type": "core::bool", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::DifferProgramHashUpdate", + "kind": "struct", + "members": [ + { + "name": "program_hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::MergerProgramHashUpdate", + "kind": "struct", + "members": [ + { + "name": "program_hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::FactsRegistryUpdate", + "kind": "struct", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::Event", + "kind": "enum", + "variants": [ + { + "name": "DifferProgramHashUpdate", + "type": "dojo::world::config::Config::DifferProgramHashUpdate", + "kind": "nested" + }, + { + "name": "MergerProgramHashUpdate", + "type": "dojo::world::config::Config::MergerProgramHashUpdate", + "kind": "nested" + }, + { + "name": "FactsRegistryUpdate", + "type": "dojo::world::config::Config::FactsRegistryUpdate", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StateUpdated", + "kind": "struct", + "members": [ + { + "name": "da_hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::Event", + "kind": "enum", + "variants": [ + { + "name": "WorldSpawned", + "type": "dojo::world::world_contract::world::WorldSpawned", + "kind": "nested" + }, + { + "name": "ContractDeployed", + "type": "dojo::world::world_contract::world::ContractDeployed", + "kind": "nested" + }, + { + "name": "ContractUpgraded", + "type": "dojo::world::world_contract::world::ContractUpgraded", + "kind": "nested" + }, + { + "name": "ContractInitialized", + "type": "dojo::world::world_contract::world::ContractInitialized", + "kind": "nested" + }, + { + "name": "WorldUpgraded", + "type": "dojo::world::world_contract::world::WorldUpgraded", + "kind": "nested" + }, + { + "name": "MetadataUpdate", + "type": "dojo::world::world_contract::world::MetadataUpdate", + "kind": "nested" + }, + { + "name": "NamespaceRegistered", + "type": "dojo::world::world_contract::world::NamespaceRegistered", + "kind": "nested" + }, + { + "name": "ModelRegistered", + "type": "dojo::world::world_contract::world::ModelRegistered", + "kind": "nested" + }, + { + "name": "ModelUpgraded", + "type": "dojo::world::world_contract::world::ModelUpgraded", + "kind": "nested" + }, + { + "name": "StoreSetRecord", + "type": "dojo::world::world_contract::world::StoreSetRecord", + "kind": "nested" + }, + { + "name": "StoreUpdateRecord", + "type": "dojo::world::world_contract::world::StoreUpdateRecord", + "kind": "nested" + }, + { + "name": "StoreUpdateMember", + "type": "dojo::world::world_contract::world::StoreUpdateMember", + "kind": "nested" + }, + { + "name": "StoreDelRecord", + "type": "dojo::world::world_contract::world::StoreDelRecord", + "kind": "nested" + }, + { + "name": "WriterUpdated", + "type": "dojo::world::world_contract::world::WriterUpdated", + "kind": "nested" + }, + { + "name": "OwnerUpdated", + "type": "dojo::world::world_contract::world::OwnerUpdated", + "kind": "nested" + }, + { + "name": "ConfigEvent", + "type": "dojo::world::config::Config::Event", + "kind": "nested" + }, + { + "name": "StateUpdated", + "type": "dojo::world::world_contract::world::StateUpdated", + "kind": "nested" + } + ] + } +] \ No newline at end of file diff --git a/contracts/manifests/sepolia/deployment/abis/models/mancala_alpha-GameId-4205bbb7.json b/contracts/manifests/sepolia/deployment/abis/models/mancala_alpha-GameId-4205bbb7.json new file mode 100644 index 00000000..2e3a28a5 --- /dev/null +++ b/contracts/manifests/sepolia/deployment/abis/models/mancala_alpha-GameId-4205bbb7.json @@ -0,0 +1,407 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "game_idImpl", + "interface_name": "mancala::models::mancala_game::Igame_id" + }, + { + "type": "struct", + "name": "mancala::models::mancala_game::GameId", + "members": [ + { + "name": "id", + "type": "core::integer::u32" + }, + { + "name": "game_id", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "mancala::models::mancala_game::Igame_id", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "mancala::models::mancala_game::GameId" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "mancala::models::mancala_game::game_id::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/contracts/manifests/sepolia/deployment/abis/models/mancala_alpha-GamePlayer-4fe4cbef.json b/contracts/manifests/sepolia/deployment/abis/models/mancala_alpha-GamePlayer-4fe4cbef.json new file mode 100644 index 00000000..442f91df --- /dev/null +++ b/contracts/manifests/sepolia/deployment/abis/models/mancala_alpha-GamePlayer-4fe4cbef.json @@ -0,0 +1,453 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "game_playerImpl", + "interface_name": "mancala::models::player::Igame_player" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "mancala::models::player::GamePlayer", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "pit1", + "type": "core::integer::u8" + }, + { + "name": "pit2", + "type": "core::integer::u8" + }, + { + "name": "pit3", + "type": "core::integer::u8" + }, + { + "name": "pit4", + "type": "core::integer::u8" + }, + { + "name": "pit5", + "type": "core::integer::u8" + }, + { + "name": "pit6", + "type": "core::integer::u8" + }, + { + "name": "mancala", + "type": "core::integer::u8" + }, + { + "name": "restart_requested", + "type": "core::bool" + } + ] + }, + { + "type": "interface", + "name": "mancala::models::player::Igame_player", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "mancala::models::player::GamePlayer" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "mancala::models::player::game_player::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/contracts/manifests/sepolia/deployment/abis/models/mancala_alpha-MancalaGame-628bb438.json b/contracts/manifests/sepolia/deployment/abis/models/mancala_alpha-MancalaGame-628bb438.json new file mode 100644 index 00000000..efcf7daf --- /dev/null +++ b/contracts/manifests/sepolia/deployment/abis/models/mancala_alpha-MancalaGame-628bb438.json @@ -0,0 +1,475 @@ +[ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "mancala_gameImpl", + "interface_name": "mancala::models::mancala_game::Imancala_game" + }, + { + "type": "enum", + "name": "mancala::models::mancala_game::GameStatus", + "variants": [ + { + "name": "Pending", + "type": "()" + }, + { + "name": "InProgress", + "type": "()" + }, + { + "name": "Finished", + "type": "()" + }, + { + "name": "Forfeited", + "type": "()" + }, + { + "name": "TimeOut", + "type": "()" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "mancala::models::mancala_game::MancalaGame", + "members": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "player_one", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "player_two", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "current_player", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "last_move", + "type": "core::integer::u64" + }, + { + "name": "time_between_move", + "type": "core::integer::u64" + }, + { + "name": "winner", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "status", + "type": "mancala::models::mancala_game::GameStatus" + }, + { + "name": "is_private", + "type": "core::bool" + } + ] + }, + { + "type": "interface", + "name": "mancala::models::mancala_game::Imancala_game", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "mancala::models::mancala_game::MancalaGame" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "mancala::models::mancala_game::mancala_game::Event", + "kind": "enum", + "variants": [] + } +] \ No newline at end of file diff --git a/contracts/manifests/sepolia/deployment/manifest.json b/contracts/manifests/sepolia/deployment/manifest.json new file mode 100644 index 00000000..aa904186 --- /dev/null +++ b/contracts/manifests/sepolia/deployment/manifest.json @@ -0,0 +1,3204 @@ +{ + "world": { + "kind": "WorldContract", + "class_hash": "0xa349b743d361ce4567361475a89b84a386bb383448c6926954e5fe0b525597", + "original_class_hash": "0xa349b743d361ce4567361475a89b84a386bb383448c6926954e5fe0b525597", + "abi": [ + { + "type": "impl", + "name": "World", + "interface_name": "dojo::world::world_contract::IWorld" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::metadata::ResourceMetadata", + "members": [ + { + "name": "resource_id", + "type": "core::felt252" + }, + { + "name": "metadata_uri", + "type": "core::byte_array::ByteArray" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::model::ModelIndex", + "variants": [ + { + "name": "Keys", + "type": "core::array::Span::" + }, + { + "name": "Id", + "type": "core::felt252" + }, + { + "name": "MemberId", + "type": "(core::felt252, core::felt252)" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "enum", + "name": "dojo::world::world_contract::Resource", + "variants": [ + { + "name": "Model", + "type": "(core::starknet::class_hash::ClassHash, core::starknet::contract_address::ContractAddress)" + }, + { + "name": "Contract", + "type": "(core::starknet::class_hash::ClassHash, core::starknet::contract_address::ContractAddress)" + }, + { + "name": "Namespace", + "type": "()" + }, + { + "name": "World", + "type": "()" + }, + { + "name": "Unregistered", + "type": "()" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IWorld", + "items": [ + { + "type": "function", + "name": "metadata", + "inputs": [ + { + "name": "resource_selector", + "type": "core::felt252" + } + ], + "outputs": [ + { + "type": "dojo::model::metadata::ResourceMetadata" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "set_metadata", + "inputs": [ + { + "name": "metadata", + "type": "dojo::model::metadata::ResourceMetadata" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "register_namespace", + "inputs": [ + { + "name": "namespace", + "type": "core::byte_array::ByteArray" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "register_model", + "inputs": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "upgrade_model", + "inputs": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "deploy_contract", + "inputs": [ + { + "name": "salt", + "type": "core::felt252" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [ + { + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "upgrade_contract", + "inputs": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [ + { + "type": "core::starknet::class_hash::ClassHash" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "init_contract", + "inputs": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "init_calldata", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "uuid", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "emit", + "inputs": [ + { + "name": "keys", + "type": "core::array::Array::" + }, + { + "name": "values", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "function", + "name": "entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "index", + "type": "dojo::model::model::ModelIndex" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ], + "outputs": [ + { + "type": "core::array::Span::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "set_entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "index", + "type": "dojo::model::model::ModelIndex" + }, + { + "name": "values", + "type": "core::array::Span::" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "delete_entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "index", + "type": "dojo::model::model::ModelIndex" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "base", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::class_hash::ClassHash" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "resource", + "inputs": [ + { + "name": "selector", + "type": "core::felt252" + } + ], + "outputs": [ + { + "type": "dojo::world::world_contract::Resource" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "is_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "grant_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "revoke_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "is_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "grant_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "revoke_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableWorld", + "interface_name": "dojo::world::world_contract::IUpgradeableWorld" + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IUpgradeableWorld", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableState", + "interface_name": "dojo::world::update::IUpgradeableState" + }, + { + "type": "struct", + "name": "dojo::world::update::StorageUpdate", + "members": [ + { + "name": "key", + "type": "core::felt252" + }, + { + "name": "value", + "type": "core::felt252" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::world::update::ProgramOutput", + "members": [ + { + "name": "prev_state_root", + "type": "core::felt252" + }, + { + "name": "new_state_root", + "type": "core::felt252" + }, + { + "name": "block_number", + "type": "core::felt252" + }, + { + "name": "block_hash", + "type": "core::felt252" + }, + { + "name": "config_hash", + "type": "core::felt252" + }, + { + "name": "world_da_hash", + "type": "core::felt252" + }, + { + "name": "message_to_starknet_segment", + "type": "core::array::Span::" + }, + { + "name": "message_to_appchain_segment", + "type": "core::array::Span::" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::update::IUpgradeableState", + "items": [ + { + "type": "function", + "name": "upgrade_state", + "inputs": [ + { + "name": "new_state", + "type": "core::array::Span::" + }, + { + "name": "program_output", + "type": "dojo::world::update::ProgramOutput" + }, + { + "name": "program_hash", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "ConfigImpl", + "interface_name": "dojo::world::config::IConfig" + }, + { + "type": "interface", + "name": "dojo::world::config::IConfig", + "items": [ + { + "type": "function", + "name": "set_differ_program_hash", + "inputs": [ + { + "name": "program_hash", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_merger_program_hash", + "inputs": [ + { + "name": "program_hash", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_differ_program_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "get_merger_program_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "set_facts_registry", + "inputs": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_facts_registry", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [ + { + "name": "contract_base", + "type": "core::starknet::class_hash::ClassHash" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::WorldSpawned", + "kind": "struct", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "creator", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ContractDeployed", + "kind": "struct", + "members": [ + { + "name": "salt", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ContractUpgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ContractInitialized", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "init_calldata", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::WorldUpgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::MetadataUpdate", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "uri", + "type": "core::byte_array::ByteArray", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::NamespaceRegistered", + "kind": "struct", + "members": [ + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ModelRegistered", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::ModelUpgraded", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "prev_class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "prev_address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreSetRecord", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "keys", + "type": "core::array::Span::", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreUpdateRecord", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreUpdateMember", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "member_selector", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StoreDelRecord", + "kind": "struct", + "members": [ + { + "name": "table", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::WriterUpdated", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "value", + "type": "core::bool", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::OwnerUpdated", + "kind": "struct", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "resource", + "type": "core::felt252", + "kind": "data" + }, + { + "name": "value", + "type": "core::bool", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::DifferProgramHashUpdate", + "kind": "struct", + "members": [ + { + "name": "program_hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::MergerProgramHashUpdate", + "kind": "struct", + "members": [ + { + "name": "program_hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::FactsRegistryUpdate", + "kind": "struct", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::config::Config::Event", + "kind": "enum", + "variants": [ + { + "name": "DifferProgramHashUpdate", + "type": "dojo::world::config::Config::DifferProgramHashUpdate", + "kind": "nested" + }, + { + "name": "MergerProgramHashUpdate", + "type": "dojo::world::config::Config::MergerProgramHashUpdate", + "kind": "nested" + }, + { + "name": "FactsRegistryUpdate", + "type": "dojo::world::config::Config::FactsRegistryUpdate", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::StateUpdated", + "kind": "struct", + "members": [ + { + "name": "da_hash", + "type": "core::felt252", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::world::world_contract::world::Event", + "kind": "enum", + "variants": [ + { + "name": "WorldSpawned", + "type": "dojo::world::world_contract::world::WorldSpawned", + "kind": "nested" + }, + { + "name": "ContractDeployed", + "type": "dojo::world::world_contract::world::ContractDeployed", + "kind": "nested" + }, + { + "name": "ContractUpgraded", + "type": "dojo::world::world_contract::world::ContractUpgraded", + "kind": "nested" + }, + { + "name": "ContractInitialized", + "type": "dojo::world::world_contract::world::ContractInitialized", + "kind": "nested" + }, + { + "name": "WorldUpgraded", + "type": "dojo::world::world_contract::world::WorldUpgraded", + "kind": "nested" + }, + { + "name": "MetadataUpdate", + "type": "dojo::world::world_contract::world::MetadataUpdate", + "kind": "nested" + }, + { + "name": "NamespaceRegistered", + "type": "dojo::world::world_contract::world::NamespaceRegistered", + "kind": "nested" + }, + { + "name": "ModelRegistered", + "type": "dojo::world::world_contract::world::ModelRegistered", + "kind": "nested" + }, + { + "name": "ModelUpgraded", + "type": "dojo::world::world_contract::world::ModelUpgraded", + "kind": "nested" + }, + { + "name": "StoreSetRecord", + "type": "dojo::world::world_contract::world::StoreSetRecord", + "kind": "nested" + }, + { + "name": "StoreUpdateRecord", + "type": "dojo::world::world_contract::world::StoreUpdateRecord", + "kind": "nested" + }, + { + "name": "StoreUpdateMember", + "type": "dojo::world::world_contract::world::StoreUpdateMember", + "kind": "nested" + }, + { + "name": "StoreDelRecord", + "type": "dojo::world::world_contract::world::StoreDelRecord", + "kind": "nested" + }, + { + "name": "WriterUpdated", + "type": "dojo::world::world_contract::world::WriterUpdated", + "kind": "nested" + }, + { + "name": "OwnerUpdated", + "type": "dojo::world::world_contract::world::OwnerUpdated", + "kind": "nested" + }, + { + "name": "ConfigEvent", + "type": "dojo::world::config::Config::Event", + "kind": "nested" + }, + { + "name": "StateUpdated", + "type": "dojo::world::world_contract::world::StateUpdated", + "kind": "nested" + } + ] + } + ], + "address": "0x33402d31efb8d45d4868531e2f4e4b03e05c69a47b9ebcc0660145f9cdd20f3", + "transaction_hash": "0x70809cf7845495e1281aa17f55089803f3ce7941b1dacdf431a56c93b0b0525", + "block_number": 152905, + "seed": "mancala_alpha_sepolia", + "metadata": { + "profile_name": "sepolia", + "rpc_url": "https://starknet-sepolia.public.blastapi.io/rpc/v0_7" + }, + "manifest_name": "dojo-world" + }, + "base": { + "kind": "Class", + "class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", + "original_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", + "abi": "manifests/sepolia/deployment/abis/dojo-base.json", + "tag": "dojo-base", + "manifest_name": "dojo-base" + }, + "contracts": [ + { + "kind": "DojoContract", + "address": "0x6fde58d240308cb0139760155b27e328fdaa1beca04c919498eac706dc8d3e", + "class_hash": "0x64f1bf03ed832104e2f76ea6a35ea1f74dc6b91989170ad7c2127338420691f", + "original_class_hash": "0x64f1bf03ed832104e2f76ea6a35ea1f74dc6b91989170ad7c2127338420691f", + "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", + "abi": [ + { + "type": "impl", + "name": "ContractImpl", + "interface_name": "dojo::contract::contract::IContract" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::contract::IContract", + "items": [ + { + "type": "function", + "name": "contract_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::world::world_contract::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::world_contract::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::world_contract::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::world_contract::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ActionsImpl", + "interface_name": "mancala::systems::actions::IActions" + }, + { + "type": "enum", + "name": "mancala::models::mancala_game::GameStatus", + "variants": [ + { + "name": "Pending", + "type": "()" + }, + { + "name": "InProgress", + "type": "()" + }, + { + "name": "Finished", + "type": "()" + }, + { + "name": "Forfeited", + "type": "()" + }, + { + "name": "TimeOut", + "type": "()" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "mancala::models::mancala_game::MancalaGame", + "members": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "player_one", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "player_two", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "current_player", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "last_move", + "type": "core::integer::u64" + }, + { + "name": "time_between_move", + "type": "core::integer::u64" + }, + { + "name": "winner", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "status", + "type": "mancala::models::mancala_game::GameStatus" + }, + { + "name": "is_private", + "type": "core::bool" + } + ] + }, + { + "type": "interface", + "name": "mancala::systems::actions::IActions", + "items": [ + { + "type": "function", + "name": "create_initial_game_id", + "inputs": [], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "create_game", + "inputs": [], + "outputs": [ + { + "type": "mancala::models::mancala_game::MancalaGame" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "join_game", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "player_two_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "create_private_game", + "inputs": [ + { + "name": "player_two_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "mancala::models::mancala_game::MancalaGame" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "move", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "selected_pit", + "type": "core::integer::u8" + } + ], + "outputs": [ + { + "type": "(core::starknet::contract_address::ContractAddress, mancala::models::mancala_game::GameStatus)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "time_out", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_score", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "(core::integer::u8, core::integer::u8)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "is_game_finished", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "forfeited", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "player_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "request_restart_game", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "restart_game", + "inputs": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "private", + "type": "core::bool" + } + ], + "outputs": [ + { + "type": "mancala::models::mancala_game::MancalaGame" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "IDojoInitImpl", + "interface_name": "mancala::systems::actions::actions::IDojoInit" + }, + { + "type": "interface", + "name": "mancala::systems::actions::actions::IDojoInit", + "items": [ + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradableImpl", + "interface_name": "dojo::contract::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::upgradeable::upgradeable::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "mancala::systems::actions::actions::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::upgradeable::upgradeable::Event", + "kind": "nested" + } + ] + } + ], + "reads": [], + "writes": ["ns:mancala_alpha"], + "init_calldata": [], + "tag": "mancala_alpha-actions", + "systems": [ + "create_initial_game_id", + "join_game", + "time_out", + "forfeited", + "request_restart_game" + ], + "manifest_name": "mancala_alpha-actions-2c0baebe" + } + ], + "models": [ + { + "kind": "DojoModel", + "members": [ + { + "name": "id", + "type": "u32", + "key": true + }, + { + "name": "game_id", + "type": "u128", + "key": false + } + ], + "class_hash": "0x1f4d24fdabfc8bf320d1ca5c2283576c242be48a84e1e304dd0ea1ccde934f6", + "original_class_hash": "0x1f4d24fdabfc8bf320d1ca5c2283576c242be48a84e1e304dd0ea1ccde934f6", + "abi": [ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "game_idImpl", + "interface_name": "mancala::models::mancala_game::Igame_id" + }, + { + "type": "struct", + "name": "mancala::models::mancala_game::GameId", + "members": [ + { + "name": "id", + "type": "core::integer::u32" + }, + { + "name": "game_id", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "mancala::models::mancala_game::Igame_id", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "mancala::models::mancala_game::GameId" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "mancala::models::mancala_game::game_id::Event", + "kind": "enum", + "variants": [] + } + ], + "tag": "mancala_alpha-GameId", + "qualified_path": "mancala::models::mancala_game::game_id", + "manifest_name": "mancala_alpha-GameId-4205bbb7" + }, + { + "kind": "DojoModel", + "members": [ + { + "name": "address", + "type": "ContractAddress", + "key": true + }, + { + "name": "game_id", + "type": "u128", + "key": true + }, + { + "name": "pit1", + "type": "u8", + "key": false + }, + { + "name": "pit2", + "type": "u8", + "key": false + }, + { + "name": "pit3", + "type": "u8", + "key": false + }, + { + "name": "pit4", + "type": "u8", + "key": false + }, + { + "name": "pit5", + "type": "u8", + "key": false + }, + { + "name": "pit6", + "type": "u8", + "key": false + }, + { + "name": "mancala", + "type": "u8", + "key": false + }, + { + "name": "restart_requested", + "type": "bool", + "key": false + } + ], + "class_hash": "0x11694727b022fcc1b98d29b8e62ec4f377643b08f858d202c9f0df3eb1882ef", + "original_class_hash": "0x11694727b022fcc1b98d29b8e62ec4f377643b08f858d202c9f0df3eb1882ef", + "abi": [ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "game_playerImpl", + "interface_name": "mancala::models::player::Igame_player" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "mancala::models::player::GamePlayer", + "members": [ + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "pit1", + "type": "core::integer::u8" + }, + { + "name": "pit2", + "type": "core::integer::u8" + }, + { + "name": "pit3", + "type": "core::integer::u8" + }, + { + "name": "pit4", + "type": "core::integer::u8" + }, + { + "name": "pit5", + "type": "core::integer::u8" + }, + { + "name": "pit6", + "type": "core::integer::u8" + }, + { + "name": "mancala", + "type": "core::integer::u8" + }, + { + "name": "restart_requested", + "type": "core::bool" + } + ] + }, + { + "type": "interface", + "name": "mancala::models::player::Igame_player", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "mancala::models::player::GamePlayer" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "mancala::models::player::game_player::Event", + "kind": "enum", + "variants": [] + } + ], + "tag": "mancala_alpha-GamePlayer", + "qualified_path": "mancala::models::player::game_player", + "manifest_name": "mancala_alpha-GamePlayer-4fe4cbef" + }, + { + "kind": "DojoModel", + "members": [ + { + "name": "game_id", + "type": "u128", + "key": true + }, + { + "name": "player_one", + "type": "ContractAddress", + "key": false + }, + { + "name": "player_two", + "type": "ContractAddress", + "key": false + }, + { + "name": "current_player", + "type": "ContractAddress", + "key": false + }, + { + "name": "last_move", + "type": "u64", + "key": false + }, + { + "name": "time_between_move", + "type": "u64", + "key": false + }, + { + "name": "winner", + "type": "ContractAddress", + "key": false + }, + { + "name": "status", + "type": "GameStatus", + "key": false + }, + { + "name": "is_private", + "type": "bool", + "key": false + } + ], + "class_hash": "0x73f3710ff3124f6c8e376f78e9404f7256557df6c0c79876f09bd4c33e8f3d2", + "original_class_hash": "0x73f3710ff3124f6c8e376f78e9404f7256557df6c0c79876f09bd4c33e8f3d2", + "abi": [ + { + "type": "impl", + "name": "DojoModelImpl", + "interface_name": "dojo::model::model::IModel" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ + { + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::layout::FieldLayout", + "members": [ + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "layout", + "type": "dojo::model::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::layout::Layout", + "variants": [ + { + "name": "Fixed", + "type": "core::array::Span::" + }, + { + "name": "Struct", + "type": "core::array::Span::" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + }, + { + "name": "Enum", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Member", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "ty", + "type": "dojo::model::introspect::Ty" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Struct", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::introspect::Enum", + "members": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, dojo::model::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::introspect::Ty", + "variants": [ + { + "name": "Primitive", + "type": "core::felt252" + }, + { + "name": "Struct", + "type": "dojo::model::introspect::Struct" + }, + { + "name": "Enum", + "type": "dojo::model::introspect::Enum" + }, + { + "name": "Tuple", + "type": "core::array::Span::" + }, + { + "name": "Array", + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::model::IModel", + "items": [ + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "tag", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "selector", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "name_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "namespace_hash", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unpacked_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "packed_size", + "inputs": [], + "outputs": [ + { + "type": "core::option::Option::" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "layout", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::layout::Layout" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "schema", + "inputs": [], + "outputs": [ + { + "type": "dojo::model::introspect::Ty" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "mancala_gameImpl", + "interface_name": "mancala::models::mancala_game::Imancala_game" + }, + { + "type": "enum", + "name": "mancala::models::mancala_game::GameStatus", + "variants": [ + { + "name": "Pending", + "type": "()" + }, + { + "name": "InProgress", + "type": "()" + }, + { + "name": "Finished", + "type": "()" + }, + { + "name": "Forfeited", + "type": "()" + }, + { + "name": "TimeOut", + "type": "()" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "mancala::models::mancala_game::MancalaGame", + "members": [ + { + "name": "game_id", + "type": "core::integer::u128" + }, + { + "name": "player_one", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "player_two", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "current_player", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "last_move", + "type": "core::integer::u64" + }, + { + "name": "time_between_move", + "type": "core::integer::u64" + }, + { + "name": "winner", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "status", + "type": "mancala::models::mancala_game::GameStatus" + }, + { + "name": "is_private", + "type": "core::bool" + } + ] + }, + { + "type": "interface", + "name": "mancala::models::mancala_game::Imancala_game", + "items": [ + { + "type": "function", + "name": "ensure_abi", + "inputs": [ + { + "name": "model", + "type": "mancala::models::mancala_game::MancalaGame" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "event", + "name": "mancala::models::mancala_game::mancala_game::Event", + "kind": "enum", + "variants": [] + } + ], + "tag": "mancala_alpha-MancalaGame", + "qualified_path": "mancala::models::mancala_game::mancala_game", + "manifest_name": "mancala_alpha-MancalaGame-628bb438" + } + ] +} diff --git a/contracts/manifests/sepolia/deployment/manifest.toml b/contracts/manifests/sepolia/deployment/manifest.toml new file mode 100644 index 00000000..ff90b2c4 --- /dev/null +++ b/contracts/manifests/sepolia/deployment/manifest.toml @@ -0,0 +1,173 @@ +[world] +kind = "WorldContract" +class_hash = "0xa349b743d361ce4567361475a89b84a386bb383448c6926954e5fe0b525597" +original_class_hash = "0xa349b743d361ce4567361475a89b84a386bb383448c6926954e5fe0b525597" +abi = "manifests/sepolia/deployment/abis/dojo-world.json" +address = "0x33402d31efb8d45d4868531e2f4e4b03e05c69a47b9ebcc0660145f9cdd20f3" +transaction_hash = "0x70809cf7845495e1281aa17f55089803f3ce7941b1dacdf431a56c93b0b0525" +seed = "mancala_alpha_sepolia" +manifest_name = "dojo-world" + +[world.metadata] +profile_name = "sepolia" +rpc_url = "https://starknet-sepolia.public.blastapi.io/rpc/v0_7" + +[base] +kind = "Class" +class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" +original_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" +abi = "manifests/sepolia/deployment/abis/dojo-base.json" +tag = "dojo-base" +manifest_name = "dojo-base" + +[[contracts]] +kind = "DojoContract" +address = "0x6fde58d240308cb0139760155b27e328fdaa1beca04c919498eac706dc8d3e" +class_hash = "0x64f1bf03ed832104e2f76ea6a35ea1f74dc6b91989170ad7c2127338420691f" +original_class_hash = "0x64f1bf03ed832104e2f76ea6a35ea1f74dc6b91989170ad7c2127338420691f" +base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" +abi = "manifests/sepolia/deployment/abis/contracts/mancala_alpha-actions-2c0baebe.json" +reads = [] +writes = ["ns:mancala_alpha"] +init_calldata = [] +tag = "mancala_alpha-actions" +systems = [ + "create_initial_game_id", + "join_game", + "time_out", + "forfeited", + "request_restart_game", +] +manifest_name = "mancala_alpha-actions-2c0baebe" + +[[models]] +kind = "DojoModel" +class_hash = "0x1f4d24fdabfc8bf320d1ca5c2283576c242be48a84e1e304dd0ea1ccde934f6" +original_class_hash = "0x1f4d24fdabfc8bf320d1ca5c2283576c242be48a84e1e304dd0ea1ccde934f6" +abi = "manifests/sepolia/deployment/abis/models/mancala_alpha-GameId-4205bbb7.json" +tag = "mancala_alpha-GameId" +qualified_path = "mancala::models::mancala_game::game_id" +manifest_name = "mancala_alpha-GameId-4205bbb7" + +[[models.members]] +name = "id" +type = "u32" +key = true + +[[models.members]] +name = "game_id" +type = "u128" +key = false + +[[models]] +kind = "DojoModel" +class_hash = "0x11694727b022fcc1b98d29b8e62ec4f377643b08f858d202c9f0df3eb1882ef" +original_class_hash = "0x11694727b022fcc1b98d29b8e62ec4f377643b08f858d202c9f0df3eb1882ef" +abi = "manifests/sepolia/deployment/abis/models/mancala_alpha-GamePlayer-4fe4cbef.json" +tag = "mancala_alpha-GamePlayer" +qualified_path = "mancala::models::player::game_player" +manifest_name = "mancala_alpha-GamePlayer-4fe4cbef" + +[[models.members]] +name = "address" +type = "ContractAddress" +key = true + +[[models.members]] +name = "game_id" +type = "u128" +key = true + +[[models.members]] +name = "pit1" +type = "u8" +key = false + +[[models.members]] +name = "pit2" +type = "u8" +key = false + +[[models.members]] +name = "pit3" +type = "u8" +key = false + +[[models.members]] +name = "pit4" +type = "u8" +key = false + +[[models.members]] +name = "pit5" +type = "u8" +key = false + +[[models.members]] +name = "pit6" +type = "u8" +key = false + +[[models.members]] +name = "mancala" +type = "u8" +key = false + +[[models.members]] +name = "restart_requested" +type = "bool" +key = false + +[[models]] +kind = "DojoModel" +class_hash = "0x73f3710ff3124f6c8e376f78e9404f7256557df6c0c79876f09bd4c33e8f3d2" +original_class_hash = "0x73f3710ff3124f6c8e376f78e9404f7256557df6c0c79876f09bd4c33e8f3d2" +abi = "manifests/sepolia/deployment/abis/models/mancala_alpha-MancalaGame-628bb438.json" +tag = "mancala_alpha-MancalaGame" +qualified_path = "mancala::models::mancala_game::mancala_game" +manifest_name = "mancala_alpha-MancalaGame-628bb438" + +[[models.members]] +name = "game_id" +type = "u128" +key = true + +[[models.members]] +name = "player_one" +type = "ContractAddress" +key = false + +[[models.members]] +name = "player_two" +type = "ContractAddress" +key = false + +[[models.members]] +name = "current_player" +type = "ContractAddress" +key = false + +[[models.members]] +name = "last_move" +type = "u64" +key = false + +[[models.members]] +name = "time_between_move" +type = "u64" +key = false + +[[models.members]] +name = "winner" +type = "ContractAddress" +key = false + +[[models.members]] +name = "status" +type = "GameStatus" +key = false + +[[models.members]] +name = "is_private" +type = "bool" +key = false