diff --git a/Scarb.toml b/Scarb.toml index 8c634b6d8..c69fe6077 100644 --- a/Scarb.toml +++ b/Scarb.toml @@ -28,7 +28,7 @@ auth = "./scripts/default_auth.sh" # migrate && scarb run gendojo $PROFILE migrate = "PROFILE=dev && sozo -P $PROFILE build && sozo -P $PROFILE migrate apply && scarb run copy_manifest $PROFILE && scarb run gendojo $PROFILE && scarb run auth $PROFILE" migrate_ryo420 = "PROFILE=ryo420 && sozo -P $PROFILE build && sozo -P $PROFILE migrate apply && scarb run copy_manifest $PROFILE && scarb run auth $PROFILE" -migrate_ryo421 = "PROFILE=ryo421 && sozo -P $PROFILE build && sozo -P $PROFILE migrate apply && scarb run copy_manifest $PROFILE && scarb run auth $PROFILE" +migrate_ryo421 = "PROFILE=ryo421 && sozo -P $PROFILE build && sozo -P $PROFILE migrate apply && scarb run copy_manifest $PROFILE && scarb run gendojo $PROFILE && scarb run auth $PROFILE" migrateplan_sepolia = "PROFILE=ryosepolia && sozo -P $PROFILE build && sozo -P $PROFILE migrate plan --name ryo000" migrate_sepolia = "PROFILE=ryosepolia && sozo -P $PROFILE build && sozo -P $PROFILE migrate apply --name ryo000 --fee-estimate-multiplier 5 && scarb run copy_manifest $PROFILE" @@ -39,8 +39,8 @@ slot_ryo420_katana = "slot d create ryo420 katana --version v0.7.0-alpha.5 -a 4 slot_ryo420_torii = "slot d create ryo420 torii --rpc https://api.cartridge.gg/x/ryo420/katana -s 0 --index-pending true --version v0.7.0-alpha.5 --world 0x78fcdfcc137fa18770f660ba2e8a3cf263907df38dfd462dc4dda048979c011" # slot ryo421 -slot_ryo421_katana = "slot d create ryo421 katana --seed 421 --version v0.7.0-alpha.5 -a 4 -b 5000 --disable-fee true --invoke-max-steps 1000000" -slot_ryo421_torii = "slot d create ryo421 torii --rpc https://api.cartridge.gg/x/ryo421/katana -s 0 --index-pending true --version v0.7.0-alpha.5 --world 0x78fcdfcc137fa18770f660ba2e8a3cf263907df38dfd462dc4dda048979c011" +slot_ryo421_katana = "slot d create ryo421 katana --seed 421 --version v0.7.0-alpha.3 --chain-id KATANA_SLOT_421 -b 1000 --disable-fee true --invoke-max-steps 2000000" +slot_ryo421_torii = "slot d create ryo421 torii --rpc https://api.cartridge.gg/x/ryo421/katana -s 0 --index-pending true --version v0.7.0-alpha.3 --world 0x45780a1a9786ee6bcd2e347d43d717a385dbd72e8282676d891835e0a278d14" # slot ryo_sepolia slot_ryosepolia_torii = "slot d create ryosepolia torii --rpc https://api.cartridge.gg/rpc/starknet-sepolia -s 63200 --version v0.7.0-alpha.1 --world 0x45d3b72e3c6c85c38d43798b9751817f14fac4b14c3645480683f8fae1c6464" @@ -57,7 +57,6 @@ build-external-contracts = [ "token::components::token::erc20::erc20_burnable::erc_20_burnable_model", ] - [tool.dojo.env] rpc_url = "http://localhost:5050" account_address = "0x6162896d1d7ab204c7ccac6dd5f8e9e7c25ecd5ae4fcb4ad32e57786bb46e03" @@ -70,8 +69,8 @@ private_key = "0x18055e629284db77daa8d60e4ca767d65807c3f1690785006e46d6e63a13d54 [profile.ryo421.tool.dojo.env] rpc_url = "https://api.cartridge.gg/x/ryo421/katana" -account_address = "0x41aba7a917019ec5e3f72fe6e082330251137fc155b74d5dde8dcc86ba791b6" -private_key = "0x46ad0fc36a495c00768b40d2832c84519f539cf28bc477c5e06af9f8baf96c4" +account_address = "0x7d806fc9478c73c60fac37c27888771bdb3092c21eb93452277e7673954d034" +private_key = "0x784b1dd14d761c414c6394fccca3ca1d1b0cac187e88122e4b06378f9e8c515" [profile.ryosepolia.tool.dojo.env] # world_address= "0x45d3b72e3c6c85c38d43798b9751817f14fac4b14c3645480683f8fae1c6464" @@ -86,26 +85,15 @@ keystore_path = "/Users/boo/sozo_acc" # account_address = "0x795abc2a2d5866f75c58025741329973db20966d1add5dd2a9fbdf0bb8a0266" # private_key = "0x2e8ac99614186737cefc47effe03134f5a19c6dc2443c16510d3384769f9c78" - [tool.dojo.world] name = "Dope Wars" description = "Dope Wars is an onchain adaptation of the classic arbitrage game Drug Wars, built by Cartridge in partnership with Dope DAO." -website = "https://dopewars.game/" -icon_uri = "file://assets/icon.png" -cover_uri = "file://assets/cover.png" -socials.x = "https://x.com/TheDopeWars" - - -[profile.ryo421.tool.dojo.world] -name = "Dope Wars" -description = "Dope Wars is an onchain adaptation of the classic arbitrage game Drug Wars, built by Cartridge in partnership with Dope DAO." -website = "https://dopewars.game/" +website = "https://rollyourown.preview.cartridge.gg/" icon_uri = "file://assets/icon.png" cover_uri = "file://assets/cover.png" socials.x = "https://x.com/TheDopeWars" - # alpha.3 # create game : Steps: 272281 | Bitwise: 194 | Ec Op Builtin: 3 | L 1 Blob Gas Usage: 0 | L1 Gas: 10176 | Pedersen: 50 | Poseidon Builtin: 60 | Range Checks: 42093 # buy & travel : Steps: 420350 | Bitwise: 296 | Ec Op Builtin: 3 | L 1 Blob Gas Usage: 0 | L1 Gas: 3550 | Pedersen: 56 | Poseidon Builtin: 37 | Range Checks: 77213 diff --git a/src/config/encounters.cairo b/src/config/encounters.cairo index 6fea48cfc..3e2ac327e 100644 --- a/src/config/encounters.cairo +++ b/src/config/encounters.cairo @@ -42,11 +42,11 @@ fn initialize_encounter_stats_config(s: IStoreLibraryDispatcher) { health_base: 12 - 2, health_step: 8 - 2, attack_base: 14 - 2, - attack_step: 9 - 2, - defense_base: 16 - 4, + attack_step: 8 - 2, + defense_base: 16 - 2, defense_step: 9 - 2, - speed_base: 6, - speed_step: 9 - 2, + speed_base: 6 - 2, + speed_step: 8 - 2, } ); @@ -58,11 +58,11 @@ fn initialize_encounter_stats_config(s: IStoreLibraryDispatcher) { health_base: 1, health_step: 11 - 2, attack_base: 5, - attack_step: 12 - 2, - defense_base: 7 - 4, + attack_step: 11 - 2, + defense_base: 7, defense_step: 8 - 2, speed_base: 2, - speed_step: 9 - 2, + speed_step: 8 - 2, } ); @@ -76,11 +76,11 @@ fn initialize_encounter_stats_config(s: IStoreLibraryDispatcher) { health_base: 12, health_step: 8, attack_base: 14, - attack_step: 9, + attack_step: 8, defense_base: 16, defense_step: 9, speed_base: 6, - speed_step: 9, + speed_step: 8, } ); @@ -92,11 +92,11 @@ fn initialize_encounter_stats_config(s: IStoreLibraryDispatcher) { health_base: 1, health_step: 11, attack_base: 5, - attack_step: 12, + attack_step: 11, defense_base: 7, defense_step: 8, speed_base: 2, - speed_step: 9, + speed_step: 8, } ); @@ -107,14 +107,14 @@ fn initialize_encounter_stats_config(s: IStoreLibraryDispatcher) { EncounterStatsConfig { encounter: Encounters::Cops, encounters_mode: EncountersMode::UltraViolence, - health_base: 12 + 3, + health_base: 12 + 2, health_step: 8 + 2, - attack_base: 14 + 3, - attack_step: 9 + 2, - defense_base: 16 + 3, + attack_base: 14 + 2, + attack_step: 8 + 2, + defense_base: 16 + 2, defense_step: 9 + 2, - speed_base: 6 + 3, - speed_step: 9 + 2, + speed_base: 6 + 2, + speed_step: 8 + 2, } ); @@ -123,14 +123,14 @@ fn initialize_encounter_stats_config(s: IStoreLibraryDispatcher) { EncounterStatsConfig { encounter: Encounters::Gang, encounters_mode: EncountersMode::UltraViolence, - health_base: 1 + 4, - health_step: 11 + 4, - attack_base: 5 + 4, - attack_step: 12 + 4, - defense_base: 7 + 4, - defense_step: 8 + 4, - speed_base: 2 + 4, - speed_step: 9 + 4, + health_base: 1 + 3, + health_step: 11 + 3, + attack_base: 5 + 3, + attack_step: 11 + 3, + defense_base: 7 + 3, + defense_step: 8 + 3, + speed_base: 2 + 3, + speed_step: 8 + 3, } ); } @@ -194,8 +194,8 @@ impl EncounterSpawnerImpl of EncounterSpawnerTrait { fn get_encounter_level(ref season_settings: SeasonSettings, reputation: u8) -> u8 { let level = match season_settings.encounters_odds_mode { EncountersOddsMode::Easy => { reputation / 20 + 1 }, - EncountersOddsMode::Normal => { reputation / 15 + 1 }, - EncountersOddsMode::Hard => { reputation / 10 + 1 }, + EncountersOddsMode::Normal => { reputation / 16 + 1 }, + EncountersOddsMode::Hard => { reputation / 12 + 1 }, }; MathImplU8::min(6, level) @@ -287,8 +287,8 @@ impl EncounterImpl of EncounterTrait { } fn get_payout(self: EncounterConfig, ref game_store: GameStore) -> u32 { - let turn_modifer = game_store.player.turn / 3; - (self.level.into() * 2 + (turn_modifer.into() * turn_modifer.into())) * 900 + let turn_modifer = game_store.player.turn / 5; + (self.level.into() * 3 + (turn_modifer.into() * turn_modifer.into())) * 1_000 } } diff --git a/src/config/hustlers.cairo b/src/config/hustlers.cairo index 57aca56ff..546eec0c4 100644 --- a/src/config/hustlers.cairo +++ b/src/config/hustlers.cairo @@ -344,7 +344,7 @@ fn initialize_weapons_tiers_config(world: IWorldDispatcher) { slot_id: ItemSlot::Weapon.into(), tier: 3, stat: 36, - cost: 2_900, + cost: 2_600, } ); set!( @@ -354,7 +354,7 @@ fn initialize_weapons_tiers_config(world: IWorldDispatcher) { slot_id: ItemSlot::Weapon.into(), tier: 4, stat: 48, - cost: 16_900, + cost: 12_000, } ); set!( @@ -364,7 +364,7 @@ fn initialize_weapons_tiers_config(world: IWorldDispatcher) { slot_id: ItemSlot::Weapon.into(), tier: 5, stat: 60, - cost: 79_900, + cost: 75_000, } ); set!( @@ -403,7 +403,7 @@ fn initialize_clothes_tiers_config(world: IWorldDispatcher) { slot_id: ItemSlot::Clothes.into(), tier: 3, stat: 36, - cost: 2_900, + cost: 2_800, } ); set!( @@ -413,7 +413,7 @@ fn initialize_clothes_tiers_config(world: IWorldDispatcher) { slot_id: ItemSlot::Clothes.into(), tier: 4, stat: 48, - cost: 11_900, + cost: 11_000, } ); set!( @@ -423,7 +423,7 @@ fn initialize_clothes_tiers_config(world: IWorldDispatcher) { slot_id: ItemSlot::Clothes.into(), tier: 5, stat: 60, - cost: 66_900, + cost: 65_000, } ); set!( @@ -448,25 +448,25 @@ fn initialize_feet_tiers_config(world: IWorldDispatcher) { set!( world, HustlerItemTiersConfig { - slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 2, stat: 10, cost: 300, + slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 2, stat: 12, cost: 300, } ); set!( world, HustlerItemTiersConfig { - slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 3, stat: 20, cost: 1_800, + slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 3, stat: 25, cost: 1_600, } ); set!( world, HustlerItemTiersConfig { - slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 4, stat: 32, cost: 16_900, + slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 4, stat: 40, cost: 9_600, } ); set!( world, HustlerItemTiersConfig { - slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 5, stat: 45, cost: 89_900, + slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 5, stat: 55, cost: 58_000, } ); set!( @@ -505,7 +505,7 @@ fn initialize_transport_tiers_config(world: IWorldDispatcher) { slot_id: ItemSlot::Transport.into(), tier: 3, stat: 3000, - cost: 59_900, + cost: 59_500, } ); set!( diff --git a/src/config/settings.cairo b/src/config/settings.cairo index 6ff0ab03e..f03c70e56 100644 --- a/src/config/settings.cairo +++ b/src/config/settings.cairo @@ -98,8 +98,8 @@ impl SeasonSettingsImpl of SeasonSettingsTrait { rep_drug_step: 20, rep_buy_item: 2, rep_carry_drugs: 2, - rep_hospitalized: 3, - rep_jailed: 5, + rep_hospitalized: 4, + rep_jailed: 6, } } @@ -125,9 +125,9 @@ impl SeasonSettingsImpl of SeasonSettingsTrait { fn get_max_turns(self: SeasonSettings) -> u8 { match self.turns_mode { - TurnsMode::OnSpeed => { 20 }, - TurnsMode::OnWeed => { 24 }, - TurnsMode::OnMush => { 28 }, + TurnsMode::OnSpeed => { 24 }, + TurnsMode::OnWeed => { 30 }, + TurnsMode::OnMush => { 36 }, } } diff --git a/src/packing/game_store.cairo b/src/packing/game_store.cairo index 3be744118..ef65826df 100644 --- a/src/packing/game_store.cairo +++ b/src/packing/game_store.cairo @@ -137,7 +137,7 @@ impl GameStoreImpl of GameStoreTrait { return false; } - if self.player.turn >= self.game_config().max_turns { + if self.player.turn == self.game_config().max_turns { return false; } diff --git a/src/systems/devtools.cairo b/src/systems/devtools.cairo index aba51c651..d6ebd494f 100644 --- a/src/systems/devtools.cairo +++ b/src/systems/devtools.cairo @@ -45,7 +45,7 @@ mod devtools { let season_manager = SeasonManagerTrait::new(self.s()); let season_version = season_manager.get_current_version(); - let mut randomizer = RandomImpl::new(array!['devtools', game_id.into()].span()); + let mut randomizer = RandomImpl::new('devtools'); let rand_score: u32 = if final_score > 0 { final_score } else { @@ -100,7 +100,7 @@ mod devtools { ryo_config.season_version += 1; self.s().save_ryo_config(ryo_config); - let mut randomizer = RandomImpl::new(array!['devtools', ryo_config.season_version.into()].span()); + let mut randomizer = RandomImpl::new('devtools'); let season_manager = SeasonManagerTrait::new(self.s()); season_manager.new_season(ref randomizer, ryo_config.season_version); } diff --git a/src/systems/game.cairo b/src/systems/game.cairo index 1afc780c1..2342b90dd 100644 --- a/src/systems/game.cairo +++ b/src/systems/game.cairo @@ -246,7 +246,7 @@ mod game { let mut actions = actions; self.execute_actions(ref game_store, ref actions); - let mut randomizer = RandomImpl::new( array!['travel', game_id.into(), game_store.player.turn.into()].span()); + let mut randomizer = RandomImpl::new('travel'); let mut season_settings = self.s().season_settings(game_store.game.season_version); // save next_location game_store.player.next_location = next_location; @@ -279,7 +279,7 @@ mod game { // check player status assert(game_store.player.can_decide(), 'player cannot decide'); - let mut randomizer = RandomImpl::new(array!['decide', game_id.into(), game_store.player.turn.into()].span()); + let mut randomizer = RandomImpl::new('decide'); let mut season_settings = self.s().season_settings(game_store.game.season_version); // // resolve decision diff --git a/src/systems/helpers/game_loop.cairo b/src/systems/helpers/game_loop.cairo index c1ba1f6b3..9c146c032 100644 --- a/src/systems/helpers/game_loop.cairo +++ b/src/systems/helpers/game_loop.cairo @@ -45,7 +45,7 @@ fn on_turn_end( game_store.player.next_location = Locations::Home; // update turn - game_store.player.turn = game_store.player.turn.add_capped(1, game_store.game_config().max_turns); + game_store.player.turn += 1; // increase reputation by rep_carry_drugs if carrying drugs, 1 otherwise let mut game_config = game_store.game_config(); diff --git a/src/systems/helpers/traveling.cairo b/src/systems/helpers/traveling.cairo index 2cc448c23..a58d73276 100644 --- a/src/systems/helpers/traveling.cairo +++ b/src/systems/helpers/traveling.cairo @@ -445,7 +445,7 @@ impl ResolutionImpl of ResolutionTrait { fn hustler_attack(ref game_store: GameStore, ref encounter: EncounterConfig, ref randomizer: Random) -> AttackResult { let hustler_attack:u8 = Self::plus_or_less_random_pct( game_store.items.attack(), - 30, + 20, ref randomizer ); @@ -465,7 +465,7 @@ impl ResolutionImpl of ResolutionTrait { fn encounter_attack(ref game_store: GameStore, ref encounter: EncounterConfig, ref randomizer: Random) -> AttackResult { let mut encounter_attack = Self::plus_or_less_random_pct( encounter.attack, - 30, + 20, ref randomizer ); @@ -489,7 +489,7 @@ impl ResolutionImpl of ResolutionTrait { fn encounter_race_win(ref game_store: GameStore, ref encounter: EncounterConfig, ref randomizer: Random, ref drug_unpacked: DrugsUnpacked) -> EncounterRaceWinResult { let mut encounter_attack = Self::plus_or_less_random_pct( encounter.attack, - 30, + 20, ref randomizer ); @@ -502,9 +502,9 @@ impl ResolutionImpl of ResolutionTrait { // player lose HP game_store.player.health_loss(dmg_dealt); - // loss a flat 3 or 5% drug each round xd - let loss_pct = drug_unpacked.quantity.pct(3); - let possible_drug_loss = MathImpl::max(loss_pct, 5); + // loss a 2 or 1% drug each round xd + let loss_pct = drug_unpacked.quantity.pct(1); + let possible_drug_loss = MathImpl::max(loss_pct, 2); let mut drug_loss = 0; if possible_drug_loss <= drug_unpacked.quantity{ diff --git a/src/systems/laundromat.cairo b/src/systems/laundromat.cairo index 987a58b7a..814fe2661 100644 --- a/src/systems/laundromat.cairo +++ b/src/systems/laundromat.cairo @@ -108,7 +108,7 @@ mod laundromat { self.s().save_ryo_config(ryo_config); // create new season - let mut randomizer = RandomImpl::new(array!['laundromat', ryo_config.season_version.into()].span()); + let mut randomizer = RandomImpl::new('laundromat'); let mut season_manager = SeasonManagerTrait::new(self.s()); season_manager.new_season(ref randomizer, ryo_config.season_version); } else { diff --git a/src/systems/ryo.cairo b/src/systems/ryo.cairo index 491a1f652..8a44f5dd7 100644 --- a/src/systems/ryo.cairo +++ b/src/systems/ryo.cairo @@ -73,7 +73,7 @@ mod ryo { self.s().save_ryo_addresses(ryo_addresses); // Season - let mut randomizer = RandomImpl::new(array!['ryo', 420].span()); + let mut randomizer = RandomImpl::new('ryo'); let season_manager = SeasonManagerTrait::new(self.s()); season_manager.new_season(ref randomizer, ryo_config.season_version); } diff --git a/src/tests/random.cairo b/src/tests/random.cairo index 51c5706cb..7aa9affd7 100644 --- a/src/tests/random.cairo +++ b/src/tests/random.cairo @@ -12,7 +12,7 @@ fn test_random_between_0_2() { let (world, contracts) = spawn_world(); starknet::testing::set_contract_address(111.try_into().unwrap()); - let mut randomizer = RandomImpl::new(array!['world']); + let mut randomizer = RandomImpl::new('world'); let mut i = 0; loop { if i == 10 { @@ -32,7 +32,7 @@ fn test_random_u8() { let (world, contracts) = spawn_world(); starknet::testing::set_contract_address(111.try_into().unwrap()); - let mut randomizer = RandomImpl::new(array!['world']); + let mut randomizer = RandomImpl::new('world'); let mut i = 0; loop { if i == 3 { @@ -48,7 +48,7 @@ fn test_random_u8() { }; starknet::testing::set_contract_address(222.try_into().unwrap()); - let mut randomizer2 = RandomImpl::new(array!['world']); + let mut randomizer2 = RandomImpl::new('world'); let mut i = 0; loop { if i == 3 { diff --git a/src/utils/random.cairo b/src/utils/random.cairo index c6b958f9a..74893a43a 100644 --- a/src/utils/random.cairo +++ b/src/utils/random.cairo @@ -9,29 +9,27 @@ struct Random { nonce: usize, } - #[generate_trait] impl RandomImpl of RandomTrait { // one instance by contract, then passed by ref to sub fns - fn new(salt: Span) -> Random { - let seed = poseidon::poseidon_hash_span(salt); - Random { seed, nonce: 0 } + fn new(salt: felt252) -> Random { + Random { seed: seed(salt), nonce: 0 } } - fn next(ref self: Random) -> felt252 { + fn next_seed(ref self: Random) -> felt252 { self.nonce += 1; self.seed = pedersen::pedersen(self.seed, self.nonce.into()); self.seed } fn bool(ref self: Random) -> bool { - let seed: u256 = self.next().into(); + let seed: u256 = self.next_seed().into(); seed.low % 2 == 0 } fn felt(ref self: Random) -> felt252 { let tx_hash = starknet::get_tx_info().unbox().transaction_hash; - let seed = self.next(); + let seed = self.next_seed(); pedersen::pedersen(tx_hash, seed) } @@ -56,7 +54,7 @@ impl RandomImpl of RandomTrait { >( ref self: Random, min: T, max: T ) -> T { - let seed: u256 = self.next().into(); + let seed: u256 = self.next_seed().into(); if min >= max { return Zeroable::zero(); @@ -68,4 +66,7 @@ impl RandomImpl of RandomTrait { } } +fn seed(salt: felt252) -> felt252 { + pedersen::pedersen(starknet::get_tx_info().unbox().transaction_hash, salt) +} diff --git a/web/src/components/icons/items/Uzi.tsx b/web/src/components/icons/items/Uzi.tsx index bc6572f53..6d3d8e60a 100644 --- a/web/src/components/icons/items/Uzi.tsx +++ b/web/src/components/icons/items/Uzi.tsx @@ -3,7 +3,7 @@ import { Icon, IconProps } from ".."; export const Uzi = (props: IconProps) => { return ( - + ); }; diff --git a/web/src/components/layout/DrawerMenu.tsx b/web/src/components/layout/DrawerMenu.tsx index 1fc3a78d2..eafee7aae 100644 --- a/web/src/components/layout/DrawerMenu.tsx +++ b/web/src/components/layout/DrawerMenu.tsx @@ -147,7 +147,7 @@ const DrawerMenu = () => { {account && ( { - router.push(`/game/history/${account.address}`); + router.push("/game/history"); }} > HISTORY diff --git a/web/src/components/pages/home/SeasonDetailsModal.tsx b/web/src/components/pages/home/SeasonDetailsModal.tsx index fc915da69..2c5f2acd4 100644 --- a/web/src/components/pages/home/SeasonDetailsModal.tsx +++ b/web/src/components/pages/home/SeasonDetailsModal.tsx @@ -49,7 +49,7 @@ export const SeasonDetailsModal = observer(() => { - Season {seasonVersion} Information + Season Information diff --git a/web/src/components/pages/profile/Profile.tsx b/web/src/components/pages/profile/Profile.tsx index d7394ea6c..190342bba 100644 --- a/web/src/components/pages/profile/Profile.tsx +++ b/web/src/components/pages/profile/Profile.tsx @@ -81,9 +81,9 @@ export const ProfileLinkDrawer = () => { if (!account || !gameInfos || !gameEvents) return null; return ( - + - {shortString.decodeShortString(gameInfos.player_name?.value)} + {shortString.decodeShortString(gameInfos.player_name?.value)} ); }; diff --git a/web/src/components/pages/profile/ShareButton.tsx b/web/src/components/pages/profile/ShareButton.tsx index 1efd7f037..e77af9196 100644 --- a/web/src/components/pages/profile/ShareButton.tsx +++ b/web/src/components/pages/profile/ShareButton.tsx @@ -33,15 +33,15 @@ const getShareText = (game: GameClass, gameInfos: Game): string => { const playerName = shortString.decodeShortString(gameInfos.player_name?.value) if (game.player.health > 0) { return encodeURIComponent( - `I have reached Day ${game.player.turn} with ${formatCash( + `${playerName} has reached Day ${game.player.turn} with ${formatCash( game.player.cash, - )} $paper. Think you can out hustle me? #dopewars.\n\n${window.location.origin}`, + )} $paper. Think you can out hustle them? #dopewars.\n\n${window.location.origin}`, ); } else { return encodeURIComponent( - `I got dropped on Day ${game.player.turn} but pocketed ${formatCash( + `${playerName} got dropped on Day ${game.player.turn} but pocketed ${formatCash( game.player.cash, - )} $paper before checking out. Think you can out hustle me? #dopewars.\n\n${window.location.origin}`, + )} $paper before checking out. Think you can out hustle them? #dopewars.\n\n${window.location.origin}`, ); } }; diff --git a/web/src/components/player/Inventory.tsx b/web/src/components/player/Inventory.tsx index 4d11b71d3..3d21ebfc9 100644 --- a/web/src/components/player/Inventory.tsx +++ b/web/src/components/player/Inventory.tsx @@ -74,7 +74,7 @@ export const Inventory = observer(({ hidePawnshop = false, ...props }: StyleProp - {!hidePawnshop && !game.items.fullStuff && ( + {!hidePawnshop && ( PAWNSHOP diff --git a/web/src/dojo/abis/paperAbi.ts b/web/src/dojo/abis/paperAbi.ts index 736d8d57f..1c0f0e72c 100644 --- a/web/src/dojo/abis/paperAbi.ts +++ b/web/src/dojo/abis/paperAbi.ts @@ -147,24 +147,6 @@ export const ABI = [ "name": "ERC20MetadataImpl", "interface_name": "token::components::token::erc20::erc20_metadata::IERC20Metadata" }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, { "type": "interface", "name": "token::components::token::erc20::erc20_metadata::IERC20Metadata", @@ -175,7 +157,7 @@ export const ABI = [ "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" + "type": "core::felt252" } ], "state_mutability": "view" @@ -186,7 +168,7 @@ export const ABI = [ "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" + "type": "core::felt252" } ], "state_mutability": "view" diff --git a/web/src/dojo/class/Items.ts b/web/src/dojo/class/Items.ts index b9fe80bc3..207053e90 100644 --- a/web/src/dojo/class/Items.ts +++ b/web/src/dojo/class/Items.ts @@ -6,135 +6,149 @@ import { GameClass, isShopAction } from "./Game"; import Bits from "./utils/Bits"; export class ItemsClass extends GamePropertyClass { - bitsSize = 2n; - maxLevel = 3; - // - attackLevel: number; - defenseLevel: number; - speedLevel: number; - transportLevel: number; - // - hustlerConfig: HustlerConfig; - - constructor(game: GameClass, packed: bigint) { - super(game, packed); - - this.hustlerConfig = game.configStore.getHustlerById(this.game.gameInfos.hustler_id); - - this.attackLevel = Number(Bits.extract(this.packed, BigInt(ItemSlot.Weapon) * this.bitsSize, this.bitsSize)); - this.defenseLevel = Number(Bits.extract(this.packed, BigInt(ItemSlot.Clothes) * this.bitsSize, this.bitsSize)); - this.speedLevel = Number(Bits.extract(this.packed, BigInt(ItemSlot.Feet) * this.bitsSize, this.bitsSize)); - this.transportLevel = Number(Bits.extract(this.packed, BigInt(ItemSlot.Transport) * this.bitsSize, this.bitsSize)); - - makeObservable(this, { - attack: computed, - defense: computed, - speed: computed, - transport: computed, - attackUpgrade: computed, - defenseUpgrade: computed, - speedUpgrade: computed, - transportUpgrade: computed, - fullStuff: computed, - game: observable, - }); - } - - get attack() { - let level = this.attackLevel; - if (this.game?.pending && this.game?.pending?.length > 0) { - level += this.game.pending - .filter(isShopAction) - .map((i) => i as ShopAction) - .filter((i) => i.slot === ItemSlot.Weapon).length; + bitsSize = 2n; + maxLevel = 3; + // + attackLevel: number; + defenseLevel: number; + speedLevel: number; + transportLevel: number; + // + hustlerConfig: HustlerConfig; + + constructor(game: GameClass, packed: bigint) { + super( game, packed); + + this.hustlerConfig = game.configStore.getHustlerById(this.game.gameInfos.hustler_id) + + this.attackLevel = Number(Bits.extract(this.packed, BigInt(ItemSlot.Weapon) * this.bitsSize, this.bitsSize)); + this.defenseLevel = Number(Bits.extract(this.packed, BigInt(ItemSlot.Clothes) * this.bitsSize, this.bitsSize)); + this.speedLevel = Number(Bits.extract(this.packed, BigInt(ItemSlot.Feet) * this.bitsSize, this.bitsSize)); + this.transportLevel = Number(Bits.extract(this.packed, BigInt(ItemSlot.Transport) * this.bitsSize, this.bitsSize)); + + makeObservable(this, { + attack: computed, + defense: computed, + speed: computed, + transport: computed, + attackUpgrade: computed, + defenseUpgrade: computed, + speedUpgrade: computed, + transportUpgrade: computed, + game: observable, + }) + } - return this.game.configStore.getHustlerItemByIds(this.hustlerConfig.weapon.base.id, ItemSlot.Weapon, level); - } - - get defense() { - let level = this.defenseLevel; - if (this.game?.pending && this.game?.pending?.length > 0) { - level += this.game.pending - .filter(isShopAction) - .map((i) => i as ShopAction) - .filter((i) => i.slot === ItemSlot.Clothes).length; + + get attack() { + let level = this.attackLevel + if (this.game?.pending && this.game?.pending?.length > 0) { + level += this.game.pending + .filter(isShopAction) + .map(i => i as ShopAction) + .filter(i => i.slot === ItemSlot.Weapon) + .length + } + return this.game.configStore.getHustlerItemByIds( + this.hustlerConfig.weapon.base.id, + ItemSlot.Weapon, + level + ) } - return this.game.configStore.getHustlerItemByIds(this.hustlerConfig.clothes.base.id, ItemSlot.Clothes, level); - } - get speed() { - let level = this.speedLevel; - if (this.game?.pending && this.game?.pending?.length > 0) { - level += this.game.pending - .filter(isShopAction) - .map((i) => i as ShopAction) - .filter((i) => i.slot === ItemSlot.Feet).length; + get defense() { + let level = this.defenseLevel + if (this.game?.pending && this.game?.pending?.length > 0) { + level += this.game.pending + .filter(isShopAction) + .map(i => i as ShopAction) + .filter(i => i.slot === ItemSlot.Clothes) + .length + } + + return this.game.configStore.getHustlerItemByIds( + this.hustlerConfig.clothes.base.id, + ItemSlot.Clothes, + level + ) } - return this.game.configStore.getHustlerItemByIds(this.hustlerConfig.feet.base.id, ItemSlot.Feet, level); - } + get speed() { + let level = this.speedLevel + if (this.game?.pending && this.game?.pending?.length > 0) { + level += this.game.pending + .filter(isShopAction) + .map(i => i as ShopAction) + .filter(i => i.slot === ItemSlot.Feet) + .length + } + + return this.game.configStore.getHustlerItemByIds( + this.hustlerConfig.feet.base.id, + ItemSlot.Feet, + level + ) + } - get transport() { - let level = this.transportLevel; - if (this.game?.pending && this.game?.pending?.length > 0) { - level += this.game.pending - .filter(isShopAction) - .map((i) => i as ShopAction) - .filter((i) => i.slot === ItemSlot.Transport).length; + get transport() { + let level = this.transportLevel + if (this.game?.pending && this.game?.pending?.length > 0) { + level += this.game.pending + .filter(isShopAction) + .map(i => i as ShopAction) + .filter(i => i.slot === ItemSlot.Transport) + .length + } + return this.game.configStore.getHustlerItemByIds( + this.hustlerConfig.transport.base.id, + ItemSlot.Transport, + level + ) } - return this.game.configStore.getHustlerItemByIds(this.hustlerConfig.transport.base.id, ItemSlot.Transport, level); - } - - get attackUpgrade() { - if (this.attack!.level < this.maxLevel) { - return this.game.configStore.getHustlerItemByIds( - this.hustlerConfig.weapon.base.id, - ItemSlot.Weapon, - this.attack!.level + 1, - ); + + + get attackUpgrade() { + if (this.attack!.level < this.maxLevel) { + return this.game.configStore.getHustlerItemByIds( + this.hustlerConfig.weapon.base.id, + ItemSlot.Weapon, + this.attack!.level + 1 + ) + } + return undefined } - return undefined; - } - - get defenseUpgrade() { - if (this.defense!.level < this.maxLevel) { - return this.game.configStore.getHustlerItemByIds( - this.hustlerConfig.clothes.base.id, - ItemSlot.Clothes, - this.defense!.level + 1, - ); + + get defenseUpgrade() { + if (this.defense!.level < this.maxLevel) { + return this.game.configStore.getHustlerItemByIds( + this.hustlerConfig.clothes.base.id, + ItemSlot.Clothes, + this.defense!.level + 1 + ) + } + return undefined } - return undefined; - } - - get speedUpgrade() { - if (this.speed!.level < this.maxLevel) { - return this.game.configStore.getHustlerItemByIds( - this.hustlerConfig.feet.base.id, - ItemSlot.Feet, - this.speed!.level + 1, - ); + + get speedUpgrade() { + if (this.speed!.level < this.maxLevel) { + return this.game.configStore.getHustlerItemByIds( + this.hustlerConfig.feet.base.id, + ItemSlot.Feet, + this.speed!.level + 1 + ) + } + return undefined } - return undefined; - } - - get transportUpgrade() { - if (this.transport!.level < this.maxLevel) { - return this.game.configStore.getHustlerItemByIds( - this.hustlerConfig.transport.base.id, - ItemSlot.Transport, - this.transport!.level + 1, - ); + + get transportUpgrade() { + if (this.transport!.level < this.maxLevel) { + return this.game.configStore.getHustlerItemByIds( + this.hustlerConfig.transport.base.id, + ItemSlot.Transport, + this.transport!.level + 1 + ) + } + return undefined } - return undefined; - } - - get fullStuff() { - return this.attackUpgrade === undefined && - this.defenseUpgrade === undefined && - this.speedUpgrade === undefined && - this.transportUpgrade === undefined; - - } -} +} \ No newline at end of file diff --git a/web/src/dojo/context/DojoContext.tsx b/web/src/dojo/context/DojoContext.tsx index 87abe979d..15e7ba97d 100644 --- a/web/src/dojo/context/DojoContext.tsx +++ b/web/src/dojo/context/DojoContext.tsx @@ -53,7 +53,7 @@ export const DojoContextProvider = observer( const [isPrefundingPaper, setIsPrefundingPaper] = useState(false); const defaultChain = - process.env.NODE_ENV === "production" ? dojoContextConfig.KATANA_SLOT_421 : dojoContextConfig.KATANA; + process.env.NODE_ENV === "production" ? dojoContextConfig.KATANA_SLOT_420 : dojoContextConfig.KATANA; const lastSelectedChainId = typeof window !== "undefined" ? window?.localStorage?.getItem("lastSelectedChainId") : undefined; diff --git a/web/src/dojo/hooks/useGamesByPlayer.tsx b/web/src/dojo/hooks/useGamesByPlayer.tsx index ffbbe6581..3ea337b37 100644 --- a/web/src/dojo/hooks/useGamesByPlayer.tsx +++ b/web/src/dojo/hooks/useGamesByPlayer.tsx @@ -17,7 +17,7 @@ import { useTravelEncounterByPlayerQuery, useTravelEncounterResultsByPlayerQuery, } from "@/generated/graphql"; -import { useEffect, useMemo } from "react"; +import { useMemo } from "react"; import { GameClass } from "../class/Game"; import { useDojoContext } from "./useDojoContext"; import { Hustler, Hustlers } from "@/components/hustlers"; @@ -67,35 +67,30 @@ export interface GamesByPlayerInterface { playerStats?: PlayerStats; } +// TODO : change to get games by player by Season export const useGamesByPlayer = (playerId: string): GamesByPlayerInterface => { const { data, isFetched } = useGamesByPlayerQuery({ playerId, }); - const { configStore } = useDojoContext(); const { data: allSeasonSettings } = useAllSeasonSettingsQuery({}); const { data: allGameConfig } = useAllGameConfigQuery({}); - const { data: allTravelEncounters, refetch: refetchTravelEncounters } = useTravelEncounterByPlayerQuery({ + const { data: allTravelEncounters } = useTravelEncounterByPlayerQuery({ travelEncounterSelector: WorldEvents.TravelEncounter, playerId, }); - - const { data: allTravelEncounterResults, refetch: refetchTravelEncounterResults } = useTravelEncounterResultsByPlayerQuery({ + const { data: allTravelEncounterResults } = useTravelEncounterResultsByPlayerQuery({ travelEncounterResultSelector: WorldEvents.TravelEncounterResult, playerId, }); - const { data: allTradedDrugByPlayer, refetch: refetchTradedDrugs } = useTradedDrugByPlayerQuery({ + const { data: allTradedDrugByPlayer } = useTradedDrugByPlayerQuery({ tradeDrugSelector: WorldEvents.TradeDrug, playerId, }); - // useEffect(() => { - // refetchTravelEncounters() - // refetchTravelEncounterResults() - // refetchTradedDrugs() - // }, [playerId]) + const { configStore } = useDojoContext(); const games = useMemo(() => { if (!data || !allGameConfig || !allSeasonSettings) return []; @@ -203,8 +198,7 @@ export const useGamesByPlayer = (playerId: string): GamesByPlayerInterface => { }; return stats; - }, [games, allTravelEncounters, allTravelEncounterResults, allTradedDrugByPlayer]); - + }, [games, allTravelEncounters, allTravelEncounterResults]); return { games: games || [], diff --git a/web/src/dojo/setup/config.ts b/web/src/dojo/setup/config.ts index 29ab78fe1..00ae690b4 100644 --- a/web/src/dojo/setup/config.ts +++ b/web/src/dojo/setup/config.ts @@ -131,16 +131,16 @@ const snMainnet: DojoChainConfig = { // keys must match chain.id export const dojoContextConfig = { KATANA: katanaLocal, - // KATANA_SLOT_420: katanaSlot420, - "KATANA_SLOT_421": katanaSlot421, + KATANA_SLOT_420: katanaSlot420, + // "KATANA_SLOT_421": katanaSlot421, // "SN_SEPOLIA": snSepolia, // "SN_MAIN": snMainnet, }; export const dojoChains = [ katanaLocal, - // katanaSlot420, - katanaSlot421, + katanaSlot420, + // katanaSlot421, // snSepolia, // snMainnet, ]; diff --git a/web/src/manifests/dev/manifest.json b/web/src/manifests/dev/manifest.json index b53649f01..979cf9621 100644 --- a/web/src/manifests/dev/manifest.json +++ b/web/src/manifests/dev/manifest.json @@ -973,7 +973,7 @@ ], "address": "0x78fcdfcc137fa18770f660ba2e8a3cf263907df38dfd462dc4dda048979c011", "transaction_hash": "0x45dc93450dfc8798cc573d59a119ab7864a6e027caf1364c974a8bae8aadf58", - "block_number": 118, + "block_number": 6, "seed": "rollyourown", "metadata": { "profile_name": "dev", @@ -992,8 +992,8 @@ { "kind": "DojoContract", "address": "0x48cd76d52ddd7a8d9c77054b1ab6536e47fde29f9f9837a91727d3fe3d8f0d7", - "class_hash": "0x67b738d595272b6f9dbffd2273ca01dd8a89e87e2640463c42a405b5023ab63", - "original_class_hash": "0x67b738d595272b6f9dbffd2273ca01dd8a89e87e2640463c42a405b5023ab63", + "class_hash": "0x3fbe921393a317edbf4ce56ca1f3785cd40f45dbbb636b6972d99e32a654d37", + "original_class_hash": "0x3fbe921393a317edbf4ce56ca1f3785cd40f45dbbb636b6972d99e32a654d37", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -1144,24 +1144,6 @@ "name": "ERC20MetadataImpl", "interface_name": "token::components::token::erc20::erc20_metadata::IERC20Metadata" }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, { "type": "interface", "name": "token::components::token::erc20::erc20_metadata::IERC20Metadata", @@ -1172,7 +1154,7 @@ "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" + "type": "core::felt252" } ], "state_mutability": "view" @@ -1183,7 +1165,7 @@ "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" + "type": "core::felt252" } ], "state_mutability": "view" @@ -3456,8 +3438,8 @@ { "kind": "DojoContract", "address": "0x4c79d8d8c6a764653d4e1b5de2c35b5bd7e4e731201cde4854116a057090c55", - "class_hash": "0x364a1d4bc9c901643b0a0661f9964d667462f4c31d476513527ed82e3489f7f", - "original_class_hash": "0x364a1d4bc9c901643b0a0661f9964d667462f4c31d476513527ed82e3489f7f", + "class_hash": "0x77cc89adfed1bd8cf6f93eeacc4410feaf425497107b719f1125e0d8b9818d3", + "original_class_hash": "0x77cc89adfed1bd8cf6f93eeacc4410feaf425497107b719f1125e0d8b9818d3", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -3638,8 +3620,8 @@ { "kind": "DojoContract", "address": "0x793d2083f76ef720054addbab143399440bfa039a6cab8b6ec8728fee383fea", - "class_hash": "0x474f5bdaddfa2a1818f0977aa475655d5d30402513ad36e3f9a273914454953", - "original_class_hash": "0x474f5bdaddfa2a1818f0977aa475655d5d30402513ad36e3f9a273914454953", + "class_hash": "0x32ca39c8e9f56a17aac915c636c5ede4970e53eb58de1c259221ace69b377a6", + "original_class_hash": "0x32ca39c8e9f56a17aac915c636c5ede4970e53eb58de1c259221ace69b377a6", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -4488,8 +4470,8 @@ { "kind": "DojoContract", "address": "0x19bbb3492bdd367486d981abcff56da3f199b0c31bca0636c628307664d475a", - "class_hash": "0x1c4c937b8f635479866b26f6a1688df9232e9f9092254fd0a20f383607f70c3", - "original_class_hash": "0x1c4c937b8f635479866b26f6a1688df9232e9f9092254fd0a20f383607f70c3", + "class_hash": "0x262bd4da6ff50f24b1e107a7cdb2114983fa190983b2ad594f8ec2f453a8e3f", + "original_class_hash": "0x262bd4da6ff50f24b1e107a7cdb2114983fa190983b2ad594f8ec2f453a8e3f", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -4725,8 +4707,8 @@ { "kind": "DojoContract", "address": "0x4857efdeae5d9f90744bdc724048d78ed28d22eee11bfe7b8dfcca1481fefbf", - "class_hash": "0x59fd2d669bdf8d0b42e2252fe82847837ccc8cf89417c5caef3a0524132cebe", - "original_class_hash": "0x59fd2d669bdf8d0b42e2252fe82847837ccc8cf89417c5caef3a0524132cebe", + "class_hash": "0x3497d49d47949a843f3398e3579dcac7df221da390774f6a64e2e3a37d22476", + "original_class_hash": "0x3497d49d47949a843f3398e3579dcac7df221da390774f6a64e2e3a37d22476", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -12623,12 +12605,12 @@ }, { "name": "name", - "type": "ByteArray", + "type": "felt252", "key": false }, { "name": "symbol", - "type": "ByteArray", + "type": "felt252", "key": false }, { @@ -12642,8 +12624,8 @@ "key": false } ], - "class_hash": "0x1f925352eb45c770d7f13d2750ed4f8e58e3fd43000d33ceb845247a5bd7538", - "original_class_hash": "0x1f925352eb45c770d7f13d2750ed4f8e58e3fd43000d33ceb845247a5bd7538", + "class_hash": "0x648f87547cad4c7ff85ab3c422f77850b4a6f0b0f1494011440449a52aa8053", + "original_class_hash": "0x648f87547cad4c7ff85ab3c422f77850b4a6f0b0f1494011440449a52aa8053", "abi": [ { "type": "impl", @@ -12992,11 +12974,11 @@ }, { "name": "name", - "type": "core::byte_array::ByteArray" + "type": "core::felt252" }, { "name": "symbol", - "type": "core::byte_array::ByteArray" + "type": "core::felt252" }, { "name": "decimals", diff --git a/web/src/manifests/ryo421/manifest.json b/web/src/manifests/ryo421/manifest.json index bb462f2c6..bbc720629 100644 --- a/web/src/manifests/ryo421/manifest.json +++ b/web/src/manifests/ryo421/manifest.json @@ -1,8 +1,8 @@ { "world": { "kind": "WorldContract", - "class_hash": "0xec459885a6d73cd0932dc2deea7e1939a00f2e313b0445f3e253c521ddc12", - "original_class_hash": "0xec459885a6d73cd0932dc2deea7e1939a00f2e313b0445f3e253c521ddc12", + "class_hash": "0x44fe688cc4d46636ffb424972c3510b10c3b1a738f6a6c9885cb7352ac8e5b1", + "original_class_hash": "0x44fe688cc4d46636ffb424972c3510b10c3b1a738f6a6c9885cb7352ac8e5b1", "abi": [ { "type": "impl", @@ -11,19 +11,11 @@ }, { "type": "struct", - "name": "core::byte_array::ByteArray", + "name": "core::array::Span::", "members": [ { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -37,17 +29,7 @@ }, { "name": "metadata_uri", - "type": "core::byte_array::ByteArray" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::" } ] }, @@ -61,70 +43,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "enum", "name": "core::bool", @@ -176,7 +94,7 @@ "name": "model", "inputs": [ { - "name": "selector", + "name": "name", "type": "core::felt252" } ], @@ -226,10 +144,6 @@ { "name": "class_hash", "type": "core::starknet::class_hash::ClassHash" - }, - { - "name": "init_calldata", - "type": "core::array::Span::" } ], "outputs": [ @@ -300,7 +214,7 @@ }, { "name": "layout", - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "outputs": [ @@ -328,12 +242,23 @@ }, { "name": "layout", - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "outputs": [], "state_mutability": "external" }, + { + "type": "function", + "name": "base", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::class_hash::ClassHash" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "delete_entity", @@ -348,23 +273,12 @@ }, { "name": "layout", - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "outputs": [], "state_mutability": "external" }, - { - "type": "function", - "name": "base", - "inputs": [], - "outputs": [ - { - "type": "core::starknet::class_hash::ClassHash" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "is_owner", @@ -426,7 +340,7 @@ "type": "core::felt252" }, { - "name": "contract", + "name": "system", "type": "core::starknet::contract_address::ContractAddress" } ], @@ -446,7 +360,7 @@ "type": "core::felt252" }, { - "name": "contract", + "name": "system", "type": "core::starknet::contract_address::ContractAddress" } ], @@ -462,7 +376,7 @@ "type": "core::felt252" }, { - "name": "contract", + "name": "system", "type": "core::starknet::contract_address::ContractAddress" } ], @@ -730,7 +644,7 @@ }, { "name": "uri", - "type": "core::byte_array::ByteArray", + "type": "core::array::Span::", "kind": "data" } ] @@ -742,7 +656,7 @@ "members": [ { "name": "name", - "type": "core::byte_array::ByteArray", + "type": "core::felt252", "kind": "data" }, { @@ -817,7 +731,7 @@ "kind": "data" }, { - "name": "contract", + "name": "system", "type": "core::starknet::contract_address::ContractAddress", "kind": "data" }, @@ -971,9 +885,9 @@ ] } ], - "address": "0x78fcdfcc137fa18770f660ba2e8a3cf263907df38dfd462dc4dda048979c011", - "transaction_hash": "0x76e9a1442faa635b6494254475991ae4bc4b65c67ecd7839ef86e132cad032c", - "block_number": 11, + "address": "0x45780a1a9786ee6bcd2e347d43d717a385dbd72e8282676d891835e0a278d14", + "transaction_hash": "0x5176188a941fc09b570cf9f522b0be830ea6d61ce00a150f6221cb11a5c326", + "block_number": 70, "seed": "rollyourown", "metadata": { "profile_name": "ryo421", @@ -991,9 +905,9 @@ "contracts": [ { "kind": "DojoContract", - "address": "0x48cd76d52ddd7a8d9c77054b1ab6536e47fde29f9f9837a91727d3fe3d8f0d7", - "class_hash": "0x67b738d595272b6f9dbffd2273ca01dd8a89e87e2640463c42a405b5023ab63", - "original_class_hash": "0x67b738d595272b6f9dbffd2273ca01dd8a89e87e2640463c42a405b5023ab63", + "address": "0x673f6981af3302142f661c8b8177cc979f1d96ede0d7d90f17c9710b072de02", + "class_hash": "0x68da37166388a028b1f2cb34a9b058b762590d02045bb8043907e9012eac41a", + "original_class_hash": "0x68da37166388a028b1f2cb34a9b058b762590d02045bb8043907e9012eac41a", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -1098,24 +1012,6 @@ } ] }, - { - "type": "impl", - "name": "IDojoInitImpl", - "interface_name": "rollyourown::_mocks::paper_mock::paper_mock::IDojoInit" - }, - { - "type": "interface", - "name": "rollyourown::_mocks::paper_mock::paper_mock::IDojoInit", - "items": [ - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - } - ] - }, { "type": "impl", "name": "UpgradableImpl", @@ -1144,24 +1040,6 @@ "name": "ERC20MetadataImpl", "interface_name": "token::components::token::erc20::erc20_metadata::IERC20Metadata" }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, { "type": "interface", "name": "token::components::token::erc20::erc20_metadata::IERC20Metadata", @@ -1172,7 +1050,7 @@ "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" + "type": "core::felt252" } ], "state_mutability": "view" @@ -1183,7 +1061,7 @@ "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" + "type": "core::felt252" } ], "state_mutability": "view" @@ -1608,14 +1486,13 @@ "reads": [], "writes": [], "computed": [], - "init_calldata": [], "name": "rollyourown::_mocks::paper_mock::paper_mock" }, { "kind": "DojoContract", - "address": "0x19672db5dbf87280bf028ee5d12dc0446b6b843e28c3d05f978ddff4a242ff", - "class_hash": "0x58bee011b225a0c94800611a9a60f7c021d07cfc50993fcbade419d31fd3d4b", - "original_class_hash": "0x58bee011b225a0c94800611a9a60f7c021d07cfc50993fcbade419d31fd3d4b", + "address": "0x478fdd83cec8d174113ab6e4273672886d173fb88efe7d0a3279b8e7993d52f", + "class_hash": "0x644bec0a3cac43b2f261d85d8c756ea99305bed28da8a7579da5c556faea352", + "original_class_hash": "0x644bec0a3cac43b2f261d85d8c756ea99305bed28da8a7579da5c556faea352", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -1749,7 +1626,7 @@ }, { "name": "name", - "type": "core::felt252" + "type": "core::bytes_31::bytes31" }, { "name": "initial_tier", @@ -2268,24 +2145,6 @@ } ] }, - { - "type": "impl", - "name": "IDojoInitImpl", - "interface_name": "rollyourown::config::config::config::IDojoInit" - }, - { - "type": "interface", - "name": "rollyourown::config::config::config::IDojoInit", - "items": [ - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - } - ] - }, { "type": "impl", "name": "UpgradableImpl", @@ -2349,14 +2208,13 @@ "reads": [], "writes": [], "computed": [], - "init_calldata": [], "name": "rollyourown::config::config::config" }, { "kind": "DojoContract", - "address": "0x916b0f53c8b3fa7601a7e1e60df82da642507fa82493108a2477b69cff54ea", - "class_hash": "0x425d8e3ec7c2935f527ff4591d1c02ca17bf07b1c6d6f52ca7b952d5adf872f", - "original_class_hash": "0x425d8e3ec7c2935f527ff4591d1c02ca17bf07b1c6d6f52ca7b952d5adf872f", + "address": "0x19fecff4ffe0f2139e91a4da80db26d296e3b8a46f6872eca1cb49756a153a1", + "class_hash": "0x288816fc9e9c1c6633b396ba21a30b8f2b04e02f658e8eaf1573424219585ca", + "original_class_hash": "0x288816fc9e9c1c6633b396ba21a30b8f2b04e02f658e8eaf1573424219585ca", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -2768,7 +2626,7 @@ }, { "name": "name", - "type": "core::felt252" + "type": "core::bytes_31::bytes31" }, { "name": "initial_tier", @@ -3369,24 +3227,6 @@ } ] }, - { - "type": "impl", - "name": "IDojoInitImpl", - "interface_name": "rollyourown::library::store::store::IDojoInit" - }, - { - "type": "interface", - "name": "rollyourown::library::store::store::IDojoInit", - "items": [ - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - } - ] - }, { "type": "impl", "name": "UpgradableImpl", @@ -3450,14 +3290,13 @@ "reads": [], "writes": [], "computed": [], - "init_calldata": [], "name": "rollyourown::library::store::store" }, { "kind": "DojoContract", - "address": "0x4c79d8d8c6a764653d4e1b5de2c35b5bd7e4e731201cde4854116a057090c55", - "class_hash": "0x79cd441fb29eb79fc0c654aa6975563a7e7b52132f05f9c783e9c4dfa9ee108", - "original_class_hash": "0x79cd441fb29eb79fc0c654aa6975563a7e7b52132f05f9c783e9c4dfa9ee108", + "address": "0x65f1f91178c3f048d4a50643609dd09bcb871519e708a3c8166b8143c7eed5a", + "class_hash": "0x67bda7ca090897cfd08546e1eb76fb436fda0ba54ee1182df22db79e7014b98", + "original_class_hash": "0x67bda7ca090897cfd08546e1eb76fb436fda0ba54ee1182df22db79e7014b98", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -3551,24 +3390,6 @@ } ] }, - { - "type": "impl", - "name": "IDojoInitImpl", - "interface_name": "rollyourown::systems::devtools::devtools::IDojoInit" - }, - { - "type": "interface", - "name": "rollyourown::systems::devtools::devtools::IDojoInit", - "items": [ - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - } - ] - }, { "type": "impl", "name": "UpgradableImpl", @@ -3632,14 +3453,13 @@ "reads": [], "writes": [], "computed": [], - "init_calldata": [], "name": "rollyourown::systems::devtools::devtools" }, { "kind": "DojoContract", - "address": "0x793d2083f76ef720054addbab143399440bfa039a6cab8b6ec8728fee383fea", - "class_hash": "0x78b404eec473ed8d87af7d558f8a8703f93554d7aa9bb7cd7ab51dc30217a54", - "original_class_hash": "0x78b404eec473ed8d87af7d558f8a8703f93554d7aa9bb7cd7ab51dc30217a54", + "address": "0x494d272e65874b95792a8bf9d726e162d77b6bd2ffa557c286afd2660c27828", + "class_hash": "0x588ae342c45e35d4ae92a58273074dd3a32b54338f09448ec0e4afd93728718", + "original_class_hash": "0x588ae342c45e35d4ae92a58273074dd3a32b54338f09448ec0e4afd93728718", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -3971,24 +3791,6 @@ } ] }, - { - "type": "impl", - "name": "IDojoInitImpl", - "interface_name": "rollyourown::systems::game::game::IDojoInit" - }, - { - "type": "interface", - "name": "rollyourown::systems::game::game::IDojoInit", - "items": [ - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - } - ] - }, { "type": "impl", "name": "UpgradableImpl", @@ -4482,14 +4284,13 @@ "reads": [], "writes": [], "computed": [], - "init_calldata": [], "name": "rollyourown::systems::game::game" }, { "kind": "DojoContract", - "address": "0x19bbb3492bdd367486d981abcff56da3f199b0c31bca0636c628307664d475a", - "class_hash": "0x59a4d3ac0cc921511968068372a3c045e8b19edf433dadb65564e4686fb7012", - "original_class_hash": "0x59a4d3ac0cc921511968068372a3c045e8b19edf433dadb65564e4686fb7012", + "address": "0x665fbbceaab1c1b8458df8d75d93bbbe986c4a9e59ce07665f5cfe4e92188c1", + "class_hash": "0x2c02060763ba413c90a3cdff7c6ef04e40f8f3c6396eac104f7a6391aafe589", + "original_class_hash": "0x2c02060763ba413c90a3cdff7c6ef04e40f8f3c6396eac104f7a6391aafe589", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -4638,24 +4439,6 @@ } ] }, - { - "type": "impl", - "name": "IDojoInitImpl", - "interface_name": "rollyourown::systems::laundromat::laundromat::IDojoInit" - }, - { - "type": "interface", - "name": "rollyourown::systems::laundromat::laundromat::IDojoInit", - "items": [ - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - } - ] - }, { "type": "impl", "name": "UpgradableImpl", @@ -4719,14 +4502,13 @@ "reads": [], "writes": [], "computed": [], - "init_calldata": [], "name": "rollyourown::systems::laundromat::laundromat" }, { "kind": "DojoContract", - "address": "0x4857efdeae5d9f90744bdc724048d78ed28d22eee11bfe7b8dfcca1481fefbf", - "class_hash": "0x7f30abf72fc48e7a073867e98272e1dad790143fc7f8c3cd253176028fc9593", - "original_class_hash": "0x7f30abf72fc48e7a073867e98272e1dad790143fc7f8c3cd253176028fc9593", + "address": "0x7ccf33bb6c279a222acf5bba91c93933ea71461670e5cf19a9f6d334bc2e5a9", + "class_hash": "0x3a372547c89d22b504731e512327dcb5909668f67f4cbffce0a35163615f409", + "original_class_hash": "0x3a372547c89d22b504731e512327dcb5909668f67f4cbffce0a35163615f409", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -4964,24 +4746,6 @@ } ] }, - { - "type": "impl", - "name": "IDojoInitImpl", - "interface_name": "rollyourown::systems::ryo::ryo::IDojoInit" - }, - { - "type": "interface", - "name": "rollyourown::systems::ryo::ryo::IDojoInit", - "items": [ - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - } - ] - }, { "type": "impl", "name": "UpgradableImpl", @@ -5045,7 +4809,6 @@ "reads": [], "writes": [], "computed": [], - "init_calldata": [], "name": "rollyourown::systems::ryo::ryo" } ], @@ -5089,225 +4852,101 @@ "key": false } ], - "class_hash": "0x43ec1a1cd83de2b480bd3695bee9adce6aee21527d7e1e2ce56e54be460c2a4", - "original_class_hash": "0x43ec1a1cd83de2b480bd3695bee9adce6aee21527d7e1e2ce56e54be460c2a4", + "class_hash": "0x21f26c1e258e536090862de497545b0818493d500c4d7ab1fcbc6eb889ef737", + "original_class_hash": "0x21f26c1e258e536090862de497545b0818493d500c4d7ab1fcbc6eb889ef737", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", - "name": "core::byte_array::ByteArray", + "name": "core::array::Span::", "members": [ { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" + "name": "snapshot", + "type": "@core::array::Array::" } ] }, { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, + "type": "struct", + "name": "core::array::Span::", + "members": [ { - "name": "None", - "type": "()" + "name": "snapshot", + "type": "@core::array::Array::" } ] }, { "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, { "type": "struct", - "name": "dojo::database::introspect::FieldLayout", + "name": "dojo::database::introspect::Struct", "members": [ { - "name": "selector", + "name": "name", "type": "core::felt252" }, { - "name": "layout", - "type": "dojo::database::introspect::Layout" + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, { "type": "struct", - "name": "core::array::Span::", + "name": "dojo::database::introspect::Enum", "members": [ { - "name": "snapshot", - "type": "@core::array::Array::" + "name": "name", + "type": "core::felt252" + }, + { + "name": "attrs", + "type": "core::array::Span::" + }, + { + "name": "children", + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, { "type": "enum", - "name": "dojo::database::introspect::Layout", + "name": "dojo::database::introspect::Ty", "variants": [ { - "name": "Fixed", - "type": "core::array::Span::" + "name": "Primitive", + "type": "core::felt252" }, { "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "dojo::database::introspect::Struct", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "children", - "type": "core::array::Span::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "dojo::database::introspect::Enum", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Ty", - "variants": [ - { - "name": "Primitive", - "type": "core::felt252" - }, - { - "name": "Struct", - "type": "dojo::database::introspect::Struct" + "type": "dojo::database::introspect::Struct" }, { "name": "Enum", @@ -5315,51 +4954,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -5370,7 +4983,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -5381,7 +4994,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -5392,7 +5005,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -5596,45 +5209,13 @@ "key": false } ], - "class_hash": "0x35ba3415f4f97e6829c1326ce988c807b39fd54e68f91b50970379cff99d654", - "original_class_hash": "0x35ba3415f4f97e6829c1326ce988c807b39fd54e68f91b50970379cff99d654", + "class_hash": "0x560ea9be0b978e35836ce05fa34cad8f5c6f106c6c52bcbe411565d03a93524", + "original_class_hash": "0x560ea9be0b978e35836ce05fa34cad8f5c6f106c6c52bcbe411565d03a93524", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -5646,70 +5227,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -5722,29 +5239,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -5762,17 +5261,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -5790,17 +5289,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -5822,51 +5311,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -5877,7 +5340,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -5888,7 +5351,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -5899,7 +5362,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -6086,45 +5549,13 @@ "key": false } ], - "class_hash": "0x75bb457a17fe9b19f25bbf0a3a820cefde7d339e5be06b3fa129517397fd5bc", - "original_class_hash": "0x75bb457a17fe9b19f25bbf0a3a820cefde7d339e5be06b3fa129517397fd5bc", + "class_hash": "0x22d59c42d0d6b3fe6ae4cc41fe42f943605a81a011e1d0c4bd33ee2e8cd32dd", + "original_class_hash": "0x22d59c42d0d6b3fe6ae4cc41fe42f943605a81a011e1d0c4bd33ee2e8cd32dd", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -6136,70 +5567,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -6212,29 +5579,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -6252,17 +5601,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -6280,17 +5629,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -6312,51 +5651,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -6367,7 +5680,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -6378,7 +5691,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -6389,7 +5702,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -6509,7 +5822,7 @@ }, { "name": "name", - "type": "felt252", + "type": "bytes31", "key": false }, { @@ -6518,45 +5831,13 @@ "key": false } ], - "class_hash": "0x3e8b16df9230d6a6e6e2b5957fee414fcc196cd2103a80df52d740452d260c2", - "original_class_hash": "0x3e8b16df9230d6a6e6e2b5957fee414fcc196cd2103a80df52d740452d260c2", + "class_hash": "0x1964a5475f8fb13f6e060a67516cd16701e361b7e2d5e0e6d8c178604672ddf", + "original_class_hash": "0x1964a5475f8fb13f6e060a67516cd16701e361b7e2d5e0e6d8c178604672ddf", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -6568,70 +5849,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -6644,29 +5861,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -6684,17 +5883,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -6712,17 +5911,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -6744,51 +5933,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -6799,7 +5962,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -6810,7 +5973,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -6821,7 +5984,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -6884,7 +6047,7 @@ }, { "name": "name", - "type": "core::felt252" + "type": "core::bytes_31::bytes31" }, { "name": "initial_tier", @@ -6948,45 +6111,13 @@ "key": false } ], - "class_hash": "0x234b62abcbf0769fe775e639db6ba250872d7cd071c773f466b1c7a0df0fe37", - "original_class_hash": "0x234b62abcbf0769fe775e639db6ba250872d7cd071c773f466b1c7a0df0fe37", + "class_hash": "0xcefc6c36d546bc57518146cbaddae80a75367eb545cdd467d479c6ad9db235", + "original_class_hash": "0xcefc6c36d546bc57518146cbaddae80a75367eb545cdd467d479c6ad9db235", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -6998,70 +6129,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -7074,29 +6141,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -7114,17 +6163,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -7142,17 +6191,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -7174,51 +6213,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -7229,7 +6242,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -7240,7 +6253,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -7251,7 +6264,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -7368,45 +6381,13 @@ "key": false } ], - "class_hash": "0x667cfefc1e94c89bdf6fc345c86d28f9187ad7f35e22a6a9903d4cb32a20102", - "original_class_hash": "0x667cfefc1e94c89bdf6fc345c86d28f9187ad7f35e22a6a9903d4cb32a20102", + "class_hash": "0xcc0be916e7057d2955b0672359bd3267a957999c13d501a89e13b01036489b", + "original_class_hash": "0xcc0be916e7057d2955b0672359bd3267a957999c13d501a89e13b01036489b", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -7418,70 +6399,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -7494,29 +6411,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -7534,17 +6433,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -7562,17 +6461,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -7594,51 +6483,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "dojo::model::IModel", - "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, + "type": "core::integer::u32" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::IDojoModel", + "items": [ { "type": "function", - "name": "version", + "name": "name", "inputs": [], "outputs": [ { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -7649,7 +6512,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -7660,7 +6523,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -7671,7 +6534,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -7807,45 +6670,13 @@ "key": false } ], - "class_hash": "0x6b246e4c2142a73be9e9585fa0a2a714a9b1150fd3f36a15025f3bfd757d204", - "original_class_hash": "0x6b246e4c2142a73be9e9585fa0a2a714a9b1150fd3f36a15025f3bfd757d204", + "class_hash": "0x7d6475ad35310f9a37596003ec31fa6510a074344778be5361c48a89097b340", + "original_class_hash": "0x7d6475ad35310f9a37596003ec31fa6510a074344778be5361c48a89097b340", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -7857,70 +6688,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -7933,29 +6700,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -7973,17 +6722,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -8001,17 +6750,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -8033,51 +6772,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -8088,7 +6801,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -8099,7 +6812,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -8110,7 +6823,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -8236,45 +6949,13 @@ "key": false } ], - "class_hash": "0x3ba8161169e57bc5b8f1185cfcf49994fd0b2eb62869b175af514311af7a67b", - "original_class_hash": "0x3ba8161169e57bc5b8f1185cfcf49994fd0b2eb62869b175af514311af7a67b", + "class_hash": "0x4d8a5b04099207034fd5e69073cbe677d30b378a89a8af2ef89d03ba3607344", + "original_class_hash": "0x4d8a5b04099207034fd5e69073cbe677d30b378a89a8af2ef89d03ba3607344", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -8286,70 +6967,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -8362,29 +6979,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -8402,17 +7001,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -8430,17 +7029,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -8462,51 +7051,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ { "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", + "name": "name", "inputs": [], "outputs": [ { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -8517,7 +7080,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -8528,7 +7091,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -8539,7 +7102,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -8693,45 +7256,13 @@ "key": false } ], - "class_hash": "0x41537a63c2a05be48536bb9cf2944f8e01eccbff657ae13106092010a8b65d9", - "original_class_hash": "0x41537a63c2a05be48536bb9cf2944f8e01eccbff657ae13106092010a8b65d9", + "class_hash": "0x37591fb934421543891c5255311a7921368469357325a0934025b452d53b282", + "original_class_hash": "0x37591fb934421543891c5255311a7921368469357325a0934025b452d53b282", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -8743,70 +7274,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -8819,29 +7286,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -8859,17 +7308,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -8887,17 +7336,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -8919,51 +7358,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -8974,7 +7387,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -8985,7 +7398,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -8996,7 +7409,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -9274,45 +7687,13 @@ "key": false } ], - "class_hash": "0x553c43e8511c15007bf6253d69cd177e5ff4a036355f33a0033a342e67301e0", - "original_class_hash": "0x553c43e8511c15007bf6253d69cd177e5ff4a036355f33a0033a342e67301e0", + "class_hash": "0x4b9c449d5770eebf963da29b0328ddd3ef5395e5984f153f3c5af76fe34691b", + "original_class_hash": "0x4b9c449d5770eebf963da29b0328ddd3ef5395e5984f153f3c5af76fe34691b", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -9324,70 +7705,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -9400,29 +7717,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -9440,17 +7739,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -9468,17 +7767,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -9500,51 +7789,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "dojo::model::IModel", - "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, + "type": "core::integer::u32" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::IDojoModel", + "items": [ { "type": "function", - "name": "version", + "name": "name", "inputs": [], "outputs": [ { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -9555,7 +7818,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -9566,7 +7829,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -9577,7 +7840,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -9738,45 +8001,13 @@ "key": false } ], - "class_hash": "0x3bdf1f27dc98fc67eaf4e8bebc05b7600db838a057131bd67ac216cab803e0f", - "original_class_hash": "0x3bdf1f27dc98fc67eaf4e8bebc05b7600db838a057131bd67ac216cab803e0f", + "class_hash": "0x67acfe23892a8237f97c961a238525d9d866da707ca9d55365397841c0cc5f", + "original_class_hash": "0x67acfe23892a8237f97c961a238525d9d866da707ca9d55365397841c0cc5f", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -9788,70 +8019,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -9864,29 +8031,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -9904,17 +8053,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -9932,17 +8081,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -9964,51 +8103,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -10019,7 +8132,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -10030,7 +8143,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -10041,7 +8154,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -10153,45 +8266,13 @@ "key": false } ], - "class_hash": "0x77af82d8b8683a2ed6d17fb5bb20080dfc3575bdf189ba228faf4caf3e181da", - "original_class_hash": "0x77af82d8b8683a2ed6d17fb5bb20080dfc3575bdf189ba228faf4caf3e181da", + "class_hash": "0x4da62b524c33e5b22852959cb9efeefb13c5476259fe2522669f557955fcab0", + "original_class_hash": "0x4da62b524c33e5b22852959cb9efeefb13c5476259fe2522669f557955fcab0", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -10203,70 +8284,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -10279,29 +8296,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -10319,17 +8318,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -10347,17 +8346,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -10379,51 +8368,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ { "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", + "name": "name", "inputs": [], "outputs": [ { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -10434,7 +8397,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -10445,7 +8408,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -10456,7 +8419,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -10588,45 +8551,13 @@ "key": false } ], - "class_hash": "0x3135a6d78ddca5643caf660d21e211a3f1384c30cbf99f94a360c28e28dd361", - "original_class_hash": "0x3135a6d78ddca5643caf660d21e211a3f1384c30cbf99f94a360c28e28dd361", + "class_hash": "0x53c9f8b30e5543d67b7b159f20879a87efaf2f51d1daea9e9ff2a21997f0ab4", + "original_class_hash": "0x53c9f8b30e5543d67b7b159f20879a87efaf2f51d1daea9e9ff2a21997f0ab4", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -10638,70 +8569,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -10714,29 +8581,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -10754,17 +8603,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -10782,17 +8631,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -10814,51 +8653,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -10869,7 +8682,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -10880,7 +8693,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -10891,7 +8704,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -11022,45 +8835,13 @@ "key": false } ], - "class_hash": "0x77e6dc3b88082c043d32d9ade8875a0dbfd79ca8dff7fa21bbae69d1df96701", - "original_class_hash": "0x77e6dc3b88082c043d32d9ade8875a0dbfd79ca8dff7fa21bbae69d1df96701", + "class_hash": "0x174cd488e9ab836f180a5b02fcd29d9fb7360812a39ef65cc63bd23e7c898c3", + "original_class_hash": "0x174cd488e9ab836f180a5b02fcd29d9fb7360812a39ef65cc63bd23e7c898c3", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -11072,70 +8853,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -11148,29 +8865,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -11188,17 +8887,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -11216,17 +8915,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -11248,51 +8937,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "dojo::model::IModel", - "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, + "type": "core::integer::u32" + } + ] + }, + { + "type": "interface", + "name": "dojo::model::IDojoModel", + "items": [ { "type": "function", - "name": "version", + "name": "name", "inputs": [], "outputs": [ { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -11303,7 +8966,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -11314,7 +8977,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -11325,7 +8988,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -11415,45 +9078,13 @@ "key": false } ], - "class_hash": "0x43d32948aa1be53f26e75e04da5ec56796f6e86030084b3ebede98c45ace32a", - "original_class_hash": "0x43d32948aa1be53f26e75e04da5ec56796f6e86030084b3ebede98c45ace32a", + "class_hash": "0x77a395b8ce90c15c128ca0b653a0f02ef268921c482c55aebf2bfa0703548b1", + "original_class_hash": "0x77a395b8ce90c15c128ca0b653a0f02ef268921c482c55aebf2bfa0703548b1", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -11465,70 +9096,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -11541,29 +9108,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -11581,17 +9130,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -11609,17 +9158,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -11641,51 +9180,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -11696,7 +9209,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -11707,7 +9220,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -11718,7 +9231,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -11820,45 +9333,13 @@ "key": false } ], - "class_hash": "0x304439814dd12e69d7898d226219e2fa2a374e82dae38f902c1b6a706bc8e82", - "original_class_hash": "0x304439814dd12e69d7898d226219e2fa2a374e82dae38f902c1b6a706bc8e82", + "class_hash": "0x549aae8b06c195d7fd764f13da14eac3fe391e6d466a13f4b32b9d4da7b6367", + "original_class_hash": "0x549aae8b06c195d7fd764f13da14eac3fe391e6d466a13f4b32b9d4da7b6367", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -11870,70 +9351,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -11946,29 +9363,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -11986,17 +9385,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -12014,17 +9413,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -12046,51 +9435,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -12101,7 +9464,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -12112,7 +9475,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -12123,7 +9486,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -12228,45 +9591,13 @@ "key": false } ], - "class_hash": "0x291d91ffdce5772e40317feaf3b43873e8c716716d948b35c77c06c21fa4e9d", - "original_class_hash": "0x291d91ffdce5772e40317feaf3b43873e8c716716d948b35c77c06c21fa4e9d", + "class_hash": "0x58cbe8c82c5c7364bd50c1f5548221c90d771cfdad9ec8982e1c988b3564681", + "original_class_hash": "0x58cbe8c82c5c7364bd50c1f5548221c90d771cfdad9ec8982e1c988b3564681", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -12278,70 +9609,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -12354,29 +9621,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -12394,17 +9643,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -12422,17 +9671,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -12454,51 +9693,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -12509,7 +9722,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -12520,7 +9733,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -12531,7 +9744,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -12623,12 +9836,12 @@ }, { "name": "name", - "type": "ByteArray", + "type": "felt252", "key": false }, { "name": "symbol", - "type": "ByteArray", + "type": "felt252", "key": false }, { @@ -12642,45 +9855,13 @@ "key": false } ], - "class_hash": "0x1f925352eb45c770d7f13d2750ed4f8e58e3fd43000d33ceb845247a5bd7538", - "original_class_hash": "0x1f925352eb45c770d7f13d2750ed4f8e58e3fd43000d33ceb845247a5bd7538", + "class_hash": "0x3cac1205f629a93c0e9b01478ed8e56ab67d66798710607ce91dab42df5e75a", + "original_class_hash": "0x3cac1205f629a93c0e9b01478ed8e56ab67d66798710607ce91dab42df5e75a", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IModel" - }, - { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, - { - "name": "pending_word", - "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u32" - }, - { - "name": "None", - "type": "()" - } - ] + "interface_name": "dojo::model::IDojoModel" }, { "type": "struct", @@ -12692,70 +9873,6 @@ } ] }, - { - "type": "struct", - "name": "dojo::database::introspect::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::database::introspect::Layout" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "dojo::database::introspect::Layout", - "variants": [ - { - "name": "Fixed", - "type": "core::array::Span::" - }, - { - "name": "Struct", - "type": "core::array::Span::" - }, - { - "name": "Tuple", - "type": "core::array::Span::" - }, - { - "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" - }, - { - "name": "Enum", - "type": "core::array::Span::" - } - ] - }, { "type": "struct", "name": "core::array::Span::", @@ -12768,29 +9885,11 @@ }, { "type": "struct", - "name": "dojo::database::introspect::Member", - "members": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "ty", - "type": "dojo::database::introspect::Ty" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", + "name": "core::array::Span::>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::" + "type": "@core::array::Array::>" } ] }, @@ -12808,17 +9907,17 @@ }, { "name": "children", - "type": "core::array::Span::" + "type": "core::array::Span::>" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", + "name": "core::array::Span::<(core::felt252, core::array::Span::)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" + "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" } ] }, @@ -12836,17 +9935,7 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" + "type": "core::array::Span::<(core::felt252, core::array::Span::)>" } ] }, @@ -12868,51 +9957,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::" + "type": "core::array::Span::>" }, { "name": "Array", - "type": "core::array::Span::" - }, - { - "name": "ByteArray", - "type": "()" + "type": "core::integer::u32" } ] }, { "type": "interface", - "name": "dojo::model::IModel", + "name": "dojo::model::IDojoModel", "items": [ - { - "type": "function", - "name": "selector", - "inputs": [], - "outputs": [ - { - "type": "core::felt252" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "name", "inputs": [], "outputs": [ { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "version", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u8" + "type": "core::felt252" } ], "state_mutability": "view" @@ -12923,7 +9986,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -12934,7 +9997,7 @@ "inputs": [], "outputs": [ { - "type": "core::option::Option::" + "type": "core::integer::u32" } ], "state_mutability": "view" @@ -12945,7 +10008,7 @@ "inputs": [], "outputs": [ { - "type": "dojo::database::introspect::Layout" + "type": "core::array::Span::" } ], "state_mutability": "view" @@ -12992,11 +10055,11 @@ }, { "name": "name", - "type": "core::byte_array::ByteArray" + "type": "core::felt252" }, { "name": "symbol", - "type": "core::byte_array::ByteArray" + "type": "core::felt252" }, { "name": "decimals", diff --git a/web/src/pages/404.tsx b/web/src/pages/404.tsx index df063f137..cad17021f 100644 --- a/web/src/pages/404.tsx +++ b/web/src/pages/404.tsx @@ -1,25 +1,3 @@ -import { Layout, OG } from "@/components/layout"; -import { useRouterContext } from "@/dojo/hooks"; -import { Sounds, playSound } from "@/hooks/sound"; -import { Box, Flex, Text } from "@chakra-ui/react"; - export default function Custom404() { - const { router } = useRouterContext() - return ( - - - - { - playSound(Sounds.Magnum357) - setTimeout(() => { - playSound(Sounds.Ooo, 0.5) - }, 420) - router.push("/") - }}> - - - Are you lost hustler ? - - - ); + return

