From c3fff9c76053c1170523f2d0201cd180f6d52d17 Mon Sep 17 00:00:00 2001 From: RolandoDrRobot Date: Tue, 17 Jun 2025 22:21:08 -0600 Subject: [PATCH 1/2] new deploy --- client/.env | 2 +- .../components/Tamagotchi/utils/fetchAge.ts | 2 +- .../Tamagotchi/utils/fetchStatus.ts | 2 +- client/src/config/cartridgeConnector.tsx | 8 ++++---- client/src/dojo/dojoConfig.ts | 2 +- client/src/dojo/manifest_dev.json | 20 +++++++++++-------- client/vite.config.ts | 14 ++++++------- dojo/torii-config.toml | 2 +- 8 files changed, 28 insertions(+), 24 deletions(-) diff --git a/client/.env b/client/.env index 12719e8d..b0502ecc 100644 --- a/client/.env +++ b/client/.env @@ -7,7 +7,7 @@ VITE_DEV=YOUR_DEV_VALUE VITE_PUBLIC_DEPLOY_TYPE="sepolia" VITE_PUBLIC_NODE_URL="https://api.cartridge.gg/x/starknet/sepolia" -VITE_PUBLIC_TORII="https://api.cartridge.gg/x/toriibbtest/torii" +VITE_PUBLIC_TORII="https://api.cartridge.gg/x/tamatoriitest/torii" VITE_PUBLIC_MASTER_ADDRESS="0x04CDA1a7c67aC385Cd0a399D65c405E6539Cc3730c37Cc2C4a62b2F719CD1C0A" VITE_PUBLIC_MASTER_PRIVATE_KEY="0x056ed1031da41a9746534ff13bfd6e86e2071635b3408e49698443f3758c862e" VITE_PUBLIC_SLOT_ADDRESS="https://api.cartridge.gg/x/bytebeaststamagotchi/katana" diff --git a/client/src/components/Tamagotchi/utils/fetchAge.ts b/client/src/components/Tamagotchi/utils/fetchAge.ts index 840e2fcb..6c747ff8 100644 --- a/client/src/components/Tamagotchi/utils/fetchAge.ts +++ b/client/src/components/Tamagotchi/utils/fetchAge.ts @@ -3,7 +3,7 @@ import hexToDecimalArray from './hexToDecimalArray'; const fetchAge = async (account: any): Promise => { try { const response = await account?.callContract({ - contractAddress: "0x58971d723d0100ae8393550f9166c9dad9b79799a48fc31f0d9684ef556dda9", + contractAddress: "0x9ab404df9549cff7771d2404d1a4c18e04b75027c78a2c7eb43547ad76c021", entrypoint: "get_beast_age_with_address", calldata: [String(account?.address)], }); diff --git a/client/src/components/Tamagotchi/utils/fetchStatus.ts b/client/src/components/Tamagotchi/utils/fetchStatus.ts index 7d0690c7..960f6274 100644 --- a/client/src/components/Tamagotchi/utils/fetchStatus.ts +++ b/client/src/components/Tamagotchi/utils/fetchStatus.ts @@ -3,7 +3,7 @@ import hexToDecimalArray from './hexToDecimalArray'; const fetchStatus = async (account: any): Promise => { try { const response = await account?.callContract({ - contractAddress: "0x58971d723d0100ae8393550f9166c9dad9b79799a48fc31f0d9684ef556dda9", + contractAddress: "0x9ab404df9549cff7771d2404d1a4c18e04b75027c78a2c7eb43547ad76c021", entrypoint: "get_timestamp_based_status_with_address", calldata: [String(account?.address)], }); diff --git a/client/src/config/cartridgeConnector.tsx b/client/src/config/cartridgeConnector.tsx index c7689408..88fccec9 100644 --- a/client/src/config/cartridgeConnector.tsx +++ b/client/src/config/cartridgeConnector.tsx @@ -6,9 +6,9 @@ import { constants } from "starknet"; const { VITE_PUBLIC_DEPLOY_TYPE } = import.meta.env; const { VITE_PUBLIC_SLOT_ADDRESS } = import.meta.env; -const CONTRACT_ADDRESS_ACHIEVEMENTS = '0x1005116a48c9a8f7a6c946091e64dc8ced37962dc2bbb74355868229307c20d' -const CONTRACT_ADDRESS_TAMAGOTCHI_SYSTEM = '0x58971d723d0100ae8393550f9166c9dad9b79799a48fc31f0d9684ef556dda9' -const CONTRACT_ADDRESS_PLAYER_SYSTEM = '0x6b7b30fcd29c41bca831b87db67e3c8af2abb374dc2fabbbf09f4744aa22988' +const CONTRACT_ADDRESS_ACHIEVEMENTS = '0x678958bdd51b3caa74f0d229aaa35caafed0f03c280782d2dd71c389719bbd8' +const CONTRACT_ADDRESS_TAMAGOTCHI_SYSTEM = '0x9ab404df9549cff7771d2404d1a4c18e04b75027c78a2c7eb43547ad76c021' +const CONTRACT_ADDRESS_PLAYER_SYSTEM = '0x3de2979483da64ed3e3067883a9dae195cbc8df991c4536116d27382c76990d' const policies: SessionPolicies = { contracts: { @@ -149,7 +149,7 @@ const options: ControllerOptions = { colorMode, preset: "bytebeasts-tamagotchi", namespace: "tamagotchi", - slot: "toriibbtest" + slot: "tamatoriitest" }; const cartridgeConnector = new ControllerConnector( diff --git a/client/src/dojo/dojoConfig.ts b/client/src/dojo/dojoConfig.ts index 1cfea225..7fa0e1e7 100644 --- a/client/src/dojo/dojoConfig.ts +++ b/client/src/dojo/dojoConfig.ts @@ -14,5 +14,5 @@ export const dojoConfig = createDojoConfig({ masterAddress: VITE_PUBLIC_MASTER_ADDRESS || '0x04CDA1a7c67aC385Cd0a399D65c405E6539Cc3730c37Cc2C4a62b2F719CD1C0A', masterPrivateKey: VITE_PUBLIC_MASTER_PRIVATE_KEY || '0x056ed1031da41a9746534ff13bfd6e86e2071635b3408e49698443f3758c862e', rpcUrl: VITE_PUBLIC_NODE_URL || 'https://api.cartridge.gg/x/starknet/sepolia', - toriiUrl: VITE_PUBLIC_TORII || 'https://api.cartridge.gg/x/toriibbtest/torii', + toriiUrl: VITE_PUBLIC_TORII || 'https://api.cartridge.gg/x/tamatoriitest/torii', }); diff --git a/client/src/dojo/manifest_dev.json b/client/src/dojo/manifest_dev.json index 41d22618..97e9d815 100644 --- a/client/src/dojo/manifest_dev.json +++ b/client/src/dojo/manifest_dev.json @@ -1,8 +1,8 @@ { "world": { "class_hash": "0x7c9469d45a9cdbab775035afb48e1fa73fb35ab059fcb9dfb0a301aa973e783", - "address": "0x55ab491f46e96bfdbefab82c7ff1101bf8fd10bdb4e47c01533bc2a2a1e9e9e", - "seed": "tamagotchi17", + "address": "0x1515beab64d67464edb8238d8efb07a3545e4a1999f36dea777c193e76c23b2", + "seed": "tamagotchi20", "name": "ByteBeasts Tamagotchi", "entrypoints": [ "uuid", @@ -1312,7 +1312,7 @@ }, "contracts": [ { - "address": "0x1005116a48c9a8f7a6c946091e64dc8ced37962dc2bbb74355868229307c20d", + "address": "0x678958bdd51b3caa74f0d229aaa35caafed0f03c280782d2dd71c389719bbd8", "class_hash": "0x2ae3f43544bc745744f339fffc5390aac05e3a99f16aadba70859ecd5b46116", "abi": [ { @@ -1614,8 +1614,8 @@ ] }, { - "address": "0x58971d723d0100ae8393550f9166c9dad9b79799a48fc31f0d9684ef556dda9", - "class_hash": "0x42f4064e1316913658aa9097a3275f68b9d11d7c5282dfb026f78a6d61a25db", + "address": "0x9ab404df9549cff7771d2404d1a4c18e04b75027c78a2c7eb43547ad76c021", + "class_hash": "0x3d04d0d39afaad64c781129dacd1309e79a22b5491713802f15bee6eeeb3ffe", "abi": [ { "type": "impl", @@ -1739,6 +1739,10 @@ "type": "struct", "name": "tamagotchi::models::beast_status::BeastStatus", "members": [ + { + "name": "player", + "type": "core::starknet::contract_address::ContractAddress" + }, { "name": "beast_id", "type": "core::integer::u16" @@ -2065,7 +2069,7 @@ ] }, { - "address": "0x6b7b30fcd29c41bca831b87db67e3c8af2abb374dc2fabbbf09f4744aa22988", + "address": "0x3de2979483da64ed3e3067883a9dae195cbc8df991c4536116d27382c76990d", "class_hash": "0x24eeedaa48d3c3de399ec22d854f14c3533170902e21c18c8fc6e3bb8187a0d", "abi": [ { @@ -2352,7 +2356,7 @@ }, { "members": [], - "class_hash": "0x2d33cad545c3e9b01b8a328418c0bc5dc529ec0abb1f3f4efa18f10c3bfb837", + "class_hash": "0x52dfc0a351c1b7770289b2f14d2dfcf0d8b4b5586872efaef763105be4808be", "tag": "tamagotchi-BeastStatus", "selector": "0x7dd28052791e63bdc06d6ba2a8eca548b4580c2e83bb96c03ef0a2d84f8ffde" }, @@ -2396,4 +2400,4 @@ } ], "external_contracts": [] -} \ No newline at end of file +} diff --git a/client/vite.config.ts b/client/vite.config.ts index 7bc4d95b..2936a810 100644 --- a/client/vite.config.ts +++ b/client/vite.config.ts @@ -3,15 +3,15 @@ import topLevelAwait from "vite-plugin-top-level-await"; import { defineConfig } from "vite"; import { VitePWA } from "vite-plugin-pwa"; import wasm from "vite-plugin-wasm"; -//import fs from "fs"; +import fs from "fs"; export default defineConfig({ - // server: { - // https: { - // key: fs.readFileSync("mkcert+1-key.pem"), // Path to private key file - // cert: fs.readFileSync("mkcert+1.pem"), // Path to certificate file - // }, - // }, + server: { + https: { + key: fs.readFileSync("mkcert+1-key.pem"), // Path to private key file + cert: fs.readFileSync("mkcert+1.pem"), // Path to certificate file + }, + }, plugins: [ react(), wasm(), diff --git a/dojo/torii-config.toml b/dojo/torii-config.toml index 7d369a01..6519506b 100644 --- a/dojo/torii-config.toml +++ b/dojo/torii-config.toml @@ -1,5 +1,5 @@ # The World address to index. -world_address = "0x055ab491f46e96bfdbefab82c7ff1101bf8fd10bdb4e47c01533bc2a2a1e9e9e" +world_address = "0x1515beab64d67464edb8238d8efb07a3545e4a1999f36dea777c193e76c23b2" # Default RPC URL configuration rpc = "https://api.cartridge.gg/x/starknet/sepolia" From 8bf9babdfd9653b2b0026231c75598f2441a2389 Mon Sep 17 00:00:00 2001 From: RolandoDrRobot Date: Thu, 19 Jun 2025 21:45:22 -0600 Subject: [PATCH 2/2] Set the tamagotchi back --- client/.env | 2 +- client/dev-dist/sw.js | 2 +- client/src/components/SpawnBeast/index.tsx | 6 +- .../components/Tamagotchi/Actions/index.tsx | 10 +- .../src/components/Tamagotchi/Food/index.tsx | 2 +- .../components/Tamagotchi/Status/index.tsx | 6 +- .../components/Tamagotchi/Whispers/index.tsx | 2 +- .../Tamagotchi/components/BeastDisplay.tsx | 6 +- client/src/components/Tamagotchi/index.tsx | 13 +- .../components/Tamagotchi/utils/fetchAge.ts | 3 +- .../Tamagotchi/utils/fetchStatus.ts | 3 +- client/src/config/cartridgeConnector.tsx | 8 +- client/src/config/manifest.ts | 2 +- client/src/dojo/contracts.gen.ts | 145 ++++++++---------- client/src/dojo/dojoConfig.ts | 2 +- client/src/dojo/manifest_dev.json | 27 +--- client/src/hooks/useTamagotchi.ts | 23 ++- client/vite.config.ts | 14 +- 18 files changed, 121 insertions(+), 155 deletions(-) diff --git a/client/.env b/client/.env index b0502ecc..c9cbd147 100644 --- a/client/.env +++ b/client/.env @@ -7,7 +7,7 @@ VITE_DEV=YOUR_DEV_VALUE VITE_PUBLIC_DEPLOY_TYPE="sepolia" VITE_PUBLIC_NODE_URL="https://api.cartridge.gg/x/starknet/sepolia" -VITE_PUBLIC_TORII="https://api.cartridge.gg/x/tamatoriitest/torii" +VITE_PUBLIC_TORII="https://api.cartridge.gg/x/bbv2/torii" VITE_PUBLIC_MASTER_ADDRESS="0x04CDA1a7c67aC385Cd0a399D65c405E6539Cc3730c37Cc2C4a62b2F719CD1C0A" VITE_PUBLIC_MASTER_PRIVATE_KEY="0x056ed1031da41a9746534ff13bfd6e86e2071635b3408e49698443f3758c862e" VITE_PUBLIC_SLOT_ADDRESS="https://api.cartridge.gg/x/bytebeaststamagotchi/katana" diff --git a/client/dev-dist/sw.js b/client/dev-dist/sw.js index e955509a..6366b5aa 100644 --- a/client/dev-dist/sw.js +++ b/client/dev-dist/sw.js @@ -82,7 +82,7 @@ define(['./workbox-20a2f87f'], (function (workbox) { 'use strict'; "revision": "3ca0b8505b4bec776b69afdba2768812" }, { "url": "index.html", - "revision": "0.90s8ruuoado" + "revision": "0.uv6bn1a6tj" }], {}); workbox.cleanupOutdatedCaches(); workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), { diff --git a/client/src/components/SpawnBeast/index.tsx b/client/src/components/SpawnBeast/index.tsx index 64188a9d..2fd41669 100644 --- a/client/src/components/SpawnBeast/index.tsx +++ b/client/src/components/SpawnBeast/index.tsx @@ -94,14 +94,12 @@ const SpawnBeast: React.FC = ({ className = '' }) => { // Encontrar la bestia reciƩn creada newBeast = processedBeasts.find((beast: Beast) => beast.player === account!.address); + console.log(newBeast, 'newBeast'); await new Promise(resolve => setTimeout(resolve, 2000)); } while (!newBeast); if (newBeast) { - setSpawnProgress({ progress: 90, message: 'Finalizing setup' }); - const setCurrentTx = await client.player.setCurrentBeast(account!, newBeast.beast_id); - console.info('setCurrentTx', setCurrentTx); - await new Promise(resolve => setTimeout(resolve, 2000)); + console.log(newBeast, 'newBeast inside'); setSpawnProgress({ progress: 100, message: 'Your beast is ready!' }); setTimeout(() => { navigate('/play'); diff --git a/client/src/components/Tamagotchi/Actions/index.tsx b/client/src/components/Tamagotchi/Actions/index.tsx index 4feef213..72760980 100644 --- a/client/src/components/Tamagotchi/Actions/index.tsx +++ b/client/src/components/Tamagotchi/Actions/index.tsx @@ -47,7 +47,7 @@ const Actions = ({ }) => { const actionButtons: { label: string, img: string | null, action: string, pictureKey: PictureKey, isRevive?: boolean }[] = [ - { label: beastStatus[2] == 1 ? "Sleep" : "Awake", img: beastStatus[2] == 1 ? Sleep : Awake, action: beastStatus[2] == 1 ? "sleep" : "awake", pictureKey: beastStatus[2] == 1 ? "sleepPicture" : "idlePicture" }, + { label: beastStatus[3] == 1 ? "Sleep" : "Awake", img: beastStatus[3] == 1 ? Sleep : Awake, action: beastStatus[3] == 1 ? "sleep" : "awake", pictureKey: beastStatus[3] == 1 ? "sleepPicture" : "idlePicture" }, { label: "Clean", img: Clean, action: "clean", pictureKey: "cleanPicture" }, { label: "Feed", img: Food, action: "feed", pictureKey: "eatPicture" }, { label: "Play", img: Play, action: "play", pictureKey: "playPicture" }, @@ -109,10 +109,10 @@ const Actions = ({ isLoading || isActionDisabled || !beastStatus || - beastStatus[1] == 0 || - (action != 'sleep' && action != 'awake') && beastStatus[2] == 0 || - (action == 'sleep' || action == 'awake') && beastStatus[4] == 100 || - (action == 'clean') && beastStatus[6] == 100 + beastStatus[2] == 0 || + (action != 'sleep' && action != 'awake') && beastStatus[3] == 0 || + (action == 'sleep' || action == 'awake') && beastStatus[5] == 100 || + (action == 'clean') && beastStatus[7] == 100 } > {img && {label}} {label} diff --git a/client/src/components/Tamagotchi/Food/index.tsx b/client/src/components/Tamagotchi/Food/index.tsx index 644055a0..2e21725c 100644 --- a/client/src/components/Tamagotchi/Food/index.tsx +++ b/client/src/components/Tamagotchi/Food/index.tsx @@ -84,7 +84,7 @@ const Food = ({ handleAction, beast, account, client, beastStatus, showAnimation <>
- {!beastStatus || beastStatus[1] == 0 ? <> : + {!beastStatus || beastStatus[2] == 0 ? <> : zfoods.map(({ name, img, count }: { name: any, img: any, count: any }) => (
)}
@@ -79,7 +79,7 @@ const BeastDisplay = ({ )} - {status[1] === 1 && status[2] === 1 && ( + {status[2] === 1 && status[3] === 1 && (
chat with tamagotchi
diff --git a/client/src/components/Tamagotchi/index.tsx b/client/src/components/Tamagotchi/index.tsx index adfa9d2e..eaef403d 100644 --- a/client/src/components/Tamagotchi/index.tsx +++ b/client/src/components/Tamagotchi/index.tsx @@ -33,6 +33,9 @@ function Tamagotchi() { const [botMessage, setBotMessage] = useState({ user: '', text: '' }); const [currentBeast, setCurrentBeast] = useState({}); + console.info('player', player) + console.info('currentBeast', currentBeast) + const { currentImage, isLoading, @@ -63,10 +66,10 @@ function Tamagotchi() { return { age: currentBeast?.age || 0, - energy: status[4] || 0, - hunger: status[3] || 0, - happiness: status[5] || 0, - clean: status[6] || 0 + energy: status[5] || 0, + hunger: status[4] || 0, + happiness: status[6] || 0, + clean: status[7] || 0 }; }; @@ -83,7 +86,7 @@ function Tamagotchi() { }}>
- {isLoading || status[1] === 0 || status[2] === 0 ? null : ( + {isLoading || status[2] === 0 || status[3] === 0 ? null : ( => { + console.info('account age', String(account?.address)); try { const response = await account?.callContract({ - contractAddress: "0x9ab404df9549cff7771d2404d1a4c18e04b75027c78a2c7eb43547ad76c021", + contractAddress: "0x782425ff2132a84992b9e9e497c1305a7e48f6cf3928fd93b7e44ed8efea2ad", entrypoint: "get_beast_age_with_address", calldata: [String(account?.address)], }); diff --git a/client/src/components/Tamagotchi/utils/fetchStatus.ts b/client/src/components/Tamagotchi/utils/fetchStatus.ts index 960f6274..85d34502 100644 --- a/client/src/components/Tamagotchi/utils/fetchStatus.ts +++ b/client/src/components/Tamagotchi/utils/fetchStatus.ts @@ -1,9 +1,10 @@ import hexToDecimalArray from './hexToDecimalArray'; const fetchStatus = async (account: any): Promise => { + console.info('account status', String(account?.address)); try { const response = await account?.callContract({ - contractAddress: "0x9ab404df9549cff7771d2404d1a4c18e04b75027c78a2c7eb43547ad76c021", + contractAddress: "0x782425ff2132a84992b9e9e497c1305a7e48f6cf3928fd93b7e44ed8efea2ad", entrypoint: "get_timestamp_based_status_with_address", calldata: [String(account?.address)], }); diff --git a/client/src/config/cartridgeConnector.tsx b/client/src/config/cartridgeConnector.tsx index 88fccec9..c46bee5b 100644 --- a/client/src/config/cartridgeConnector.tsx +++ b/client/src/config/cartridgeConnector.tsx @@ -6,9 +6,9 @@ import { constants } from "starknet"; const { VITE_PUBLIC_DEPLOY_TYPE } = import.meta.env; const { VITE_PUBLIC_SLOT_ADDRESS } = import.meta.env; -const CONTRACT_ADDRESS_ACHIEVEMENTS = '0x678958bdd51b3caa74f0d229aaa35caafed0f03c280782d2dd71c389719bbd8' -const CONTRACT_ADDRESS_TAMAGOTCHI_SYSTEM = '0x9ab404df9549cff7771d2404d1a4c18e04b75027c78a2c7eb43547ad76c021' -const CONTRACT_ADDRESS_PLAYER_SYSTEM = '0x3de2979483da64ed3e3067883a9dae195cbc8df991c4536116d27382c76990d' +const CONTRACT_ADDRESS_ACHIEVEMENTS = '0x70061966613c3788149d4bed8c391403ee19bc23f02d9ff6a056cfb646820e2' +const CONTRACT_ADDRESS_TAMAGOTCHI_SYSTEM = '0x782425ff2132a84992b9e9e497c1305a7e48f6cf3928fd93b7e44ed8efea2ad' +const CONTRACT_ADDRESS_PLAYER_SYSTEM = '0x4c315f29212f78341dc80bc80cd0a04b4e5deafef9bd7528cb2fc7de7098fc8' const policies: SessionPolicies = { contracts: { @@ -149,7 +149,7 @@ const options: ControllerOptions = { colorMode, preset: "bytebeasts-tamagotchi", namespace: "tamagotchi", - slot: "tamatoriitest" + slot: "bbv2" }; const cartridgeConnector = new ControllerConnector( diff --git a/client/src/config/manifest.ts b/client/src/config/manifest.ts index fea60dda..fc071223 100644 --- a/client/src/config/manifest.ts +++ b/client/src/config/manifest.ts @@ -1,5 +1,5 @@ import slot from "../../../dojo/manifest_dev.json"; -import sepolia from "../../../dojo/manifest_sepolia.json"; +import sepolia from "../dojo/manifest_dev.json"; import mainnet from "../../../dojo/manifest_mainnet.json"; // Ensure this points to the right file // Define valid deploy types diff --git a/client/src/dojo/contracts.gen.ts b/client/src/dojo/contracts.gen.ts index b4a0b24a..09c157f1 100644 --- a/client/src/dojo/contracts.gen.ts +++ b/client/src/dojo/contracts.gen.ts @@ -1,5 +1,5 @@ import { DojoProvider, DojoCall } from "@dojoengine/core"; -import { Account, AccountInterface } from "starknet"; +import { Account, AccountInterface, BigNumberish, ByteArray } from "starknet"; export function setupWorld(provider: DojoProvider) { @@ -87,6 +87,27 @@ export function setupWorld(provider: DojoProvider) { } }; + const build_achieve_achieveBeastShare_calldata = (): DojoCall => { + return { + contractName: "achieve", + entrypoint: "achieve_beast_share", + calldata: [], + }; + }; + + const achieve_achieveBeastShare = async (snAccount: Account | AccountInterface) => { + try { + return await provider.execute( + snAccount as any, + build_achieve_achieveBeastShare_calldata(), + "tamagotchi", + ); + } catch (error) { + console.error(error); + throw error; + } + }; + const build_achieve_achieveBeastSleep_calldata = (): DojoCall => { return { contractName: "achieve", @@ -108,7 +129,7 @@ export function setupWorld(provider: DojoProvider) { } }; - const build_achieve_achieveFlappyBeastHighscore_calldata = (score: number): DojoCall => { + const build_achieve_achieveFlappyBeastHighscore_calldata = (score: BigNumberish): DojoCall => { return { contractName: "achieve", entrypoint: "achieve_flappy_beast_highscore", @@ -116,7 +137,7 @@ export function setupWorld(provider: DojoProvider) { }; }; - const achieve_achieveFlappyBeastHighscore = async (snAccount: Account | AccountInterface, score: number) => { + const achieve_achieveFlappyBeastHighscore = async (snAccount: Account | AccountInterface, score: BigNumberish) => { try { return await provider.execute( snAccount as any, @@ -129,7 +150,7 @@ export function setupWorld(provider: DojoProvider) { } }; - const build_achieve_achievePlatformHighscore_calldata = (score: number): DojoCall => { + const build_achieve_achievePlatformHighscore_calldata = (score: BigNumberish): DojoCall => { return { contractName: "achieve", entrypoint: "achieve_platform_highscore", @@ -137,7 +158,7 @@ export function setupWorld(provider: DojoProvider) { }; }; - const achieve_achievePlatformHighscore = async (snAccount: Account | AccountInterface, score: number) => { + const achieve_achievePlatformHighscore = async (snAccount: Account | AccountInterface, score: BigNumberish) => { try { return await provider.execute( snAccount as any, @@ -192,7 +213,7 @@ export function setupWorld(provider: DojoProvider) { } }; - const build_achieve_achieveScoreShare_calldata = (score: number): DojoCall => { + const build_achieve_achieveScoreShare_calldata = (score: BigNumberish): DojoCall => { return { contractName: "achieve", entrypoint: "achieve_score_share", @@ -200,7 +221,7 @@ export function setupWorld(provider: DojoProvider) { }; }; - const achieve_achieveScoreShare = async (snAccount: Account | AccountInterface, score: number) => { + const achieve_achieveScoreShare = async (snAccount: Account | AccountInterface, score: BigNumberish) => { try { return await provider.execute( snAccount as any, @@ -213,40 +234,19 @@ export function setupWorld(provider: DojoProvider) { } }; - const build_achieve_achieveBeastShare_calldata = (): DojoCall => { - return { - contractName: "achieve", - entrypoint: "achieve_beast_share", - calldata: [], - }; - }; - - const achieve_achieveBeastShare = async (snAccount: Account | AccountInterface) => { - try { - return await provider.execute( - snAccount as any, - build_achieve_achieveBeastShare_calldata(), - "tamagotchi", - ); - } catch (error) { - console.error(error); - throw error; - } - }; - - const build_player_emitPlayerPushToken_calldata = (token: string): DojoCall => { + const build_player_addOrUpdateFoodAmount_calldata = (foodId: BigNumberish, amount: BigNumberish): DojoCall => { return { contractName: "player", - entrypoint: "emit_player_push_token", - calldata: [token], + entrypoint: "add_or_update_food_amount", + calldata: [foodId, amount], }; }; - const player_emitPlayerPushToken = async (snAccount: Account | AccountInterface, token: string) => { + const player_addOrUpdateFoodAmount = async (snAccount: Account | AccountInterface, foodId: BigNumberish, amount: BigNumberish) => { try { return await provider.execute( snAccount as any, - build_player_emitPlayerPushToken_calldata(token), + build_player_addOrUpdateFoodAmount_calldata(foodId, amount), "tamagotchi", ); } catch (error) { @@ -255,19 +255,19 @@ export function setupWorld(provider: DojoProvider) { } }; - const build_player_addOrUpdateFoodAmount_calldata = (foodId: number, amount: number): DojoCall => { + const build_game_awake_calldata = (): DojoCall => { return { - contractName: "player", - entrypoint: "add_or_update_food_amount", - calldata: [foodId, amount], + contractName: "game", + entrypoint: "awake", + calldata: [], }; }; - const player_addOrUpdateFoodAmount = async (snAccount: Account | AccountInterface, foodId: number, amount: number) => { + const game_awake = async (snAccount: Account | AccountInterface) => { try { return await provider.execute( snAccount as any, - build_player_addOrUpdateFoodAmount_calldata(foodId, amount), + build_game_awake_calldata(), "tamagotchi", ); } catch (error) { @@ -276,19 +276,19 @@ export function setupWorld(provider: DojoProvider) { } }; - const build_game_awake_calldata = (): DojoCall => { + const build_game_clean_calldata = (): DojoCall => { return { contractName: "game", - entrypoint: "awake", + entrypoint: "clean", calldata: [], }; }; - const game_awake = async (snAccount: Account | AccountInterface) => { + const game_clean = async (snAccount: Account | AccountInterface) => { try { return await provider.execute( snAccount as any, - build_game_awake_calldata(), + build_game_clean_calldata(), "tamagotchi", ); } catch (error) { @@ -297,19 +297,19 @@ export function setupWorld(provider: DojoProvider) { } }; - const build_game_clean_calldata = (): DojoCall => { + const build_player_emitPlayerPushToken_calldata = (token: ByteArray): DojoCall => { return { - contractName: "game", - entrypoint: "clean", - calldata: [], + contractName: "player", + entrypoint: "emit_player_push_token", + calldata: [token], }; }; - const game_clean = async (snAccount: Account | AccountInterface) => { + const player_emitPlayerPushToken = async (snAccount: Account | AccountInterface, token: ByteArray) => { try { return await provider.execute( snAccount as any, - build_game_clean_calldata(), + build_player_emitPlayerPushToken_calldata(token), "tamagotchi", ); } catch (error) { @@ -318,7 +318,7 @@ export function setupWorld(provider: DojoProvider) { } }; - const build_game_feed_calldata = (foodId: number): DojoCall => { + const build_game_feed_calldata = (foodId: BigNumberish): DojoCall => { return { contractName: "game", entrypoint: "feed", @@ -326,7 +326,7 @@ export function setupWorld(provider: DojoProvider) { }; }; - const game_feed = async (snAccount: Account | AccountInterface, foodId: number) => { + const game_feed = async (snAccount: Account | AccountInterface, foodId: BigNumberish) => { try { return await provider.execute( snAccount as any, @@ -486,27 +486,6 @@ export function setupWorld(provider: DojoProvider) { } }; - const build_player_setCurrentBeast_calldata = (beastId: number): DojoCall => { - return { - contractName: "player", - entrypoint: "set_current_beast", - calldata: [beastId], - }; - }; - - const player_setCurrentBeast = async (snAccount: Account | AccountInterface, beastId: number) => { - try { - return await provider.execute( - snAccount as any, - build_player_setCurrentBeast_calldata(beastId), - "tamagotchi", - ); - } catch (error) { - console.error(error); - throw error; - } - }; - const build_game_sleep_calldata = (): DojoCall => { return { contractName: "game", @@ -528,7 +507,7 @@ export function setupWorld(provider: DojoProvider) { } }; - const build_game_spawnBeast_calldata = (specie: number, beastType: number): DojoCall => { + const build_game_spawnBeast_calldata = (specie: BigNumberish, beastType: BigNumberish): DojoCall => { return { contractName: "game", entrypoint: "spawn_beast", @@ -536,7 +515,7 @@ export function setupWorld(provider: DojoProvider) { }; }; - const game_spawnBeast = async (snAccount: Account | AccountInterface, specie: number, beastType: number) => { + const game_spawnBeast = async (snAccount: Account | AccountInterface, specie: BigNumberish, beastType: BigNumberish) => { try { return await provider.execute( snAccount as any, @@ -612,7 +591,7 @@ export function setupWorld(provider: DojoProvider) { } }; - const build_player_updatePlayerMinigameHighestScore_calldata = (points: number, minigameId: number): DojoCall => { + const build_player_updatePlayerMinigameHighestScore_calldata = (points: BigNumberish, minigameId: BigNumberish): DojoCall => { return { contractName: "player", entrypoint: "update_player_minigame_highest_score", @@ -620,7 +599,7 @@ export function setupWorld(provider: DojoProvider) { }; }; - const player_updatePlayerMinigameHighestScore = async (snAccount: Account | AccountInterface, points: number, minigameId: number) => { + const player_updatePlayerMinigameHighestScore = async (snAccount: Account | AccountInterface, points: BigNumberish, minigameId: BigNumberish) => { try { return await provider.execute( snAccount as any, @@ -633,7 +612,7 @@ export function setupWorld(provider: DojoProvider) { } }; - const build_player_updatePlayerTotalPoints_calldata = (points: number): DojoCall => { + const build_player_updatePlayerTotalPoints_calldata = (points: BigNumberish): DojoCall => { return { contractName: "player", entrypoint: "update_player_total_points", @@ -641,7 +620,7 @@ export function setupWorld(provider: DojoProvider) { }; }; - const player_updatePlayerTotalPoints = async (snAccount: Account | AccountInterface, points: number) => { + const player_updatePlayerTotalPoints = async (snAccount: Account | AccountInterface, points: BigNumberish) => { try { return await provider.execute( snAccount as any, @@ -666,6 +645,8 @@ export function setupWorld(provider: DojoProvider) { buildAchieveBeastFeedCalldata: build_achieve_achieveBeastFeed_calldata, achieveBeastPet: achieve_achieveBeastPet, buildAchieveBeastPetCalldata: build_achieve_achieveBeastPet_calldata, + achieveBeastShare: achieve_achieveBeastShare, + buildAchieveBeastShareCalldata: build_achieve_achieveBeastShare_calldata, achieveBeastSleep: achieve_achieveBeastSleep, buildAchieveBeastSleepCalldata: build_achieve_achieveBeastSleep_calldata, achieveFlappyBeastHighscore: achieve_achieveFlappyBeastHighscore, @@ -676,20 +657,16 @@ export function setupWorld(provider: DojoProvider) { buildAchievePlayMinigameCalldata: build_achieve_achievePlayMinigame_calldata, achievePlayerNewTotalPoints: achieve_achievePlayerNewTotalPoints, buildAchievePlayerNewTotalPointsCalldata: build_achieve_achievePlayerNewTotalPoints_calldata, - achieveBeastShare: achieve_achieveBeastShare, - buildAchieveBeastShareCalldata: build_achieve_achieveBeastShare_calldata, achieveScoreShare: achieve_achieveScoreShare, buildAchieveScoreShareCalldata: build_achieve_achieveScoreShare_calldata, }, player: { addOrUpdateFoodAmount: player_addOrUpdateFoodAmount, buildAddOrUpdateFoodAmountCalldata: build_player_addOrUpdateFoodAmount_calldata, - setCurrentBeast: player_setCurrentBeast, - buildSetCurrentBeastCalldata: build_player_setCurrentBeast_calldata, - spawnPlayer: player_spawnPlayer, - buildSpawnPlayerCalldata: build_player_spawnPlayer_calldata, emitPlayerPushToken: player_emitPlayerPushToken, buildEmitPlayerPushTokenCalldata: build_player_emitPlayerPushToken_calldata, + spawnPlayer: player_spawnPlayer, + buildSpawnPlayerCalldata: build_player_spawnPlayer_calldata, updatePlayerDailyStreak: player_updatePlayerDailyStreak, buildUpdatePlayerDailyStreakCalldata: build_player_updatePlayerDailyStreak_calldata, updatePlayerMinigameHighestScore: player_updatePlayerMinigameHighestScore, diff --git a/client/src/dojo/dojoConfig.ts b/client/src/dojo/dojoConfig.ts index 7fa0e1e7..463a64fe 100644 --- a/client/src/dojo/dojoConfig.ts +++ b/client/src/dojo/dojoConfig.ts @@ -14,5 +14,5 @@ export const dojoConfig = createDojoConfig({ masterAddress: VITE_PUBLIC_MASTER_ADDRESS || '0x04CDA1a7c67aC385Cd0a399D65c405E6539Cc3730c37Cc2C4a62b2F719CD1C0A', masterPrivateKey: VITE_PUBLIC_MASTER_PRIVATE_KEY || '0x056ed1031da41a9746534ff13bfd6e86e2071635b3408e49698443f3758c862e', rpcUrl: VITE_PUBLIC_NODE_URL || 'https://api.cartridge.gg/x/starknet/sepolia', - toriiUrl: VITE_PUBLIC_TORII || 'https://api.cartridge.gg/x/tamatoriitest/torii', + toriiUrl: VITE_PUBLIC_TORII || 'https://api.cartridge.gg/x/bbv2/torii', }); diff --git a/client/src/dojo/manifest_dev.json b/client/src/dojo/manifest_dev.json index 97e9d815..b8cd49a6 100644 --- a/client/src/dojo/manifest_dev.json +++ b/client/src/dojo/manifest_dev.json @@ -1,8 +1,8 @@ { "world": { "class_hash": "0x7c9469d45a9cdbab775035afb48e1fa73fb35ab059fcb9dfb0a301aa973e783", - "address": "0x1515beab64d67464edb8238d8efb07a3545e4a1999f36dea777c193e76c23b2", - "seed": "tamagotchi20", + "address": "0x3860cfcc70837fb5623b649ca38cd597c7fca80e920e94f8c433931b788ba32", + "seed": "tamagotchi21", "name": "ByteBeasts Tamagotchi", "entrypoints": [ "uuid", @@ -1312,7 +1312,7 @@ }, "contracts": [ { - "address": "0x678958bdd51b3caa74f0d229aaa35caafed0f03c280782d2dd71c389719bbd8", + "address": "0x70061966613c3788149d4bed8c391403ee19bc23f02d9ff6a056cfb646820e2", "class_hash": "0x2ae3f43544bc745744f339fffc5390aac05e3a99f16aadba70859ecd5b46116", "abi": [ { @@ -1614,8 +1614,8 @@ ] }, { - "address": "0x9ab404df9549cff7771d2404d1a4c18e04b75027c78a2c7eb43547ad76c021", - "class_hash": "0x3d04d0d39afaad64c781129dacd1309e79a22b5491713802f15bee6eeeb3ffe", + "address": "0x782425ff2132a84992b9e9e497c1305a7e48f6cf3928fd93b7e44ed8efea2ad", + "class_hash": "0x6f176e44dfe9658b2ceb331dcb6cf5b5c64124e33d4933ee16179d6f30314a2", "abi": [ { "type": "impl", @@ -2069,8 +2069,8 @@ ] }, { - "address": "0x3de2979483da64ed3e3067883a9dae195cbc8df991c4536116d27382c76990d", - "class_hash": "0x24eeedaa48d3c3de399ec22d854f14c3533170902e21c18c8fc6e3bb8187a0d", + "address": "0x4c315f29212f78341dc80bc80cd0a04b4e5deafef9bd7528cb2fc7de7098fc8", + "class_hash": "0x70ba7a173ffca7e69870438ef6e68a5c08f8746c84c1a733a2f065940910c3b", "abi": [ { "type": "impl", @@ -2145,18 +2145,6 @@ "outputs": [], "state_mutability": "external" }, - { - "type": "function", - "name": "set_current_beast", - "inputs": [ - { - "name": "beast_id", - "type": "core::integer::u16" - } - ], - "outputs": [], - "state_mutability": "external" - }, { "type": "function", "name": "update_player_daily_streak", @@ -2336,7 +2324,6 @@ "systems": [ "dojo_init", "spawn_player", - "set_current_beast", "update_player_daily_streak", "update_player_total_points", "update_player_minigame_highest_score", diff --git a/client/src/hooks/useTamagotchi.ts b/client/src/hooks/useTamagotchi.ts index 962b6ad1..e8935e8f 100644 --- a/client/src/hooks/useTamagotchi.ts +++ b/client/src/hooks/useTamagotchi.ts @@ -78,10 +78,10 @@ export const useTamagotchi = (currentBeast: any) => { const newStatus = await fetchStatus(account); if (newStatus && Object.keys(newStatus).length !== 0) { // Verificar que el status corresponde a la bestia actual - if (newStatus[0] === currentBeast.beast_id) { + if (newStatus[1] === currentBeast.beast_id) { setStatus(newStatus as number[]); } else { - console.log('Status received for different beast:', newStatus[0], 'current beast:', currentBeast.beast_id); + console.log('Status received for different beast:', newStatus[1], 'current beast:', currentBeast.beast_id); } } } @@ -98,7 +98,7 @@ export const useTamagotchi = (currentBeast: any) => { const handleCuddle = async () => { if (isLoading || !currentBeast || !currentBeast.beast_id || !account || isActionDisabled) return; - if (status[1] === 0 || status[2] === 0) return; + if (status[2] === 0 || status[3] === 0) return; try { setIsActionDisabled(true); @@ -112,10 +112,10 @@ export const useTamagotchi = (currentBeast: any) => { const newStatus = await fetchStatus(account); if (newStatus && Object.keys(newStatus).length !== 0) { // Verificar que el status corresponde a la bestia actual - if (newStatus[0] === currentBeast.beast_id) { + if (newStatus[1] === currentBeast.beast_id) { setStatus(newStatus as number[]); } else { - console.log('Status received for different beast:', newStatus[0], 'current beast:', currentBeast.beast_id); + console.log('Status received for different beast:', newStatus[1], 'current beast:', currentBeast.beast_id); } } } @@ -192,7 +192,7 @@ export const useTamagotchi = (currentBeast: any) => { } } - if (!status || (bodyElement && status[1] === 0)) { + if (!status || (bodyElement && status[2] === 0)) { bodyElement?.classList.remove('day'); } }, [status]); @@ -222,12 +222,12 @@ export const useTamagotchi = (currentBeast: any) => { } // Si tenemos status y corresponde a la bestia actual - if (status[0] === currentBeast.beast_id) { - if (status[1] === 0) { + if (status[1] === currentBeast.beast_id) { + if (status[2] === 0) { setCurrentImage(dead); setCurrentView('actions'); setIsLoading(false); - } else if (status[2] === 0) { + } else if (status[3] === 0) { setCurrentImage(beastsDex[currentBeast.specie - 1]?.sleepPicture); setCurrentView('actions'); setIsLoading(false); @@ -267,12 +267,11 @@ export const useTamagotchi = (currentBeast: any) => { if (statusResponse && Object.keys(statusResponse).length !== 0) { const newStatus = statusResponse as number[]; - if (newStatus[0] === currentBeast.beast_id) { + if (newStatus[1] === currentBeast.beast_id) { setStatus(newStatus); setIsLoading(false); } else { - await client.player.setCurrentBeast(account!, currentBeast.beast_id); - console.log('Status received for different beast:', newStatus[0], 'current beast:', currentBeast.beast_id); + console.log('Status received for different beast:', newStatus[1], 'current beast:', currentBeast.beast_id); setIsLoading(true); } } else { diff --git a/client/vite.config.ts b/client/vite.config.ts index 2936a810..8b45c9cf 100644 --- a/client/vite.config.ts +++ b/client/vite.config.ts @@ -3,15 +3,15 @@ import topLevelAwait from "vite-plugin-top-level-await"; import { defineConfig } from "vite"; import { VitePWA } from "vite-plugin-pwa"; import wasm from "vite-plugin-wasm"; -import fs from "fs"; +// import fs from "fs"; export default defineConfig({ - server: { - https: { - key: fs.readFileSync("mkcert+1-key.pem"), // Path to private key file - cert: fs.readFileSync("mkcert+1.pem"), // Path to certificate file - }, - }, + // server: { + // https: { + // key: fs.readFileSync("mkcert+1-key.pem"), // Path to private key file + // cert: fs.readFileSync("mkcert+1.pem"), // Path to certificate file + // }, + // }, plugins: [ react(), wasm(),