diff --git a/Scarb.toml b/Scarb.toml index c69fe607..8c634b6d 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 gendojo $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" 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.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_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 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,6 +57,7 @@ build-external-contracts = [ "token::components::token::erc20::erc20_burnable::erc_20_burnable_model", ] + [tool.dojo.env] rpc_url = "http://localhost:5050" account_address = "0x6162896d1d7ab204c7ccac6dd5f8e9e7c25ecd5ae4fcb4ad32e57786bb46e03" @@ -69,8 +70,8 @@ private_key = "0x18055e629284db77daa8d60e4ca767d65807c3f1690785006e46d6e63a13d54 [profile.ryo421.tool.dojo.env] rpc_url = "https://api.cartridge.gg/x/ryo421/katana" -account_address = "0x7d806fc9478c73c60fac37c27888771bdb3092c21eb93452277e7673954d034" -private_key = "0x784b1dd14d761c414c6394fccca3ca1d1b0cac187e88122e4b06378f9e8c515" +account_address = "0x41aba7a917019ec5e3f72fe6e082330251137fc155b74d5dde8dcc86ba791b6" +private_key = "0x46ad0fc36a495c00768b40d2832c84519f539cf28bc477c5e06af9f8baf96c4" [profile.ryosepolia.tool.dojo.env] # world_address= "0x45d3b72e3c6c85c38d43798b9751817f14fac4b14c3645480683f8fae1c6464" @@ -85,15 +86,26 @@ 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://rollyourown.preview.cartridge.gg/" +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/" 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/_mocks/paper_mock.cairo b/src/_mocks/paper_mock.cairo index a83e34b9..a947e6e0 100644 --- a/src/_mocks/paper_mock.cairo +++ b/src/_mocks/paper_mock.cairo @@ -166,7 +166,7 @@ mod paper_mock { Errors::CALLER_IS_NOT_OWNER ); - self.erc20_metadata.initialize('fPAPER', 'fPAPER', 18); + self.erc20_metadata.initialize("fPAPER", "fPAPER", 18); self.erc20_mintable.mint(get_caller_address(), 10_000); self.initializable.initialize(); diff --git a/src/config/encounters.cairo b/src/config/encounters.cairo index 3e2ac327..6fea48cf 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: 8 - 2, - defense_base: 16 - 2, + attack_step: 9 - 2, + defense_base: 16 - 4, defense_step: 9 - 2, - speed_base: 6 - 2, - speed_step: 8 - 2, + speed_base: 6, + speed_step: 9 - 2, } ); @@ -58,11 +58,11 @@ fn initialize_encounter_stats_config(s: IStoreLibraryDispatcher) { health_base: 1, health_step: 11 - 2, attack_base: 5, - attack_step: 11 - 2, - defense_base: 7, + attack_step: 12 - 2, + defense_base: 7 - 4, defense_step: 8 - 2, speed_base: 2, - speed_step: 8 - 2, + speed_step: 9 - 2, } ); @@ -76,11 +76,11 @@ fn initialize_encounter_stats_config(s: IStoreLibraryDispatcher) { health_base: 12, health_step: 8, attack_base: 14, - attack_step: 8, + attack_step: 9, defense_base: 16, defense_step: 9, speed_base: 6, - speed_step: 8, + speed_step: 9, } ); @@ -92,11 +92,11 @@ fn initialize_encounter_stats_config(s: IStoreLibraryDispatcher) { health_base: 1, health_step: 11, attack_base: 5, - attack_step: 11, + attack_step: 12, defense_base: 7, defense_step: 8, speed_base: 2, - speed_step: 8, + speed_step: 9, } ); @@ -107,14 +107,14 @@ fn initialize_encounter_stats_config(s: IStoreLibraryDispatcher) { EncounterStatsConfig { encounter: Encounters::Cops, encounters_mode: EncountersMode::UltraViolence, - health_base: 12 + 2, + health_base: 12 + 3, health_step: 8 + 2, - attack_base: 14 + 2, - attack_step: 8 + 2, - defense_base: 16 + 2, + attack_base: 14 + 3, + attack_step: 9 + 2, + defense_base: 16 + 3, defense_step: 9 + 2, - speed_base: 6 + 2, - speed_step: 8 + 2, + speed_base: 6 + 3, + speed_step: 9 + 2, } ); @@ -123,14 +123,14 @@ fn initialize_encounter_stats_config(s: IStoreLibraryDispatcher) { EncounterStatsConfig { encounter: Encounters::Gang, encounters_mode: EncountersMode::UltraViolence, - 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, + 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, } ); } @@ -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 / 16 + 1 }, - EncountersOddsMode::Hard => { reputation / 12 + 1 }, + EncountersOddsMode::Normal => { reputation / 15 + 1 }, + EncountersOddsMode::Hard => { reputation / 10 + 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 / 5; - (self.level.into() * 3 + (turn_modifer.into() * turn_modifer.into())) * 1_000 + let turn_modifer = game_store.player.turn / 3; + (self.level.into() * 2 + (turn_modifer.into() * turn_modifer.into())) * 900 } } diff --git a/src/config/hustlers.cairo b/src/config/hustlers.cairo index 546eec0c..57aca56f 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_600, + cost: 2_900, } ); set!( @@ -354,7 +354,7 @@ fn initialize_weapons_tiers_config(world: IWorldDispatcher) { slot_id: ItemSlot::Weapon.into(), tier: 4, stat: 48, - cost: 12_000, + cost: 16_900, } ); set!( @@ -364,7 +364,7 @@ fn initialize_weapons_tiers_config(world: IWorldDispatcher) { slot_id: ItemSlot::Weapon.into(), tier: 5, stat: 60, - cost: 75_000, + cost: 79_900, } ); set!( @@ -403,7 +403,7 @@ fn initialize_clothes_tiers_config(world: IWorldDispatcher) { slot_id: ItemSlot::Clothes.into(), tier: 3, stat: 36, - cost: 2_800, + cost: 2_900, } ); set!( @@ -413,7 +413,7 @@ fn initialize_clothes_tiers_config(world: IWorldDispatcher) { slot_id: ItemSlot::Clothes.into(), tier: 4, stat: 48, - cost: 11_000, + cost: 11_900, } ); set!( @@ -423,7 +423,7 @@ fn initialize_clothes_tiers_config(world: IWorldDispatcher) { slot_id: ItemSlot::Clothes.into(), tier: 5, stat: 60, - cost: 65_000, + cost: 66_900, } ); 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: 12, cost: 300, + slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 2, stat: 10, cost: 300, } ); set!( world, HustlerItemTiersConfig { - slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 3, stat: 25, cost: 1_600, + slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 3, stat: 20, cost: 1_800, } ); set!( world, HustlerItemTiersConfig { - slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 4, stat: 40, cost: 9_600, + slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 4, stat: 32, cost: 16_900, } ); set!( world, HustlerItemTiersConfig { - slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 5, stat: 55, cost: 58_000, + slot: ItemSlot::Feet, slot_id: ItemSlot::Feet.into(), tier: 5, stat: 45, cost: 89_900, } ); set!( @@ -505,7 +505,7 @@ fn initialize_transport_tiers_config(world: IWorldDispatcher) { slot_id: ItemSlot::Transport.into(), tier: 3, stat: 3000, - cost: 59_500, + cost: 59_900, } ); set!( diff --git a/src/config/settings.cairo b/src/config/settings.cairo index f03c70e5..6ff0ab03 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: 4, - rep_jailed: 6, + rep_hospitalized: 3, + rep_jailed: 5, } } @@ -125,9 +125,9 @@ impl SeasonSettingsImpl of SeasonSettingsTrait { fn get_max_turns(self: SeasonSettings) -> u8 { match self.turns_mode { - TurnsMode::OnSpeed => { 24 }, - TurnsMode::OnWeed => { 30 }, - TurnsMode::OnMush => { 36 }, + TurnsMode::OnSpeed => { 20 }, + TurnsMode::OnWeed => { 24 }, + TurnsMode::OnMush => { 28 }, } } diff --git a/src/systems/helpers/traveling.cairo b/src/systems/helpers/traveling.cairo index a58d7327..2cc448c2 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(), - 20, + 30, 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, - 20, + 30, 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, - 20, + 30, ref randomizer ); @@ -502,9 +502,9 @@ impl ResolutionImpl of ResolutionTrait { // player lose HP game_store.player.health_loss(dmg_dealt); - // 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); + // 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); let mut drug_loss = 0; if possible_drug_loss <= drug_unpacked.quantity{ diff --git a/web/src/components/pages/home/SeasonDetailsModal.tsx b/web/src/components/pages/home/SeasonDetailsModal.tsx index 2c5f2acd..fc915da6 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 Information + Season {seasonVersion} Information diff --git a/web/src/components/pages/profile/Profile.tsx b/web/src/components/pages/profile/Profile.tsx index 190342bb..d7394ea6 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 73f2abff..1efd7f03 100644 --- a/web/src/components/pages/profile/ShareButton.tsx +++ b/web/src/components/pages/profile/ShareButton.tsx @@ -35,13 +35,13 @@ const getShareText = (game: GameClass, gameInfos: Game): string => { return encodeURIComponent( `I have reached Day ${game.player.turn} with ${formatCash( game.player.cash, - )} $paper. Think you can out hustle them? #dopewars.\n\n${window.location.origin}`, + )} $paper. Think you can out hustle me? #dopewars.\n\n${window.location.origin}`, ); } else { return encodeURIComponent( - `${playerName} got dropped on Day ${game.player.turn} but pocketed ${formatCash( + `I got dropped on Day ${game.player.turn} but pocketed ${formatCash( game.player.cash, - )} $paper before checking out. Think you can out hustle them? #dopewars.\n\n${window.location.origin}`, + )} $paper before checking out. Think you can out hustle me? #dopewars.\n\n${window.location.origin}`, ); } }; diff --git a/web/src/components/player/Inventory.tsx b/web/src/components/player/Inventory.tsx index 3d21ebfc..4d11b71d 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 && ( + {!hidePawnshop && !game.items.fullStuff && ( PAWNSHOP diff --git a/web/src/dojo/abis/paperAbi.ts b/web/src/dojo/abis/paperAbi.ts index 1c0f0e72..736d8d57 100644 --- a/web/src/dojo/abis/paperAbi.ts +++ b/web/src/dojo/abis/paperAbi.ts @@ -147,6 +147,24 @@ 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", @@ -157,7 +175,7 @@ export const ABI = [ "inputs": [], "outputs": [ { - "type": "core::felt252" + "type": "core::byte_array::ByteArray" } ], "state_mutability": "view" @@ -168,7 +186,7 @@ export const ABI = [ "inputs": [], "outputs": [ { - "type": "core::felt252" + "type": "core::byte_array::ByteArray" } ], "state_mutability": "view" diff --git a/web/src/dojo/class/Items.ts b/web/src/dojo/class/Items.ts index 207053e9..b9fe80bc 100644 --- a/web/src/dojo/class/Items.ts +++ b/web/src/dojo/class/Items.ts @@ -6,149 +6,135 @@ 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, - game: observable, - }) - + 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; } - - 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.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; } + return this.game.configStore.getHustlerItemByIds(this.hustlerConfig.clothes.base.id, ItemSlot.Clothes, 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 - } - - 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 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 - ) - } + 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 - } - return this.game.configStore.getHustlerItemByIds( - this.hustlerConfig.transport.base.id, - ItemSlot.Transport, - 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 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 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 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 defenseUpgrade() { + if (this.defense!.level < this.maxLevel) { + return this.game.configStore.getHustlerItemByIds( + this.hustlerConfig.clothes.base.id, + ItemSlot.Clothes, + this.defense!.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 speedUpgrade() { + if (this.speed!.level < this.maxLevel) { + return this.game.configStore.getHustlerItemByIds( + this.hustlerConfig.feet.base.id, + ItemSlot.Feet, + this.speed!.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 transportUpgrade() { + if (this.transport!.level < this.maxLevel) { + return this.game.configStore.getHustlerItemByIds( + this.hustlerConfig.transport.base.id, + ItemSlot.Transport, + this.transport!.level + 1, + ); } -} \ No newline at end of file + return undefined; + } + + get fullStuff() { + return this.attackUpgrade === undefined && + this.defenseUpgrade === undefined && + this.speedUpgrade === undefined && + this.transportUpgrade === undefined; + + } +} diff --git a/web/src/dojo/context/DojoContext.tsx b/web/src/dojo/context/DojoContext.tsx index 15e7ba97..87abe979 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_420 : dojoContextConfig.KATANA; + process.env.NODE_ENV === "production" ? dojoContextConfig.KATANA_SLOT_421 : dojoContextConfig.KATANA; const lastSelectedChainId = typeof window !== "undefined" ? window?.localStorage?.getItem("lastSelectedChainId") : undefined; diff --git a/web/src/dojo/setup/config.ts b/web/src/dojo/setup/config.ts index 00ae690b..29ab78fe 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 979cf962..b53649f0 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": 6, + "block_number": 118, "seed": "rollyourown", "metadata": { "profile_name": "dev", @@ -992,8 +992,8 @@ { "kind": "DojoContract", "address": "0x48cd76d52ddd7a8d9c77054b1ab6536e47fde29f9f9837a91727d3fe3d8f0d7", - "class_hash": "0x3fbe921393a317edbf4ce56ca1f3785cd40f45dbbb636b6972d99e32a654d37", - "original_class_hash": "0x3fbe921393a317edbf4ce56ca1f3785cd40f45dbbb636b6972d99e32a654d37", + "class_hash": "0x67b738d595272b6f9dbffd2273ca01dd8a89e87e2640463c42a405b5023ab63", + "original_class_hash": "0x67b738d595272b6f9dbffd2273ca01dd8a89e87e2640463c42a405b5023ab63", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -1144,6 +1144,24 @@ "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", @@ -1154,7 +1172,7 @@ "inputs": [], "outputs": [ { - "type": "core::felt252" + "type": "core::byte_array::ByteArray" } ], "state_mutability": "view" @@ -1165,7 +1183,7 @@ "inputs": [], "outputs": [ { - "type": "core::felt252" + "type": "core::byte_array::ByteArray" } ], "state_mutability": "view" @@ -3438,8 +3456,8 @@ { "kind": "DojoContract", "address": "0x4c79d8d8c6a764653d4e1b5de2c35b5bd7e4e731201cde4854116a057090c55", - "class_hash": "0x77cc89adfed1bd8cf6f93eeacc4410feaf425497107b719f1125e0d8b9818d3", - "original_class_hash": "0x77cc89adfed1bd8cf6f93eeacc4410feaf425497107b719f1125e0d8b9818d3", + "class_hash": "0x364a1d4bc9c901643b0a0661f9964d667462f4c31d476513527ed82e3489f7f", + "original_class_hash": "0x364a1d4bc9c901643b0a0661f9964d667462f4c31d476513527ed82e3489f7f", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -3620,8 +3638,8 @@ { "kind": "DojoContract", "address": "0x793d2083f76ef720054addbab143399440bfa039a6cab8b6ec8728fee383fea", - "class_hash": "0x32ca39c8e9f56a17aac915c636c5ede4970e53eb58de1c259221ace69b377a6", - "original_class_hash": "0x32ca39c8e9f56a17aac915c636c5ede4970e53eb58de1c259221ace69b377a6", + "class_hash": "0x474f5bdaddfa2a1818f0977aa475655d5d30402513ad36e3f9a273914454953", + "original_class_hash": "0x474f5bdaddfa2a1818f0977aa475655d5d30402513ad36e3f9a273914454953", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -4470,8 +4488,8 @@ { "kind": "DojoContract", "address": "0x19bbb3492bdd367486d981abcff56da3f199b0c31bca0636c628307664d475a", - "class_hash": "0x262bd4da6ff50f24b1e107a7cdb2114983fa190983b2ad594f8ec2f453a8e3f", - "original_class_hash": "0x262bd4da6ff50f24b1e107a7cdb2114983fa190983b2ad594f8ec2f453a8e3f", + "class_hash": "0x1c4c937b8f635479866b26f6a1688df9232e9f9092254fd0a20f383607f70c3", + "original_class_hash": "0x1c4c937b8f635479866b26f6a1688df9232e9f9092254fd0a20f383607f70c3", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -4707,8 +4725,8 @@ { "kind": "DojoContract", "address": "0x4857efdeae5d9f90744bdc724048d78ed28d22eee11bfe7b8dfcca1481fefbf", - "class_hash": "0x3497d49d47949a843f3398e3579dcac7df221da390774f6a64e2e3a37d22476", - "original_class_hash": "0x3497d49d47949a843f3398e3579dcac7df221da390774f6a64e2e3a37d22476", + "class_hash": "0x59fd2d669bdf8d0b42e2252fe82847837ccc8cf89417c5caef3a0524132cebe", + "original_class_hash": "0x59fd2d669bdf8d0b42e2252fe82847837ccc8cf89417c5caef3a0524132cebe", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -12605,12 +12623,12 @@ }, { "name": "name", - "type": "felt252", + "type": "ByteArray", "key": false }, { "name": "symbol", - "type": "felt252", + "type": "ByteArray", "key": false }, { @@ -12624,8 +12642,8 @@ "key": false } ], - "class_hash": "0x648f87547cad4c7ff85ab3c422f77850b4a6f0b0f1494011440449a52aa8053", - "original_class_hash": "0x648f87547cad4c7ff85ab3c422f77850b4a6f0b0f1494011440449a52aa8053", + "class_hash": "0x1f925352eb45c770d7f13d2750ed4f8e58e3fd43000d33ceb845247a5bd7538", + "original_class_hash": "0x1f925352eb45c770d7f13d2750ed4f8e58e3fd43000d33ceb845247a5bd7538", "abi": [ { "type": "impl", @@ -12974,11 +12992,11 @@ }, { "name": "name", - "type": "core::felt252" + "type": "core::byte_array::ByteArray" }, { "name": "symbol", - "type": "core::felt252" + "type": "core::byte_array::ByteArray" }, { "name": "decimals", diff --git a/web/src/manifests/ryo421/manifest.json b/web/src/manifests/ryo421/manifest.json index bbc72062..bb462f2c 100644 --- a/web/src/manifests/ryo421/manifest.json +++ b/web/src/manifests/ryo421/manifest.json @@ -1,8 +1,8 @@ { "world": { "kind": "WorldContract", - "class_hash": "0x44fe688cc4d46636ffb424972c3510b10c3b1a738f6a6c9885cb7352ac8e5b1", - "original_class_hash": "0x44fe688cc4d46636ffb424972c3510b10c3b1a738f6a6c9885cb7352ac8e5b1", + "class_hash": "0xec459885a6d73cd0932dc2deea7e1939a00f2e313b0445f3e253c521ddc12", + "original_class_hash": "0xec459885a6d73cd0932dc2deea7e1939a00f2e313b0445f3e253c521ddc12", "abi": [ { "type": "impl", @@ -11,11 +11,19 @@ }, { "type": "struct", - "name": "core::array::Span::", + "name": "core::byte_array::ByteArray", "members": [ { - "name": "snapshot", - "type": "@core::array::Array::" + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" } ] }, @@ -29,7 +37,17 @@ }, { "name": "metadata_uri", - "type": "core::array::Span::" + "type": "core::byte_array::ByteArray" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -43,6 +61,70 @@ } ] }, + { + "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", @@ -94,7 +176,7 @@ "name": "model", "inputs": [ { - "name": "name", + "name": "selector", "type": "core::felt252" } ], @@ -144,6 +226,10 @@ { "name": "class_hash", "type": "core::starknet::class_hash::ClassHash" + }, + { + "name": "init_calldata", + "type": "core::array::Span::" } ], "outputs": [ @@ -214,7 +300,7 @@ }, { "name": "layout", - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "outputs": [ @@ -242,23 +328,12 @@ }, { "name": "layout", - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "outputs": [], "state_mutability": "external" }, - { - "type": "function", - "name": "base", - "inputs": [], - "outputs": [ - { - "type": "core::starknet::class_hash::ClassHash" - } - ], - "state_mutability": "view" - }, { "type": "function", "name": "delete_entity", @@ -273,12 +348,23 @@ }, { "name": "layout", - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "outputs": [], "state_mutability": "external" }, + { + "type": "function", + "name": "base", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::class_hash::ClassHash" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "is_owner", @@ -340,7 +426,7 @@ "type": "core::felt252" }, { - "name": "system", + "name": "contract", "type": "core::starknet::contract_address::ContractAddress" } ], @@ -360,7 +446,7 @@ "type": "core::felt252" }, { - "name": "system", + "name": "contract", "type": "core::starknet::contract_address::ContractAddress" } ], @@ -376,7 +462,7 @@ "type": "core::felt252" }, { - "name": "system", + "name": "contract", "type": "core::starknet::contract_address::ContractAddress" } ], @@ -644,7 +730,7 @@ }, { "name": "uri", - "type": "core::array::Span::", + "type": "core::byte_array::ByteArray", "kind": "data" } ] @@ -656,7 +742,7 @@ "members": [ { "name": "name", - "type": "core::felt252", + "type": "core::byte_array::ByteArray", "kind": "data" }, { @@ -731,7 +817,7 @@ "kind": "data" }, { - "name": "system", + "name": "contract", "type": "core::starknet::contract_address::ContractAddress", "kind": "data" }, @@ -885,9 +971,9 @@ ] } ], - "address": "0x45780a1a9786ee6bcd2e347d43d717a385dbd72e8282676d891835e0a278d14", - "transaction_hash": "0x5176188a941fc09b570cf9f522b0be830ea6d61ce00a150f6221cb11a5c326", - "block_number": 70, + "address": "0x78fcdfcc137fa18770f660ba2e8a3cf263907df38dfd462dc4dda048979c011", + "transaction_hash": "0x76e9a1442faa635b6494254475991ae4bc4b65c67ecd7839ef86e132cad032c", + "block_number": 11, "seed": "rollyourown", "metadata": { "profile_name": "ryo421", @@ -905,9 +991,9 @@ "contracts": [ { "kind": "DojoContract", - "address": "0x673f6981af3302142f661c8b8177cc979f1d96ede0d7d90f17c9710b072de02", - "class_hash": "0x68da37166388a028b1f2cb34a9b058b762590d02045bb8043907e9012eac41a", - "original_class_hash": "0x68da37166388a028b1f2cb34a9b058b762590d02045bb8043907e9012eac41a", + "address": "0x48cd76d52ddd7a8d9c77054b1ab6536e47fde29f9f9837a91727d3fe3d8f0d7", + "class_hash": "0x67b738d595272b6f9dbffd2273ca01dd8a89e87e2640463c42a405b5023ab63", + "original_class_hash": "0x67b738d595272b6f9dbffd2273ca01dd8a89e87e2640463c42a405b5023ab63", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -1012,6 +1098,24 @@ } ] }, + { + "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", @@ -1040,6 +1144,24 @@ "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", @@ -1050,7 +1172,7 @@ "inputs": [], "outputs": [ { - "type": "core::felt252" + "type": "core::byte_array::ByteArray" } ], "state_mutability": "view" @@ -1061,7 +1183,7 @@ "inputs": [], "outputs": [ { - "type": "core::felt252" + "type": "core::byte_array::ByteArray" } ], "state_mutability": "view" @@ -1486,13 +1608,14 @@ "reads": [], "writes": [], "computed": [], + "init_calldata": [], "name": "rollyourown::_mocks::paper_mock::paper_mock" }, { "kind": "DojoContract", - "address": "0x478fdd83cec8d174113ab6e4273672886d173fb88efe7d0a3279b8e7993d52f", - "class_hash": "0x644bec0a3cac43b2f261d85d8c756ea99305bed28da8a7579da5c556faea352", - "original_class_hash": "0x644bec0a3cac43b2f261d85d8c756ea99305bed28da8a7579da5c556faea352", + "address": "0x19672db5dbf87280bf028ee5d12dc0446b6b843e28c3d05f978ddff4a242ff", + "class_hash": "0x58bee011b225a0c94800611a9a60f7c021d07cfc50993fcbade419d31fd3d4b", + "original_class_hash": "0x58bee011b225a0c94800611a9a60f7c021d07cfc50993fcbade419d31fd3d4b", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -1626,7 +1749,7 @@ }, { "name": "name", - "type": "core::bytes_31::bytes31" + "type": "core::felt252" }, { "name": "initial_tier", @@ -2145,6 +2268,24 @@ } ] }, + { + "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", @@ -2208,13 +2349,14 @@ "reads": [], "writes": [], "computed": [], + "init_calldata": [], "name": "rollyourown::config::config::config" }, { "kind": "DojoContract", - "address": "0x19fecff4ffe0f2139e91a4da80db26d296e3b8a46f6872eca1cb49756a153a1", - "class_hash": "0x288816fc9e9c1c6633b396ba21a30b8f2b04e02f658e8eaf1573424219585ca", - "original_class_hash": "0x288816fc9e9c1c6633b396ba21a30b8f2b04e02f658e8eaf1573424219585ca", + "address": "0x916b0f53c8b3fa7601a7e1e60df82da642507fa82493108a2477b69cff54ea", + "class_hash": "0x425d8e3ec7c2935f527ff4591d1c02ca17bf07b1c6d6f52ca7b952d5adf872f", + "original_class_hash": "0x425d8e3ec7c2935f527ff4591d1c02ca17bf07b1c6d6f52ca7b952d5adf872f", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -2626,7 +2768,7 @@ }, { "name": "name", - "type": "core::bytes_31::bytes31" + "type": "core::felt252" }, { "name": "initial_tier", @@ -3227,6 +3369,24 @@ } ] }, + { + "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", @@ -3290,13 +3450,14 @@ "reads": [], "writes": [], "computed": [], + "init_calldata": [], "name": "rollyourown::library::store::store" }, { "kind": "DojoContract", - "address": "0x65f1f91178c3f048d4a50643609dd09bcb871519e708a3c8166b8143c7eed5a", - "class_hash": "0x67bda7ca090897cfd08546e1eb76fb436fda0ba54ee1182df22db79e7014b98", - "original_class_hash": "0x67bda7ca090897cfd08546e1eb76fb436fda0ba54ee1182df22db79e7014b98", + "address": "0x4c79d8d8c6a764653d4e1b5de2c35b5bd7e4e731201cde4854116a057090c55", + "class_hash": "0x79cd441fb29eb79fc0c654aa6975563a7e7b52132f05f9c783e9c4dfa9ee108", + "original_class_hash": "0x79cd441fb29eb79fc0c654aa6975563a7e7b52132f05f9c783e9c4dfa9ee108", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -3390,6 +3551,24 @@ } ] }, + { + "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", @@ -3453,13 +3632,14 @@ "reads": [], "writes": [], "computed": [], + "init_calldata": [], "name": "rollyourown::systems::devtools::devtools" }, { "kind": "DojoContract", - "address": "0x494d272e65874b95792a8bf9d726e162d77b6bd2ffa557c286afd2660c27828", - "class_hash": "0x588ae342c45e35d4ae92a58273074dd3a32b54338f09448ec0e4afd93728718", - "original_class_hash": "0x588ae342c45e35d4ae92a58273074dd3a32b54338f09448ec0e4afd93728718", + "address": "0x793d2083f76ef720054addbab143399440bfa039a6cab8b6ec8728fee383fea", + "class_hash": "0x78b404eec473ed8d87af7d558f8a8703f93554d7aa9bb7cd7ab51dc30217a54", + "original_class_hash": "0x78b404eec473ed8d87af7d558f8a8703f93554d7aa9bb7cd7ab51dc30217a54", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -3791,6 +3971,24 @@ } ] }, + { + "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", @@ -4284,13 +4482,14 @@ "reads": [], "writes": [], "computed": [], + "init_calldata": [], "name": "rollyourown::systems::game::game" }, { "kind": "DojoContract", - "address": "0x665fbbceaab1c1b8458df8d75d93bbbe986c4a9e59ce07665f5cfe4e92188c1", - "class_hash": "0x2c02060763ba413c90a3cdff7c6ef04e40f8f3c6396eac104f7a6391aafe589", - "original_class_hash": "0x2c02060763ba413c90a3cdff7c6ef04e40f8f3c6396eac104f7a6391aafe589", + "address": "0x19bbb3492bdd367486d981abcff56da3f199b0c31bca0636c628307664d475a", + "class_hash": "0x59a4d3ac0cc921511968068372a3c045e8b19edf433dadb65564e4686fb7012", + "original_class_hash": "0x59a4d3ac0cc921511968068372a3c045e8b19edf433dadb65564e4686fb7012", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -4439,6 +4638,24 @@ } ] }, + { + "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", @@ -4502,13 +4719,14 @@ "reads": [], "writes": [], "computed": [], + "init_calldata": [], "name": "rollyourown::systems::laundromat::laundromat" }, { "kind": "DojoContract", - "address": "0x7ccf33bb6c279a222acf5bba91c93933ea71461670e5cf19a9f6d334bc2e5a9", - "class_hash": "0x3a372547c89d22b504731e512327dcb5909668f67f4cbffce0a35163615f409", - "original_class_hash": "0x3a372547c89d22b504731e512327dcb5909668f67f4cbffce0a35163615f409", + "address": "0x4857efdeae5d9f90744bdc724048d78ed28d22eee11bfe7b8dfcca1481fefbf", + "class_hash": "0x7f30abf72fc48e7a073867e98272e1dad790143fc7f8c3cd253176028fc9593", + "original_class_hash": "0x7f30abf72fc48e7a073867e98272e1dad790143fc7f8c3cd253176028fc9593", "base_class_hash": "0x22f3e55b61d86c2ac5239fa3b3b8761f26b9a5c0b5f61ddbd5d756ced498b46", "abi": [ { @@ -4746,6 +4964,24 @@ } ] }, + { + "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", @@ -4809,6 +5045,7 @@ "reads": [], "writes": [], "computed": [], + "init_calldata": [], "name": "rollyourown::systems::ryo::ryo" } ], @@ -4852,123 +5089,251 @@ "key": false } ], - "class_hash": "0x21f26c1e258e536090862de497545b0818493d500c4d7ab1fcbc6eb889ef737", - "original_class_hash": "0x21f26c1e258e536090862de497545b0818493d500c4d7ab1fcbc6eb889ef737", + "class_hash": "0x43ec1a1cd83de2b480bd3695bee9adce6aee21527d7e1e2ce56e54be460c2a4", + "original_class_hash": "0x43ec1a1cd83de2b480bd3695bee9adce6aee21527d7e1e2ce56e54be460c2a4", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "interface_name": "dojo::model::IModel" }, { "type": "struct", - "name": "core::array::Span::", + "name": "core::byte_array::ByteArray", "members": [ { - "name": "snapshot", - "type": "@core::array::Array::" + "name": "data", + "type": "core::array::Array::" + }, + { + "name": "pending_word", + "type": "core::felt252" + }, + { + "name": "pending_word_len", + "type": "core::integer::u32" } ] }, { - "type": "struct", - "name": "core::array::Span::", - "members": [ + "type": "enum", + "name": "core::option::Option::", + "variants": [ { - "name": "snapshot", - "type": "@core::array::Array::" + "name": "Some", + "type": "core::integer::u32" + }, + { + "name": "None", + "type": "()" } ] }, { "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::Struct", + "name": "dojo::database::introspect::FieldLayout", "members": [ { - "name": "name", + "name": "selector", "type": "core::felt252" }, { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "children", - "type": "core::array::Span::>" + "name": "layout", + "type": "dojo::database::introspect::Layout" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::" } ] }, { "type": "struct", - "name": "dojo::database::introspect::Enum", + "name": "core::array::Span::", "members": [ { - "name": "name", - "type": "core::felt252" - }, - { - "name": "attrs", - "type": "core::array::Span::" - }, - { - "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "name": "snapshot", + "type": "@core::array::Array::" } ] }, { "type": "enum", - "name": "dojo::database::introspect::Ty", + "name": "dojo::database::introspect::Layout", "variants": [ { - "name": "Primitive", - "type": "core::felt252" + "name": "Fixed", + "type": "core::array::Span::" }, { "name": "Struct", - "type": "dojo::database::introspect::Struct" + "type": "core::array::Span::" }, { - "name": "Enum", - "type": "dojo::database::introspect::Enum" + "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" + }, + { + "name": "Enum", + "type": "dojo::database::introspect::Enum" }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -4977,13 +5342,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -4994,7 +5381,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -5005,7 +5392,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -5209,13 +5596,45 @@ "key": false } ], - "class_hash": "0x560ea9be0b978e35836ce05fa34cad8f5c6f106c6c52bcbe411565d03a93524", - "original_class_hash": "0x560ea9be0b978e35836ce05fa34cad8f5c6f106c6c52bcbe411565d03a93524", + "class_hash": "0x35ba3415f4f97e6829c1326ce988c807b39fd54e68f91b50970379cff99d654", + "original_class_hash": "0x35ba3415f4f97e6829c1326ce988c807b39fd54e68f91b50970379cff99d654", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -5227,6 +5646,70 @@ } ] }, + { + "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::", @@ -5239,11 +5722,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -5261,17 +5762,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -5289,7 +5790,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -5311,21 +5822,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -5334,13 +5849,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -5351,7 +5888,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -5362,7 +5899,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -5549,13 +6086,45 @@ "key": false } ], - "class_hash": "0x22d59c42d0d6b3fe6ae4cc41fe42f943605a81a011e1d0c4bd33ee2e8cd32dd", - "original_class_hash": "0x22d59c42d0d6b3fe6ae4cc41fe42f943605a81a011e1d0c4bd33ee2e8cd32dd", + "class_hash": "0x75bb457a17fe9b19f25bbf0a3a820cefde7d339e5be06b3fa129517397fd5bc", + "original_class_hash": "0x75bb457a17fe9b19f25bbf0a3a820cefde7d339e5be06b3fa129517397fd5bc", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -5567,6 +6136,70 @@ } ] }, + { + "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::", @@ -5579,11 +6212,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -5601,17 +6252,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -5629,7 +6280,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -5651,21 +6312,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -5674,13 +6339,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -5691,7 +6378,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -5702,7 +6389,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -5822,7 +6509,7 @@ }, { "name": "name", - "type": "bytes31", + "type": "felt252", "key": false }, { @@ -5831,13 +6518,45 @@ "key": false } ], - "class_hash": "0x1964a5475f8fb13f6e060a67516cd16701e361b7e2d5e0e6d8c178604672ddf", - "original_class_hash": "0x1964a5475f8fb13f6e060a67516cd16701e361b7e2d5e0e6d8c178604672ddf", + "class_hash": "0x3e8b16df9230d6a6e6e2b5957fee414fcc196cd2103a80df52d740452d260c2", + "original_class_hash": "0x3e8b16df9230d6a6e6e2b5957fee414fcc196cd2103a80df52d740452d260c2", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -5849,23 +6568,105 @@ } ] }, + { + "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::", "members": [ { - "name": "snapshot", - "type": "@core::array::Array::" + "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::>", + "name": "core::array::Span::", "members": [ { "name": "snapshot", - "type": "@core::array::Array::>" + "type": "@core::array::Array::" } ] }, @@ -5883,17 +6684,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -5911,7 +6712,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -5933,21 +6744,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -5956,13 +6771,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -5973,7 +6810,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -5984,7 +6821,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -6047,7 +6884,7 @@ }, { "name": "name", - "type": "core::bytes_31::bytes31" + "type": "core::felt252" }, { "name": "initial_tier", @@ -6111,13 +6948,45 @@ "key": false } ], - "class_hash": "0xcefc6c36d546bc57518146cbaddae80a75367eb545cdd467d479c6ad9db235", - "original_class_hash": "0xcefc6c36d546bc57518146cbaddae80a75367eb545cdd467d479c6ad9db235", + "class_hash": "0x234b62abcbf0769fe775e639db6ba250872d7cd071c773f466b1c7a0df0fe37", + "original_class_hash": "0x234b62abcbf0769fe775e639db6ba250872d7cd071c773f466b1c7a0df0fe37", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -6129,6 +6998,70 @@ } ] }, + { + "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::", @@ -6141,11 +7074,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -6163,17 +7114,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -6191,7 +7142,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -6213,21 +7174,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -6236,13 +7201,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -6253,7 +7240,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -6264,7 +7251,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -6381,13 +7368,45 @@ "key": false } ], - "class_hash": "0xcc0be916e7057d2955b0672359bd3267a957999c13d501a89e13b01036489b", - "original_class_hash": "0xcc0be916e7057d2955b0672359bd3267a957999c13d501a89e13b01036489b", + "class_hash": "0x667cfefc1e94c89bdf6fc345c86d28f9187ad7f35e22a6a9903d4cb32a20102", + "original_class_hash": "0x667cfefc1e94c89bdf6fc345c86d28f9187ad7f35e22a6a9903d4cb32a20102", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -6399,23 +7418,105 @@ } ] }, + { + "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::", "members": [ { - "name": "snapshot", - "type": "@core::array::Array::" + "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::>", + "name": "core::array::Span::", "members": [ { "name": "snapshot", - "type": "@core::array::Array::>" + "type": "@core::array::Array::" } ] }, @@ -6433,17 +7534,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -6461,7 +7562,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -6483,21 +7594,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -6506,13 +7621,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -6523,7 +7660,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -6534,7 +7671,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -6670,13 +7807,45 @@ "key": false } ], - "class_hash": "0x7d6475ad35310f9a37596003ec31fa6510a074344778be5361c48a89097b340", - "original_class_hash": "0x7d6475ad35310f9a37596003ec31fa6510a074344778be5361c48a89097b340", + "class_hash": "0x6b246e4c2142a73be9e9585fa0a2a714a9b1150fd3f36a15025f3bfd757d204", + "original_class_hash": "0x6b246e4c2142a73be9e9585fa0a2a714a9b1150fd3f36a15025f3bfd757d204", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -6688,6 +7857,70 @@ } ] }, + { + "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::", @@ -6700,11 +7933,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -6722,17 +7973,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -6750,7 +8001,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -6772,21 +8033,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -6795,13 +8060,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -6812,7 +8099,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -6823,7 +8110,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -6949,13 +8236,45 @@ "key": false } ], - "class_hash": "0x4d8a5b04099207034fd5e69073cbe677d30b378a89a8af2ef89d03ba3607344", - "original_class_hash": "0x4d8a5b04099207034fd5e69073cbe677d30b378a89a8af2ef89d03ba3607344", + "class_hash": "0x3ba8161169e57bc5b8f1185cfcf49994fd0b2eb62869b175af514311af7a67b", + "original_class_hash": "0x3ba8161169e57bc5b8f1185cfcf49994fd0b2eb62869b175af514311af7a67b", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -6967,6 +8286,70 @@ } ] }, + { + "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::", @@ -6979,11 +8362,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -7001,17 +8402,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -7028,8 +8429,18 @@ "type": "core::array::Span::" }, { - "name": "children", - "type": "core::array::Span::<(core::felt252, 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::" } ] }, @@ -7051,21 +8462,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -7074,13 +8489,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -7091,7 +8528,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -7102,7 +8539,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -7256,13 +8693,45 @@ "key": false } ], - "class_hash": "0x37591fb934421543891c5255311a7921368469357325a0934025b452d53b282", - "original_class_hash": "0x37591fb934421543891c5255311a7921368469357325a0934025b452d53b282", + "class_hash": "0x41537a63c2a05be48536bb9cf2944f8e01eccbff657ae13106092010a8b65d9", + "original_class_hash": "0x41537a63c2a05be48536bb9cf2944f8e01eccbff657ae13106092010a8b65d9", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -7274,6 +8743,70 @@ } ] }, + { + "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::", @@ -7286,11 +8819,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -7308,17 +8859,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -7336,7 +8887,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -7358,21 +8919,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -7381,13 +8946,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -7398,7 +8985,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -7409,7 +8996,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -7687,13 +9274,45 @@ "key": false } ], - "class_hash": "0x4b9c449d5770eebf963da29b0328ddd3ef5395e5984f153f3c5af76fe34691b", - "original_class_hash": "0x4b9c449d5770eebf963da29b0328ddd3ef5395e5984f153f3c5af76fe34691b", + "class_hash": "0x553c43e8511c15007bf6253d69cd177e5ff4a036355f33a0033a342e67301e0", + "original_class_hash": "0x553c43e8511c15007bf6253d69cd177e5ff4a036355f33a0033a342e67301e0", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -7705,6 +9324,70 @@ } ] }, + { + "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::", @@ -7717,11 +9400,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -7739,17 +9440,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -7767,7 +9468,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -7789,21 +9500,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -7812,13 +9527,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -7829,7 +9566,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -7840,7 +9577,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -8001,13 +9738,45 @@ "key": false } ], - "class_hash": "0x67acfe23892a8237f97c961a238525d9d866da707ca9d55365397841c0cc5f", - "original_class_hash": "0x67acfe23892a8237f97c961a238525d9d866da707ca9d55365397841c0cc5f", + "class_hash": "0x3bdf1f27dc98fc67eaf4e8bebc05b7600db838a057131bd67ac216cab803e0f", + "original_class_hash": "0x3bdf1f27dc98fc67eaf4e8bebc05b7600db838a057131bd67ac216cab803e0f", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -8019,6 +9788,70 @@ } ] }, + { + "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::", @@ -8031,11 +9864,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -8053,17 +9904,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -8081,7 +9932,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -8103,21 +9964,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -8126,13 +9991,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -8143,7 +10030,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -8154,7 +10041,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -8266,13 +10153,45 @@ "key": false } ], - "class_hash": "0x4da62b524c33e5b22852959cb9efeefb13c5476259fe2522669f557955fcab0", - "original_class_hash": "0x4da62b524c33e5b22852959cb9efeefb13c5476259fe2522669f557955fcab0", + "class_hash": "0x77af82d8b8683a2ed6d17fb5bb20080dfc3575bdf189ba228faf4caf3e181da", + "original_class_hash": "0x77af82d8b8683a2ed6d17fb5bb20080dfc3575bdf189ba228faf4caf3e181da", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -8284,6 +10203,70 @@ } ] }, + { + "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::", @@ -8296,11 +10279,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -8318,17 +10319,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -8346,7 +10347,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -8368,25 +10379,51 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "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::felt252" + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" } ], "state_mutability": "view" @@ -8397,7 +10434,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -8408,7 +10445,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -8419,7 +10456,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -8551,13 +10588,45 @@ "key": false } ], - "class_hash": "0x53c9f8b30e5543d67b7b159f20879a87efaf2f51d1daea9e9ff2a21997f0ab4", - "original_class_hash": "0x53c9f8b30e5543d67b7b159f20879a87efaf2f51d1daea9e9ff2a21997f0ab4", + "class_hash": "0x3135a6d78ddca5643caf660d21e211a3f1384c30cbf99f94a360c28e28dd361", + "original_class_hash": "0x3135a6d78ddca5643caf660d21e211a3f1384c30cbf99f94a360c28e28dd361", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -8569,6 +10638,70 @@ } ] }, + { + "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::", @@ -8581,11 +10714,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -8603,17 +10754,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -8631,7 +10782,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -8653,21 +10814,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -8676,13 +10841,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -8693,7 +10880,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -8704,7 +10891,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -8835,13 +11022,45 @@ "key": false } ], - "class_hash": "0x174cd488e9ab836f180a5b02fcd29d9fb7360812a39ef65cc63bd23e7c898c3", - "original_class_hash": "0x174cd488e9ab836f180a5b02fcd29d9fb7360812a39ef65cc63bd23e7c898c3", + "class_hash": "0x77e6dc3b88082c043d32d9ade8875a0dbfd79ca8dff7fa21bbae69d1df96701", + "original_class_hash": "0x77e6dc3b88082c043d32d9ade8875a0dbfd79ca8dff7fa21bbae69d1df96701", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -8853,6 +11072,70 @@ } ] }, + { + "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::", @@ -8865,11 +11148,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -8887,17 +11188,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -8915,7 +11216,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -8937,25 +11248,51 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "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::felt252" + "type": "core::integer::u8" } ], "state_mutability": "view" @@ -8966,7 +11303,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -8977,7 +11314,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -8988,7 +11325,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -9078,13 +11415,45 @@ "key": false } ], - "class_hash": "0x77a395b8ce90c15c128ca0b653a0f02ef268921c482c55aebf2bfa0703548b1", - "original_class_hash": "0x77a395b8ce90c15c128ca0b653a0f02ef268921c482c55aebf2bfa0703548b1", + "class_hash": "0x43d32948aa1be53f26e75e04da5ec56796f6e86030084b3ebede98c45ace32a", + "original_class_hash": "0x43d32948aa1be53f26e75e04da5ec56796f6e86030084b3ebede98c45ace32a", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -9096,6 +11465,70 @@ } ] }, + { + "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::", @@ -9108,11 +11541,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -9130,17 +11581,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -9158,7 +11609,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -9180,21 +11641,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -9203,13 +11668,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -9220,7 +11707,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -9231,7 +11718,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -9333,13 +11820,45 @@ "key": false } ], - "class_hash": "0x549aae8b06c195d7fd764f13da14eac3fe391e6d466a13f4b32b9d4da7b6367", - "original_class_hash": "0x549aae8b06c195d7fd764f13da14eac3fe391e6d466a13f4b32b9d4da7b6367", + "class_hash": "0x304439814dd12e69d7898d226219e2fa2a374e82dae38f902c1b6a706bc8e82", + "original_class_hash": "0x304439814dd12e69d7898d226219e2fa2a374e82dae38f902c1b6a706bc8e82", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -9351,6 +11870,70 @@ } ] }, + { + "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::", @@ -9363,11 +11946,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -9385,17 +11986,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -9413,7 +12014,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -9435,25 +12046,51 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "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::felt252" + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "version", + "inputs": [], + "outputs": [ + { + "type": "core::integer::u8" } ], "state_mutability": "view" @@ -9464,7 +12101,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -9475,7 +12112,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -9486,7 +12123,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -9591,13 +12228,45 @@ "key": false } ], - "class_hash": "0x58cbe8c82c5c7364bd50c1f5548221c90d771cfdad9ec8982e1c988b3564681", - "original_class_hash": "0x58cbe8c82c5c7364bd50c1f5548221c90d771cfdad9ec8982e1c988b3564681", + "class_hash": "0x291d91ffdce5772e40317feaf3b43873e8c716716d948b35c77c06c21fa4e9d", + "original_class_hash": "0x291d91ffdce5772e40317feaf3b43873e8c716716d948b35c77c06c21fa4e9d", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -9609,6 +12278,70 @@ } ] }, + { + "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::", @@ -9621,11 +12354,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -9643,17 +12394,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -9671,7 +12422,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -9693,21 +12454,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -9716,13 +12481,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -9733,7 +12520,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -9744,7 +12531,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -9836,12 +12623,12 @@ }, { "name": "name", - "type": "felt252", + "type": "ByteArray", "key": false }, { "name": "symbol", - "type": "felt252", + "type": "ByteArray", "key": false }, { @@ -9855,13 +12642,45 @@ "key": false } ], - "class_hash": "0x3cac1205f629a93c0e9b01478ed8e56ab67d66798710607ce91dab42df5e75a", - "original_class_hash": "0x3cac1205f629a93c0e9b01478ed8e56ab67d66798710607ce91dab42df5e75a", + "class_hash": "0x1f925352eb45c770d7f13d2750ed4f8e58e3fd43000d33ceb845247a5bd7538", + "original_class_hash": "0x1f925352eb45c770d7f13d2750ed4f8e58e3fd43000d33ceb845247a5bd7538", "abi": [ { "type": "impl", "name": "DojoModelImpl", - "interface_name": "dojo::model::IDojoModel" + "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": "()" + } + ] }, { "type": "struct", @@ -9873,6 +12692,70 @@ } ] }, + { + "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::", @@ -9885,11 +12768,29 @@ }, { "type": "struct", - "name": "core::array::Span::>", + "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": "@core::array::Array::" } ] }, @@ -9907,17 +12808,17 @@ }, { "name": "children", - "type": "core::array::Span::>" + "type": "core::array::Span::" } ] }, { "type": "struct", - "name": "core::array::Span::<(core::felt252, core::array::Span::)>", + "name": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>", "members": [ { "name": "snapshot", - "type": "@core::array::Array::<(core::felt252, core::array::Span::)>" + "type": "@core::array::Array::<(core::felt252, dojo::database::introspect::Ty)>" } ] }, @@ -9935,7 +12836,17 @@ }, { "name": "children", - "type": "core::array::Span::<(core::felt252, core::array::Span::)>" + "type": "core::array::Span::<(core::felt252, dojo::database::introspect::Ty)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" } ] }, @@ -9957,21 +12868,25 @@ }, { "name": "Tuple", - "type": "core::array::Span::>" + "type": "core::array::Span::" }, { "name": "Array", - "type": "core::integer::u32" + "type": "core::array::Span::" + }, + { + "name": "ByteArray", + "type": "()" } ] }, { "type": "interface", - "name": "dojo::model::IDojoModel", + "name": "dojo::model::IModel", "items": [ { "type": "function", - "name": "name", + "name": "selector", "inputs": [], "outputs": [ { @@ -9980,13 +12895,35 @@ ], "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" + } + ], + "state_mutability": "view" + }, { "type": "function", "name": "unpacked_size", "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -9997,7 +12934,7 @@ "inputs": [], "outputs": [ { - "type": "core::integer::u32" + "type": "core::option::Option::" } ], "state_mutability": "view" @@ -10008,7 +12945,7 @@ "inputs": [], "outputs": [ { - "type": "core::array::Span::" + "type": "dojo::database::introspect::Layout" } ], "state_mutability": "view" @@ -10055,11 +12992,11 @@ }, { "name": "name", - "type": "core::felt252" + "type": "core::byte_array::ByteArray" }, { "name": "symbol", - "type": "core::felt252" + "type": "core::byte_array::ByteArray" }, { "name": "decimals",