404 - Page Not Found

; } diff --git a/web/src/pages/[gameId]/index.tsx b/web/src/pages/[gameId]/index.tsx index f36f54fac..cfaedeae3 100644 --- a/web/src/pages/[gameId]/index.tsx +++ b/web/src/pages/[gameId]/index.tsx @@ -10,6 +10,7 @@ const Redirector = observer(() => { const { router, gameId } = useRouterContext(); const { account } = useAccount(); + const { game } = useGameStore(); useEffect(() => { @@ -18,13 +19,14 @@ const Redirector = observer(() => { if (!game) { handle = setTimeout(() => { router.push(`/`); - }, 2500); + }, 2000); } else { clearTimeout(handle); - if (game.gameInfos.game_over) { + if( game.gameInfos.game_over) { router.push(`/${gameId}/end`); - } else if (game.player.status === PlayerStatus.Normal) { + } else + if (game.player.status === PlayerStatus.Normal) { if (game.player.location) { router.push(`/${gameId}/${game.player.location.location}`); } else { diff --git a/web/src/pages/[gameId]/logs.tsx b/web/src/pages/[gameId]/logs.tsx index b81683603..82bd48ae4 100644 --- a/web/src/pages/[gameId]/logs.tsx +++ b/web/src/pages/[gameId]/logs.tsx @@ -193,7 +193,7 @@ export default observer(Logs); const CustomLeftPanel = () => { const { game, gameInfos } = useGameStore(); - const { router } = useRouterContext(); + return ( { {/* {game ? reputationRanks[game.player.drugLevel as reputationRanksKeys] : ""} */} - { - router.push(`/game/history/${gameInfos?.player_id}`); - }} - > + {shortString.decodeShortString(gameInfos?.player_name?.value || "")} diff --git a/web/src/pages/game/history/[playerId].tsx b/web/src/pages/game/history.tsx similarity index 84% rename from web/src/pages/game/history/[playerId].tsx rename to web/src/pages/game/history.tsx index d55645562..f482a4b76 100644 --- a/web/src/pages/game/history/[playerId].tsx +++ b/web/src/pages/game/history.tsx @@ -20,7 +20,6 @@ import { GameClass } from "@/dojo/class/Game"; import { useDojoContext, useRouterContext } from "@/dojo/hooks"; import { PlayerStats, useGamesByPlayer } from "@/dojo/hooks/useGamesByPlayer"; import { Drugs } from "@/dojo/types"; -import { useToast } from "@/hooks/toast"; import colors from "@/theme/colors"; import { formatCashHeader } from "@/utils/ui"; @@ -54,11 +53,11 @@ import { useAccount } from "@starknet-react/core"; import { shortString } from "starknet"; export default function History() { - const { router, playerId } = useRouterContext(); - + const { router } = useRouterContext(); + const { account } = useAccount(); const { uiStore } = useDojoContext(); - const { games, onGoingGames, endedGames, playerStats } = useGamesByPlayer(playerId || "0x0"); + const { games, onGoingGames, endedGames, playerStats } = useGamesByPlayer(account?.address || "0x0"); return ( router.push("/")}>HOME} > - - {games.length === 0 && ( - - No game played yet! + + + + + + + ON GOING + ENDED + + + + + + + + + + + + - )} - - {games.length > 0 && ( - - - - - - - ON GOING - ENDED - - - - - - - - - - - - - - - )} + ); } @@ -181,11 +171,9 @@ const GameList = ({ games }: { games?: GameClass[] }) => { ); }; -const CustomLeftPanel = ({ playerId, playerStats }: { playerId?: string; playerStats?: PlayerStats }) => { +const CustomLeftPanel = ({ playerStats }: { playerStats?: PlayerStats }) => { // const { game, gameInfos } = useGameStore(); - const { toast } = useToast(); - return ( - + @@ -273,20 +261,6 @@ const CustomLeftPanel = ({ playerId, playerStats }: { playerId?: string; playerS - - ); }; @@ -414,36 +388,28 @@ export const TradedDrugsTable = ({ playerStats }: { playerStats?: PlayerStats }) - - LUDES - + LUDES {formatCashHeader(playerStats?.tradedDrugs[Drugs.Ludes] || 0)} - - SPEED - + SPEED {formatCashHeader(playerStats?.tradedDrugs[Drugs.Speed] || 0)} - - WEED - + WEED {formatCashHeader(playerStats?.tradedDrugs[Drugs.Weed] || 0)} - - SHROOMS - + SHROOMS {formatCashHeader(playerStats?.tradedDrugs[Drugs.Shrooms] || 0)} @@ -451,36 +417,28 @@ export const TradedDrugsTable = ({ playerStats }: { playerStats?: PlayerStats }) - - ACID - + ACID {formatCashHeader(playerStats?.tradedDrugs[Drugs.Acid] || 0)} - - KETAMINE - + KETAMINE {formatCashHeader(playerStats?.tradedDrugs[Drugs.Ketamine] || 0)} - - HEROIN - + HEROIN {formatCashHeader(playerStats?.tradedDrugs[Drugs.Heroin] || 0)} - - COCAINE - + COCAINE {formatCashHeader(playerStats?.tradedDrugs[Drugs.Cocaine] || 0)}