From d5c0000c67470e2bf60750d785c473e908f7773d Mon Sep 17 00:00:00 2001 From: Cosmos 612 Date: Fri, 18 Oct 2024 11:13:22 +0200 Subject: [PATCH 1/6] Fix refresh --- client/src/ui/components/GameBoard.tsx | 8 +------- client/src/ui/components/Grid.tsx | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/client/src/ui/components/GameBoard.tsx b/client/src/ui/components/GameBoard.tsx index 88c434ec..8d1c4946 100644 --- a/client/src/ui/components/GameBoard.tsx +++ b/client/src/ui/components/GameBoard.tsx @@ -50,12 +50,6 @@ const GameBoard: React.FC = ({ // State that will allow us to hide or display the next line const [nextLineHasBeenConsumed, setNextLineHasBeenConsumed] = useState(false); - useEffect(() => { - if (nextLineHasBeenConsumed) { - setNextLineHasBeenConsumed(false); - } - }, [nextLine]); - // Optimistic data (score, combo, maxcombo) const [optimisticScore, setOptimisticScore] = useState(score); const [optimisticCombo, setOptimisticCombo] = useState(combo); @@ -177,7 +171,7 @@ const GameBoard: React.FC = ({ const memoizedNextLineData = useMemo(() => { return transformDataContractIntoBlock([nextLine]); - }, [nextLine]); + }, [initialGrid]); if (memoizedInitialData.length === 0) return null; // otherwise sometimes // the grid is not displayed in Grid because the data is not ready diff --git a/client/src/ui/components/Grid.tsx b/client/src/ui/components/Grid.tsx index b29af3e4..76ea4a27 100644 --- a/client/src/ui/components/Grid.tsx +++ b/client/src/ui/components/Grid.tsx @@ -61,6 +61,7 @@ const Grid: React.FC = ({ } = useDojo(); const [blocks, setBlocks] = useState(initialData); + const [nextLine, setNextLine] = useState(nextLineData); const [saveGridStateblocks, setSaveGridStateblocks] = useState(initialData); const [applyData, setApplyData] = useState(false); @@ -95,12 +96,14 @@ const Grid: React.FC = ({ } setSaveGridStateblocks(initialData); setBlocks(initialData); + setNextLine(nextLineData); setApplyData(false); const inDanger = initialData.some((block) => block.y < 2); setIsPlayerInDanger(inDanger); setLineExplodedCount(0); setIsTxProcessing(false); + setNextLineHasBeenConsumed(false); } }, [applyData, initialData]); @@ -131,7 +134,7 @@ const Grid: React.FC = ({ const handleDragMove = (x: number, moveType: MoveType) => { if (!dragging) return; - if (isTxProcessing) return; + if (isTxProcessing || applyData) return; const deltaX = x - dragStartX; const newX = initialX + deltaX / gridSize; @@ -174,7 +177,7 @@ const Grid: React.FC = ({ const handleMouseDown = (e: React.MouseEvent, block: Block) => { e.preventDefault(); - if (isTxProcessing) return; + if (isTxProcessing || applyData) return; setBlockBonus(block); if (bonus === BonusType.Wave) { @@ -196,7 +199,7 @@ const Grid: React.FC = ({ }; const handleTouchStart = (e: React.TouchEvent, block: Block) => { - if (isTxProcessing) return; + if (isTxProcessing || applyData) return; const touch = e.touches[0]; handleDragStart(touch.clientX, block); @@ -213,7 +216,7 @@ const Grid: React.FC = ({ const endDrag = () => { if (!dragging) return; - if (isTxProcessing) return; + if (isTxProcessing || applyData) return; setBlocks((prevBlocks) => { const updatedBlocks = prevBlocks.map((b) => { @@ -440,12 +443,16 @@ const Grid: React.FC = ({ }, [gameState]); useEffect(() => { - if (gameState === GameState.ADD_LINE && pendingMove) { + if ( + gameState === GameState.ADD_LINE && + pendingMove && + transitioningBlocks.length === 0 + ) { const { rowIndex, startX, finalX } = pendingMove; if (startX !== finalX) { const updatedBlocks = concatenateAndShiftBlocks( blocks, - nextLineData, + nextLine, gridHeight, ); setNextLineHasBeenConsumed(true); @@ -458,7 +465,7 @@ const Grid: React.FC = ({ setIsMoving(true); setGameState(GameState.GRAVITY2); } - }, [gameState, blocks, pendingMove]); + }, [gameState, blocks, pendingMove, transitioningBlocks]); useEffect(() => { if (gameState === GameState.BONUS_TX) { From aa97ed55dadeaca78e6d3d580d08ffc2f72a496e Mon Sep 17 00:00:00 2001 From: Cosmos 612 Date: Fri, 18 Oct 2024 15:44:47 +0200 Subject: [PATCH 2/6] Block above next line --- client/src/ui/components/Block.tsx | 4 +++- client/src/ui/components/Grid.tsx | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/client/src/ui/components/Block.tsx b/client/src/ui/components/Block.tsx index 2963ef92..d4203745 100644 --- a/client/src/ui/components/Block.tsx +++ b/client/src/ui/components/Block.tsx @@ -5,6 +5,7 @@ import { Block } from "@/types/types"; interface BlockProps { block: Block; gridSize: number; + gridHeight?: number; isTxProcessing?: boolean; transitionDuration?: number; state?: GameState; @@ -23,6 +24,7 @@ interface BlockProps { const BlockContainer: React.FC = ({ block, gridSize, + gridHeight = 10, transitionDuration = 100, isTxProcessing = false, state, @@ -59,7 +61,7 @@ const BlockContainer: React.FC = ({ return (
= ({ key={block.id} block={block} gridSize={gridSize} + gridHeight={gridHeight} isTxProcessing={isTxProcessing} transitionDuration={transitionDuration} state={gameState} @@ -526,7 +527,7 @@ const Grid: React.FC = ({ onTransitionBlockEnd={() => handleTransitionBlockEnd(block.id)} /> ))} -
+
From 3c1616b3c3a2ccec934dd118e242ad943627e6a6 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Oct 2024 17:49:40 +0200 Subject: [PATCH 3/6] Add animation when winning bonus --- client/src/dojo/game/elements/bonuses/wave.ts | 6 +- client/src/hooks/useGame.tsx | 2 - client/src/ui/components/BonusAnimation.tsx | 197 ++++++++++++++++++ client/src/ui/components/GameBoard.tsx | 9 + client/src/ui/elements/button.tsx | 4 +- contracts/src/elements/bonuses/totem.cairo | 8 +- contracts/src/elements/bonuses/wave.cairo | 6 +- 7 files changed, 216 insertions(+), 16 deletions(-) create mode 100644 client/src/ui/components/BonusAnimation.tsx diff --git a/client/src/dojo/game/elements/bonuses/wave.ts b/client/src/dojo/game/elements/bonuses/wave.ts index 87e73525..c05900a5 100644 --- a/client/src/dojo/game/elements/bonuses/wave.ts +++ b/client/src/dojo/game/elements/bonuses/wave.ts @@ -6,11 +6,11 @@ export class Wave { combo: number, _max_combo: number, ): number { - if (combo >= 8) { + if (combo >= 16) { return 3; - } else if (combo >= 16) { + } else if (combo >= 32) { return 2; - } else if (combo >= 24) { + } else if (combo >= 64) { return 1; } else { return 0; diff --git a/client/src/hooks/useGame.tsx b/client/src/hooks/useGame.tsx index fa50c45e..330b0a52 100644 --- a/client/src/hooks/useGame.tsx +++ b/client/src/hooks/useGame.tsx @@ -23,7 +23,5 @@ export const useGame = ({ gameId }: { gameId: string | undefined }) => { return component ? new GameClass(component) : null; }, [component]); - //console.log("game", game); - return { game, gameKey }; }; diff --git a/client/src/ui/components/BonusAnimation.tsx b/client/src/ui/components/BonusAnimation.tsx new file mode 100644 index 00000000..1b928c73 --- /dev/null +++ b/client/src/ui/components/BonusAnimation.tsx @@ -0,0 +1,197 @@ +import React, { useEffect, useRef, useState } from "react"; +import { motion, AnimatePresence } from "framer-motion"; +import { BonusType, Bonus } from "@/dojo/game/types/bonus"; + +interface BonusAnimationProps { + optimisticScore: number; + optimisticCombo: number; + optimisticMaxCombo: number; + isMdOrLarger: boolean; +} + +const BonusAnimation: React.FC = ({ + optimisticScore, + optimisticCombo, + optimisticMaxCombo, + isMdOrLarger, +}) => { + const prevScoreRef = useRef(optimisticScore); + const prevComboRef = useRef(optimisticCombo); + const prevMaxComboRef = useRef(optimisticMaxCombo); + + const [unlockedBonuses, setUnlockedBonuses] = useState({ + Hammer: false, + Totem: false, + Wave: false, + }); + + const [wonBonus, setWonBonus] = useState(null); + + useEffect(() => { + if (wonBonus) { + const timer = setTimeout(() => { + setWonBonus(null); + }, 1000); + return () => clearTimeout(timer); + } + }, [wonBonus]); + + const getBonusImage = (bonusType: BonusType) => { + const bonus = new Bonus(bonusType); + return bonus.getIcon(); + }; + + // Effect to check and set score-based bonuses + useEffect(() => { + if (!wonBonus) { + if ( + optimisticScore >= 120 && + prevScoreRef.current < 120 && + !unlockedBonuses.Hammer + ) { + setWonBonus(BonusType.Hammer); + setUnlockedBonuses((prev) => ({ ...prev, Hammer: true })); + } else if ( + optimisticScore >= 80 && + prevScoreRef.current < 80 && + !unlockedBonuses.Hammer + ) { + setWonBonus(BonusType.Hammer); + setUnlockedBonuses((prev) => ({ ...prev, Hammer: true })); + } else if ( + optimisticScore >= 40 && + prevScoreRef.current < 40 && + !unlockedBonuses.Hammer + ) { + setWonBonus(BonusType.Hammer); + setUnlockedBonuses((prev) => ({ ...prev, Hammer: true })); + } + } + + prevScoreRef.current = optimisticScore; + }, [optimisticScore, wonBonus, unlockedBonuses]); + + // Effect to check and set combo-based bonuses + useEffect(() => { + if (!wonBonus) { + if ( + optimisticCombo >= 24 && + prevComboRef.current < 24 && + !unlockedBonuses.Wave + ) { + setWonBonus(BonusType.Wave); + setUnlockedBonuses((prev) => ({ ...prev, Wave: true })); + } else if ( + optimisticCombo >= 16 && + prevComboRef.current < 16 && + !unlockedBonuses.Wave + ) { + setWonBonus(BonusType.Wave); + setUnlockedBonuses((prev) => ({ ...prev, Wave: true })); + } else if ( + optimisticCombo >= 8 && + prevComboRef.current < 8 && + !unlockedBonuses.Wave + ) { + setWonBonus(BonusType.Wave); + setUnlockedBonuses((prev) => ({ ...prev, Wave: true })); + } + } + + prevComboRef.current = optimisticCombo; + }, [optimisticCombo, wonBonus, unlockedBonuses]); + + // Effect to check and set maxCombo-based bonuses + useEffect(() => { + if (!wonBonus) { + if ( + optimisticMaxCombo >= 6 && + prevMaxComboRef.current < 6 && + !unlockedBonuses.Totem + ) { + setWonBonus(BonusType.Totem); + setUnlockedBonuses((prev) => ({ ...prev, Totem: true })); + } else if ( + optimisticMaxCombo >= 4 && + prevMaxComboRef.current < 4 && + !unlockedBonuses.Totem + ) { + setWonBonus(BonusType.Totem); + setUnlockedBonuses((prev) => ({ ...prev, Totem: true })); + } else if ( + optimisticMaxCombo >= 2 && + prevMaxComboRef.current < 2 && + !unlockedBonuses.Totem + ) { + setWonBonus(BonusType.Totem); + setUnlockedBonuses((prev) => ({ ...prev, Totem: true })); + } + } + + prevMaxComboRef.current = optimisticMaxCombo; + }, [optimisticMaxCombo, wonBonus, unlockedBonuses]); + + if (!wonBonus) return null; + + return ( + + {wonBonus && ( + + + + )} + + ); +}; + +export default BonusAnimation; diff --git a/client/src/ui/components/GameBoard.tsx b/client/src/ui/components/GameBoard.tsx index 8d1c4946..d5c881d5 100644 --- a/client/src/ui/components/GameBoard.tsx +++ b/client/src/ui/components/GameBoard.tsx @@ -10,6 +10,9 @@ import NextLine from "./NextLine"; import { Block } from "@/types/types"; import GameScores from "./GameScores"; import { Bonus, BonusType } from "@/dojo/game/types/bonus"; +import BonusAnimation from "./BonusAnimation"; + +import "../../grid.css"; interface GameBoardProps { initialGrid: number[][]; @@ -178,6 +181,12 @@ const GameBoard: React.FC = ({ return ( <> + diff --git a/client/src/ui/elements/button.tsx b/client/src/ui/elements/button.tsx index 97d17914..fcef35be 100644 --- a/client/src/ui/elements/button.tsx +++ b/client/src/ui/elements/button.tsx @@ -6,7 +6,7 @@ import { cn } from "@/ui/utils"; import { LucideLoader } from "lucide-react"; const buttonVariants = cva( - "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", + "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:bg-gray-400 disabled:text-gray-700 disabled:pointer-events-none", { variants: { variant: { @@ -62,7 +62,7 @@ const Button = React.forwardRef( ref={ref} {...props} > - {false ? ( + {isLoading ? (
{children} diff --git a/contracts/src/elements/bonuses/totem.cairo b/contracts/src/elements/bonuses/totem.cairo index 1cf19a65..aa6443c7 100644 --- a/contracts/src/elements/bonuses/totem.cairo +++ b/contracts/src/elements/bonuses/totem.cairo @@ -1,14 +1,11 @@ // Core imports - use core::debug::PrintTrait; use core::Zeroable; // External imports - use alexandria_math::fast_power::fast_power; // Internal imports - use zkube::constants; use zkube::elements::bonuses::interface::BonusTrait; use zkube::helpers::controller::Controller; @@ -19,7 +16,6 @@ use zkube::types::block::Block; use zkube::types::width::Width; // Errors - mod errors { const INVALID_BLOCK_COLOR: felt252 = 'Totem: invalid block color'; } @@ -61,10 +57,10 @@ impl BonusImpl of BonusTrait { if max_combo >= 6 { return 3; } - if combo_count >= 4 { + if max_combo >= 4 { return 2; } - if combo_count >= 2 { + if max_combo >= 2 { return 1; } return 0; diff --git a/contracts/src/elements/bonuses/wave.cairo b/contracts/src/elements/bonuses/wave.cairo index 788cc813..d2d823ee 100644 --- a/contracts/src/elements/bonuses/wave.cairo +++ b/contracts/src/elements/bonuses/wave.cairo @@ -25,13 +25,13 @@ impl BonusImpl of BonusTrait { #[inline(always)] fn get_count(score: u32, combo_count: u8, max_combo: u8) -> u8 { - if combo_count >= 24 { + if combo_count >= 64 { return 3; } - if combo_count >= 16 { + if combo_count >= 32 { return 2; } - if combo_count >= 8 { + if combo_count >= 16 { return 1; } return 0; From 50edb2b8792c20205f6119dc5595aacad06ca123 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Oct 2024 19:39:09 +0200 Subject: [PATCH 4/6] Add rank and tournament duration + fix animations --- client/src/hooks/useGamesFromTournament.tsx | 50 +++++++++++++++++++++ client/src/hooks/useRank.tsx | 45 +++++++++++++++++++ client/src/ui/components/BonusAnimation.tsx | 40 ++++++++--------- client/src/ui/components/GameBoard.tsx | 46 ++++++++++++++++--- client/src/ui/screens/Home.tsx | 1 + 5 files changed, 154 insertions(+), 28 deletions(-) create mode 100644 client/src/hooks/useGamesFromTournament.tsx create mode 100644 client/src/hooks/useRank.tsx diff --git a/client/src/hooks/useGamesFromTournament.tsx b/client/src/hooks/useGamesFromTournament.tsx new file mode 100644 index 00000000..4182a1a9 --- /dev/null +++ b/client/src/hooks/useGamesFromTournament.tsx @@ -0,0 +1,50 @@ +import { useDojo } from "@/dojo/useDojo"; +import { useEffect, useState } from "react"; +import { useEntityQuery } from "@dojoengine/react"; +import { Has, HasValue, getComponentValue } from "@dojoengine/recs"; +import { Game } from "@/dojo/game/models/game"; + +export const useGamesFromTournament = ({ + tournamentId, +}: { + tournamentId: number; +}): { games: Game[] } => { + const [games, setGames] = useState([]); + + const { + setup: { + clientModels: { + models: { Game }, + classes: { Game: GameClass }, + }, + }, + } = useDojo(); + + const gameKeys = useEntityQuery([ + Has(Game), + HasValue(Game, { tournament_id: tournamentId }), + ]); + console.log("useGamesFromTournament", tournamentId, gameKeys.length); + + useEffect(() => { + const components = gameKeys + .map((entity) => { + const component = getComponentValue(Game, entity); + if (!component) { + return undefined; + } + return new GameClass(component); + }) + .filter((e) => e !== undefined); + + if (components.length > 0) { + setGames( + components.sort( + (a: Game, b: Game) => b.score_in_tournament - a.score_in_tournament, + ), + ); + } + }, [gameKeys]); + + return { games }; +}; diff --git a/client/src/hooks/useRank.tsx b/client/src/hooks/useRank.tsx new file mode 100644 index 00000000..e487945c --- /dev/null +++ b/client/src/hooks/useRank.tsx @@ -0,0 +1,45 @@ +import { useEffect, useState } from "react"; +import { useGamesFromTournament } from "./useGamesFromTournament"; + +const useRank = ({ + tournamentId, + gameId, +}: { + tournamentId: number; + gameId: string; +}) => { + const [rank, setRank] = useState(0); + const [suffix, setSuffix] = useState("th"); + + const { games } = useGamesFromTournament({ tournamentId }); + + useEffect(() => { + const playerGameIndex = games.findIndex((game) => game.id === gameId); + if (playerGameIndex !== -1) { + const r = playerGameIndex + 1; + setRank(r); + setSuffix(getOrdinalSuffix(r)); + } + }, [games, gameId]); + + function getOrdinalSuffix(rank: number) { + const j = rank % 10, + k = rank % 100; + + let suffix = "th"; // Default suffix + + if (j === 1 && k !== 11) { + suffix = "st"; + } else if (j === 2 && k !== 12) { + suffix = "nd"; + } else if (j === 3 && k !== 13) { + suffix = "rd"; + } + + return suffix; + } + + return { rank, suffix }; +}; + +export default useRank; diff --git a/client/src/ui/components/BonusAnimation.tsx b/client/src/ui/components/BonusAnimation.tsx index 1b928c73..a6e32ce7 100644 --- a/client/src/ui/components/BonusAnimation.tsx +++ b/client/src/ui/components/BonusAnimation.tsx @@ -19,19 +19,19 @@ const BonusAnimation: React.FC = ({ const prevComboRef = useRef(optimisticCombo); const prevMaxComboRef = useRef(optimisticMaxCombo); + const [wonBonus, setWonBonus] = useState(null); + const [unlockedBonuses, setUnlockedBonuses] = useState({ Hammer: false, Totem: false, Wave: false, }); - const [wonBonus, setWonBonus] = useState(null); - useEffect(() => { if (wonBonus) { const timer = setTimeout(() => { setWonBonus(null); - }, 1000); + }, 1200); return () => clearTimeout(timer); } }, [wonBonus]); @@ -131,8 +131,6 @@ const BonusAnimation: React.FC = ({ prevMaxComboRef.current = optimisticMaxCombo; }, [optimisticMaxCombo, wonBonus, unlockedBonuses]); - if (!wonBonus) return null; - return ( {wonBonus && ( @@ -142,35 +140,35 @@ const BonusAnimation: React.FC = ({ id: "init", scale: 0, rotate: 360, - x: 0, - y: -130, + top: isMdOrLarger ? 200 : 150, + left: "50%", + x: "-50%", + y: "-50%", opacity: 0, }} animate={{ id: "animate", scale: isMdOrLarger ? 1 : 0.7, rotate: 360, - x: 0, - y: -130, + top: isMdOrLarger ? 200 : 150, + left: "50%", + x: "-50%", + y: "-50%", opacity: 1, }} exit={{ id: "exit", scale: isMdOrLarger ? 0.27 : 0.23, rotate: 0, - x: + top: isMdOrLarger ? 40 : 35, + left: wonBonus === BonusType.Hammer - ? isMdOrLarger - ? -180 - : -148 + ? "9%" : wonBonus === BonusType.Wave - ? isMdOrLarger - ? -120 - : -96 - : isMdOrLarger - ? -58 - : -48, - y: isMdOrLarger ? -316 : -264, + ? "23%" + : "37%", + x: "-50%", + y: "-50%", transition: { type: "spring", duration: 1, @@ -181,7 +179,7 @@ const BonusAnimation: React.FC = ({ stiffness: 150, damping: 20, }} - className="absolute inset-0 flex items-center justify-center z-50" + className="absolute flex items-center justify-center z-50" > = ({ @@ -36,6 +42,7 @@ const GameBoard: React.FC = ({ hammerCount, totemCount, account, + game, }) => { const { setup: { @@ -176,20 +183,26 @@ const GameBoard: React.FC = ({ return transformDataContractIntoBlock([nextLine]); }, [initialGrid]); + const { endTimestamp } = useTournament(game.mode.value); + const { rank, suffix } = useRank({ + tournamentId: game.tournament_id, + gameId: game.id, + }); + if (memoizedInitialData.length === 0) return null; // otherwise sometimes // the grid is not displayed in Grid because the data is not ready return ( <> - +
@@ -239,6 +252,25 @@ const GameBoard: React.FC = ({ gridWidth={COLS} />
+
+ {(game.mode.value === ModeType.Daily || + game.mode.value === ModeType.Normal) && ( +
+
+ Ranked {rank} + {suffix} +
+
+

+ Tournament: +

+ +
+
+ )}
); diff --git a/client/src/ui/screens/Home.tsx b/client/src/ui/screens/Home.tsx index f95590b7..9d8acff9 100644 --- a/client/src/ui/screens/Home.tsx +++ b/client/src/ui/screens/Home.tsx @@ -328,6 +328,7 @@ export const Home = () => { } waveCount={game.isOver() ? 0 : game.wave - game.wave_used} account={account} + game={game} />
{isMdOrLarger && ( From b19f89b123c3eceaf90d0575820e2d2b576b1145 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Oct 2024 19:49:51 +0200 Subject: [PATCH 5/6] Remove auto signup but open the create player name by default --- client/src/ui/actions/Create.tsx | 10 ++++---- client/src/ui/screens/Home.tsx | 2 +- contracts/dojo_slotdev.toml | 2 +- .../base/contracts/zkube-play-19ee70b3.toml | 4 ++-- .../slotdev/deployment/manifest.json | 24 +++++++++---------- .../slotdev/deployment/manifest.toml | 24 +++++++++---------- 6 files changed, 34 insertions(+), 32 deletions(-) diff --git a/client/src/ui/actions/Create.tsx b/client/src/ui/actions/Create.tsx index 590dc869..e59c394c 100644 --- a/client/src/ui/actions/Create.tsx +++ b/client/src/ui/actions/Create.tsx @@ -6,8 +6,8 @@ import { DialogDescription, DialogHeader, DialogTitle, - DialogTrigger, DialogClose, + DialogTrigger, } from "@/ui/elements/dialog"; import { Button } from "@/ui/elements/button"; import { Input } from "@/ui/elements/input"; @@ -19,6 +19,7 @@ import useAccountCustom from "@/hooks/useAccountCustom"; export const Create = () => { const [playerName, setPlayerName] = useState(""); const [isLoading, setIsLoading] = useState(false); + const [open, setOpen] = useState(true); const { account } = useAccountCustom(); const { master, @@ -33,10 +34,11 @@ export const Create = () => { setIsLoading(true); try { await create({ account: account as Account, name: playerName }); + setOpen(false); // Close the dialog after successful creation } finally { setIsLoading(false); } - }, [account, playerName]); + }, [account, playerName, create]); const disabled = useMemo(() => { return !account || !master || account === master || !!player; @@ -45,7 +47,7 @@ export const Create = () => { if (disabled) return null; return ( - + diff --git a/client/src/ui/screens/Home.tsx b/client/src/ui/screens/Home.tsx index 9d8acff9..a684f990 100644 --- a/client/src/ui/screens/Home.tsx +++ b/client/src/ui/screens/Home.tsx @@ -47,7 +47,7 @@ export const Home = () => { useQuerySync(toriiClient, contractComponents as any, []); - const isSigning = useAutoSignup(); + const isSigning = false; //useAutoSignup(); const { account } = useAccountCustom(); const { player } = usePlayer({ playerId: account?.address }); diff --git a/contracts/dojo_slotdev.toml b/contracts/dojo_slotdev.toml index bb72c7fa..6e92a29f 100644 --- a/contracts/dojo_slotdev.toml +++ b/contracts/dojo_slotdev.toml @@ -4,7 +4,7 @@ description = "Reversed tetris fully onchain." # cover_uri = "file://assets/cover.png" # icon_uri = "file://assets/icon.png" website = "https://github.com/dojoengine/dojo-starter" -seed = "zKube10" +seed = "zKube11" [world.socials] x = "https://x.com/ohayo_dojo" diff --git a/contracts/manifests/slotdev/base/contracts/zkube-play-19ee70b3.toml b/contracts/manifests/slotdev/base/contracts/zkube-play-19ee70b3.toml index 7e14b814..9db78789 100644 --- a/contracts/manifests/slotdev/base/contracts/zkube-play-19ee70b3.toml +++ b/contracts/manifests/slotdev/base/contracts/zkube-play-19ee70b3.toml @@ -1,6 +1,6 @@ kind = "DojoContract" -class_hash = "0x6c2b80ba8fe0ffba87ac6d03e82dac6595432dfc088f660f43210ff81bb1b1" -original_class_hash = "0x6c2b80ba8fe0ffba87ac6d03e82dac6595432dfc088f660f43210ff81bb1b1" +class_hash = "0x2dff102019fd2ca29c8a9c67134c2b9ef011a836e4713271bdaa149853df695" +original_class_hash = "0x2dff102019fd2ca29c8a9c67134c2b9ef011a836e4713271bdaa149853df695" base_class_hash = "0x0" abi = "manifests/slotdev/base/abis/contracts/zkube-play-19ee70b3.json" reads = [] diff --git a/contracts/manifests/slotdev/deployment/manifest.json b/contracts/manifests/slotdev/deployment/manifest.json index c844c673..b57d544b 100644 --- a/contracts/manifests/slotdev/deployment/manifest.json +++ b/contracts/manifests/slotdev/deployment/manifest.json @@ -1234,10 +1234,10 @@ ] } ], - "address": "0x3888d10f7b04e87400d30c02c1158a66e9046d35d60ae2f96c1adaeae1d9edb", - "transaction_hash": "0x19a2e6f5024de5505c865d3a7cca3f374e61822f4ca2ea65ecded6bc7d2a23f", - "block_number": 387, - "seed": "zKube10", + "address": "0x117ef2902ad34fc5b861b74a0fa922e9f9e6c918379ad005731594cf02ac31a", + "transaction_hash": "0x558d6b24fd7a4ef2ef19abf9703b7991d9fe70dc22aadece6044b3c204ab9b7", + "block_number": 1712, + "seed": "zKube11", "metadata": { "profile_name": "slotdev", "rpc_url": "https://api.cartridge.gg/x/zkube-slotdev/katana" @@ -1255,7 +1255,7 @@ "contracts": [ { "kind": "DojoContract", - "address": "0x6474869108042e7df18fe0b398834d87aeda231a02125a50f4734bc8b54b153", + "address": "0xef4c3769413831a85fb8941675d7c2e54c896bd43406d56455609a63db42a4", "class_hash": "0x958fff5be6114b0fda0e66cf9c76ac5fdcc41ff3a1c71097a826527a364d1e", "original_class_hash": "0x958fff5be6114b0fda0e66cf9c76ac5fdcc41ff3a1c71097a826527a364d1e", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", @@ -1526,7 +1526,7 @@ }, { "kind": "DojoContract", - "address": "0x650960fd71160a89a7abb2a7c7cdc7d956bd23ae2047bcb40da658fc5c94c58", + "address": "0x1633173d995edbe62404cba5d7654c5e1de3569de49727015b2dd9d1fdcecb9", "class_hash": "0x261fb0322818d856cda306ed7479874b965b9faead1b6485f1186449d9609f6", "original_class_hash": "0x261fb0322818d856cda306ed7479874b965b9faead1b6485f1186449d9609f6", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", @@ -1825,9 +1825,9 @@ }, { "kind": "DojoContract", - "address": "0x4d3cf16c9362c86d4ce0dad5c572e044189a94e25b8f1e7053d71e4a2452768", - "class_hash": "0x6c2b80ba8fe0ffba87ac6d03e82dac6595432dfc088f660f43210ff81bb1b1", - "original_class_hash": "0x6c2b80ba8fe0ffba87ac6d03e82dac6595432dfc088f660f43210ff81bb1b1", + "address": "0x345016d5f36f165ae1b13696fc7998fddeb28c4a509d1d86c68f91dd2a65173", + "class_hash": "0x2dff102019fd2ca29c8a9c67134c2b9ef011a836e4713271bdaa149853df695", + "original_class_hash": "0x2dff102019fd2ca29c8a9c67134c2b9ef011a836e4713271bdaa149853df695", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", "abi": [ { @@ -2255,7 +2255,7 @@ }, { "kind": "DojoContract", - "address": "0x6ffc53d831df4c82dc4c755c57b7f6ff3720023870b75be05c759803ee5cec3", + "address": "0x23676a38d0858a92601168847376fd25f1a6c67545045dc87ca58f00a1097bf", "class_hash": "0x27e87f8f3658b5b33c91d1c020177f0333bdf3532ed8f3bcdfa544166ff4dd6", "original_class_hash": "0x27e87f8f3658b5b33c91d1c020177f0333bdf3532ed8f3bcdfa544166ff4dd6", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", @@ -2574,7 +2574,7 @@ }, { "kind": "DojoContract", - "address": "0x73255e03832061477c5e67ef1728ae7efba12c2563b6e0e730822bcd497ff1b", + "address": "0x6cabdd62d084078a4949cede9ea3f081d4c63601c4ffbdd7c1ac45fe7a97550", "class_hash": "0x7ece8a86dff2ae5211439a9b9815f1c33fddb124db613da204e63fc814ffab1", "original_class_hash": "0x7ece8a86dff2ae5211439a9b9815f1c33fddb124db613da204e63fc814ffab1", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", @@ -2893,7 +2893,7 @@ }, { "kind": "DojoContract", - "address": "0x1ab14b4cdf08a258b0dd4e6933f1a0429a55f6d7697aa3c45c04b189e6cdca5", + "address": "0x7b8d4ffe21e5d168f5d985a60a358b1ed64dc6a4005b49ee97dc4f0e9adb9df", "class_hash": "0x12b37d078e6ee707b24a3d5e32684bdd0ca0d2afbc569a5b73175b489497115", "original_class_hash": "0x12b37d078e6ee707b24a3d5e32684bdd0ca0d2afbc569a5b73175b489497115", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", diff --git a/contracts/manifests/slotdev/deployment/manifest.toml b/contracts/manifests/slotdev/deployment/manifest.toml index d4eda430..02c4cce0 100644 --- a/contracts/manifests/slotdev/deployment/manifest.toml +++ b/contracts/manifests/slotdev/deployment/manifest.toml @@ -3,10 +3,10 @@ kind = "WorldContract" class_hash = "0x6f4515274ee23404789c3351a77107d0ec07508530119822046600ca6948d6e" original_class_hash = "0x6f4515274ee23404789c3351a77107d0ec07508530119822046600ca6948d6e" abi = "manifests/slotdev/deployment/abis/dojo-world.json" -address = "0x3888d10f7b04e87400d30c02c1158a66e9046d35d60ae2f96c1adaeae1d9edb" -transaction_hash = "0x19a2e6f5024de5505c865d3a7cca3f374e61822f4ca2ea65ecded6bc7d2a23f" -block_number = 387 -seed = "zKube10" +address = "0x117ef2902ad34fc5b861b74a0fa922e9f9e6c918379ad005731594cf02ac31a" +transaction_hash = "0x558d6b24fd7a4ef2ef19abf9703b7991d9fe70dc22aadece6044b3c204ab9b7" +block_number = 1712 +seed = "zKube11" manifest_name = "dojo-world" [world.metadata] @@ -23,7 +23,7 @@ manifest_name = "dojo-base" [[contracts]] kind = "DojoContract" -address = "0x6474869108042e7df18fe0b398834d87aeda231a02125a50f4734bc8b54b153" +address = "0xef4c3769413831a85fb8941675d7c2e54c896bd43406d56455609a63db42a4" class_hash = "0x958fff5be6114b0fda0e66cf9c76ac5fdcc41ff3a1c71097a826527a364d1e" original_class_hash = "0x958fff5be6114b0fda0e66cf9c76ac5fdcc41ff3a1c71097a826527a364d1e" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" @@ -43,7 +43,7 @@ manifest_name = "zkube-account-6d28004d" [[contracts]] kind = "DojoContract" -address = "0x650960fd71160a89a7abb2a7c7cdc7d956bd23ae2047bcb40da658fc5c94c58" +address = "0x1633173d995edbe62404cba5d7654c5e1de3569de49727015b2dd9d1fdcecb9" class_hash = "0x261fb0322818d856cda306ed7479874b965b9faead1b6485f1186449d9609f6" original_class_hash = "0x261fb0322818d856cda306ed7479874b965b9faead1b6485f1186449d9609f6" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" @@ -64,9 +64,9 @@ manifest_name = "zkube-chest-5d3b3ea3" [[contracts]] kind = "DojoContract" -address = "0x4d3cf16c9362c86d4ce0dad5c572e044189a94e25b8f1e7053d71e4a2452768" -class_hash = "0x6c2b80ba8fe0ffba87ac6d03e82dac6595432dfc088f660f43210ff81bb1b1" -original_class_hash = "0x6c2b80ba8fe0ffba87ac6d03e82dac6595432dfc088f660f43210ff81bb1b1" +address = "0x345016d5f36f165ae1b13696fc7998fddeb28c4a509d1d86c68f91dd2a65173" +class_hash = "0x2dff102019fd2ca29c8a9c67134c2b9ef011a836e4713271bdaa149853df695" +original_class_hash = "0x2dff102019fd2ca29c8a9c67134c2b9ef011a836e4713271bdaa149853df695" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" abi = "manifests/slotdev/deployment/abis/contracts/zkube-play-19ee70b3.json" reads = [] @@ -90,7 +90,7 @@ manifest_name = "zkube-play-19ee70b3" [[contracts]] kind = "DojoContract" -address = "0x6ffc53d831df4c82dc4c755c57b7f6ff3720023870b75be05c759803ee5cec3" +address = "0x23676a38d0858a92601168847376fd25f1a6c67545045dc87ca58f00a1097bf" class_hash = "0x27e87f8f3658b5b33c91d1c020177f0333bdf3532ed8f3bcdfa544166ff4dd6" original_class_hash = "0x27e87f8f3658b5b33c91d1c020177f0333bdf3532ed8f3bcdfa544166ff4dd6" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" @@ -114,7 +114,7 @@ manifest_name = "zkube-settings-3b7c4918" [[contracts]] kind = "DojoContract" -address = "0x73255e03832061477c5e67ef1728ae7efba12c2563b6e0e730822bcd497ff1b" +address = "0x6cabdd62d084078a4949cede9ea3f081d4c63601c4ffbdd7c1ac45fe7a97550" class_hash = "0x7ece8a86dff2ae5211439a9b9815f1c33fddb124db613da204e63fc814ffab1" original_class_hash = "0x7ece8a86dff2ae5211439a9b9815f1c33fddb124db613da204e63fc814ffab1" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" @@ -131,7 +131,7 @@ manifest_name = "zkube-tournament-2101600e" [[contracts]] kind = "DojoContract" -address = "0x1ab14b4cdf08a258b0dd4e6933f1a0429a55f6d7697aa3c45c04b189e6cdca5" +address = "0x7b8d4ffe21e5d168f5d985a60a358b1ed64dc6a4005b49ee97dc4f0e9adb9df" class_hash = "0x12b37d078e6ee707b24a3d5e32684bdd0ca0d2afbc569a5b73175b489497115" original_class_hash = "0x12b37d078e6ee707b24a3d5e32684bdd0ca0d2afbc569a5b73175b489497115" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" From ef7d4ecdaf1aa28c451e1f20a1fb4049a4b0328c Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Oct 2024 19:54:09 +0200 Subject: [PATCH 6/6] deploy sepolia --- contracts/dojo_sepolia.toml | 2 +- .../base/contracts/zkube-play-19ee70b3.toml | 4 ++-- .../sepolia/deployment/manifest.json | 22 +++++++++---------- .../sepolia/deployment/manifest.toml | 22 +++++++++---------- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/contracts/dojo_sepolia.toml b/contracts/dojo_sepolia.toml index 93bed33e..e588ce9f 100644 --- a/contracts/dojo_sepolia.toml +++ b/contracts/dojo_sepolia.toml @@ -4,7 +4,7 @@ description = "Reversed tetris fully onchain." # cover_uri = "file://assets/cover.png" # icon_uri = "file://assets/icon.png" website = "https://github.com/dojoengine/dojo-starter" -seed = "zKube11" +seed = "zKube12" [world.socials] x = "https://x.com/ohayo_dojo" diff --git a/contracts/manifests/sepolia/base/contracts/zkube-play-19ee70b3.toml b/contracts/manifests/sepolia/base/contracts/zkube-play-19ee70b3.toml index a94208d1..a7d10578 100644 --- a/contracts/manifests/sepolia/base/contracts/zkube-play-19ee70b3.toml +++ b/contracts/manifests/sepolia/base/contracts/zkube-play-19ee70b3.toml @@ -1,6 +1,6 @@ kind = "DojoContract" -class_hash = "0x70cc0bdc949dd2362fdb1a9a34e1e2d8bc10eaf92e0e2bde95c415132ea070b" -original_class_hash = "0x70cc0bdc949dd2362fdb1a9a34e1e2d8bc10eaf92e0e2bde95c415132ea070b" +class_hash = "0x2dff102019fd2ca29c8a9c67134c2b9ef011a836e4713271bdaa149853df695" +original_class_hash = "0x2dff102019fd2ca29c8a9c67134c2b9ef011a836e4713271bdaa149853df695" base_class_hash = "0x0" abi = "manifests/sepolia/base/abis/contracts/zkube-play-19ee70b3.json" reads = [] diff --git a/contracts/manifests/sepolia/deployment/manifest.json b/contracts/manifests/sepolia/deployment/manifest.json index 5aeaa3bd..d8a128ad 100644 --- a/contracts/manifests/sepolia/deployment/manifest.json +++ b/contracts/manifests/sepolia/deployment/manifest.json @@ -1234,10 +1234,10 @@ ] } ], - "address": "0x117ef2902ad34fc5b861b74a0fa922e9f9e6c918379ad005731594cf02ac31a", - "transaction_hash": "0x7afab8e3518d1df591aaf57fa830e9ecbbf20fa9c7e43cf0162c15df25e0086", + "address": "0x414f6bc58f6bdbce0ec9a817ccdcbccaa9e3e379961ebf62c1e20f8bbed9c4d", + "transaction_hash": "0x3bb758b876c59d56093a8e66e9b04734a675820e6854c871d303018036cb5af", "block_number": null, - "seed": "zKube11", + "seed": "zKube12", "metadata": { "profile_name": "sepolia", "rpc_url": "https://api.cartridge.gg/x/starknet/sepolia" @@ -1255,7 +1255,7 @@ "contracts": [ { "kind": "DojoContract", - "address": "0xef4c3769413831a85fb8941675d7c2e54c896bd43406d56455609a63db42a4", + "address": "0x17a3495551c35a1b4c0b47eac8c4106de7d020058c0ff3cee528587d2cd29f8", "class_hash": "0x958fff5be6114b0fda0e66cf9c76ac5fdcc41ff3a1c71097a826527a364d1e", "original_class_hash": "0x958fff5be6114b0fda0e66cf9c76ac5fdcc41ff3a1c71097a826527a364d1e", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", @@ -1526,7 +1526,7 @@ }, { "kind": "DojoContract", - "address": "0x1633173d995edbe62404cba5d7654c5e1de3569de49727015b2dd9d1fdcecb9", + "address": "0x5c1c4e5a38c454753104a7b3179e56ee5426d30ac84ca47353d410204cf1369", "class_hash": "0x261fb0322818d856cda306ed7479874b965b9faead1b6485f1186449d9609f6", "original_class_hash": "0x261fb0322818d856cda306ed7479874b965b9faead1b6485f1186449d9609f6", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", @@ -1825,9 +1825,9 @@ }, { "kind": "DojoContract", - "address": "0x345016d5f36f165ae1b13696fc7998fddeb28c4a509d1d86c68f91dd2a65173", - "class_hash": "0x70cc0bdc949dd2362fdb1a9a34e1e2d8bc10eaf92e0e2bde95c415132ea070b", - "original_class_hash": "0x70cc0bdc949dd2362fdb1a9a34e1e2d8bc10eaf92e0e2bde95c415132ea070b", + "address": "0x129b0e74f74ff235a7661e0db1e349bbbdae759da34afab3602e4398743a88d", + "class_hash": "0x2dff102019fd2ca29c8a9c67134c2b9ef011a836e4713271bdaa149853df695", + "original_class_hash": "0x2dff102019fd2ca29c8a9c67134c2b9ef011a836e4713271bdaa149853df695", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", "abi": [ { @@ -2255,7 +2255,7 @@ }, { "kind": "DojoContract", - "address": "0x23676a38d0858a92601168847376fd25f1a6c67545045dc87ca58f00a1097bf", + "address": "0x3dae0c1cc17c653cc96d68012c94e51a699ac42d0d926f84bcc3d7e9975fac4", "class_hash": "0x27e87f8f3658b5b33c91d1c020177f0333bdf3532ed8f3bcdfa544166ff4dd6", "original_class_hash": "0x27e87f8f3658b5b33c91d1c020177f0333bdf3532ed8f3bcdfa544166ff4dd6", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", @@ -2574,7 +2574,7 @@ }, { "kind": "DojoContract", - "address": "0x6cabdd62d084078a4949cede9ea3f081d4c63601c4ffbdd7c1ac45fe7a97550", + "address": "0x6d5671302a112f3ae0172dffcc378b5e3cf7edc9503ed9ce4a809ce95a43ba6", "class_hash": "0x7ece8a86dff2ae5211439a9b9815f1c33fddb124db613da204e63fc814ffab1", "original_class_hash": "0x7ece8a86dff2ae5211439a9b9815f1c33fddb124db613da204e63fc814ffab1", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", @@ -2893,7 +2893,7 @@ }, { "kind": "DojoContract", - "address": "0x7b8d4ffe21e5d168f5d985a60a358b1ed64dc6a4005b49ee97dc4f0e9adb9df", + "address": "0x5ab86db08e0c69f94424d3b7bb7879a2233367c0ca21af75426cdc9c5db0e2f", "class_hash": "0x12b37d078e6ee707b24a3d5e32684bdd0ca0d2afbc569a5b73175b489497115", "original_class_hash": "0x12b37d078e6ee707b24a3d5e32684bdd0ca0d2afbc569a5b73175b489497115", "base_class_hash": "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2", diff --git a/contracts/manifests/sepolia/deployment/manifest.toml b/contracts/manifests/sepolia/deployment/manifest.toml index c280dec6..32c94247 100644 --- a/contracts/manifests/sepolia/deployment/manifest.toml +++ b/contracts/manifests/sepolia/deployment/manifest.toml @@ -3,9 +3,9 @@ kind = "WorldContract" class_hash = "0x6f4515274ee23404789c3351a77107d0ec07508530119822046600ca6948d6e" original_class_hash = "0x6f4515274ee23404789c3351a77107d0ec07508530119822046600ca6948d6e" abi = "manifests/sepolia/deployment/abis/dojo-world.json" -address = "0x117ef2902ad34fc5b861b74a0fa922e9f9e6c918379ad005731594cf02ac31a" -transaction_hash = "0x7afab8e3518d1df591aaf57fa830e9ecbbf20fa9c7e43cf0162c15df25e0086" -seed = "zKube11" +address = "0x414f6bc58f6bdbce0ec9a817ccdcbccaa9e3e379961ebf62c1e20f8bbed9c4d" +transaction_hash = "0x3bb758b876c59d56093a8e66e9b04734a675820e6854c871d303018036cb5af" +seed = "zKube12" manifest_name = "dojo-world" [world.metadata] @@ -22,7 +22,7 @@ manifest_name = "dojo-base" [[contracts]] kind = "DojoContract" -address = "0xef4c3769413831a85fb8941675d7c2e54c896bd43406d56455609a63db42a4" +address = "0x17a3495551c35a1b4c0b47eac8c4106de7d020058c0ff3cee528587d2cd29f8" class_hash = "0x958fff5be6114b0fda0e66cf9c76ac5fdcc41ff3a1c71097a826527a364d1e" original_class_hash = "0x958fff5be6114b0fda0e66cf9c76ac5fdcc41ff3a1c71097a826527a364d1e" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" @@ -42,7 +42,7 @@ manifest_name = "zkube-account-6d28004d" [[contracts]] kind = "DojoContract" -address = "0x1633173d995edbe62404cba5d7654c5e1de3569de49727015b2dd9d1fdcecb9" +address = "0x5c1c4e5a38c454753104a7b3179e56ee5426d30ac84ca47353d410204cf1369" class_hash = "0x261fb0322818d856cda306ed7479874b965b9faead1b6485f1186449d9609f6" original_class_hash = "0x261fb0322818d856cda306ed7479874b965b9faead1b6485f1186449d9609f6" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" @@ -63,9 +63,9 @@ manifest_name = "zkube-chest-5d3b3ea3" [[contracts]] kind = "DojoContract" -address = "0x345016d5f36f165ae1b13696fc7998fddeb28c4a509d1d86c68f91dd2a65173" -class_hash = "0x70cc0bdc949dd2362fdb1a9a34e1e2d8bc10eaf92e0e2bde95c415132ea070b" -original_class_hash = "0x70cc0bdc949dd2362fdb1a9a34e1e2d8bc10eaf92e0e2bde95c415132ea070b" +address = "0x129b0e74f74ff235a7661e0db1e349bbbdae759da34afab3602e4398743a88d" +class_hash = "0x2dff102019fd2ca29c8a9c67134c2b9ef011a836e4713271bdaa149853df695" +original_class_hash = "0x2dff102019fd2ca29c8a9c67134c2b9ef011a836e4713271bdaa149853df695" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" abi = "manifests/sepolia/deployment/abis/contracts/zkube-play-19ee70b3.json" reads = [] @@ -89,7 +89,7 @@ manifest_name = "zkube-play-19ee70b3" [[contracts]] kind = "DojoContract" -address = "0x23676a38d0858a92601168847376fd25f1a6c67545045dc87ca58f00a1097bf" +address = "0x3dae0c1cc17c653cc96d68012c94e51a699ac42d0d926f84bcc3d7e9975fac4" class_hash = "0x27e87f8f3658b5b33c91d1c020177f0333bdf3532ed8f3bcdfa544166ff4dd6" original_class_hash = "0x27e87f8f3658b5b33c91d1c020177f0333bdf3532ed8f3bcdfa544166ff4dd6" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" @@ -113,7 +113,7 @@ manifest_name = "zkube-settings-3b7c4918" [[contracts]] kind = "DojoContract" -address = "0x6cabdd62d084078a4949cede9ea3f081d4c63601c4ffbdd7c1ac45fe7a97550" +address = "0x6d5671302a112f3ae0172dffcc378b5e3cf7edc9503ed9ce4a809ce95a43ba6" class_hash = "0x7ece8a86dff2ae5211439a9b9815f1c33fddb124db613da204e63fc814ffab1" original_class_hash = "0x7ece8a86dff2ae5211439a9b9815f1c33fddb124db613da204e63fc814ffab1" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2" @@ -130,7 +130,7 @@ manifest_name = "zkube-tournament-2101600e" [[contracts]] kind = "DojoContract" -address = "0x7b8d4ffe21e5d168f5d985a60a358b1ed64dc6a4005b49ee97dc4f0e9adb9df" +address = "0x5ab86db08e0c69f94424d3b7bb7879a2233367c0ca21af75426cdc9c5db0e2f" class_hash = "0x12b37d078e6ee707b24a3d5e32684bdd0ca0d2afbc569a5b73175b489497115" original_class_hash = "0x12b37d078e6ee707b24a3d5e32684bdd0ca0d2afbc569a5b73175b489497115" base_class_hash = "0x2427dd10a58850ac9a5ca6ce04b7771b05330fd18f2e481831ad903b969e6b2"