Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion client/.env
Original file line number Diff line number Diff line change
Expand Up @@ -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/tamatorii/torii"
VITE_PUBLIC_MASTER_ADDRESS="0x04CDA1a7c67aC385Cd0a399D65c405E6539Cc3730c37Cc2C4a62b2F719CD1C0A"
VITE_PUBLIC_MASTER_PRIVATE_KEY="0x056ed1031da41a9746534ff13bfd6e86e2071635b3408e49698443f3758c862e"
VITE_PUBLIC_SLOT_ADDRESS="https://api.cartridge.gg/x/bytebeaststamagotchi/katana"
Expand Down
2 changes: 1 addition & 1 deletion client/dev-dist/sw.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ define(['./workbox-20a2f87f'], (function (workbox) { 'use strict';
"revision": "3ca0b8505b4bec776b69afdba2768812"
}, {
"url": "index.html",
"revision": "0.90s8ruuoado"
"revision": "0.trl9dgsmccg"
}], {});
workbox.cleanupOutdatedCaches();
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
Expand Down
2 changes: 0 additions & 2 deletions client/src/components/FlappyBeasts/flappyBeasts.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,6 @@ const FlappyBirdMiniGame = forwardRef<FlappyBirdRefHandle, FlappyBirdProps>(({
async () => {
await client.player.updatePlayerTotalPoints(account, score);
const txtest = await client.achieve.achievePlayerNewTotalPoints(account);
console.info('achievePlayerNewTotalPoints fkaooy', txtest);
await client.player.updatePlayerMinigameHighestScore(account, score, 2);
await client.player.addOrUpdateFoodAmount(account, foodId, foodCollected);
});
Expand Down Expand Up @@ -218,7 +217,6 @@ const FlappyBirdMiniGame = forwardRef<FlappyBirdRefHandle, FlappyBirdProps>(({
if (score > actualHighScore) {
setCurrentHighScore(score);
const tx = await client.achieve.achieveFlappyBeastHighscore(account as Account, score);
console.info('tx flappy highscore', tx);
} else {
setCurrentHighScore(actualHighScore);
}
Expand Down
16 changes: 4 additions & 12 deletions client/src/components/SkyJumpMiniGame/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ const CanvasSkyJumpGame = forwardRef<SkyJumpGameRefHandle, CanvasSkyJumpGameProp
if (engineFinalScore > dojoHighScore) {
setCurrentHighScore(engineFinalScore);
const tx = await client.achieve.achievePlatformHighscore(account as Account, engineFinalScore);
console.info('tx sky jump achievePlatformHighscore', tx);
} else {
setCurrentHighScore(dojoHighScore);
}
Expand Down Expand Up @@ -198,17 +197,10 @@ const CanvasSkyJumpGame = forwardRef<SkyJumpGameRefHandle, CanvasSkyJumpGameProp
await handleAction(
"SaveGameResults",
async () => {
const updatePlayerTotalPoints = await client.player.updatePlayerTotalPoints(account, score);
console.info('updatePlayerTotalPoints', updatePlayerTotalPoints);

const updatePlayerMinigameHighestScore = await client.player.updatePlayerMinigameHighestScore(account, score, GameId.SKY_JUMP);
console.info('updatePlayerMinigameHighestScore', updatePlayerMinigameHighestScore);

const addOrUpdateFoodAmount = await client.player.addOrUpdateFoodAmount(account, foodId, foodCollected);
console.info('addOrUpdateFoodAmount', addOrUpdateFoodAmount);

const achievePlayerNewTotalPoints = await client.achieve.achievePlayerNewTotalPoints(account);
console.info('achievePlayerNewTotalPoints', achievePlayerNewTotalPoints);
await client.player.updatePlayerTotalPoints(account, score);
await client.player.updatePlayerMinigameHighestScore(account, score, GameId.SKY_JUMP);
await client.player.addOrUpdateFoodAmount(account, foodId, foodCollected);
await client.achieve.achievePlayerNewTotalPoints(account);
}
);
return true;
Expand Down
36 changes: 17 additions & 19 deletions client/src/components/SpawnBeast/index.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// React and external libraries
import { useEffect, useState } from "react";
import { useEffect, useMemo, useState } from "react";
import { useNavigate, useSearchParams } from 'react-router-dom';
import { useAccount } from "@starknet-react/core";
import { Account } from "starknet";
import { Account, addAddressPadding } from "starknet";
import { useDojoSDK } from "@dojoengine/sdk/react";

// Internal components
Expand All @@ -13,14 +13,13 @@ import ProgressBar from '../ProgressBar/index.tsx';
// Hooks and Contexts
import { useSystemCalls } from "../../dojo/useSystemCalls.ts";
import { usePlayer } from "../../hooks/usePlayers.tsx";
import { fetchBeastsData, processBeastData } from "../../hooks/useBeasts";
import { useBeasts, fetchBeastsData } from "../../hooks/useBeasts";

// Types
import type {
SpawnBeastProps,
SpawnBeastState
} from '../../types/components';
import type { Beast } from '../../types/game';

// Utils
import { getRandomNumber } from './utils/helpers';
Expand All @@ -38,7 +37,14 @@ const SpawnBeast: React.FC<SpawnBeastProps> = ({ className = '' }) => {
const { spawn } = useSystemCalls();
const navigate = useNavigate();
const [searchParams] = useSearchParams();


const userAddress = useMemo(() =>
account ? addAddressPadding(account.address).toLowerCase() : '',
[account]
);

const { myBeastsData, refetch } = useBeasts(userAddress);

// State
const [state, setState] = useState<SpawnBeastState>({
loading: false,
Expand Down Expand Up @@ -73,8 +79,7 @@ const SpawnBeast: React.FC<SpawnBeastProps> = ({ className = '' }) => {
if (!player) {
setSpawnProgress({ progress: 20, message: 'Creating player account' });
const spawnPlayerTx = await client.player.spawnPlayer(account as Account);
console.info('spawnPlayerTx', spawnPlayerTx);


// Esperar un momento para que se actualice el player
await new Promise(resolve => setTimeout(resolve, 2000));
setSpawnProgress({ progress: 40, message: 'Player account created!' });
Expand All @@ -83,24 +88,17 @@ const SpawnBeast: React.FC<SpawnBeastProps> = ({ className = '' }) => {
setSpawnProgress({ progress: 50, message: 'Generating your beast' });
const randomBeastId = getRandomNumber(MIN_BEAST_ID, MAX_BEAST_ID);
const { spawnTx } = await spawn(randomBeastId);
await new Promise(resolve => setTimeout(resolve, 2000));

if (spawnTx && spawnTx.code === "SUCCESS") {
refetch();
const beastsData = await fetchBeastsData();
console.log('beastsData', beastsData);
setSpawnProgress({ progress: 70, message: 'Beast generated! Setting as current' });
let newBeast;
do {
// Recargar la lista de beasts usando GraphQL
const beastsData = await fetchBeastsData();
const processedBeasts = await processBeastData(beastsData);

// Encontrar la bestia recién creada
newBeast = processedBeasts.find((beast: Beast) => beast.player === account!.address);
await new Promise(resolve => setTimeout(resolve, 2000));
} while (!newBeast);

const newBeast = myBeastsData[0];
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));
setSpawnProgress({ progress: 100, message: 'Your beast is ready!' });
setTimeout(() => {
Expand Down
3 changes: 0 additions & 3 deletions client/src/components/Tamagotchi/Play/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@ const Play: React.FC<PlayProps> = ({
}) => {
const navigate = useNavigate();
const { myScoreFlappyBird, myScoreSkyJump } = useHighScores();
console.info('myScoreFlappyBird', myScoreFlappyBird);
console.info('myScoreSkyJump', myScoreSkyJump);

const GAME_ID_MAPPING: Record<string, number> = {
'doodleGame': 1, // SkyJump
Expand All @@ -50,7 +48,6 @@ const Play: React.FC<PlayProps> = ({
try {

const tx = await client.achieve.achievePlayMinigame(account);
console.info('tx achievePlayMinigame', tx);

handleAction(
"Play",
Expand Down
2 changes: 0 additions & 2 deletions client/src/components/Twitter/ShareProgress.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -104,10 +104,8 @@ export const ShareProgress: React.FC<ShareModalProps> = ({
e.stopPropagation();
if (minigameData) {
const tx = await client.achieve.achieveScoreShare(account, minigameData.score);
console.info('achieveScoreShare ', tx)
} else {
const tx = await client.achieve.achieveBeastShare(account);
console.info('achieveBeastShare ', tx)
}
}}
>
Expand Down
29 changes: 13 additions & 16 deletions client/src/config/cartridgeConnector.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import { ColorMode, SessionPolicies, ControllerOptions, } from "@cartridge/contr
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 VRF_PROVIDER_ADDRESS = '0x051fea4450da9d6aee758bdeba88b2f665bcbf549d2c61421aa724e9ac0ced8f';

const policies: SessionPolicies = {
contracts: {
Expand All @@ -25,7 +25,7 @@ const policies: SessionPolicies = {
{ name: "play", entrypoint: "play" },
{ name: "revive", entrypoint: "revive" },
{ name: "sleep", entrypoint: "sleep" },
{ name: "spawn_beast", entrypoint: "spawn_beast" },
// { name: "spawn_beast", entrypoint: "spawn_beast" },
{ name: "update_beast", entrypoint: "update_beast" },
{ name: "update_food_amount", entrypoint: "update_food_amount" },
],
Expand Down Expand Up @@ -116,25 +116,22 @@ const policies: SessionPolicies = {
},
],
},

// [VRF_PROVIDER_ADDRESS]: {
// methods: [
// {
// name: "request_random",
// entrypoint: "request_random",
// description: "Allows requesting random numbers from the VRF provider"
// },
// ],
// },
},
}

// Controller basic configuration
const colorMode: ColorMode = "dark";
const theme = "bytebeasts-tamagotchi";
const namespace = "tamagotchi"; //ensure this is correct
const slot = `bytebeasts-tamagotchi-${VITE_PUBLIC_DEPLOY_TYPE || 'dev'}`; //ensure bytebeasts-tamagotchi this is correct

const getRpcUrl = () => {
switch (VITE_PUBLIC_DEPLOY_TYPE) {
case "mainnet":
return "https://api.cartridge.gg/x/starknet/mainnet";
case "sepolia":
return "https://api.cartridge.gg/x/starknet/sepolia";
default:
return VITE_PUBLIC_SLOT_ADDRESS;
}
};

const options: ControllerOptions = {
// @ts-ignore
Expand All @@ -149,7 +146,7 @@ const options: ControllerOptions = {
colorMode,
preset: "bytebeasts-tamagotchi",
namespace: "tamagotchi",
slot: "toriibbtest"
slot: "tamatorii"
};

const cartridgeConnector = new ControllerConnector(
Expand Down
4 changes: 4 additions & 0 deletions client/src/dojo/bindings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export interface BeastValue {
// Type definition for `tamagotchi::models::beast_status::BeastStatus` struct
export interface BeastStatus {
beast_id: number;
player: string;
is_alive: boolean;
is_awake: boolean;
hunger: number;
Expand All @@ -33,6 +34,7 @@ export interface BeastStatus {

// Type definition for `tamagotchi::models::beast_status::BeastStatusValue` struct
export interface BeastStatusValue {
player: string;
is_alive: boolean;
is_awake: boolean;
hunger: number;
Expand Down Expand Up @@ -190,6 +192,7 @@ export const schema: SchemaType = {
},
BeastStatus: {
beast_id: 0,
player: "",
is_alive: false,
is_awake: false,
hunger: 0,
Expand All @@ -200,6 +203,7 @@ export const schema: SchemaType = {
last_timestamp: 0,
},
BeastStatusValue: {
player: "",
is_alive: false,
is_awake: false,
hunger: 0,
Expand Down
2 changes: 1 addition & 1 deletion client/src/dojo/dojoConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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/tamatorii/torii',
});
20 changes: 12 additions & 8 deletions client/src/dojo/manifest_dev.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"world": {
"class_hash": "0x7c9469d45a9cdbab775035afb48e1fa73fb35ab059fcb9dfb0a301aa973e783",
"address": "0x55ab491f46e96bfdbefab82c7ff1101bf8fd10bdb4e47c01533bc2a2a1e9e9e",
"seed": "tamagotchi17",
"address": "0x7220cd7725010ad17892773ffcca9347fcd2c899171a4df67b740196ec0a1d6",
"seed": "tamagotchi19",
"name": "ByteBeasts Tamagotchi",
"entrypoints": [
"uuid",
Expand Down Expand Up @@ -1312,7 +1312,7 @@
},
"contracts": [
{
"address": "0x1005116a48c9a8f7a6c946091e64dc8ced37962dc2bbb74355868229307c20d",
"address": "0x7b0cb70509a095f27b9d1187c433421b8cb2e731366f0ee8b27fd48dbf149fc",
"class_hash": "0x2ae3f43544bc745744f339fffc5390aac05e3a99f16aadba70859ecd5b46116",
"abi": [
{
Expand Down Expand Up @@ -1614,8 +1614,8 @@
]
},
{
"address": "0x58971d723d0100ae8393550f9166c9dad9b79799a48fc31f0d9684ef556dda9",
"class_hash": "0x42f4064e1316913658aa9097a3275f68b9d11d7c5282dfb026f78a6d61a25db",
"address": "0x5f40f5c23253d2f4d22849880c89483df6a7f22a3f3b2fa4c88d0476a27d5de",
"class_hash": "0x52a9790e907235c127df5560cc2f89064188a5639fd1a0cd40fc9b9e9a646d9",
"abi": [
{
"type": "impl",
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -2065,7 +2069,7 @@
]
},
{
"address": "0x6b7b30fcd29c41bca831b87db67e3c8af2abb374dc2fabbbf09f4744aa22988",
"address": "0x6ac1c61c0fbdeca534ab1791b138da22b20d6b3a3c82de01b2bb804d35a4756",
"class_hash": "0x24eeedaa48d3c3de399ec22d854f14c3533170902e21c18c8fc6e3bb8187a0d",
"abi": [
{
Expand Down Expand Up @@ -2352,7 +2356,7 @@
},
{
"members": [],
"class_hash": "0x2d33cad545c3e9b01b8a328418c0bc5dc529ec0abb1f3f4efa18f10c3bfb837",
"class_hash": "0x52dfc0a351c1b7770289b2f14d2dfcf0d8b4b5586872efaef763105be4808be",
"tag": "tamagotchi-BeastStatus",
"selector": "0x7dd28052791e63bdc06d6ba2a8eca548b4580c2e83bb96c03ef0a2d84f8ffde"
},
Expand Down Expand Up @@ -2396,4 +2400,4 @@
}
],
"external_contracts": []
}
}
Loading