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::