From e39317dd954aee20239e9276d9a6c0b1d9a16981 Mon Sep 17 00:00:00 2001 From: raschel <38816784+aymericdelab@users.noreply.github.com> Date: Sat, 8 Feb 2025 11:46:54 +0100 Subject: [PATCH] adding new labor system (#2682) * new production * new production * new production * new production * new production * new production * fix pr comments * fix pr comments * fix pr comments * fix pr comments * new deploy * fix bug * update policies * update structure entity id in scenes * update demon hide to labor * add production module * first draft new production * add raw resources into resource * fix: production output amount * add labor burn * adding burn resource for labor * fix labor bugs and add more realms info * small fixes * clean + remove console.logs * redeployed sepolia and changed config values for labor * new config * new config * new config * contrct fix * add transfer resources above modals * fix overlay * update policies and capacity info * selected realm for production * remove console.log * feedback * knip + prettier * knip * prettier torii launcher * update sepolia env * fix build issues --------- Co-authored-by: Credence --- .knip.json | 4 + .prettierignore | 5 +- client/apps/game/.env.sepolia | 6 +- client/apps/game/index.html | 8 +- .../apps/game/src/hooks/context/policies.ts | 58 +- .../use-navigate-to-realm-view-by-account.ts | 2 +- client/apps/game/src/three/managers/biome.ts | 52 + .../game/src/three/scenes/hexagon-scene.ts | 4 +- .../apps/game/src/three/scenes/hexception.tsx | 2 +- client/apps/game/src/types/index.ts | 1 + .../construction/select-preview-building.tsx | 13 +- .../hyperstructure-resource-chip.tsx | 8 +- .../src/ui/components/modal-container.tsx | 2 +- .../src/ui/components/navigation/config.tsx | 1 + .../ui/components/navigation/os-window.tsx | 22 +- .../components/production/buildings-list.tsx | 121 + .../production/labor-production-controls.tsx | 213 + .../production/labor-resources-panel.tsx | 98 + .../components/production/production-body.tsx | 17 + .../production/production-controls.tsx | 29 + .../production/production-modal.tsx | 56 + .../production/production-sidebar.tsx | 84 + .../production/raw-resources-panel.tsx | 103 + .../ui/components/production/realm-info.tsx | 26 + .../resource-production-controls.tsx | 230 + .../resources/realm-resources-io.tsx | 11 +- .../resources/realm-transfer-manager.tsx | 27 + .../components/resources/realm-transfer.tsx | 252 +- .../ui/components/resources/resource-chip.tsx | 164 +- .../ui/components/trading/transfer-view.tsx | 4 +- client/apps/game/src/ui/config.tsx | 4 +- .../ui/containers/blank-overlay-container.tsx | 8 +- .../game/src/ui/elements/resource-cost.tsx | 1 - .../game/src/ui/elements/resource-icon.tsx | 6 +- .../game/src/ui/elements/select-resource.tsx | 24 +- client/apps/game/src/ui/layouts/world.tsx | 14 +- .../military/battle-view/entity-avatar.tsx | 8 +- .../ui/modules/navigation/capacity-info.tsx | 126 + .../navigation/left-navigation-module.tsx | 1 - .../navigation/right-navigation-module.tsx | 18 + .../navigation/top-left-navigation.tsx | 125 +- .../world-structures-menu.tsx | 2 +- client/apps/game/src/utils/labor.ts | 35 + client/apps/game/src/utils/realms.ts | 2 +- client/apps/landing/.env.sepolia | 20 +- .../src/hooks/context/dojo-context.tsx | 10 +- .../src/hooks/helpers/use-entities.tsx | 2 - client/apps/landing/src/routes/mint.lazy.tsx | 2 +- client/apps/torii-launcher/index.html | 3 +- client/apps/torii-launcher/src/index.css | 2 +- .../torii-launcher/webpack.main.config.ts | 10 +- client/apps/torii-launcher/webpack.plugins.ts | 6 +- .../torii-launcher/webpack.renderer.config.ts | 4 +- client/apps/torii-launcher/webpack.rules.ts | 12 +- .../{thumb => construction}/castleOne.png | Bin .../{thumb => construction}/castleThree.png | Bin .../{thumb => construction}/castleTwo.png | Bin .../{thumb => construction}/castleZero.png | Bin .../public/images/buildings/thumb/anvil.png | Bin 0 -> 137427 bytes client/public/images/resources/23.png | Bin 0 -> 128218 bytes config/deployer/config.ts | 51 +- config/environments/_shared_.ts | 8 +- config/environments/data/local.json | 21944 ++++++++-------- config/environments/data/mainnet.json | 2 +- config/environments/data/sepolia.json | 21944 ++++++++-------- config/environments/data/slot.json | 2 +- config/environments/utils/building.ts | 35 +- config/environments/utils/resource.ts | 229 +- config/utils/utils.ts | 6 +- contracts/common/addresses/local.json | 2 +- contracts/common/addresses/sepolia.json | 68 +- contracts/game/dojo_sepolia.toml | 4 +- contracts/game/manifest_local.json | 407 +- contracts/game/manifest_sepolia.json | 221 +- contracts/game/src/constants.cairo | 81 +- contracts/game/src/models.cairo | 1 - contracts/game/src/models/config.cairo | 106 +- contracts/game/src/models/quest.cairo | 2 +- .../models/resource/production/building.cairo | 17 +- .../models/resource/production/labor.cairo | 80 - .../resource/production/production.cairo | 188 +- .../game/src/models/resource/resource.cairo | 20 +- .../game/src/systems/config/contracts.cairo | 83 +- .../game/src/systems/map/map_generation.cairo | 23 +- .../src/systems/production/contracts.cairo | 100 +- .../game/src/systems/realm/contracts.cairo | 6 +- contracts/game/torii-sepolia.toml | 6 +- contracts/world/dojo_sepolia.toml | 4 +- packages/core/src/constants/index.ts | 2 +- packages/core/src/constants/resources.ts | 10 +- packages/core/src/constants/structures.ts | 1 - packages/core/src/constants/utils.ts | 4 +- packages/core/src/dojo/contract-components.ts | 40 +- packages/core/src/dojo/create-system-calls.ts | 22 + packages/core/src/managers/config-manager.ts | 115 +- .../core/src/managers/resource-manager.ts | 75 +- packages/core/src/provider/index.ts | 135 +- packages/core/src/types/common.ts | 22 +- packages/core/src/types/provider.ts | 55 +- packages/core/src/utils/realm.ts | 25 +- packages/core/src/utils/resources.ts | 15 +- .../react/src/hooks/helpers/use-battles.ts | 9 +- .../react/src/hooks/helpers/use-entities.ts | 29 +- .../react/src/hooks/helpers/use-resources.ts | 8 +- packages/react/src/hooks/helpers/use-trade.ts | 9 +- pnpm-lock.yaml | 8800 +------ pnpm-workspace.yaml | 5 +- 107 files changed, 25928 insertions(+), 31161 deletions(-) create mode 100644 client/apps/game/src/ui/components/production/buildings-list.tsx create mode 100644 client/apps/game/src/ui/components/production/labor-production-controls.tsx create mode 100644 client/apps/game/src/ui/components/production/labor-resources-panel.tsx create mode 100644 client/apps/game/src/ui/components/production/production-body.tsx create mode 100644 client/apps/game/src/ui/components/production/production-controls.tsx create mode 100644 client/apps/game/src/ui/components/production/production-modal.tsx create mode 100644 client/apps/game/src/ui/components/production/production-sidebar.tsx create mode 100644 client/apps/game/src/ui/components/production/raw-resources-panel.tsx create mode 100644 client/apps/game/src/ui/components/production/realm-info.tsx create mode 100644 client/apps/game/src/ui/components/production/resource-production-controls.tsx create mode 100644 client/apps/game/src/ui/components/resources/realm-transfer-manager.tsx create mode 100644 client/apps/game/src/ui/modules/navigation/capacity-info.tsx create mode 100644 client/apps/game/src/utils/labor.ts rename client/public/images/buildings/{thumb => construction}/castleOne.png (100%) rename client/public/images/buildings/{thumb => construction}/castleThree.png (100%) rename client/public/images/buildings/{thumb => construction}/castleTwo.png (100%) rename client/public/images/buildings/{thumb => construction}/castleZero.png (100%) create mode 100644 client/public/images/buildings/thumb/anvil.png create mode 100644 client/public/images/resources/23.png delete mode 100644 contracts/game/src/models/resource/production/labor.cairo diff --git a/.knip.json b/.knip.json index 0a36963c8..4de634a1e 100644 --- a/.knip.json +++ b/.knip.json @@ -25,9 +25,13 @@ "client/apps/game-docs/env.ts", + + "client/apps/torii-launcher/**", + "config/**", "contracts/**", "**/global.d.ts" + ] } diff --git a/.prettierignore b/.prettierignore index 9524c6022..fd1c34da1 100644 --- a/.prettierignore +++ b/.prettierignore @@ -20,4 +20,7 @@ # ignore generated files **/gql **/*.graphql -**/*.gen.ts \ No newline at end of file +**/*.gen.ts + +# ignore json files +**/*.json \ No newline at end of file diff --git a/client/apps/game/.env.sepolia b/client/apps/game/.env.sepolia index 943aeff30..a6b959699 100644 --- a/client/apps/game/.env.sepolia +++ b/client/apps/game/.env.sepolia @@ -8,11 +8,11 @@ VITE_PUBLIC_CLIENT_FEE_RECIPIENT=0x045c587318c9ebcf2fbe21febf288ee2e3597a21cd486 VITE_PUBLIC_CHAIN=sepolia VITE_PUBLIC_SLOT=eternum -VITE_PUBLIC_TORII=https://api.cartridge.gg/x/eternum/torii +VITE_PUBLIC_TORII=https://api.cartridge.gg/x/eternum-sepolia/torii VITE_PUBLIC_NODE_URL=https://api.cartridge.gg/x/starknet/sepolia -VITE_PUBLIC_TORII_RELAY=/dns4/api.cartridge.gg/tcp/443/x-parity-wss/%2Fx%2Feternum%2Ftorii%2Fwss +VITE_PUBLIC_TORII_RELAY=/dns4/api.cartridge.gg/tcp/443/x-parity-wss/%2Fx%2Feternum-sepolia%2Ftorii%2Fwss // optional -VITE_PUBLIC_GAME_VERSION="v0.0.0" +VITE_PUBLIC_GAME_VERSION="v1.0.0-rc7" VITE_PUBLIC_GRAPHICS_DEV=false VITE_SOCIAL_LINK=http://bit.ly/3Zz1mpp diff --git a/client/apps/game/index.html b/client/apps/game/index.html index e66da11e6..c2930032b 100644 --- a/client/apps/game/index.html +++ b/client/apps/game/index.html @@ -64,10 +64,10 @@ - - - - + + + + diff --git a/client/apps/game/src/hooks/context/policies.ts b/client/apps/game/src/hooks/context/policies.ts index 708289bc3..175bdcc8c 100644 --- a/client/apps/game/src/hooks/context/policies.ts +++ b/client/apps/game/src/hooks/context/policies.ts @@ -10,7 +10,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x22fca458aa0869b4cacca2098ae8fe3cc462bc5cef9dd222a5a68055cb8906b": { + "0x561b10faf4a0809ea306e266bb3c3c91022af032575483fcc633ed6b9d0c9ac": { methods: [ { name: "dojo_name", @@ -30,7 +30,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x158114da9a538d75512dc29b3d1995ff551dfb61bee80996232abe54b8febc2": { + "0x4da090eae1bd76c455948aa43755ce1a322c4c717abb98ffd2992fd4d9fe5fe": { methods: [ { name: "dojo_name", @@ -46,7 +46,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x66bc2d8ef45ce10d3847cc901a41af6a05db34c0ea0ab87fc332ca8c9b2ccb0": { + "0x29c169487fb01d1692f7d7eb3f8e1e0cb84956b4d202483c1673baeec878f49": { methods: [ { name: "dojo_name", @@ -82,7 +82,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x73dff02735d7031496afb34d28f6fd935d8f8e2db14b0877aaf871b3d11f524": { + "0x32762adec37d1e60a05fcba2637ec7549f3c53ebf049fcb5d210cab0e1e5049": { methods: [ { name: "dojo_name", @@ -130,7 +130,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x5827e314ca954f7eb04127a2a321e5c1f8fa6d51546b8fa6d6b38830f2b6d18": { + "0xb3d474aded507a7350baa69474463d33886be66ed6d1a0ae8d1a4f19d919a": { methods: [ { name: "dojo_name", @@ -270,7 +270,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x6c0ae788bf4a46b49a57a67944bfb614c8da00b2b99c5d2917ec9bafb8ed460": { + "0x502c164cb455df87523c1dedd1bca31f84d2e606ddc65bcb269a498aa359ed": { methods: [ { name: "dojo_name", @@ -302,7 +302,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x1c8793d542cb6fb3cb140279ece63cdb8265868874e2aed3dce8a7b7cffd256": { + "0x7f180ec4de002861bf8e86cdd9f41e19165c468ea7703ccc7c707702fa6909c": { methods: [ { name: "dojo_name", @@ -330,7 +330,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x345779feb4e212431505dff8d8581c38de82201ad9cb6bc32d7bb547087f402": { + "0x654e2cfc842dd37395a4595dc8bb78f6546c2b377b5fa74ff2487a3ea8c25d6": { methods: [ { name: "dojo_name", @@ -366,7 +366,7 @@ export const policies: ContractPolicies = { }, ], }, - "0xd4a3c274fbdc8ca6fc0c0a2e1bdb9f4ef78ec6efe253592e936bd2e5db712f": { + "0x1c148f3082414b1bf1320d421bad2a325675545f1f213af3219c3727f0de11e": { methods: [ { name: "dojo_name", @@ -402,7 +402,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x12b32981130d1089c5642125fbe96cdb4da0562e904eb8da590a30ea4f0aa9d": { + "0x171c6fae95acd58233dfa472e86184a53f42da7d9a4dd94ff4b2a2f3dd8e9de": { methods: [ { name: "dojo_name", @@ -422,7 +422,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x43b2a3f4e47fa52ef2549162f89258dbcbd23bc62a51d0a331b80039a66bc9b": { + "0x6f29997ad3fec03fa79e043d69260b39baf0690cc5198bdec510ba0d9d200af": { methods: [ { name: "dojo_name", @@ -442,7 +442,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x6e173c5aca48a948de710aea5492c1df18a3f477b666a9af82281e1024e7bd2": { + "0x79300036c247389c377da6b3f01106509aa35c75e16a290d385ceec66857f98": { methods: [ { name: "dojo_name", @@ -458,7 +458,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x7ad2d6a7a566fece8c3cb08b96ca16c43f6981c77f7e1b2fa2112aac2976661": { + "0x34a8564ce24af9c57333fdf579945eba6a99a0624ca0d0a428905e074c2ada0": { methods: [ { name: "dojo_name", @@ -478,7 +478,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x5f20dfb2ac256e7b8394d2ac6bbd12288c2844c64143a87e27cb5bd3027ebc0": { + "0x442687ef27c6fcb84177efac8b75ec80b8be87d40f9befe2780bf2ea98a8c08": { methods: [ { name: "dojo_name", @@ -494,7 +494,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x30b9c5bf6c05b8e950901079bba39766f4a4d23466f2df0258e1ecca3731e19": { + "0x13f688b9e847a188d6e3306c57ad4cedc846207ec0d4214d3adb966f89abda6": { methods: [ { name: "dojo_name", @@ -514,7 +514,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x1e859bd917c725f938d7ffecdd9f687e04af2b44cf534848895e7efa946378a": { + "0x3eb0f666216653f8bd1b27b4640e4730580f5899b73456c059fb157e1e1e9a": { methods: [ { name: "dojo_name", @@ -542,7 +542,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x7e9f737c5c89d0f4e2c2b9f0ffda396da22b2c9fa14106f2d940dddae35497a": { + "0x524a24ace42046b73845153567d5a31ca914aaabbf34fd4c4fe758da41e66df": { methods: [ { name: "dojo_name", @@ -566,7 +566,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x6f2ca7adc33ebf6cbe7d539cb50dff53cffcc701ac252b65eadc9454e12e247": { + "0x6f1ecad7e45043715d052ec7075910fe49379ccec56caa30773bffb1bd8ce42": { methods: [ { name: "dojo_name", @@ -586,7 +586,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x67d9fbdbb222b30679aa4b6d4d15f0e16f984603996111c6ef8b425293d29c7": { + "0x3c4b44ff5b2dd18a8e388d38f453cfc4c5262d110b13f5f26a5c28e5ac40fd9": { methods: [ { name: "dojo_name", @@ -606,7 +606,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x4949075e31363f02ac3d4374bf1cb726873cd55a3f572dc85ddc9f8ef89c351": { + "0x2dde744795e94a6c8934f224741da3e0408d82c07463858b7566664f7bb8633": { methods: [ { name: "dojo_name", @@ -634,7 +634,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x5bb3ed403abb2ceeb6ce8911052a4f9c922f2d4777427454fcbea605192ddc9": { + "0x7d2fb638516c4a32858ef7bf09865389edc60c3cb9e6d4d0049c0ad7a214c6a": { methods: [ { name: "dojo_name", @@ -650,7 +650,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x4d6d43ec3fe5fb0d22398f9aee1846285e7c44bfa3900b7e490d18a9fb4eae4": { + "0x133660106d03c9811a9ce63fe2464e99f0816b83439c55003ebdde53f560655": { methods: [ { name: "dojo_name", @@ -678,7 +678,7 @@ export const policies: ContractPolicies = { }, ], }, - "0x47773b52867c0867b40b26408e3ff84fca0b1a9afe55c0cb0fe284c1a18c3d8": { + "0x56347b8808383046242a9240124ac42b4d8a718ba2925bb900ba6a3ac7c8454": { methods: [ { name: "dojo_name", @@ -701,12 +701,16 @@ export const policies: ContractPolicies = { entrypoint: "resume_building_production", }, { - name: "make_production_labor", - entrypoint: "make_production_labor", + name: "burn_labor_resources_for_other_production", + entrypoint: "burn_labor_resources_for_other_production", }, { - name: "burn_production_labor", - entrypoint: "burn_production_labor", + name: "burn_other_predefined_resources_for_resources", + entrypoint: "burn_other_predefined_resources_for_resources", + }, + { + name: "burn_other_resources_for_labor_production", + entrypoint: "burn_other_resources_for_labor_production", }, { name: "world_dispatcher", diff --git a/client/apps/game/src/hooks/helpers/use-navigate-to-realm-view-by-account.ts b/client/apps/game/src/hooks/helpers/use-navigate-to-realm-view-by-account.ts index 7e4988e7f..92b78e35c 100644 --- a/client/apps/game/src/hooks/helpers/use-navigate-to-realm-view-by-account.ts +++ b/client/apps/game/src/hooks/helpers/use-navigate-to-realm-view-by-account.ts @@ -16,7 +16,7 @@ export const useNavigateToRealmViewByAccount = (components: ClientComponents) => if (!account) { const randomRealmEntity = getRandomRealmEntity(components); const position = randomRealmEntity ? getComponentValue(components.Position, randomRealmEntity) : undefined; - navigateToHexView(new Position(position || { x: 0, y: 0 })); + position && navigateToHexView(new Position(position)); } else { const playerRealm = getPlayerFirstRealm(components, ContractAddress(account?.address || NULL_ACCOUNT.address)); const position = playerRealm ? getComponentValue(components.Position, playerRealm) : undefined; diff --git a/client/apps/game/src/three/managers/biome.ts b/client/apps/game/src/three/managers/biome.ts index 8300f66f7..ac488cf46 100644 --- a/client/apps/game/src/three/managers/biome.ts +++ b/client/apps/game/src/three/managers/biome.ts @@ -129,6 +129,58 @@ export class Biome { } } +function analyzeBiomeDistribution(centerX: number, centerY: number, radius: number) { + const biome = new Biome(); + const biomeCounts: Record = { + DeepOcean: 0, + Ocean: 0, + Beach: 0, + Scorched: 0, + Bare: 0, + Tundra: 0, + Snow: 0, + TemperateDesert: 0, + Shrubland: 0, + Taiga: 0, + Grassland: 0, + TemperateDeciduousForest: 0, + TemperateRainForest: 0, + SubtropicalDesert: 0, + TropicalSeasonalForest: 0, + TropicalRainForest: 0, + }; + + const startX = centerX - radius; + const endX = centerX + radius; + const startY = centerY - radius; + const endY = centerY + radius; + let totalTiles = 0; + + for (let x = startX; x <= endX; x++) { + for (let y = startY; y <= endY; y++) { + const biomeType = biome.getBiome(x, y); + biomeCounts[biomeType]++; + totalTiles++; + } + } + + console.log(`\nBiome Distribution Analysis`); + console.log(`Center: (${centerX}, ${centerY})`); + console.log(`Radius: ${radius} tiles`); + console.log(`Total area: ${totalTiles} tiles\n`); + console.log("Biome Counts:"); + + Object.entries(biomeCounts) + .sort(([, a], [, b]) => b - a) + .forEach(([biomeType, count]) => { + const percentage = ((count / totalTiles) * 100).toFixed(2); + console.log(`${biomeType}: ${count} tiles (${percentage}%)`); + }); +} + +// Example usage: +// analyzeBiomeDistribution(2147483646, 2147483646, 500); + // function testBiomeGeneration() { // const biome = new Biome(); // const start = 5000871265127650; diff --git a/client/apps/game/src/three/scenes/hexagon-scene.ts b/client/apps/game/src/three/scenes/hexagon-scene.ts index f253cd292..94dd40665 100644 --- a/client/apps/game/src/three/scenes/hexagon-scene.ts +++ b/client/apps/game/src/three/scenes/hexagon-scene.ts @@ -75,10 +75,12 @@ export abstract class HexagonScene { (state) => ({ leftNavigationView: state.leftNavigationView, rightNavigationView: state.rightNavigationView, + structureEntityId: state.structureEntityId, }), - ({ leftNavigationView, rightNavigationView }) => { + ({ leftNavigationView, rightNavigationView, structureEntityId }) => { this.state.leftNavigationView = leftNavigationView; this.state.rightNavigationView = rightNavigationView; + this.state.structureEntityId = structureEntityId; }, ); } diff --git a/client/apps/game/src/three/scenes/hexception.tsx b/client/apps/game/src/three/scenes/hexception.tsx index b84393bbd..d8e3aacd0 100644 --- a/client/apps/game/src/three/scenes/hexception.tsx +++ b/client/apps/game/src/three/scenes/hexception.tsx @@ -717,7 +717,7 @@ export default class HexceptionScene extends HexagonScene { ) => { const existingBuildings: any[] = this.tileManager.existingBuildings(); const structureType = this.tileManager.structureType(); - if (structureType) { + if (structureType && structureType !== StructureType.Realm) { existingBuildings.push({ col: BUILDINGS_CENTER[0], row: BUILDINGS_CENTER[1], diff --git a/client/apps/game/src/types/index.ts b/client/apps/game/src/types/index.ts index 33a2ad604..dee12a1ea 100644 --- a/client/apps/game/src/types/index.ts +++ b/client/apps/game/src/types/index.ts @@ -3,6 +3,7 @@ import { ID } from "@bibliothecadao/eternum"; export enum RightView { None, ResourceTable, + Production, } export enum LeftView { diff --git a/client/apps/game/src/ui/components/construction/select-preview-building.tsx b/client/apps/game/src/ui/components/construction/select-preview-building.tsx index f452dcc56..38637aaf9 100644 --- a/client/apps/game/src/ui/components/construction/select-preview-building.tsx +++ b/client/apps/game/src/ui/components/construction/select-preview-building.tsx @@ -26,7 +26,6 @@ import { ResourceIdToMiningType, ResourceMiningTypes, ResourcesIds, - unpackResources, WORLD_CONFIG_ID, } from "@bibliothecadao/eternum"; import { DojoResult, useDojo } from "@bibliothecadao/react"; @@ -62,14 +61,6 @@ export const SelectPreviewBuildingMenu = ({ className, entityId }: { className?: key !== "Hyperstructure", ); - const realmResourceIds = useMemo(() => { - if (realm) { - return unpackResources(BigInt(realm.resourceTypesPacked)); - } else { - return []; - } - }, [realm]); - const checkBalance = (cost: any) => Object.keys(cost).every((resourceId) => { const resourceCost = cost[Number(resourceId)]; @@ -90,7 +81,7 @@ export const SelectPreviewBuildingMenu = ({ className, entityId }: { className?: ), component: (
- {realmResourceIds.map((resourceId) => { + {realm?.resources.map((resourceId) => { const resource = findResourceById(resourceId)!; const buildingCosts = getResourceBuildingCosts(entityId, dojo, resourceId); @@ -272,7 +263,7 @@ export const SelectPreviewBuildingMenu = ({ className, entityId }: { className?: ), }, ], - [realm, entityId, realmResourceIds, selectedTab, previewBuilding, playResourceSound], + [realm, entityId, selectedTab, previewBuilding, playResourceSound], ); return ( diff --git a/client/apps/game/src/ui/components/hyperstructures/hyperstructure-resource-chip.tsx b/client/apps/game/src/ui/components/hyperstructures/hyperstructure-resource-chip.tsx index c3b9000ac..128aa36da 100644 --- a/client/apps/game/src/ui/components/hyperstructures/hyperstructure-resource-chip.tsx +++ b/client/apps/game/src/ui/components/hyperstructures/hyperstructure-resource-chip.tsx @@ -4,7 +4,7 @@ import { NumberInput } from "@/ui/elements/number-input"; import { ResourceIcon } from "@/ui/elements/resource-icon"; import { currencyIntlFormat } from "@/ui/utils/utils"; import { getBlockTimestamp } from "@/utils/timestamp"; -import { divideByPrecision, findResourceById, getBalance, getIconResourceId, ID } from "@bibliothecadao/eternum"; +import { divideByPrecision, findResourceById, getBalance, ID } from "@bibliothecadao/eternum"; import { ProgressWithPercentage, useDojo } from "@bibliothecadao/react"; import { useEffect, useState } from "react"; @@ -70,8 +70,7 @@ export const HyperstructureResourceChip = ({ position: "top", content: ( <> - {findResourceById(getIconResourceId(resourceId, false))?.trait as string} ({currencyIntlFormat(balance)} - ) + {findResourceById(resourceId)?.trait as string} ({currencyIntlFormat(balance)}) ), }); @@ -81,9 +80,8 @@ export const HyperstructureResourceChip = ({ }} > diff --git a/client/apps/game/src/ui/components/modal-container.tsx b/client/apps/game/src/ui/components/modal-container.tsx index cf34174b4..214c51fca 100644 --- a/client/apps/game/src/ui/components/modal-container.tsx +++ b/client/apps/game/src/ui/components/modal-container.tsx @@ -13,7 +13,7 @@ export const ModalContainer = ({ children, size = "full" }: ModalContainerProps) const containerClasses = size === "full" - ? "w-full h-full p-4" + ? "w-full h-full pb-20" : "w-1/2 h-1/2 top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2"; const handleEscapePress = useCallback( diff --git a/client/apps/game/src/ui/components/navigation/config.tsx b/client/apps/game/src/ui/components/navigation/config.tsx index e12fd5cc6..ebabafae2 100644 --- a/client/apps/game/src/ui/components/navigation/config.tsx +++ b/client/apps/game/src/ui/components/navigation/config.tsx @@ -21,6 +21,7 @@ export interface OSInterface { height?: string; width?: string; hintSection?: HintSection; + className?: string; } export interface ExpandableOSInterface extends OSInterface { diff --git a/client/apps/game/src/ui/components/navigation/os-window.tsx b/client/apps/game/src/ui/components/navigation/os-window.tsx index 8b521db5f..c7b0e6347 100644 --- a/client/apps/game/src/ui/components/navigation/os-window.tsx +++ b/client/apps/game/src/ui/components/navigation/os-window.tsx @@ -11,18 +11,24 @@ export const OSWindow = ({ height = "h-72", width = "400px", hintSection, + className, }: OSInterface) => { return ( <> {show && ( - - onClick()} hintSection={hintSection}> - {title} - - - {children} - - +
+ + onClick()} hintSection={hintSection}> + {title} + + + {children} + + +
)} ); diff --git a/client/apps/game/src/ui/components/production/buildings-list.tsx b/client/apps/game/src/ui/components/production/buildings-list.tsx new file mode 100644 index 000000000..b45b2d3eb --- /dev/null +++ b/client/apps/game/src/ui/components/production/buildings-list.tsx @@ -0,0 +1,121 @@ +import { BUILDING_IMAGES_PATH } from "@/ui/config"; +import { ResourceIcon } from "@/ui/elements/resource-icon"; +import { BuildingType, getEntityIdFromKeys, RealmInfo, ResourcesIds } from "@bibliothecadao/eternum"; +import { useBuildings, useDojo } from "@bibliothecadao/react"; +import { getComponentValue } from "@dojoengine/recs"; +import { useMemo } from "react"; +import { ResourceChip } from "../resources/resource-chip"; + +export const BuildingsList = ({ + realm, + onSelectProduction, + selectedResource, +}: { + realm: RealmInfo; + onSelectProduction: (resource: number) => void; + selectedResource: number | null; +}) => { + const buildings = useBuildings(realm.position.x, realm.position.y); + + const productionBuildings = buildings.filter( + (building) => + building.category === BuildingType[BuildingType.Resource] || + building.category === BuildingType[BuildingType.Farm] || + building.category === BuildingType[BuildingType.FishingVillage] || + building.category === BuildingType[BuildingType.Barracks] || + building.category === BuildingType[BuildingType.ArcheryRange] || + building.category === BuildingType[BuildingType.Castle] || + building.category === BuildingType[BuildingType.Market] || + building.category === BuildingType[BuildingType.Stable], + ); + + const { + setup: { + components: { Resource }, + }, + } = useDojo(); + + const producedResources = Array.from(new Set(productionBuildings.map((building) => building.produced.resource))); + + const productions = useMemo(() => { + return producedResources + .map((resourceId) => { + const resource = getComponentValue(Resource, getEntityIdFromKeys([BigInt(realm.entityId), BigInt(resourceId)])); + + const buildingsForResource = productionBuildings.filter( + (building) => building.produced.resource === resourceId, + ); + + if (!resource?.production) return null; + + return { + resource: resourceId, + balance: resource?.balance || 0, + production: resource.production, + buildings: buildingsForResource, + isLabor: resourceId === ResourcesIds.Labor, + }; + }) + .filter((production) => production !== null); + }, [producedResources]); + + return ( +
+

Production Buildings

+
+ {productions.map((production) => { + let bgImage = ""; + if (production.isLabor) { + bgImage = BUILDING_IMAGES_PATH[BuildingType.Castle as keyof typeof BUILDING_IMAGES_PATH]; + } else { + bgImage = production.buildings[0]?.category + ? BUILDING_IMAGES_PATH[ + BuildingType[ + production.buildings[0].category as keyof typeof BuildingType + ] as keyof typeof BUILDING_IMAGES_PATH + ] + : ""; + } + + return ( +
onSelectProduction(production.resource)} + className={`relative group cursor-pointer transition-all duration-200 border-2 + ${selectedResource === production.resource ? "border-gold/30" : "border-transparent"} + rounded-lg p-4`} + style={{ + backgroundImage: `linear-gradient(rgba(20, 16, 13, 0.9), rgba(20, 16, 13, 0.9)), url(${bgImage})`, + backgroundSize: "cover", + backgroundPosition: "center", + }} + > +
+
+
+ +
+

{ResourcesIds[production.resource]}

+ + {production.buildings.length} building{production.buildings.length !== 1 ? "s" : ""} + +
+
+
+ +
+ +
+
+
+ ); + })} +
+
+ ); +}; diff --git a/client/apps/game/src/ui/components/production/labor-production-controls.tsx b/client/apps/game/src/ui/components/production/labor-production-controls.tsx new file mode 100644 index 000000000..65ec90fa2 --- /dev/null +++ b/client/apps/game/src/ui/components/production/labor-production-controls.tsx @@ -0,0 +1,213 @@ +import Button from "@/ui/elements/button"; +import { NumberInput } from "@/ui/elements/number-input"; +import { ResourceIcon } from "@/ui/elements/resource-icon"; +import { SelectResource } from "@/ui/elements/select-resource"; +import { getLaborConfig } from "@/utils/labor"; +import { + divideByPrecision, + findResourceById, + getEntityIdFromKeys, + multiplyByPrecision, + RealmInfo, + ResourcesIds, +} from "@bibliothecadao/eternum"; +import { useDojo } from "@bibliothecadao/react"; +import { getComponentValue } from "@dojoengine/recs"; +import { useMemo, useState } from "react"; + +export const LaborProductionControls = ({ realm }: { realm: RealmInfo }) => { + const { + setup: { + account: { account }, + systemCalls: { burn_other_resources_for_labor_production }, + components: { Resource }, + }, + } = useDojo(); + + const [isLoading, setIsLoading] = useState(false); + const [selectedResources, setSelectedResources] = useState<{ id: number; amount: number }[]>([]); + + const handleProduce = async () => { + setIsLoading(true); + + const calldata = { + entity_id: realm.entityId, + resource_types: selectedResources.map((r) => r.id), + resource_amounts: selectedResources.map((r) => multiplyByPrecision(r.amount)), + signer: account, + }; + + try { + await burn_other_resources_for_labor_production(calldata); + } catch (error) { + console.error(error); + } finally { + setIsLoading(false); + } + }; + + const laborConfig = useMemo(() => { + return selectedResources.map((r) => getLaborConfig(r.id)); + }, [selectedResources]); + + const { laborAmount, ticks } = useMemo(() => { + if (!laborConfig.length) return { laborAmount: 0, ticks: 0 }; + const totalLaborAmount = selectedResources.reduce((acc, resource, index) => { + return acc + resource.amount * (laborConfig[index]?.laborProductionPerResource ?? 0); + }, 0); + + const maxTicks = Math.max( + ...laborConfig.map((config, index) => { + return Math.ceil( + (selectedResources[index].amount * (config?.laborProductionPerResource || 0)) / + (config?.laborRatePerTick || 0), + ); + }), + ); + + return { laborAmount: totalLaborAmount, ticks: maxTicks }; + }, [laborConfig, selectedResources]); + + const availableResources = useMemo(() => { + return Object.values(ResourcesIds) + .filter((id) => typeof id === "number") + .map((id) => ({ + id: id as number, + balance: getComponentValue(Resource, getEntityIdFromKeys([BigInt(realm.entityId), BigInt(id)]))?.balance || 0, + })); + }, [realm.entityId]); + + const addResource = () => { + const availableResourceIds = Object.values(ResourcesIds).filter( + (id) => typeof id === "number" && !selectedResources.map((r) => r.id).includes(id as number), + ); + if (availableResourceIds.length > 0) { + setSelectedResources([...selectedResources, { id: availableResourceIds[0] as number, amount: 0 }]); + } + }; + + const removeResource = (index: number) => { + setSelectedResources(selectedResources.filter((_, i) => i !== index)); + }; + + const updateResourceId = (index: number, id: number) => { + const newResources = [...selectedResources]; + newResources[index].id = id; + setSelectedResources(newResources); + }; + + const updateResourceAmount = (index: number, amount: number) => { + const newResources = [...selectedResources]; + newResources[index].amount = amount; + setSelectedResources(newResources); + }; + + const handleMaxClick = (index: number) => { + const resource = selectedResources[index]; + const balance = divideByPrecision(Number(availableResources.find((r) => r.id === resource.id)?.balance || 0)); + const newResources = [...selectedResources]; + newResources[index].amount = balance; + setSelectedResources(newResources); + }; + + return ( +
+

Labor Production

+ +
+ {selectedResources.map((resource, index) => ( +
+
+ updateResourceId(index, resourceId || 0)} + className="w-full bg-dark-brown rounded border border-gold/30" + realmProduction={true} + defaultValue={resource.id} + excludeResourceIds={selectedResources.map((r) => r.id).filter((id) => id !== resource.id)} + /> +
+ +
+
+ +
+
+ updateResourceAmount(index, value)} + min={1} + className="rounded-md border-gold/30 hover:border-gold/50" + /> +
+
+ + + {divideByPrecision(Number(availableResources.find((r) => r.id === resource.id)?.balance || 0))} + +
+
+
+
+ + +
+ ))} + + +
+ + <> +
+

Production Details

+
+
+ + Total Labor Generated: + {laborAmount} +
+ +
+ Time Required: + + {(() => { + const days = Math.floor(ticks / (24 * 60 * 60)); + const hours = Math.floor((ticks % (24 * 60 * 60)) / (60 * 60)); + const minutes = Math.floor((ticks % (60 * 60)) / 60); + const seconds = ticks % 60; + + return [ + days > 0 ? `${days}d ` : "", + hours > 0 ? `${hours}h ` : "", + minutes > 0 ? `${minutes}m ` : "", + `${seconds}s`, + ].join(""); + })()} + +
+
+
+ +
+ +
+ +
+ ); +}; diff --git a/client/apps/game/src/ui/components/production/labor-resources-panel.tsx b/client/apps/game/src/ui/components/production/labor-resources-panel.tsx new file mode 100644 index 000000000..2967b9f0e --- /dev/null +++ b/client/apps/game/src/ui/components/production/labor-resources-panel.tsx @@ -0,0 +1,98 @@ +import { NumberInput } from "@/ui/elements/number-input"; +import { ResourceIcon } from "@/ui/elements/resource-icon"; +import { getLaborConfig } from "@/utils/labor"; +import { ResourcesIds } from "@bibliothecadao/eternum"; + +interface LaborResourcesPanelProps { + selectedResource: number; + productionAmount: number; + setProductionAmount: (value: number) => void; + resourceBalances: Record; + isSelected: boolean; + onSelect: () => void; +} + +export const LaborResourcesPanel = ({ + selectedResource, + productionAmount, + setProductionAmount, + resourceBalances, + isSelected, + onSelect, +}: LaborResourcesPanelProps) => { + const laborConfig = getLaborConfig(selectedResource); + const laborInputResources = laborConfig?.inputResources; + + const handleInputChange = (value: number, inputResource: number) => { + if (!laborInputResources) return; + const resourceConfig = laborInputResources.find((r) => r.resource === inputResource); + if (!resourceConfig) return; + const newAmount = value / resourceConfig.amount; + setProductionAmount(newAmount); + }; + + const calculateMaxProduction = () => { + if (!laborInputResources || !resourceBalances) return 1; + + const maxAmounts = laborInputResources.map((input) => { + const balance = resourceBalances[input.resource] || 0; + return Math.floor(balance / input.amount); + }); + + return Math.max(1, Math.min(...maxAmounts)); + }; + + const handleMaxClick = () => { + setProductionAmount(calculateMaxProduction()); + }; + + return ( +
+

Labor

+
+ {laborInputResources?.map((input) => { + const balance = resourceBalances[input.resource] || 0; + return ( +
+ +
+
+ handleInputChange(value, input.resource)} + min={0} + max={resourceBalances[input.resource] || 0} + className="rounded-md border-gold/30 hover:border-gold/50" + /> +
+ + {balance} + +
+
+ ); + })} + +
+
+ ); +}; diff --git a/client/apps/game/src/ui/components/production/production-body.tsx b/client/apps/game/src/ui/components/production/production-body.tsx new file mode 100644 index 000000000..e9bd7a707 --- /dev/null +++ b/client/apps/game/src/ui/components/production/production-body.tsx @@ -0,0 +1,17 @@ +import { RealmInfo as RealmInfoType } from "@bibliothecadao/eternum"; +import { useState } from "react"; +import { BuildingsList } from "./buildings-list"; +import { ProductionControls } from "./production-controls"; +import { RealmInfo } from "./realm-info"; + +export const ProductionBody = ({ realm }: { realm: RealmInfoType }) => { + const [selectedResource, setSelectedResource] = useState(null); + + return ( +
+ + + {selectedResource && } +
+ ); +}; diff --git a/client/apps/game/src/ui/components/production/production-controls.tsx b/client/apps/game/src/ui/components/production/production-controls.tsx new file mode 100644 index 000000000..99c9a30ba --- /dev/null +++ b/client/apps/game/src/ui/components/production/production-controls.tsx @@ -0,0 +1,29 @@ +import { RealmInfo, ResourcesIds } from "@bibliothecadao/eternum"; +import { useState } from "react"; +import { LaborProductionControls } from "./labor-production-controls"; +import { ResourceProductionControls } from "./resource-production-controls"; + +export const ProductionControls = ({ selectedResource, realm }: { selectedResource: number; realm: RealmInfo }) => { + const isLaborMode = selectedResource === ResourcesIds.Labor; + + const [useRawResources, setUseRawResources] = useState(true); + const [productionAmount, setProductionAmount] = useState(1); + const [ticks, setTicks] = useState(); + + if (isLaborMode) { + return ; + } + + return ( + + ); +}; diff --git a/client/apps/game/src/ui/components/production/production-modal.tsx b/client/apps/game/src/ui/components/production/production-modal.tsx new file mode 100644 index 000000000..c51b6810a --- /dev/null +++ b/client/apps/game/src/ui/components/production/production-modal.tsx @@ -0,0 +1,56 @@ +import { useUIStore } from "@/hooks/store/use-ui-store"; +import { ModalContainer } from "@/ui/components/modal-container"; +import { LoadingAnimation } from "@/ui/elements/loading-animation"; +import { ID, RealmInfo } from "@bibliothecadao/eternum"; +import { usePlayerOwnedRealms } from "@bibliothecadao/react"; +import { Suspense, lazy, useCallback, useMemo, useState } from "react"; + +const ProductionSidebar = lazy(() => + import("./production-sidebar").then((module) => ({ default: module.ProductionSidebar })), +); + +const ProductionBody = lazy(() => import("./production-body").then((module) => ({ default: module.ProductionBody }))); + +export const ProductionModal = () => { + const playerRealms = usePlayerOwnedRealms(); + + const initialRealm = useMemo(() => { + const structureEntityId = useUIStore.getState().structureEntityId; + const selectedRealm = playerRealms.find((r) => r.entityId === structureEntityId); + return selectedRealm; + }, [playerRealms]); + + const [selectedRealm, setSelectedRealm] = useState(initialRealm || playerRealms[0]); + + const handleSelectRealm = useCallback( + (id: ID) => { + const realm = playerRealms.find((r) => r.entityId === id); + setSelectedRealm(realm); + }, + [playerRealms], + ); + + return ( + +
+
+ }> + {playerRealms.length > 0 && ( + + )} + +
+
+

Production

+ }> + {selectedRealm && } + +
+
+
+ ); +}; diff --git a/client/apps/game/src/ui/components/production/production-sidebar.tsx b/client/apps/game/src/ui/components/production/production-sidebar.tsx new file mode 100644 index 000000000..a2565ef77 --- /dev/null +++ b/client/apps/game/src/ui/components/production/production-sidebar.tsx @@ -0,0 +1,84 @@ +import { ResourceIcon } from "@/ui/elements/resource-icon"; +import { getEntityIdFromKeys, ID, RealmInfo, resources } from "@bibliothecadao/eternum"; +import { useDojo } from "@bibliothecadao/react"; +import { getComponentValue, HasValue, runQuery } from "@dojoengine/recs"; +import { memo, useMemo } from "react"; + +interface ProductionSidebarProps { + realms: RealmInfo[]; + selectedRealmEntityId: ID; + onSelectRealm: (id: ID) => void; +} + +const SidebarRealm = ({ + realm, + isSelected, + onSelect, +}: { + realm: RealmInfo; + isSelected: boolean; + onSelect: () => void; +}) => { + const { + setup: { + components: { Resource, Building }, + }, + } = useDojo(); + + const buildings = useMemo(() => { + const buildings = runQuery([ + HasValue(Building, { + outer_entity_id: realm.entityId, + }), + ]); + + return buildings; + }, [realm]); + + return ( +
+

{realm.name}

+ +
+ {Object.values(realm.resources).map((resource) => { + const value = getComponentValue(Resource, getEntityIdFromKeys([BigInt(realm.entityId), BigInt(resource)])); + if (value && value.balance > 0) { + return ( + r.id === resource)?.trait || ""} + size="sm" + className="opacity-80" + /> + ); + } + return null; + })} +
+ +
+
+ {buildings.size} buildings +
+
+
+ ); +}; + +export const ProductionSidebar = memo(({ realms, selectedRealmEntityId, onSelectRealm }: ProductionSidebarProps) => { + return ( +
+ {realms.map((realm) => ( + onSelectRealm(realm.entityId)} + /> + ))} +
+ ); +}); diff --git a/client/apps/game/src/ui/components/production/raw-resources-panel.tsx b/client/apps/game/src/ui/components/production/raw-resources-panel.tsx new file mode 100644 index 000000000..a79874a11 --- /dev/null +++ b/client/apps/game/src/ui/components/production/raw-resources-panel.tsx @@ -0,0 +1,103 @@ +import { NumberInput } from "@/ui/elements/number-input"; +import { ResourceIcon } from "@/ui/elements/resource-icon"; +import { ResourcesIds, configManager } from "@bibliothecadao/eternum"; +import { useMemo } from "react"; + +interface RawResourcesPanelProps { + selectedResource: number; + productionAmount: number; + setProductionAmount: (value: number) => void; + resourceBalances: Record; + isSelected: boolean; + onSelect: () => void; + outputResource: any; +} + +export const RawResourcesPanel = ({ + selectedResource, + productionAmount, + setProductionAmount, + resourceBalances, + isSelected, + onSelect, + outputResource, +}: RawResourcesPanelProps) => { + const rawInputResources = useMemo(() => { + return configManager.resourceInputs[selectedResource].map((resource) => ({ + ...resource, + amount: resource.amount / outputResource.amount, + })); + }, [selectedResource, outputResource]); + + const handleInputChange = (value: number, inputResource: number) => { + const resourceConfig = rawInputResources.find((r) => r.resource === inputResource); + if (!resourceConfig) return; + const newAmount = value / resourceConfig.amount; + setProductionAmount(newAmount); + }; + + const calculateMaxProduction = () => { + if (!rawInputResources || !resourceBalances) return 1; + + const maxAmounts = rawInputResources.map((input) => { + const balance = resourceBalances[input.resource] || 0; + return Math.floor(balance / input.amount); + }); + + return Math.max(1, Math.min(...maxAmounts)); + }; + + const handleMaxClick = () => { + setProductionAmount(calculateMaxProduction()); + }; + + return ( +
+

Raw Resources

+
+ {rawInputResources?.map((input) => { + const balance = resourceBalances[input.resource] || 0; + return ( +
+ +
+
+ handleInputChange(value, input.resource)} + min={0} + max={resourceBalances[input.resource] || 0} + className="rounded-md border-gold/30 hover:border-gold/50" + /> +
+ + {balance} + +
+
+ ); + })} + +
+
+ ); +}; diff --git a/client/apps/game/src/ui/components/production/realm-info.tsx b/client/apps/game/src/ui/components/production/realm-info.tsx new file mode 100644 index 000000000..ac3100693 --- /dev/null +++ b/client/apps/game/src/ui/components/production/realm-info.tsx @@ -0,0 +1,26 @@ +import { CapacityInfo } from "@/ui/modules/navigation/capacity-info"; +import { RealmInfo as RealmInfoType, StructureType } from "@bibliothecadao/eternum"; +import { memo } from "react"; + +export const RealmInfo = memo(({ realm }: { realm: RealmInfoType }) => { + return ( +
+

Realm Info

+ +
+
+
+ Level + {realm.level} +
+ + +
+
+
+ ); +}); diff --git a/client/apps/game/src/ui/components/production/resource-production-controls.tsx b/client/apps/game/src/ui/components/production/resource-production-controls.tsx new file mode 100644 index 000000000..9fa50c3b1 --- /dev/null +++ b/client/apps/game/src/ui/components/production/resource-production-controls.tsx @@ -0,0 +1,230 @@ +import Button from "@/ui/elements/button"; +import { NumberInput } from "@/ui/elements/number-input"; +import { ResourceIcon } from "@/ui/elements/resource-icon"; +import { getLaborConfig } from "@/utils/labor"; +import { getBlockTimestamp } from "@/utils/timestamp"; +import { + configManager, + divideByPrecision, + multiplyByPrecision, + RealmInfo, + ResourceManager, + ResourcesIds, +} from "@bibliothecadao/eternum"; +import { useDojo } from "@bibliothecadao/react"; +import { useEffect, useMemo, useState } from "react"; +import { LaborResourcesPanel } from "./labor-resources-panel"; +import { RawResourcesPanel } from "./raw-resources-panel"; + +export const ResourceProductionControls = ({ + selectedResource, + useRawResources, + setUseRawResources, + productionAmount, + setProductionAmount, + realm, + ticks, + setTicks, +}: { + selectedResource: number; + useRawResources: boolean; + setUseRawResources: (value: boolean) => void; + productionAmount: number; + setProductionAmount: (value: number) => void; + realm: RealmInfo; + ticks: number | undefined; + setTicks: (value: number) => void; +}) => { + const { + setup: { + account: { account }, + systemCalls: { burn_other_predefined_resources_for_resources, burn_labor_resources_for_other_production }, + components, + components: { Resource }, + }, + } = useDojo(); + + const [isLoading, setIsLoading] = useState(false); + + const laborConfig = useMemo(() => getLaborConfig(selectedResource), [selectedResource]); + + const handleRawResourcesProduce = async () => { + if (!ticks) return; + setIsLoading(true); + const calldata = { + from_entity_id: realm.entityId, + produced_resource_types: [selectedResource], + production_tick_counts: [ticks], + signer: account, + }; + + try { + await burn_other_predefined_resources_for_resources(calldata); + } catch (error) { + console.error(error); + } finally { + setIsLoading(false); + } + }; + + const handleLaborResourcesProduce = async () => { + if (!laborConfig) return; + const laborNeeded = Math.round(laborConfig.laborBurnPerResource * productionAmount); + + if (productionAmount > 0 && laborNeeded > 0 && productionAmount > 0) { + setIsLoading(true); + + const calldata = { + from_entity_id: realm.entityId, + labor_amounts: [multiplyByPrecision(laborNeeded)], + produced_resource_types: [selectedResource], + signer: account, + }; + + try { + await burn_labor_resources_for_other_production(calldata); + } catch (error) { + console.error(error); + } finally { + setIsLoading(false); + } + } + }; + + const outputResource = useMemo(() => { + return configManager.resourceOutput[selectedResource]; + }, [selectedResource]); + + const resourceBalances = useMemo(() => { + if (!selectedResource) return {}; + + const balances: Record = {}; + const allResources = [ + ...configManager.resourceInputs[selectedResource], + { resource: selectedResource, amount: 1 }, + { resource: ResourcesIds.Labor, amount: 1 }, + { resource: ResourcesIds.Wheat, amount: 1 }, + { resource: ResourcesIds.Fish, amount: 1 }, + ]; + + const { currentDefaultTick } = getBlockTimestamp(); + + allResources.forEach((resource) => { + const resourceManager = new ResourceManager(components, realm.entityId, resource.resource); + const balance = resourceManager.balance(currentDefaultTick); + balances[resource.resource] = divideByPrecision(balance); + }); + return balances; + }, [selectedResource, Resource, realm.entityId]); + + useEffect(() => { + setTicks(Math.floor(productionAmount / outputResource.amount)); + }, [productionAmount]); + + const currentInputs = useMemo(() => { + return useRawResources + ? configManager.resourceInputs[selectedResource].map(({ resource, amount }) => ({ + resource, + amount: amount / outputResource.amount, + })) + : laborConfig?.inputResources || []; + }, [useRawResources, selectedResource, laborConfig]); + + const isOverBalance = useMemo(() => { + return Object.values(currentInputs).some(({ resource, amount }) => { + const balance = resourceBalances[Number(resource)] || 0; + return amount * productionAmount > balance; + }); + }, [resourceBalances, productionAmount, currentInputs]); + + const isDisabled = useMemo(() => { + if (isOverBalance) return true; + if (useRawResources) { + return !ticks || ticks <= 0; + } else { + if (!laborConfig) return true; + const laborNeeded = Math.round(laborConfig.laborBurnPerResource * productionAmount); + return productionAmount <= 0 || laborNeeded <= 0; + } + }, [isOverBalance, useRawResources, ticks, laborConfig, productionAmount]); + + if (currentInputs.length === 0) return null; + + return ( +
+

Start Production - {ResourcesIds[selectedResource]}

+ +
+ setUseRawResources(true)} + outputResource={outputResource} + /> + + {laborConfig && ( + setUseRawResources(false)} + /> + )} +
+ + {/* Output */} +
+

Output

+
+
+ + Amount: +
+ setProductionAmount(value)} + min={1} + className="rounded-md border-gold/30 hover:border-gold/50" + /> +
+
+ Production Time: + + {ticks + ? (() => { + const days = Math.floor(ticks / (24 * 60 * 60)); + const hours = Math.floor((ticks % (24 * 60 * 60)) / (60 * 60)); + const minutes = Math.floor((ticks % (60 * 60)) / 60); + const seconds = ticks % 60; + + return [ + days > 0 ? `${days}d ` : "", + hours > 0 ? `${hours}h ` : "", + minutes > 0 ? `${minutes}m ` : "", + `${seconds}s`, + ].join(""); + })() + : "0s"} + +
+
+ +
+ +
+
+ ); +}; diff --git a/client/apps/game/src/ui/components/resources/realm-resources-io.tsx b/client/apps/game/src/ui/components/resources/realm-resources-io.tsx index 4e4e4c1a5..46e4ffb97 100644 --- a/client/apps/game/src/ui/components/resources/realm-resources-io.tsx +++ b/client/apps/game/src/ui/components/resources/realm-resources-io.tsx @@ -1,12 +1,5 @@ import { ResourceIcon } from "@/ui/elements/resource-icon"; -import { - configManager, - getEntityIdFromKeys, - getRealmInfo, - ID, - ResourcesIds, - unpackResources, -} from "@bibliothecadao/eternum"; +import { configManager, getEntityIdFromKeys, getRealmInfo, ID, ResourcesIds } from "@bibliothecadao/eternum"; import { useDojo } from "@bibliothecadao/react"; export const RealmResourcesIO = ({ @@ -23,7 +16,7 @@ export const RealmResourcesIO = ({ const dojo = useDojo(); const realm = getRealmInfo(getEntityIdFromKeys([BigInt(realmEntityId)]), dojo.setup.components); - const resourcesProduced = realm ? unpackResources(realm.resourceTypesPacked) : []; + const resourcesProduced = realm ? realm.resources : []; const resourcesInputs = configManager.resourceInputs; const resourcesConsumed = [ diff --git a/client/apps/game/src/ui/components/resources/realm-transfer-manager.tsx b/client/apps/game/src/ui/components/resources/realm-transfer-manager.tsx new file mode 100644 index 000000000..b547ebc5e --- /dev/null +++ b/client/apps/game/src/ui/components/resources/realm-transfer-manager.tsx @@ -0,0 +1,27 @@ +import { useUIStore } from "@/hooks/store/use-ui-store"; +import { resources } from "@bibliothecadao/eternum"; +import { OSWindow } from "../navigation/os-window"; +import { RealmTransfer } from "./realm-transfer"; + +export const RealmTransferManager = ({ zIndex = 100 }: { zIndex?: number }) => { + return resources.map((resource) => ( + + )); +}; + +const RealmTransferContainer = ({ resource, zIndex }: { resource: number; zIndex: number }) => { + const isOpen = useUIStore((state) => state.isPopupOpen(resource.toString())); + + const togglePopup = useUIStore.getState().togglePopup(resource.toString()); + + return ( + r.id === resource)?.trait ?? ""} + onClick={() => togglePopup} + show={isOpen} + className={`z-[${zIndex}]`} + > + + + ); +}; diff --git a/client/apps/game/src/ui/components/resources/realm-transfer.tsx b/client/apps/game/src/ui/components/resources/realm-transfer.tsx index ec3783f5d..ac756df01 100644 --- a/client/apps/game/src/ui/components/resources/realm-transfer.tsx +++ b/client/apps/game/src/ui/components/resources/realm-transfer.tsx @@ -1,5 +1,5 @@ +import { useBlockTimestamp } from "@/hooks/helpers/use-block-timestamp"; import { useUIStore } from "@/hooks/store/use-ui-store"; -import { OSWindow } from "@/ui/components/navigation/os-window"; import Button from "@/ui/elements/button"; import { NumberInput } from "@/ui/elements/number-input"; import { ResourceIcon } from "@/ui/elements/resource-icon"; @@ -27,146 +27,150 @@ type transferCall = { realmName: string; }; -export const RealmTransfer = memo( - ({ resource, balance, tick }: { resource: ResourcesIds; balance: number; tick: number }) => { - const { - setup: { - systemCalls: { send_resources_multiple }, - }, - account: { account }, - } = useDojo(); - const togglePopup = useUIStore((state) => state.togglePopup); +export const RealmTransfer = memo(({ resource }: { resource: ResourcesIds }) => { + const { + setup: { + systemCalls: { send_resources_multiple }, + }, + account: { account }, + } = useDojo(); + const togglePopup = useUIStore((state) => state.togglePopup); - const isOpen = useUIStore((state) => state.isPopupOpen(resource.toString())); - const selectedStructureEntityId = useUIStore((state) => state.structureEntityId); + const { currentDefaultTick: tick } = useBlockTimestamp(); - const playerStructures = usePlayerStructures(); + console.log("realm transfer"); - const [isLoading, setIsLoading] = useState(false); - const [calls, setCalls] = useState([]); + const selectedStructureEntityId = useUIStore((state) => state.structureEntityId); - const [type, setType] = useState<"send" | "receive">("send"); + const resourceManager = useResourceManager(selectedStructureEntityId, resource); - const [resourceWeight, setResourceWeight] = useState(0); + const balance = useMemo(() => { + return resourceManager.balance(tick); + }, [resourceManager, tick]); - const neededDonkeys = useMemo(() => calculateDonkeysNeeded(resourceWeight), [resourceWeight]); + const isOpen = useUIStore((state) => state.isPopupOpen(resource.toString())); - useEffect(() => { - const resources = calls.map((call) => { - return { - resourceId: Number(call.resources[0]), - amount: Number(call.resources[1]), - }; - }); - const totalWeight = getTotalResourceWeight(resources); - const multipliedWeight = multiplyByPrecision(totalWeight); + const playerStructures = usePlayerStructures(); - setResourceWeight(multipliedWeight); - }, [calls]); - - const handleTransfer = useCallback(async () => { - setIsLoading(true); - const cleanedCalls = calls.map(({ sender_entity_id, recipient_entity_id, resources }) => ({ - sender_entity_id, - recipient_entity_id, - resources: [resources[0], BigInt(Number(resources[1]) * RESOURCE_PRECISION)], - })); - - try { - await send_resources_multiple({ - signer: account, - calls: cleanedCalls, - }); - } catch (error) { - console.error(error); - } finally { - setIsLoading(false); - } + const [isLoading, setIsLoading] = useState(false); + const [calls, setCalls] = useState([]); - setCalls([]); - }, [calls]); + const [type, setType] = useState<"send" | "receive">("send"); - return ( - togglePopup(resource.toString())} - show={isOpen} - > -
- + const [resourceWeight, setResourceWeight] = useState(0); + + const neededDonkeys = useMemo(() => calculateDonkeysNeeded(resourceWeight), [resourceWeight]); + + useEffect(() => { + const resources = calls.map((call) => { + return { + resourceId: Number(call.resources[0]), + amount: Number(call.resources[1]), + }; + }); + const totalWeight = getTotalResourceWeight(resources); + const multipliedWeight = multiplyByPrecision(totalWeight); + + setResourceWeight(multipliedWeight); + }, [calls]); + + const handleTransfer = useCallback(async () => { + setIsLoading(true); + const cleanedCalls = calls.map(({ sender_entity_id, recipient_entity_id, resources }) => ({ + sender_entity_id, + recipient_entity_id, + resources: [resources[0], BigInt(Number(resources[1]) * RESOURCE_PRECISION)], + })); + + try { + await send_resources_multiple({ + signer: account, + calls: cleanedCalls, + }); + } catch (error) { + console.error(error); + } finally { + setIsLoading(false); + } + + setCalls([]); + }, [calls]); + + return ( + <> +
+ +
+
+
+ +
{currencyFormat(balance ? Number(balance) : 0, 2)}
-
-
- -
{currencyFormat(balance ? Number(balance) : 0, 2)}
-
- {playerStructures.map((structure) => ( - - ))} - -
-
- Transfers {calls.length} | - {" "} - {neededDonkeys.toString()} -
+ {playerStructures.map((structure) => ( + + ))} -
- {calls.map((call, index) => ( -
-
{call.realmName}
-
- {call.resources[1].toLocaleString()} -
- -
- ))} -
+
+
+ Transfers {calls.length} | + {" "} + {neededDonkeys.toString()}
-
- +
+ {calls.map((call, index) => ( +
+
{call.realmName}
+
+ {call.resources[1].toLocaleString()} +
+ +
+ ))}
- - ); - }, -); + +
+ +
+
+ + ); +}); const RealmTransferBalance = memo( ({ diff --git a/client/apps/game/src/ui/components/resources/resource-chip.tsx b/client/apps/game/src/ui/components/resources/resource-chip.tsx index 01a93a083..244b5e052 100644 --- a/client/apps/game/src/ui/components/resources/resource-chip.tsx +++ b/client/apps/game/src/ui/components/resources/resource-chip.tsx @@ -1,20 +1,18 @@ +import { useBlockTimestamp } from "@/hooks/helpers/use-block-timestamp"; import { useUIStore } from "@/hooks/store/use-ui-store"; import { ResourceIcon } from "@/ui/elements/resource-icon"; import { currencyFormat, currencyIntlFormat, gramToKg } from "@/ui/utils/utils"; -import { getBlockTimestamp } from "@/utils/timestamp"; import { configManager, divideByPrecision, findResourceById, formatTime, - getIconResourceId, ID, TickIds, TimeFormat, } from "@bibliothecadao/eternum"; import { useResourceManager } from "@bibliothecadao/react"; import { useCallback, useEffect, useMemo, useState } from "react"; -import { RealmTransfer } from "./realm-transfer"; export const ResourceChip = ({ isLabor = false, @@ -32,31 +30,27 @@ export const ResourceChip = ({ const resourceManager = useResourceManager(entityId, resourceId); const setTooltip = useUIStore((state) => state.setTooltip); - const [showPerHour, setShowPerHour] = useState(true); - const [balance, setBalance] = useState(0); const getBalance = useCallback(() => { return resourceManager.balance(tick); }, [resourceManager, tick]); - const getProduction = useCallback(() => { - return resourceManager.getProduction(); - }, [resourceManager]); - const production = useMemo(() => { setBalance(getBalance()); - return getProduction(); - }, [getBalance, getProduction]); + return resourceManager.getProduction(); + }, [getBalance, resourceManager]); const maxAmountStorable = useMemo(() => { return maxStorehouseCapacityKg / gramToKg(configManager.getResourceWeight(resourceId) || 1000); }, [maxStorehouseCapacityKg, resourceId]); + const { currentDefaultTick: currentTick } = useBlockTimestamp(); + const timeUntilValueReached = useMemo(() => { - return resourceManager.timeUntilValueReached(getBlockTimestamp().currentDefaultTick, 0); - }, [resourceManager, production?.production_rate]); + return resourceManager.timeUntilValueReached(currentTick); + }, [resourceManager, currentTick]); const productionRate = useMemo(() => { return Number(divideByPrecision(Number(production?.production_rate || 0))); @@ -64,17 +58,20 @@ export const ResourceChip = ({ const productionEndsAt = useMemo(() => { return resourceManager.getProductionEndsAt(); - }, [production]); + }, [resourceManager]); + + const isActive = useMemo(() => { + return resourceManager.isActive(); + }, [resourceManager]); useEffect(() => { const tickTime = configManager.getTick(TickIds.Default) * 1000; - - let realTick = getBlockTimestamp().currentDefaultTick; + let realTick = currentTick; const newBalance = resourceManager.balance(realTick); setBalance(newBalance); - if (Math.abs(productionRate) > 0) { + if (isActive) { const interval = setInterval(() => { realTick += 1; const newBalance = resourceManager.balance(realTick); @@ -82,29 +79,28 @@ export const ResourceChip = ({ }, tickTime); return () => clearInterval(interval); } - }, [setBalance, resourceManager, resourceId, production]); + }, [resourceManager, currentTick, isActive]); const icon = useMemo( () => ( ), - [resourceId], + [resourceId, isLabor], ); const reachedMaxCap = useMemo(() => { - return maxAmountStorable === balance && Math.abs(productionRate) > 0; - }, [maxAmountStorable, balance, production]); + return maxAmountStorable === balance && isActive; + }, [maxAmountStorable, balance, isActive]); const handleMouseEnter = useCallback(() => { setTooltip({ position: "top", - content: <>{findResourceById(getIconResourceId(resourceId, isLabor))?.trait as string}, + content: <>{findResourceById(resourceId)?.trait as string}, }); setShowPerHour(false); }, [resourceId, isLabor, setTooltip]); @@ -117,63 +113,73 @@ export const ResourceChip = ({ const togglePopup = useUIStore((state) => state.togglePopup); return ( - <> - -
{ - togglePopup(resourceId.toString()); - }} - > - {icon} -
-
{currencyFormat(balance ? Number(balance) : 0, 2)}
- -
- {timeUntilValueReached !== 0 - ? formatTime(timeUntilValueReached, TimeFormat.D | TimeFormat.H | TimeFormat.M) - : ""} -
+
+ {icon} +
+
{currencyFormat(balance ? Number(balance) : 0, 2)}
+ +
+ {timeUntilValueReached !== 0 + ? formatTime(timeUntilValueReached, TimeFormat.D | TimeFormat.H | TimeFormat.M) + : ""} +
- {Math.abs(productionRate) > 0 && productionEndsAt > getBlockTimestamp().currentDefaultTick ? ( -
-
- + - {showPerHour - ? `${currencyIntlFormat(productionRate * 60 * 60, 2)}/h` - : `${currencyIntlFormat(productionRate, 2)}/s`} -
+ {isActive && (productionEndsAt > currentTick || resourceManager.isFood()) ? ( +
+
+ + + {showPerHour + ? `${currencyIntlFormat(productionRate * 60 * 60, 2)}/h` + : `${currencyIntlFormat(productionRate, 2)}/s`}
- ) : ( -
{ - setTooltip({ - position: "top", - content: ( - <> - {reachedMaxCap - ? "Production has stopped because the max balance has been reached" - : "Production has stopped because labor has been depleted"} - - ), - }); - }} - onMouseLeave={() => { - setTooltip(null); - }} - className="self-center px-2 col-span-3 mx-auto" - > - {reachedMaxCap ? "MaxCap" : ""} -
- )} -
+
+ ) : ( +
{ + setTooltip({ + position: "top", + content: ( + <> + {reachedMaxCap + ? "Production has stopped because the max balance has been reached" + : "Production has stopped because labor has been depleted"} + + ), + }); + }} + onMouseLeave={() => { + setTooltip(null); + }} + className="self-center px-2 col-span-3 mx-auto" + > + {reachedMaxCap ? "MaxCap" : ""} +
+ )}
- + +
); }; diff --git a/client/apps/game/src/ui/components/trading/transfer-view.tsx b/client/apps/game/src/ui/components/trading/transfer-view.tsx index 855c266a1..182e579d0 100644 --- a/client/apps/game/src/ui/components/trading/transfer-view.tsx +++ b/client/apps/game/src/ui/components/trading/transfer-view.tsx @@ -8,7 +8,7 @@ import { getGuildMembersFromPlayerAddress, getRealmNameById, } from "@bibliothecadao/eternum"; -import { useDojo, usePlayerRealms, usePlayerStructures } from "@bibliothecadao/react"; +import { useDojo, usePlayerOwnedRealms, usePlayerStructures } from "@bibliothecadao/react"; import { useEntityQuery } from "@dojoengine/react"; import { Has, NotValue, getComponentValue } from "@dojoengine/recs"; import { useMemo, useState } from "react"; @@ -20,7 +20,7 @@ export const TransferView = () => { } = useDojo(); const { Structure, Position, Owner, Realm } = components; - const playerRealms = usePlayerRealms(); + const playerRealms = usePlayerOwnedRealms(); const playerStructures = usePlayerStructures(); const [guildOnly, setGuildOnly] = useState(false); diff --git a/client/apps/game/src/ui/config.tsx b/client/apps/game/src/ui/config.tsx index d30ff7229..6986ec76a 100644 --- a/client/apps/game/src/ui/config.tsx +++ b/client/apps/game/src/ui/config.tsx @@ -55,7 +55,7 @@ export const IS_MOBILE = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Ope const BUILD_IMAGES_PREFIX = "/images/buildings/construction/"; export const BUILDING_IMAGES_PATH = { - [BuildingType.Castle]: "", + [BuildingType.Castle]: `${BUILD_IMAGES_PREFIX}castleZero.png`, [BuildingType.Bank]: "", [BuildingType.FragmentMine]: "", [BuildingType.Resource]: `${BUILD_IMAGES_PREFIX}mine.png`, @@ -94,6 +94,7 @@ export const BuildingThumbs = { trophy: "/images/buildings/thumb/trophy.png", discord: "/images/buildings/thumb/discord.png", rewards: "/images/buildings/thumb/rewards.png", + production: "/images/buildings/thumb/anvil.png", }; export enum MenuEnum { @@ -104,4 +105,5 @@ export enum MenuEnum { resourceArrivals = "resourceArrivals", trade = "trade", resourceTable = "resourceTable", + production = "production", } diff --git a/client/apps/game/src/ui/containers/blank-overlay-container.tsx b/client/apps/game/src/ui/containers/blank-overlay-container.tsx index d192400bd..ada9fa1bd 100644 --- a/client/apps/game/src/ui/containers/blank-overlay-container.tsx +++ b/client/apps/game/src/ui/containers/blank-overlay-container.tsx @@ -4,9 +4,10 @@ import { Fragment, memo } from "react"; type BlurOverlayContainerProps = { children?: React.ReactNode; open: boolean; + zIndex?: number; } & React.HTMLAttributes; -export const BlankOverlayContainer = memo(({ children, open }: BlurOverlayContainerProps) => { +export const BlankOverlayContainer = memo(({ children, open, zIndex = 10001 }: BlurOverlayContainerProps) => { return ( -
+
{children}
diff --git a/client/apps/game/src/ui/elements/resource-cost.tsx b/client/apps/game/src/ui/elements/resource-cost.tsx index 10730a872..b6ee2f92e 100644 --- a/client/apps/game/src/ui/elements/resource-cost.tsx +++ b/client/apps/game/src/ui/elements/resource-cost.tsx @@ -43,7 +43,6 @@ export const ResourceCost = ({ > , name: "Mithral" }, Dragonhide: { component: , name: "Dragonhide" }, + Labor: { component: , name: "Labor" }, AncientFragment: { component: , name: "Ancient Fragment" }, Knight: { component: , name: "Knight" }, Crossbowman: { component: , name: "Crossbowman" }, @@ -72,12 +71,11 @@ const STYLES = { }, } as const; -export const ResourceIcon = ({ isLabor = false, withTooltip = true, tooltipText, ...props }: Props) => { +export const ResourceIcon = ({ withTooltip = true, tooltipText, ...props }: Props) => { const Icon = (
{Components[props.resource.replace(" ", "").replace("'", "")]?.component} - {isLabor && }
{props.label && ( diff --git a/client/apps/game/src/ui/elements/select-resource.tsx b/client/apps/game/src/ui/elements/select-resource.tsx index 89729c583..84740ccb7 100644 --- a/client/apps/game/src/ui/elements/select-resource.tsx +++ b/client/apps/game/src/ui/elements/select-resource.tsx @@ -10,11 +10,19 @@ interface SelectResourceProps { onSelect: (resourceId: number | null) => void; className?: string; realmProduction?: boolean; + defaultValue?: number; + excludeResourceIds?: number[]; } -export const SelectResource: React.FC = ({ onSelect, className, realmProduction = false }) => { +export const SelectResource: React.FC = ({ + onSelect, + className, + realmProduction = false, + defaultValue, + excludeResourceIds = [], +}) => { const [searchInput, setSearchInput] = useState(""); - const [selectedResource, setSelectedResource] = useState(""); + const [selectedResource, setSelectedResource] = useState(defaultValue?.toString() || ""); const [open, setOpen] = useState(false); const inputRef = useRef(null); @@ -27,6 +35,8 @@ export const SelectResource: React.FC = ({ onSelect, classN ResourcesIds.Fish, ResourcesIds.Wheat, ResourcesIds.Donkey, + ResourcesIds.Lords, + ResourcesIds.Labor, ]; const orderedResources = useMemo(() => { @@ -35,9 +45,10 @@ export const SelectResource: React.FC = ({ onSelect, classN .filter((resourceId) => { if (resourceId === ResourcesIds.Lords) return false; if (realmProduction && REALM_PRODUCTION_EXCLUDED.includes(resourceId)) return false; + if (excludeResourceIds.includes(resourceId)) return false; return true; }); - }, [realmProduction]); + }, [realmProduction, excludeResourceIds]); const filteredResourceIds = orderedResources.filter((resourceId) => ResourcesIds[resourceId].toLowerCase().startsWith(searchInput.toLowerCase()), @@ -69,6 +80,13 @@ export const SelectResource: React.FC = ({ onSelect, classN } }; + // Call onSelect with default value on mount + React.useEffect(() => { + if (defaultValue !== undefined) { + onSelect(defaultValue); + } + }, []); + return (
import("../modules/navigation/mini-map-navigation").then((module) => ({ default: module.MiniMapNavigation })), ); +const RealmTransferManager = lazy(() => + import("../components/resources/realm-transfer-manager").then((module) => ({ default: module.RealmTransferManager })), +); + export const World = ({ backgroundImage }: { backgroundImage: string }) => { const [subscriptions, setSubscriptions] = useState<{ [entity: string]: boolean }>({}); const showBlankOverlay = useUIStore((state) => state.showBlankOverlay); @@ -278,6 +282,8 @@ export const World = ({ backgroundImage }: { backgroundImage: string }) => { return ( <> + + {/* Main world layer */}
{ e.stopPropagation(); @@ -296,11 +302,13 @@ export const World = ({ backgroundImage }: { backgroundImage: string }) => { }> {IS_MOBILE && } - {modalContent} - + + + {modalContent} + + - {/* */} {!IS_MOBILE && ( <> diff --git a/client/apps/game/src/ui/modules/military/battle-view/entity-avatar.tsx b/client/apps/game/src/ui/modules/military/battle-view/entity-avatar.tsx index f603eccb6..9a484e540 100644 --- a/client/apps/game/src/ui/modules/military/battle-view/entity-avatar.tsx +++ b/client/apps/game/src/ui/modules/military/battle-view/entity-avatar.tsx @@ -67,12 +67,12 @@ const getRealmImgFromEntityId = (realmEntityId: ID | undefined) => { switch (realm?.level) { case RealmLevels.City - 1: - return "./images/buildings/thumb/castleOne.png"; + return "./images/buildings/construction/castleOne.png"; case RealmLevels.Kingdom - 1: - return "./images/buildings/thumb/castleTwo.png"; + return "./images/buildings/construction/castleTwo.png"; case RealmLevels.Empire - 1: - return "./images/buildings/thumb/castleThree.png"; + return "./images/buildings/construction/castleThree.png"; } } - return "./images/buildings/thumb/castleZero.png"; + return "./images/buildings/construction/castleZero.png"; }; diff --git a/client/apps/game/src/ui/modules/navigation/capacity-info.tsx b/client/apps/game/src/ui/modules/navigation/capacity-info.tsx new file mode 100644 index 000000000..d0e61fe34 --- /dev/null +++ b/client/apps/game/src/ui/modules/navigation/capacity-info.tsx @@ -0,0 +1,126 @@ +import { useUIStore } from "@/hooks/store/use-ui-store"; +import { ResourceIcon } from "@/ui/elements/resource-icon"; +import { kgToGram } from "@/ui/utils/utils"; +import { BuildingType, configManager, getRealmInfo, ResourcesIds, StructureType } from "@bibliothecadao/eternum"; +import { useDojo } from "@bibliothecadao/react"; +import { getEntityIdFromKeys } from "@dojoengine/utils"; +import { useMemo } from "react"; + +const StorehouseInfo = ({ storehouseCapacity }: { storehouseCapacity: number }) => { + const capacity = kgToGram(storehouseCapacity); + return ( +
+

Max Storage Capacity ({storehouseCapacity.toLocaleString()} kg)

+
+
    +
  • + + {(capacity / configManager.getResourceWeight(ResourcesIds.Lords)).toLocaleString()} Lords +
  • +
  • + + {(capacity / configManager.getResourceWeight(ResourcesIds.Wheat)).toLocaleString()} Food +
  • +
  • + + {(capacity / configManager.getResourceWeight(ResourcesIds.Wood)).toLocaleString()} Other +
  • +
  • + + {(capacity / configManager.getResourceWeight(ResourcesIds.Labor)).toLocaleString()} Labor +
  • +
+
    +
  • + + {(capacity / configManager.getResourceWeight(ResourcesIds.Knight)).toLocaleString()} Knights +
  • +
  • + + {(capacity / configManager.getResourceWeight(ResourcesIds.Crossbowman)).toLocaleString()} Crossbowmen +
  • +
  • + + {(capacity / configManager.getResourceWeight(ResourcesIds.Paladin)).toLocaleString()} Paladins +
  • +
+
+

Build Storehouses to increase capacity.

+
+ ); +}; + +const WorkersHutInfo = () => { + const capacity = configManager.getBuildingPopConfig(BuildingType.WorkersHut).capacity; + return ( +
+

Population Capacity

+
    +
  • {configManager.getBasePopulationCapacity()} Base Capacity
  • +
  • +{capacity} per Workers Hut
  • +
+

Build Workers Huts to increase population capacity.

+
+ ); +}; + +export const CapacityInfo = ({ + structureEntityId, + structureCategory, + className, +}: { + structureEntityId: number; + structureCategory?: StructureType; + className?: string; +}) => { + const { setup } = useDojo(); + const setTooltip = useUIStore((state) => state.setTooltip); + + const realmInfo = useMemo(() => { + return getRealmInfo(getEntityIdFromKeys([BigInt(structureEntityId)]), setup.components); + }, [structureEntityId, setup.components]); + + return ( +
+ {realmInfo?.storehouses && ( +
{ + setTooltip({ + position: "bottom", + content: , + }); + }} + onMouseLeave={() => { + setTooltip(null); + }} + className="storehouse-selector px-3 flex gap-2 justify-start items-center text-xxs md:text-sm" + > + + {structureCategory !== StructureType.Realm ? ( +
∞
+ ) : ( +
{realmInfo.storehouses.capacityKg.toLocaleString()} kg
+ )} +
+ )} + +
{ + setTooltip({ + position: "bottom", + content: , + }); + }} + onMouseLeave={() => { + setTooltip(null); + }} + className="population-selector px-3 flex gap-2 justify-start items-center text-xs md:text-sm" + > + +
+ {realmInfo?.population || 0} / {(realmInfo?.capacity || 0) + configManager.getBasePopulationCapacity()} +
+
+
+ ); +}; diff --git a/client/apps/game/src/ui/modules/navigation/left-navigation-module.tsx b/client/apps/game/src/ui/modules/navigation/left-navigation-module.tsx index 0c07e5b54..d56376e89 100644 --- a/client/apps/game/src/ui/modules/navigation/left-navigation-module.tsx +++ b/client/apps/game/src/ui/modules/navigation/left-navigation-module.tsx @@ -73,7 +73,6 @@ export const LeftNavigationModule = memo(() => { const structureIsMine = useMemo(() => structureInfo.isMine, [structureInfo]); const disableButtons = !structureIsMine && account.address !== "0x0"; - console.log({ account, structureIsMine, disableButtons }); const isRealm = useMemo( () => Boolean(structureInfo) && String(structureInfo?.structureCategory) === "Realm", diff --git a/client/apps/game/src/ui/modules/navigation/right-navigation-module.tsx b/client/apps/game/src/ui/modules/navigation/right-navigation-module.tsx index 7cccf89a0..de800757d 100644 --- a/client/apps/game/src/ui/modules/navigation/right-navigation-module.tsx +++ b/client/apps/game/src/ui/modules/navigation/right-navigation-module.tsx @@ -1,5 +1,6 @@ import { useUIStore } from "@/hooks/store/use-ui-store"; import { RightView } from "@/types"; +import { ProductionModal } from "@/ui/components/production/production-modal"; import { BuildingThumbs, MenuEnum } from "@/ui/config"; import Button from "@/ui/elements/button"; import CircleButton from "@/ui/elements/circle-button"; @@ -16,6 +17,7 @@ export const RightNavigationModule = () => { const structureEntityId = useUIStore((state) => state.structureEntityId); const view = useUIStore((state) => state.rightNavigationView); const setView = useUIStore((state) => state.setRightNavigationView); + const toggleModal = useUIStore((state) => state.toggleModal); const navigation = useMemo( () => [ @@ -33,6 +35,22 @@ export const RightNavigationModule = () => { /> ), }, + { + name: MenuEnum.production, + button: ( + { + toggleModal(); + }} + /> + ), + }, ], [view, structureEntityId], ); diff --git a/client/apps/game/src/ui/modules/navigation/top-left-navigation.tsx b/client/apps/game/src/ui/modules/navigation/top-left-navigation.tsx index 105b83bd6..fb1ff5910 100644 --- a/client/apps/game/src/ui/modules/navigation/top-left-navigation.tsx +++ b/client/apps/game/src/ui/modules/navigation/top-left-navigation.tsx @@ -10,28 +10,26 @@ import Button from "@/ui/elements/button"; import { ResourceIcon } from "@/ui/elements/resource-icon"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/ui/elements/select"; import { SecondaryMenuItems } from "@/ui/modules/navigation/secondary-menu-items"; -import { gramToKg, kgToGram } from "@/ui/utils/utils"; import { getBlockTimestamp } from "@/utils/timestamp"; import { - BuildingType, - CapacityConfigCategory, configManager, ContractAddress, formatTime, getEntityInfo, + getRealmInfo, ID, PlayerStructure, - ResourcesIds, + StructureType, TickIds, } from "@bibliothecadao/eternum"; import { useDojo, useQuery } from "@bibliothecadao/react"; -import { useComponentValue } from "@dojoengine/react"; import { getComponentValue } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; import { motion } from "framer-motion"; import { Crown, EyeIcon, Landmark, Pickaxe, ShieldQuestion, Sparkles, Star } from "lucide-react"; import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import { QuestsMenu } from "../quests/quest-menu"; +import { CapacityInfo } from "./capacity-info"; const slideDown = { hidden: { y: "-100%" }, @@ -48,60 +46,6 @@ const structureIcons: Record = { ReadOnly: , }; -const StorehouseTooltipContent = ({ storehouseCapacity }: { storehouseCapacity: number }) => { - const capacity = kgToGram(storehouseCapacity); - return ( -
-

Max Storage Capacity ({storehouseCapacity.toLocaleString()} kg)

-
-
    -
  • - - {(capacity / configManager.getResourceWeight(ResourcesIds.Lords)).toLocaleString()} Lords -
  • -
  • - - {(capacity / configManager.getResourceWeight(ResourcesIds.Wheat)).toLocaleString()} Food -
  • -
  • - - {(capacity / configManager.getResourceWeight(ResourcesIds.Wood)).toLocaleString()} Other -
  • -
-
    -
  • - - {(capacity / configManager.getResourceWeight(ResourcesIds.Knight)).toLocaleString()} Knights -
  • -
  • - - {(capacity / configManager.getResourceWeight(ResourcesIds.Crossbowman)).toLocaleString()} Crossbowmen -
  • -
  • - - {(capacity / configManager.getResourceWeight(ResourcesIds.Paladin)).toLocaleString()} Paladins -
  • -
-
-

Build Storehouses to increase capacity.

-
- ); -}; - -const WorkersHutTooltipContent = () => { - const capacity = configManager.getBuildingPopConfig(BuildingType.WorkersHut).capacity; - return ( -
-

Population Capacity

-
    -
  • {configManager.getBasePopulationCapacity()} Base Capacity
  • -
  • +{capacity} per Workers Hut
  • -
-

Build Workers Huts to increase population capacity.

-
- ); -}; - export const TopLeftNavigation = memo(({ structures }: { structures: PlayerStructure[] }) => { const { setup, @@ -175,20 +119,9 @@ export const TopLeftNavigation = memo(({ structures }: { structures: PlayerStruc [navigateToMapView, hexPosition.col, hexPosition.row], ); - const population = useComponentValue( - setup.components.Population, - getEntityIdFromKeys([BigInt(structureEntityId || 0)]), - ); - - const storehouses = useMemo(() => { - const quantity = - getComponentValue( - setup.components.BuildingQuantityv2, - getEntityIdFromKeys([BigInt(structureEntityId || 0), BigInt(BuildingType.Storehouse)]), - )?.value || 0; - const storehouseCapacity = configManager.getCapacityConfig(CapacityConfigCategory.Storehouse); - return { capacityKg: (quantity + 1) * gramToKg(storehouseCapacity), quantity }; - }, [structureEntityId, currentBlockTimestamp]); + const realmInfo = useMemo(() => { + return getRealmInfo(getEntityIdFromKeys([BigInt(structureEntityId)]), setup.components); + }, [structureEntityId, setup.components]); const { timeLeftBeforeNextTick, progress } = useMemo(() => { const timeLeft = currentBlockTimestamp % configManager.getTick(TickIds.Armies); @@ -252,47 +185,11 @@ export const TopLeftNavigation = memo(({ structures }: { structures: PlayerStruc )}
-
- {storehouses && ( -
{ - setTooltip({ - position: "bottom", - content: , - }); - }} - onMouseLeave={() => { - setTooltip(null); - }} - className="storehouse-selector px-3 flex gap-2 justify-start items-center text-xxs md:text-sm" - > - - {entityInfo.structureCategory !== "Realm" ? ( -
∞
- ) : ( -
{storehouses.capacityKg.toLocaleString()} kg
- )} -
- )} - -
{ - setTooltip({ - position: "bottom", - content: , - }); - }} - onMouseLeave={() => { - setTooltip(null); - }} - className="population-selector px-3 flex gap-2 justify-start items-center text-xs md:text-sm" - > - -
- {population?.population || 0} / {(population?.capacity || 0) + configManager.getBasePopulationCapacity()} -
-
-
+
diff --git a/client/apps/game/src/ui/modules/world-structures/world-structures-menu.tsx b/client/apps/game/src/ui/modules/world-structures/world-structures-menu.tsx index 6be3a03ed..1cf408ca9 100644 --- a/client/apps/game/src/ui/modules/world-structures/world-structures-menu.tsx +++ b/client/apps/game/src/ui/modules/world-structures/world-structures-menu.tsx @@ -295,7 +295,7 @@ const FragmentMineExtraContent = ({ x, y, entityId }: { x: number; y: number; en notation: "compact", maximumFractionDigits: 1, }).format(divideByPrecision(balance || 0))} - +
diff --git a/client/apps/game/src/utils/labor.ts b/client/apps/game/src/utils/labor.ts new file mode 100644 index 000000000..95f152475 --- /dev/null +++ b/client/apps/game/src/utils/labor.ts @@ -0,0 +1,35 @@ +import { configManager, ResourcesIds } from "@bibliothecadao/eternum"; + +type LaborConfig = { + laborProductionPerResource: number; + laborBurnPerResource: number; + laborRatePerTick: number; + inputResources: { resource: ResourcesIds; amount: number }[]; +}; + +export const getLaborConfig = (resourceId: number): LaborConfig | undefined => { + const laborConfig = configManager.resourceLaborOutput[resourceId as keyof typeof configManager.resourceLaborOutput]; + + if (!laborConfig) return undefined; + + const laborResource = configManager.resourceOutput[ResourcesIds.Labor as keyof typeof configManager.resourceOutput]; + + const depreciation = (100 - laborConfig.depreciation_percent_num) / laborConfig.depreciation_percent_denom; + + return { + laborProductionPerResource: laborConfig.resource_rarity, + laborBurnPerResource: laborConfig.resource_rarity / depreciation, + laborRatePerTick: laborResource.amount, + inputResources: [ + { resource: ResourcesIds.Labor, amount: laborConfig.resource_rarity / depreciation }, + { + resource: ResourcesIds.Wheat, + amount: (laborConfig.wheat_burn_per_labor * laborConfig.resource_rarity) / depreciation, + }, + { + resource: ResourcesIds.Fish, + amount: (laborConfig.fish_burn_per_labor * laborConfig.resource_rarity) / depreciation, + }, + ], + }; +}; diff --git a/client/apps/game/src/utils/realms.ts b/client/apps/game/src/utils/realms.ts index 81a11d2a1..16e5477ac 100644 --- a/client/apps/game/src/utils/realms.ts +++ b/client/apps/game/src/utils/realms.ts @@ -9,7 +9,7 @@ export const getRandomRealmEntity = (components: ClientComponents) => { const realms = runQuery([Has(components.Realm)]); if (realms.size === 0) { - throw new Error("No realm entities found"); + return; } // Optimize for large sets by avoiding Array.from diff --git a/client/apps/landing/.env.sepolia b/client/apps/landing/.env.sepolia index d098e92ac..6b2fa4091 100644 --- a/client/apps/landing/.env.sepolia +++ b/client/apps/landing/.env.sepolia @@ -3,21 +3,21 @@ VITE_PUBLIC_MASTER_PRIVATE_KEY=0x075362a844768f31c8058ce31aec3dd7751686440b4f220 VITE_PUBLIC_ACCOUNT_CLASS_HASH="0x07dc7899aa655b0aae51eadff6d801a58e97dd99cf4666ee59e704249e51adf2" VITE_PUBLIC_FEE_TOKEN_ADDRESS=0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7 -VITE_PUBLIC_TORII=https://api.cartridge.gg/x/red-eternum-rc-sepolia-4/torii -VITE_PUBLIC_NODE_URL=https://api.cartridge.gg/x/starknet/sepolia -VITE_PUBLIC_GAME_VERSION="v1.0.0-rc0" -VITE_PUBLIC_GRAPHICS_DEV=false -VITE_PUBLIC_TORII_RELAY=/dns4/api.cartridge.gg/tcp/443/x-parity-wss/%2Fx%2Feternum-rc-sepolia%2Ftorii%2Fwss +VITE_PUBLIC_VRF_PROVIDER_ADDRESS=0x051fea4450da9d6aee758bdeba88b2f665bcbf549d2c61421aa724e9ac0ced8f +VITE_PUBLIC_CLIENT_FEE_RECIPIENT=0x045c587318c9ebcf2fbe21febf288ee2e3597a21cd48676005a5770a50d433c5 VITE_PUBLIC_CHAIN=sepolia -VITE_PUBLIC_SLOT= - -VITE_PUBLIC_CONSTRUCTION_FLAG=false +VITE_PUBLIC_SLOT=eternum +VITE_PUBLIC_TORII=https://api.cartridge.gg/x/eternum-sepolia/torii +VITE_PUBLIC_NODE_URL=https://api.cartridge.gg/x/starknet/sepolia +VITE_PUBLIC_TORII_RELAY=/dns4/api.cartridge.gg/tcp/443/x-parity-wss/%2Fx%2Fsepolia-rc-18%2Ftorii%2Fwss VITE_PUBLIC_ARK_MARKETPLACE_API=https://abc.com VITE_PUBLIC_IMAGE_CDN_URL=https://abc.com VITE_PUBLIC_IMAGE_PROXY_URL=https://abc.com VITE_PUBLIC_IPFS_GATEWAY=https://abc.com -VITE_PUBLIC_VRF_PROVIDER_ADDRESS="0x051fea4450da9d6aee758bdeba88b2f665bcbf549d2c61421aa724e9ac0ced8f" -VITE_PUBLIC_CLIENT_FEE_RECIPIENT=0x045c587318c9ebcf2fbe21febf288ee2e3597a21cd48676005a5770a50d433c5 \ No newline at end of file +// optional +VITE_PUBLIC_GAME_VERSION="v1.0.0-rc7" +VITE_PUBLIC_GRAPHICS_DEV=false +VITE_SOCIAL_LINK=http://bit.ly/3Zz1mpp diff --git a/client/apps/landing/src/hooks/context/dojo-context.tsx b/client/apps/landing/src/hooks/context/dojo-context.tsx index 762b63b8e..9e1eed4bc 100644 --- a/client/apps/landing/src/hooks/context/dojo-context.tsx +++ b/client/apps/landing/src/hooks/context/dojo-context.tsx @@ -1,6 +1,5 @@ import { displayAddress } from "@/lib/utils"; -import { SetupResult } from "@bibliothecadao/eternum"; -import { DojoResult } from "@bibliothecadao/react"; +import { SetupNetworkResult, SetupResult } from "@bibliothecadao/eternum"; import { useAccount } from "@starknet-react/core"; import { ReactNode, createContext, useContext, useMemo } from "react"; import { Account, AccountInterface, RpcProvider } from "starknet"; @@ -10,6 +9,13 @@ interface DojoAccount { accountDisplay: string; } +interface DojoResult { + setup: DojoContextType; + account: DojoAccount; + network: SetupNetworkResult; + masterAccount: Account | AccountInterface; +} + interface DojoContextType extends SetupResult { masterAccount: Account | AccountInterface; account: DojoAccount; diff --git a/client/apps/landing/src/hooks/helpers/use-entities.tsx b/client/apps/landing/src/hooks/helpers/use-entities.tsx index 7594c9980..2f3c1763f 100644 --- a/client/apps/landing/src/hooks/helpers/use-entities.tsx +++ b/client/apps/landing/src/hooks/helpers/use-entities.tsx @@ -27,8 +27,6 @@ export const useEntities = () => { refetchInterval: 10_000, }); - console.log({ data }); - const playerRealms = useMemo(() => { if (!data) return []; diff --git a/client/apps/landing/src/routes/mint.lazy.tsx b/client/apps/landing/src/routes/mint.lazy.tsx index fe0b31c12..5137825b7 100644 --- a/client/apps/landing/src/routes/mint.lazy.tsx +++ b/client/apps/landing/src/routes/mint.lazy.tsx @@ -51,7 +51,7 @@ function Mint() { [data, realmsAddress], ); - const isDev = import.meta.env.VITE_PUBLIC_CHAIN === "local" || import.meta.env.VITE_PUBLIC_DEV === "true"; + const isDev = import.meta.env.VITE_PUBLIC_CHAIN !== "mainnet"; const { deselectAllNfts, isNftSelected, selectBatchNfts, toggleNftSelection, totalSelectedNfts, selectedTokenIds } = useNftSelection({ userAddress: address as `0x${string}` }); diff --git a/client/apps/torii-launcher/index.html b/client/apps/torii-launcher/index.html index 261fbb943..b2354407a 100644 --- a/client/apps/torii-launcher/index.html +++ b/client/apps/torii-launcher/index.html @@ -11,8 +11,7 @@ Eternum Torii Launcher - +
diff --git a/client/apps/torii-launcher/src/index.css b/client/apps/torii-launcher/src/index.css index f70821aef..95d4675ad 100644 --- a/client/apps/torii-launcher/src/index.css +++ b/client/apps/torii-launcher/src/index.css @@ -5,4 +5,4 @@ body { font-family: "Space Grotesk", sans-serif; touch-action: none; -} \ No newline at end of file +} diff --git a/client/apps/torii-launcher/webpack.main.config.ts b/client/apps/torii-launcher/webpack.main.config.ts index 5ed911f84..eeac9eb59 100644 --- a/client/apps/torii-launcher/webpack.main.config.ts +++ b/client/apps/torii-launcher/webpack.main.config.ts @@ -1,20 +1,20 @@ -import type { Configuration } from 'webpack'; +import type { Configuration } from "webpack"; -import { rules } from './webpack.rules'; -import { plugins } from './webpack.plugins'; +import { rules } from "./webpack.rules"; +import { plugins } from "./webpack.plugins"; export const mainConfig: Configuration = { /** * This is the main entry point for your application, it's the first file * that runs in the main process. */ - entry: './src/index.ts', + entry: "./src/index.ts", // Put your normal webpack config below here module: { rules, }, plugins, resolve: { - extensions: ['.js', '.ts', '.jsx', '.tsx', '.css', '.json'], + extensions: [".js", ".ts", ".jsx", ".tsx", ".css", ".json"], }, }; diff --git a/client/apps/torii-launcher/webpack.plugins.ts b/client/apps/torii-launcher/webpack.plugins.ts index 846aa240e..e3b1e9c8a 100644 --- a/client/apps/torii-launcher/webpack.plugins.ts +++ b/client/apps/torii-launcher/webpack.plugins.ts @@ -1,10 +1,10 @@ -import type IForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; +import type IForkTsCheckerWebpackPlugin from "fork-ts-checker-webpack-plugin"; // eslint-disable-next-line @typescript-eslint/no-var-requires -const ForkTsCheckerWebpackPlugin: typeof IForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); +const ForkTsCheckerWebpackPlugin: typeof IForkTsCheckerWebpackPlugin = require("fork-ts-checker-webpack-plugin"); export const plugins = [ new ForkTsCheckerWebpackPlugin({ - logger: 'webpack-infrastructure', + logger: "webpack-infrastructure", }), ]; diff --git a/client/apps/torii-launcher/webpack.renderer.config.ts b/client/apps/torii-launcher/webpack.renderer.config.ts index 646d47c10..a8b5e45a3 100644 --- a/client/apps/torii-launcher/webpack.renderer.config.ts +++ b/client/apps/torii-launcher/webpack.renderer.config.ts @@ -30,14 +30,14 @@ rules.push( test: /\.css$/, include: [path.resolve(__dirname, "src")], use: ["style-loader", "css-loader", "postcss-loader"], - } + }, ); plugins.push( new HtmlWebpackPlugin({ template: path.resolve(__dirname, "app/src/index.html"), filename: "index.html", - }) + }), ); export const rendererConfig: Configuration = { module: { diff --git a/client/apps/torii-launcher/webpack.rules.ts b/client/apps/torii-launcher/webpack.rules.ts index b3253cbde..7df422561 100644 --- a/client/apps/torii-launcher/webpack.rules.ts +++ b/client/apps/torii-launcher/webpack.rules.ts @@ -1,20 +1,20 @@ -import type { ModuleOptions } from 'webpack'; +import type { ModuleOptions } from "webpack"; -export const rules: Required['rules'] = [ +export const rules: Required["rules"] = [ // Add support for native node modules { // We're specifying native_modules in the test because the asset relocator loader generates a // "fake" .node file which is really a cjs file. test: /native_modules[/\\].+\.node$/, - use: 'node-loader', + use: "node-loader", }, { test: /[/\\]node_modules[/\\].+\.(m?js|node)$/, parser: { amd: false }, use: { - loader: '@vercel/webpack-asset-relocator-loader', + loader: "@vercel/webpack-asset-relocator-loader", options: { - outputAssetBase: 'native_modules', + outputAssetBase: "native_modules", }, }, }, @@ -22,7 +22,7 @@ export const rules: Required['rules'] = [ test: /\.tsx?$/, exclude: /(node_modules|\.webpack)/, use: { - loader: 'ts-loader', + loader: "ts-loader", options: { transpileOnly: true, }, diff --git a/client/public/images/buildings/thumb/castleOne.png b/client/public/images/buildings/construction/castleOne.png similarity index 100% rename from client/public/images/buildings/thumb/castleOne.png rename to client/public/images/buildings/construction/castleOne.png diff --git a/client/public/images/buildings/thumb/castleThree.png b/client/public/images/buildings/construction/castleThree.png similarity index 100% rename from client/public/images/buildings/thumb/castleThree.png rename to client/public/images/buildings/construction/castleThree.png diff --git a/client/public/images/buildings/thumb/castleTwo.png b/client/public/images/buildings/construction/castleTwo.png similarity index 100% rename from client/public/images/buildings/thumb/castleTwo.png rename to client/public/images/buildings/construction/castleTwo.png diff --git a/client/public/images/buildings/thumb/castleZero.png b/client/public/images/buildings/construction/castleZero.png similarity index 100% rename from client/public/images/buildings/thumb/castleZero.png rename to client/public/images/buildings/construction/castleZero.png diff --git a/client/public/images/buildings/thumb/anvil.png b/client/public/images/buildings/thumb/anvil.png new file mode 100644 index 0000000000000000000000000000000000000000..0e1bf96823381fecafbda0dcd90d052974044812 GIT binary patch literal 137427 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

Na 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%0AK;AADD;WdF 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≪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

VO<%gm)P|@%X7A@q}|?pJ`*0pDzd&SP%Rj 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 W5btTa?h-}?eEQl(TGdF0nEwGeMCd^P literal 0 HcmV?d00001 diff --git a/client/public/images/resources/23.png b/client/public/images/resources/23.png new file mode 100644 index 0000000000000000000000000000000000000000..7fde6c1a6af72fcaeef51ae2d7a830d0fea00fce GIT binary patch literal 128218 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 { config.config.resources.resourcePrecision, ); + const scaledResourceProductionByLaborParams = scaleResourceProductionByLaborParams( + config.config.resources.resourceProductionByLaborParams, + config.config.resources.resourcePrecision, + ); + for (const resourceId of Object.keys(scaledResourceInputs) as unknown as ResourcesIds[]) { - const outputAmountPerLabor = scaledResourceOutputs[resourceId]; - const resourceCostPerLabor = scaledResourceInputs[resourceId]; + const outputAmountPerBuildingPerTick = scaledResourceOutputs[resourceId]; + const predefinedResourceBurnCost = scaledResourceInputs[resourceId]; + const resourceProductionByLaborParams = scaledResourceProductionByLaborParams[resourceId]; const calldata = { - amount: outputAmountPerLabor, resource_type: resourceId, - cost: resourceCostPerLabor, + amount_per_building_per_tick: outputAmountPerBuildingPerTick, + predefined_resource_burn_cost: predefinedResourceBurnCost, + labor_burn_strategy: resourceProductionByLaborParams, }; + calldataArray.push(calldata); console.log( chalk.cyan(` ┌─ ${chalk.yellow(ResourcesIds[calldata.resource_type])} - │ ${chalk.gray(`${ResourcesIds[calldata.resource_type]} produced per labor:`)} ${chalk.white(`${inGameAmount(calldata.amount, config.config)} ${chalk.yellow(ResourcesIds[calldata.resource_type])}`)} - │ ${chalk.gray(`Cost of producing 1 ${ResourcesIds[calldata.resource_type]} labor:`)} ${ - calldata.cost.length > 0 - ? calldata.cost + │ ${chalk.gray(`${ResourcesIds[calldata.resource_type]} produced per tick, per building:`)} ${chalk.white(`${inGameAmount(calldata.amount_per_building_per_tick, config.config)} ${chalk.yellow(ResourcesIds[calldata.resource_type])}`)} + │ ${chalk.gray(``)} + │ ${chalk.gray(`Using Labor Burn Production Strategy:`)} + │ ${chalk.gray(``)} ${ + calldata.labor_burn_strategy.resource_rarity === 0 + ? chalk.red("Cannot be produced with labor") + : ` + │ ${chalk.gray(`Resource Rarity:`)} ${chalk.white(` ${calldata.labor_burn_strategy.resource_rarity}`)} + │ ${chalk.gray(`Depreciation Rate:`)} ${chalk.white(` ${(calldata.labor_burn_strategy.depreciation_percent_num / calldata.labor_burn_strategy.depreciation_percent_denom) * 100}%`)} + │ ${chalk.gray(`Wheat Burn Per Labor:`)} ${chalk.white(inGameAmount(calldata.labor_burn_strategy.wheat_burn_per_labor, config.config))} + │ ${chalk.gray(`Fish Burn Per Labor:`)} ${chalk.white(inGameAmount(calldata.labor_burn_strategy.fish_burn_per_labor, config.config))}` + } + │ ${chalk.gray(``)} + │ ${chalk.gray(`Using Multiple Resource Burn Production Strategy:`)} + │ ${ + calldata.predefined_resource_burn_cost.length > 0 + ? chalk.gray(` Cost of producing 1 ${ResourcesIds[calldata.resource_type]}:`) + + calldata.predefined_resource_burn_cost .map( (c) => ` - │ ${chalk.white(`${inGameAmount(c.amount, config.config)} ${ResourcesIds[c.resource]}`)}`, + │ ${chalk.white(`${inGameAmount(c.amount, config.config)} ${ResourcesIds[c.resource]}`)}`, ) .join("") - : chalk.blue("Can't be produced with resources") + : ` ${chalk.blue("Can't be produced with multiple resources")}` } └────────────────────────────────`), ); @@ -358,14 +381,14 @@ export const setBuildingConfig = async (config: Config) => { const calldataArray = []; const buildingResourceProduced = config.config.buildings.buildingResourceProduced; - const buildingCosts = config.config.buildings.buildingCosts; - const scaledNonResourceBuildingCosts = scaleResourceInputs(buildingCosts, config.config.resources.resourcePrecision); + const buildingCosts = config.config.buildings.otherBuildingCosts; + const scaledOtherBuildingCosts = scaleResourceInputs(buildingCosts, config.config.resources.resourcePrecision); const BUILDING_COST_DISPLAY_ROWS = 6; // Non Resource Building Config for (const buildingId of Object.keys(buildingResourceProduced) as unknown as BuildingType[]) { - if (scaledNonResourceBuildingCosts[buildingId].length !== 0) { - const costs = scaledNonResourceBuildingCosts[buildingId]; + if (scaledOtherBuildingCosts[buildingId].length !== 0) { + const costs = scaledOtherBuildingCosts[buildingId]; const calldata = { building_category: buildingId, building_resource_type: buildingResourceProduced[buildingId] as ResourcesIds, diff --git a/config/environments/_shared_.ts b/config/environments/_shared_.ts index 6e3fc09f2..3492d5850 100644 --- a/config/environments/_shared_.ts +++ b/config/environments/_shared_.ts @@ -13,7 +13,7 @@ import { BUILDING_CAPACITY, BUILDING_POPULATION, BUILDING_RESOURCE_PRODUCED, - NON_RESOURCE_BUILDING_COSTS, + OTHER_BUILDING_COSTS, RESOURCE_BUILDING_COSTS, } from "./utils/building"; import { @@ -26,6 +26,7 @@ import { QUEST_RESOURCES } from "./utils/quest"; import { RESOURCE_PRODUCTION_INPUT_RESOURCES, RESOURCE_PRODUCTION_OUTPUT_AMOUNTS, + RESOURCE_PRODUCTION_THROUGH_LABOR, RESOURCES_WEIGHTS_GRAM, } from "./utils/resource"; import { TROOPS_FOOD_CONSUMPTION, TROOPS_STAMINAS } from "./utils/troop"; @@ -156,9 +157,9 @@ export const EternumGlobalConfig: Config = { startingResourcesInputProductionFactor: STARTING_RESOURCES_INPUT_PRODUCTION_FACTOR, resourceInputs: RESOURCE_PRODUCTION_INPUT_RESOURCES, resourceOutputs: RESOURCE_PRODUCTION_OUTPUT_AMOUNTS, + resourceProductionByLaborParams: RESOURCE_PRODUCTION_THROUGH_LABOR, resourceWeightsGrams: RESOURCES_WEIGHTS_GRAM, resourceRarity: RESOURCE_RARITY, - resourceBuildingCosts: RESOURCE_BUILDING_COSTS, }, banks: { name: BANK_NAME, @@ -245,7 +246,8 @@ export const EternumGlobalConfig: Config = { buildingCapacity: BUILDING_CAPACITY, buildingPopulation: BUILDING_POPULATION, buildingResourceProduced: BUILDING_RESOURCE_PRODUCED, - buildingCosts: NON_RESOURCE_BUILDING_COSTS, + otherBuildingCosts: OTHER_BUILDING_COSTS, + resourceBuildingCosts: RESOURCE_BUILDING_COSTS, buildingFixedCostScalePercent: BUILDING_FIXED_COST_SCALE_PERCENT, }, hyperstructures: { diff --git a/config/environments/data/local.json b/config/environments/data/local.json index c71aa0c96..b5e8b261a 100644 --- a/config/environments/data/local.json +++ b/config/environments/data/local.json @@ -1,11121 +1,11297 @@ { - "generatedFromTsFile": true, - "message": "This file was generated from the .ts file and should not be edited manually", - "configuration": { - "stamina": { - "travelCost": 10, - "exploreCost": 20, - "refillPerTick": 20, - "startBoostTickCount": 2 - }, - "resources": { - "resourcePrecision": 1000000000, - "resourceMultiplier": 1000000000, - "resourceAmountPerTick": 10, - "startingResourcesInputProductionFactor": 6, - "resourceInputs": { - "1": [ - { - "resource": 3, - "amount": 5 - }, - { - "resource": 2, - "amount": 3.8 - }, - { - "resource": 29, - "amount": 5 - } - ], - "2": [ - { - "resource": 1, - "amount": 4.2 - }, - { - "resource": 4, - "amount": 2.8 - }, - { - "resource": 29, - "amount": 5 - } - ], - "3": [ - { - "resource": 1, - "amount": 3 - }, - { - "resource": 2, - "amount": 3.2 - }, - { - "resource": 29, - "amount": 5 - } - ], - "4": [ - { - "resource": 2, - "amount": 5.8 - }, - { - "resource": 6, - "amount": 3.4 - }, - { - "resource": 29, - "amount": 5 - } - ], - "5": [ - { - "resource": 8, - "amount": 6 - }, - { - "resource": 11, - "amount": 3.2 - }, - { - "resource": 30, - "amount": 4 - } - ], - "6": [ - { - "resource": 4, - "amount": 4.8 - }, - { - "resource": 8, - "amount": 3.2 - }, - { - "resource": 29, - "amount": 5 - } - ], - "7": [ - { - "resource": 11, - "amount": 4.2 - }, - { - "resource": 15, - "amount": 2.6 - }, - { - "resource": 30, - "amount": 4 - } - ], - "8": [ - { - "resource": 6, - "amount": 5 - }, - { - "resource": 5, - "amount": 2.8 - }, - { - "resource": 30, - "amount": 4 - } - ], - "9": [ - { - "resource": 19, - "amount": 6 - }, - { - "resource": 22, - "amount": 2.4 - }, - { - "resource": 30, - "amount": 4 - } - ], - "10": [ - { - "resource": 17, - "amount": 4.8 - }, - { - "resource": 19, - "amount": 2.4 - }, - { - "resource": 30, - "amount": 4 - } - ], - "11": [ - { - "resource": 5, - "amount": 5 - }, - { - "resource": 7, - "amount": 3.8 - }, - { - "resource": 30, - "amount": 4 - } - ], - "12": [ - { - "resource": 13, - "amount": 4 - }, - { - "resource": 16, - "amount": 4.2 - }, - { - "resource": 30, - "amount": 4 - } - ], - "13": [ - { - "resource": 20, - "amount": 4.2 - }, - { - "resource": 12, - "amount": 4 - }, - { - "resource": 30, - "amount": 4 - } - ], - "14": [ - { - "resource": 15, - "amount": 8 - }, - { - "resource": 20, - "amount": 3.2 - }, - { - "resource": 30, - "amount": 4 - } - ], - "15": [ - { - "resource": 7, - "amount": 6.2 - }, - { - "resource": 14, - "amount": 2 - }, - { - "resource": 30, - "amount": 4 - } - ], - "16": [ - { - "resource": 12, - "amount": 5.6 - }, - { - "resource": 21, - "amount": 3.8 - }, - { - "resource": 30, - "amount": 4 - } - ], - "17": [ - { - "resource": 18, - "amount": 5 - }, - { - "resource": 10, - "amount": 3.4 - }, - { - "resource": 30, - "amount": 4 - } - ], - "18": [ - { - "resource": 21, - "amount": 4.6 - }, - { - "resource": 17, - "amount": 3.2 - }, - { - "resource": 30, - "amount": 4 - } - ], - "19": [ - { - "resource": 10, - "amount": 6.8 - }, - { - "resource": 9, - "amount": 2.6 - }, - { - "resource": 30, - "amount": 4 - } - ], - "20": [ - { - "resource": 14, - "amount": 4.8 - }, - { - "resource": 13, - "amount": 3.8 - }, - { - "resource": 30, - "amount": 4 - } - ], - "21": [ - { - "resource": 16, - "amount": 4.2 - }, - { - "resource": 18, - "amount": 3.4 - }, - { - "resource": 30, - "amount": 4 - } - ], - "22": [ - { - "resource": 9, - "amount": 6.4 - }, - { - "resource": 19, - "amount": 4 - }, - { - "resource": 30, - "amount": 4 - } - ], - "24": [], - "25": [ - { - "resource": 29, - "amount": 25 - }, - { - "resource": 31, - "amount": 0.01 - } - ], - "26": [ - { - "resource": 29, - "amount": 50 - }, - { - "resource": 30, - "amount": 50 - }, - { - "resource": 8, - "amount": 2 - }, - { - "resource": 5, - "amount": 5 - } - ], - "27": [ - { - "resource": 29, - "amount": 50 - }, - { - "resource": 30, - "amount": 50 - }, - { - "resource": 6, - "amount": 2 - }, - { - "resource": 11, - "amount": 5 - } - ], - "28": [ - { - "resource": 29, - "amount": 50 - }, - { - "resource": 30, - "amount": 50 - }, - { - "resource": 4, - "amount": 2 - }, - { - "resource": 7, - "amount": 5 - } - ], - "29": [], - "30": [], - "31": [] - }, - "resourceOutputs": { - "1": 30, - "2": 30, - "3": 30, - "4": 30, - "5": 30, - "6": 30, - "7": 30, - "8": 30, - "9": 30, - "10": 30, - "11": 30, - "12": 30, - "13": 30, - "14": 30, - "15": 30, - "16": 30, - "17": 30, - "18": 30, - "19": 30, - "20": 30, - "21": 30, - "22": 30, - "24": 1, - "25": 0.5, - "26": 0.04, - "27": 0.04, - "28": 0.04, - "29": 50, - "30": 50, - "31": 0 - }, - "resourceWeightsGrams": { - "1": 1000, - "2": 1000, - "3": 1000, - "4": 1000, - "5": 1000, - "6": 1000, - "7": 1000, - "8": 1000, - "9": 1000, - "10": 1000, - "11": 1000, - "12": 1000, - "13": 1000, - "14": 1000, - "15": 1000, - "16": 1000, - "17": 1000, - "18": 1000, - "19": 1000, - "20": 1000, - "21": 1000, - "22": 1000, - "24": 1000, - "25": 0, - "26": 5000, - "27": 3000, - "28": 5000, - "29": 100, - "30": 100, - "31": 0 - }, - "resourceRarity": { - "1": 1.27, - "2": 1.31, - "3": 1, - "4": 1.9, - "5": 4.25, - "6": 2.26, - "7": 5.49, - "8": 2.88, - "9": 135.53, - "10": 53.92, - "11": 5.24, - "12": 20.98, - "13": 20.98, - "14": 16.72, - "15": 8.44, - "16": 29.15, - "17": 45.18, - "18": 36.06, - "19": 91.2, - "20": 20.3, - "21": 30.95, - "22": 217.92, - "24": 20.98, - "25": 1, - "26": 1, - "27": 1, - "28": 1, - "29": 1, - "30": 1, - "31": 1 - }, - "resourceBuildingCosts": { - "1": [ - { - "resource": 30, - "amount": 750000 - } - ], - "2": [ - { - "resource": 29, - "amount": 750000 - } - ], - "3": [ - { - "resource": 29, - "amount": 750000 - } - ], - "4": [ - { - "resource": 30, - "amount": 750000 - } - ], - "5": [ - { - "resource": 29, - "amount": 750000 - } - ], - "6": [ - { - "resource": 29, - "amount": 750000 - } - ], - "7": [ - { - "resource": 29, - "amount": 750000 - } - ], - "8": [ - { - "resource": 30, - "amount": 750000 - } - ], - "9": [ - { - "resource": 29, - "amount": 750000 - } - ], - "10": [ - { - "resource": 29, - "amount": 750000 - } - ], - "11": [ - { - "resource": 30, - "amount": 750000 - } - ], - "12": [ - { - "resource": 30, - "amount": 750000 - } - ], - "13": [ - { - "resource": 29, - "amount": 750000 - } - ], - "14": [ - { - "resource": 29, - "amount": 750000 - } - ], - "15": [ - { - "resource": 30, - "amount": 750000 - } - ], - "16": [ - { - "resource": 29, - "amount": 750 - } - ], - "17": [ - { - "resource": 30, - "amount": 750000 - } - ], - "18": [ - { - "resource": 29, - "amount": 750000 - } - ], - "19": [ - { - "resource": 30, - "amount": 750000 - } - ], - "20": [ - { - "resource": 30, - "amount": 750000 - } - ], - "21": [ - { - "resource": 30, - "amount": 750000 - } - ], - "22": [ - { - "resource": 30, - "amount": 750000 - } - ], - "24": [ - { - "resource": 30, - "amount": 750000 - } - ], - "25": [ - { - "resource": 29, - "amount": 750000 - } - ], - "26": [ - { - "resource": 30, - "amount": 750000 - } - ], - "27": [ - { - "resource": 29, - "amount": 750000 - } - ], - "28": [ - { - "resource": 30, - "amount": 750000 - } - ], - "29": [ - { - "resource": 29, - "amount": 750000 - } - ], - "30": [ - { - "resource": 30, - "amount": 750000 - } - ], - "31": [ - { - "resource": 29, - "amount": 750000 - } - ] - } - }, - "banks": { - "name": "Central Bank", - "lordsCost": 1000, - "lpFeesNumerator": 15, - "lpFeesDenominator": 100, - "ownerFeesNumerator": 15, - "ownerFeesDenominator": 100, - "ownerBridgeFeeOnDepositPercent": 1000, - "ownerBridgeFeeOnWithdrawalPercent": 1000, - "ammStartingLiquidity": { - "1": 500000, - "2": 500000, - "3": 500000, - "4": 500000, - "5": 200000, - "6": 500000, - "7": 200000, - "8": 500000, - "9": 50000, - "10": 50000, - "11": 200000, - "12": 75000, - "13": 100000, - "14": 100000, - "15": 200000, - "16": 75000, - "17": 50000, - "18": 50000, - "19": 50000, - "20": 100000, - "21": 50000, - "22": 50000, - "25": 10000 - }, - "lordsLiquidityPerResource": 1000 - }, - "populationCapacity": { - "workerHuts": 5, - "basePopulation": 5 - }, - "exploration": { - "reward": 750, - "shardsMinesFailProbability": 99000 - }, - "tick": { - "defaultTickIntervalInSeconds": 1, - "armiesTickIntervalInSeconds": 3600 - }, - "carryCapacityGram": { - "0": 0, - "1": "340282366920938463463374607431768211455", - "2": 500000, - "3": 10000, - "4": 300000000 - }, - "speed": { - "donkey": 9, - "army": 1 - }, - "battle": { - "graceTickCount": 24, - "graceTickCountHyp": 1, - "delaySeconds": 28800 - }, - "troop": { - "health": 1, - "knightStrength": 1, - "paladinStrength": 1, - "crossbowmanStrength": 1, - "advantagePercent": 1000, - "disadvantagePercent": 1000, - "maxTroopCount": 500000, - "baseArmyNumberForStructure": 3, - "armyExtraPerMilitaryBuilding": 1, - "maxArmiesPerStructure": 7, - "pillageHealthDivisor": 8, - "battleLeaveSlashNum": 25, - "battleLeaveSlashDenom": 100, - "battleTimeReductionScale": 1000, - "battleMaxTimeSeconds": 172800, - "troopStaminas": { - "26": 80, - "27": 80, - "28": 100 - }, - "troopFoodConsumption": { - "26": { - "explore_wheat_burn_amount": 10, - "explore_fish_burn_amount": 10, - "travel_wheat_burn_amount": 5, - "travel_fish_burn_amount": 5 - }, - "27": { - "explore_wheat_burn_amount": 6, - "explore_fish_burn_amount": 6, - "travel_wheat_burn_amount": 3, - "travel_fish_burn_amount": 3 - }, - "28": { - "explore_wheat_burn_amount": 10, - "explore_fish_burn_amount": 10, - "travel_wheat_burn_amount": 4, - "travel_fish_burn_amount": 4 - } - } - }, - "mercenaries": { - "knights_lower_bound": 1000, - "knights_upper_bound": 4000, - "paladins_lower_bound": 1000, - "paladins_upper_bound": 4000, - "crossbowmen_lower_bound": 1000, - "crossbowmen_upper_bound": 4000, - "rewards": [ - { - "resource": 29, - "amount": 0 - }, - { - "resource": 30, - "amount": 0 - } - ] - }, - "settlement": { - "center": 2147483646, - "base_distance": 10, - "min_first_layer_distance": 30, - "points_placed": 0, - "current_layer": 1, - "current_side": 1, - "current_point_on_side": 0 - }, - "buildings": { - "buildingCapacity": { - "0": 0, - "1": 5, - "2": 0, - "3": 0, - "4": 0, - "5": 0, - "6": 0, - "7": 0, - "8": 0, - "9": 0, - "10": 5, - "11": 0, - "12": 0, - "13": 0, - "14": 0, - "15": 0 - }, - "buildingPopulation": { - "0": 0, - "1": 0, - "2": 2, - "3": 1, - "4": 1, - "5": 2, - "6": 3, - "7": 2, - "8": 3, - "9": 2, - "10": 0, - "11": 2, - "12": 2, - "13": 2, - "14": 0, - "15": 0 - }, - "buildingResourceProduced": { - "0": 0, - "1": 0, - "2": 0, - "3": 29, - "4": 30, - "5": 26, - "6": 25, - "7": 27, - "8": 28, - "9": 0, - "10": 0, - "11": 0, - "12": 0, - "13": 0, - "14": 0, - "15": 24 - }, - "buildingCosts": { - "0": [], - "1": [], - "2": [], - "3": [ - { - "resource": 30, - "amount": 450000 - } - ], - "4": [ - { - "resource": 29, - "amount": 450000 - } - ], - "5": [ - { - "resource": 29, - "amount": 1000000 - }, - { - "resource": 3, - "amount": 75000 - }, - { - "resource": 2, - "amount": 75000 - }, - { - "resource": 8, - "amount": 50000 - }, - { - "resource": 7, - "amount": 45000 - } - ], - "6": [ - { - "resource": 30, - "amount": 750000 - }, - { - "resource": 1, - "amount": 125000 - }, - { - "resource": 6, - "amount": 50000 - }, - { - "resource": 13, - "amount": 25000 - }, - { - "resource": 12, - "amount": 5000 - } - ], - "7": [ - { - "resource": 30, - "amount": 1000000 - }, - { - "resource": 3, - "amount": 75000 - }, - { - "resource": 6, - "amount": 75000 - }, - { - "resource": 7, - "amount": 25000 - }, - { - "resource": 15, - "amount": 25000 - } - ], - "8": [ - { - "resource": 29, - "amount": 1000000 - }, - { - "resource": 3, - "amount": 75000 - }, - { - "resource": 8, - "amount": 75000 - }, - { - "resource": 5, - "amount": 35000 - }, - { - "resource": 7, - "amount": 25000 - } - ], - "9": [], - "10": [ - { - "resource": 29, - "amount": 300000 - }, - { - "resource": 1, - "amount": 75000 - }, - { - "resource": 3, - "amount": 75000 - }, - { - "resource": 2, - "amount": 75000 - } - ], - "11": [], - "12": [], - "13": [ - { - "resource": 30, - "amount": 1000000 - }, - { - "resource": 2, - "amount": 75000 - }, - { - "resource": 1, - "amount": 75000 - }, - { - "resource": 20, - "amount": 10000 - } - ], - "14": [], - "15": [] - }, - "buildingFixedCostScalePercent": 5000 - }, - "hyperstructures": { - "hyperstructureCreationCosts": [ - { - "resource_tier": 1, - "min_amount": 3000000, - "max_amount": 3000000 - } - ], - "hyperstructureConstructionCosts": [ - { - "resource_tier": 2, - "min_amount": 0, - "max_amount": 0 - }, - { - "resource_tier": 3, - "min_amount": 0, - "max_amount": 0 - }, - { - "resource_tier": 4, - "min_amount": 0, - "max_amount": 0 - }, - { - "resource_tier": 5, - "min_amount": 120000000, - "max_amount": 240000000 - }, - { - "resource_tier": 6, - "min_amount": 90000000, - "max_amount": 180000000 - }, - { - "resource_tier": 7, - "min_amount": 40000000, - "max_amount": 80000000 - }, - { - "resource_tier": 8, - "min_amount": 20000000, - "max_amount": 40000000 - }, - { - "resource_tier": 9, - "min_amount": 7000000, - "max_amount": 14000000 - } - ], - "hyperstructureTotalCosts": [ - { - "resource_tier": 2, - "min_amount": 0, - "max_amount": 0 - }, - { - "resource_tier": 3, - "min_amount": 0, - "max_amount": 0 - }, - { - "resource_tier": 4, - "min_amount": 0, - "max_amount": 0 - }, - { - "resource_tier": 5, - "min_amount": 120000000, - "max_amount": 240000000 - }, - { - "resource_tier": 6, - "min_amount": 90000000, - "max_amount": 180000000 - }, - { - "resource_tier": 7, - "min_amount": 40000000, - "max_amount": 80000000 - }, - { - "resource_tier": 8, - "min_amount": 20000000, - "max_amount": 40000000 - }, - { - "resource_tier": 9, - "min_amount": 7000000, - "max_amount": 14000000 - }, - { - "resource_tier": 1, - "min_amount": 3000000, - "max_amount": 3000000 - } - ], - "hyperstructurePointsPerCycle": 7, - "hyperstructurePointsOnCompletion": 500000, - "hyperstructureTimeBetweenSharesChangeSeconds": 17280, - "hyperstructurePointsForWin": 9620000 - }, - "season": { - "startAfterSeconds": 60, - "bridgeCloseAfterEndSeconds": 172800 - }, - "bridge": { - "velords_fee_on_dpt_percent": 400, - "velords_fee_on_wtdr_percent": 400, - "season_pool_fee_on_dpt_percent": 400, - "season_pool_fee_on_wtdr_percent": 400, - "client_fee_on_dpt_percent": 200, - "client_fee_on_wtdr_percent": 200, - "velords_fee_recipient": "1972411780975621738773701578535203409474110909068539627767144719329707439045", - "season_pool_fee_recipient": "1585932876470681143095409887779312765741910564734761376020979026620136092433", - "max_bank_fee_dpt_percent": 0, - "max_bank_fee_wtdr_percent": 0 - }, - "vrf": { - "vrfProviderAddress": "0x051fea4450da9d6aee758bdeba88b2f665bcbf549d2c61421aa724e9ac0ced8f" - }, - "questResources": { - "1": [ - { - "resource": 29, - "amount": 1200000 - }, - { - "resource": 30, - "amount": 1200000 - } - ], - "2": [ - { - "resource": 3, - "amount": 5000 - }, - { - "resource": 1, - "amount": 5000 - }, - { - "resource": 2, - "amount": 5000 - }, - { - "resource": 4, - "amount": 5000 - }, - { - "resource": 6, - "amount": 5000 - }, - { - "resource": 8, - "amount": 5000 - }, - { - "resource": 5, - "amount": 5000 - }, - { - "resource": 11, - "amount": 5000 - }, - { - "resource": 7, - "amount": 5000 - }, - { - "resource": 15, - "amount": 5000 - }, - { - "resource": 14, - "amount": 5000 - }, - { - "resource": 20, - "amount": 5000 - }, - { - "resource": 13, - "amount": 5000 - }, - { - "resource": 12, - "amount": 5000 - }, - { - "resource": 16, - "amount": 5000 - }, - { - "resource": 21, - "amount": 5000 - }, - { - "resource": 18, - "amount": 5000 - }, - { - "resource": 17, - "amount": 5000 - }, - { - "resource": 10, - "amount": 5000 - }, - { - "resource": 19, - "amount": 5000 - }, - { - "resource": 9, - "amount": 5000 - }, - { - "resource": 22, - "amount": 5000 - } - ], - "3": [ - { - "resource": 25, - "amount": 200 - } - ], - "4": [ - { - "resource": 26, - "amount": 500 - }, - { - "resource": 27, - "amount": 500 - }, - { - "resource": 28, - "amount": 500 - } - ], - "5": [ - { - "resource": 25, - "amount": 200 - } - ], - "6": [ - { - "resource": 26, - "amount": 500 - }, - { - "resource": 28, - "amount": 500 - }, - { - "resource": 27, - "amount": 500 - } - ], - "7": [ - { - "resource": 25, - "amount": 200 - } - ], - "8": [ - { - "resource": 25, - "amount": 200 - }, - { - "resource": 28, - "amount": 200 - }, - { - "resource": 26, - "amount": 200 - }, - { - "resource": 27, - "amount": 200 - }, - { - "resource": 24, - "amount": 200 - } - ] - }, - "realmUpgradeCosts": { - "0": [], - "1": [ - { - "resource": 29, - "amount": 3000000 - }, - { - "resource": 30, - "amount": 3000000 - } - ], - "2": [ - { - "resource": 11, - "amount": 600000 - }, - { - "resource": 15, - "amount": 600000 - }, - { - "resource": 14, - "amount": 600000 - }, - { - "resource": 20, - "amount": 600000 - }, - { - "resource": 12, - "amount": 600000 - }, - { - "resource": 29, - "amount": 5000000 - }, - { - "resource": 30, - "amount": 5000000 - } - ], - "3": [ - { - "resource": 10, - "amount": 50000 - }, - { - "resource": 19, - "amount": 50000 - }, - { - "resource": 9, - "amount": 50000 - }, - { - "resource": 22, - "amount": 50000 - }, - { - "resource": 29, - "amount": 9000000 - }, - { - "resource": 30, - "amount": 9000000 - } - ] - }, - "realmMaxLevel": 4, - "setup": { - "chain": "slot", - "addresses": { - "seasonPass": "0x432531b2276e32aa5b82ae095e6694d68f49a2c82f2ee8b406f681ec3826c8b", - "realms": "0x56502f7cf5847c0a4d4d0d0a37fa02e104d637f278564ce2e85fcd9edd7d27a", - "lords": "0x3acbe76476cbf8997397878c52ce1acdf90ed1c295907f6505d3ff4c1646afa", - "resources": { - "STONE": [1, "0x1d0e42592e69ce773e4af49ebc806e8e4b18d68349675a720b310f524bc1047"], - "COAL": [2, "0x116e5c167e15ce74d6ceabab3ee1d654ba7d715cc3e313f0a7644460d930647"], - "WOOD": [3, "0x78b36df795c5fc301613901a5f16a875b51cc24dbab6f15ea595ce97eef57b8"], - "COPPER": [4, "0x3db58bdf0d85bcb352e6af446d9baae05ded478a389ae8c8afee15abfbb4663"], - "IRONWOOD": [5, "0x60c29b99b24ab147a389c23876ea6ca2a10da8cc469ac6b5c7f5ad904b7c448"], - "OBSIDIAN": [6, "0x67caa1f9b080285d7c7bf4dacb85cd735146035820da93e0f41c96a25487709"], - "GOLD": [7, "0x43640fb73f8ba75a85d4f8f77feb901a0408737beca17eafd1a99aa9431a43d"], - "SILVER": [8, "0x196619024411e0dbee1114d3f8a5bd8735b4444f779dfe70c59d844fe2fa0fa"], - "MITHRAL": [9, "0x4b9c53ccd696ef2e0c14098c9aef16180e763edf15d0e94ee74767b6fcc9893"], - "ALCHEMICALSILVER": [10, "0xa282d7a73ceb77ffa0093b8015d643d3641ea54c4ea7b87167285bc3dacca4"], - "COLDIRON": [11, "0x421f00ccffc49ec3492776510c186154e0c3bea3d72b9d7feee1d8ab2caa96f"], - "DEEPCRYSTAL": [12, "0x7d69078dd90f2de3718c4ff7f96a73c6e33b0724e9b392874e7ef57564d2a92"], - "RUBY": [13, "0x3d770ad570a0bb8a94b682a6a261019d3c894952f1593e0b81de9a31ae1735f"], - "DIAMONDS": [14, "0x5f66baa2e4a5cd71d0840d0c1cfe4be9275b8b52b543094aee1fa533de4c5b7"], - "HARTWOOD": [15, "0x7ff3a618a5ab2976446ba4109010bfa941cf4ad00ba49be1599b7b91cc854ce"], - "IGNIUM": [16, "0x680a194c725eccf0c1e4cff0ad8886f947bf012636ef01dcd6e633fb6d048f"], - "TWILIGHTQUARTZ": [17, "0x5462ffbc95fb5e99a774a0b218f933e0d2e16c94d10bcd062d4d03e3a4a9e9a"], - "TRUEICE": [18, "0x79a9030ce1cafd32b025c745c920604c0381a74c8609c76b7e93cd25fe1103a"], - "ADAMANTINE": [19, "0x7bf7916746082090c07707ce63d4740aef667d4e6478844187e315f2c4c3e33"], - "SAPPHIRE": [20, "0x7cd99ce1dc8ab26473d35ddee6fa2389a2e22f0435686155c2f2bf62a9b0e2"], - "ETHEREALSILICA": [21, "0x3b03aea5ed81397478d50b2b67401f38557d2e6e14eb3b1caebab21d8459daf"], - "DRAGONHIDE": [22, "0x420f281f9c469e5315024702724dfb1f6bd53bfe4f0eacff9233f916d57663c"], - "ANCIENTFRAGMENT": [24, "0xa2f3f8da01fc3c71aa698f19f774d4a2af7702d73bfde7c4c93ae787e6f359"], - "DONKEY": [25, "0x9c3db60be8614b358f65bf69175b1d4c8c153c6d26f421c508d0e20b2e2967"], - "KNIGHT": [26, "0x2da183da89cae4c22e249e7df3d9149895e5cebe1f7ca5d3ada783fb1b19374"], - "CROSSBOWMAN": [27, "0xfbbbff48d55f0e5938222734d461f87372d1d7378e00d258192483c7bbe0b9"], - "PALADIN": [28, "0x65a779057c56ed3dbe525d8a8f29a1f12c75ee60a50086740e634dd9d119e8b"], - "WHEAT": [29, "0x39e8ab3446f491dd6778b2c7367bcc643d593894a7a31c9b07cde4eff3486dd"], - "FISH": [30, "0x2aeea125cf76145d164d61f4e350fdb39df473d5663ee3577052b4565395296"], - "LORDS": [31, "0x3acbe76476cbf8997397878c52ce1acdf90ed1c295907f6505d3ff4c1646afa"] - } - }, - "manifest": { - "world": { - "class_hash": "0x45575a88cc5cef1e444c77ce60b7b4c9e73a01cbbe20926d5a4c72a94011410", - "address": "0x9dd5e66cfa83f893c2a70b9ea5221e2df18aaf52a111fe9003264f948c7aa", - "seed": "s1_eternum", - "name": "Realms: Eternum", - "entrypoints": [ - "uuid", - "set_metadata", - "register_namespace", - "register_event", - "register_model", - "register_contract", - "init_contract", - "upgrade_event", - "upgrade_model", - "upgrade_contract", - "emit_event", - "emit_events", - "set_entity", - "set_entities", - "delete_entity", - "delete_entities", - "grant_owner", - "revoke_owner", - "grant_writer", - "revoke_writer", - "upgrade" - ], - "abi": [ - { - "type": "impl", - "name": "World", - "interface_name": "dojo::world::iworld::IWorld" - }, - { - "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": "dojo::world::resource::Resource", - "variants": [ - { - "name": "Model", - "type": "(core::starknet::contract_address::ContractAddress, core::felt252)" - }, - { - "name": "Event", - "type": "(core::starknet::contract_address::ContractAddress, core::felt252)" - }, - { - "name": "Contract", - "type": "(core::starknet::contract_address::ContractAddress, core::felt252)" - }, - { - "name": "Namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "World", - "type": "()" - }, - { - "name": "Unregistered", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "dojo::model::metadata::ResourceMetadata", - "members": [ - { - "name": "resource_id", - "type": "core::felt252" - }, - { - "name": "metadata_uri", - "type": "core::byte_array::ByteArray" - }, - { - "name": "metadata_hash", - "type": "core::felt252" - } - ] - }, - { - "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::model::definition::ModelIndex", - "variants": [ - { - "name": "Keys", - "type": "core::array::Span::" - }, - { - "name": "Id", - "type": "core::felt252" - }, - { - "name": "MemberId", - "type": "(core::felt252, core::felt252)" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "dojo::meta::layout::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::meta::layout::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::meta::layout::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::" - } - ] - }, - { - "type": "enum", - "name": "core::bool", - "variants": [ - { - "name": "False", - "type": "()" - }, - { - "name": "True", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "dojo::world::iworld::IWorld", - "items": [ - { - "type": "function", - "name": "resource", - "inputs": [ - { - "name": "selector", - "type": "core::felt252" - } - ], - "outputs": [ - { - "type": "dojo::world::resource::Resource" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "uuid", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "metadata", - "inputs": [ - { - "name": "resource_selector", - "type": "core::felt252" - } - ], - "outputs": [ - { - "type": "dojo::model::metadata::ResourceMetadata" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "set_metadata", - "inputs": [ - { - "name": "metadata", - "type": "dojo::model::metadata::ResourceMetadata" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "register_namespace", - "inputs": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "register_event", - "inputs": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "register_model", - "inputs": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "register_contract", - "inputs": [ - { - "name": "salt", - "type": "core::felt252" - }, - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [ - { - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "init_contract", - "inputs": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "init_calldata", - "type": "core::array::Span::" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "upgrade_event", - "inputs": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "upgrade_model", - "inputs": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "upgrade_contract", - "inputs": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [ - { - "type": "core::starknet::class_hash::ClassHash" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "emit_event", - "inputs": [ - { - "name": "event_selector", - "type": "core::felt252" - }, - { - "name": "keys", - "type": "core::array::Span::" - }, - { - "name": "values", - "type": "core::array::Span::" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "emit_events", - "inputs": [ - { - "name": "event_selector", - "type": "core::felt252" - }, - { - "name": "keys", - "type": "core::array::Span::>" - }, - { - "name": "values", - "type": "core::array::Span::>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "entity", - "inputs": [ - { - "name": "model_selector", - "type": "core::felt252" - }, - { - "name": "index", - "type": "dojo::model::definition::ModelIndex" - }, - { - "name": "layout", - "type": "dojo::meta::layout::Layout" - } - ], - "outputs": [ - { - "type": "core::array::Span::" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "entities", - "inputs": [ - { - "name": "model_selector", - "type": "core::felt252" - }, - { - "name": "indexes", - "type": "core::array::Span::" - }, - { - "name": "layout", - "type": "dojo::meta::layout::Layout" - } - ], - "outputs": [ - { - "type": "core::array::Span::>" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "set_entity", - "inputs": [ - { - "name": "model_selector", - "type": "core::felt252" - }, - { - "name": "index", - "type": "dojo::model::definition::ModelIndex" - }, - { - "name": "values", - "type": "core::array::Span::" - }, - { - "name": "layout", - "type": "dojo::meta::layout::Layout" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_entities", - "inputs": [ - { - "name": "model_selector", - "type": "core::felt252" - }, - { - "name": "indexes", - "type": "core::array::Span::" - }, - { - "name": "values", - "type": "core::array::Span::>" - }, - { - "name": "layout", - "type": "dojo::meta::layout::Layout" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "delete_entity", - "inputs": [ - { - "name": "model_selector", - "type": "core::felt252" - }, - { - "name": "index", - "type": "dojo::model::definition::ModelIndex" - }, - { - "name": "layout", - "type": "dojo::meta::layout::Layout" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "delete_entities", - "inputs": [ - { - "name": "model_selector", - "type": "core::felt252" - }, - { - "name": "indexes", - "type": "core::array::Span::" - }, - { - "name": "layout", - "type": "dojo::meta::layout::Layout" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "is_owner", - "inputs": [ - { - "name": "resource", - "type": "core::felt252" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [ - { - "type": "core::bool" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "grant_owner", - "inputs": [ - { - "name": "resource", - "type": "core::felt252" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "revoke_owner", - "inputs": [ - { - "name": "resource", - "type": "core::felt252" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "is_writer", - "inputs": [ - { - "name": "resource", - "type": "core::felt252" - }, - { - "name": "contract", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [ - { - "type": "core::bool" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "grant_writer", - "inputs": [ - { - "name": "resource", - "type": "core::felt252" - }, - { - "name": "contract", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "revoke_writer", - "inputs": [ - { - "name": "resource", - "type": "core::felt252" - }, - { - "name": "contract", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableWorld", - "interface_name": "dojo::world::iworld::IUpgradeableWorld" - }, - { - "type": "interface", - "name": "dojo::world::iworld::IUpgradeableWorld", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [ - { - "name": "world_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::WorldSpawned", - "kind": "struct", - "members": [ - { - "name": "creator", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::WorldUpgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::NamespaceRegistered", - "kind": "struct", - "members": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "hash", - "type": "core::felt252", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::ModelRegistered", - "kind": "struct", - "members": [ - { - "name": "name", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "namespace", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::EventRegistered", - "kind": "struct", - "members": [ - { - "name": "name", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "namespace", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::ContractRegistered", - "kind": "struct", - "members": [ - { - "name": "name", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "namespace", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - }, - { - "name": "salt", - "type": "core::felt252", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::ModelUpgraded", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - }, - { - "name": "prev_address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::EventUpgraded", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - }, - { - "name": "prev_address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::ContractUpgraded", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::ContractInitialized", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "init_calldata", - "type": "core::array::Span::", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::EventEmitted", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "system_address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "key" - }, - { - "name": "keys", - "type": "core::array::Span::", - "kind": "data" - }, - { - "name": "values", - "type": "core::array::Span::", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::MetadataUpdate", - "kind": "struct", - "members": [ - { - "name": "resource", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "uri", - "type": "core::byte_array::ByteArray", - "kind": "data" - }, - { - "name": "hash", - "type": "core::felt252", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::StoreSetRecord", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "entity_id", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "keys", - "type": "core::array::Span::", - "kind": "data" - }, - { - "name": "values", - "type": "core::array::Span::", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::StoreUpdateRecord", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "entity_id", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "values", - "type": "core::array::Span::", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::StoreUpdateMember", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "entity_id", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "member_selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "values", - "type": "core::array::Span::", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::StoreDelRecord", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "entity_id", - "type": "core::felt252", - "kind": "key" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::WriterUpdated", - "kind": "struct", - "members": [ - { - "name": "resource", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "contract", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "key" - }, - { - "name": "value", - "type": "core::bool", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::OwnerUpdated", - "kind": "struct", - "members": [ - { - "name": "resource", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "contract", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "key" - }, - { - "name": "value", - "type": "core::bool", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::Event", - "kind": "enum", - "variants": [ - { - "name": "WorldSpawned", - "type": "dojo::world::world_contract::world::WorldSpawned", - "kind": "nested" - }, - { - "name": "WorldUpgraded", - "type": "dojo::world::world_contract::world::WorldUpgraded", - "kind": "nested" - }, - { - "name": "NamespaceRegistered", - "type": "dojo::world::world_contract::world::NamespaceRegistered", - "kind": "nested" - }, - { - "name": "ModelRegistered", - "type": "dojo::world::world_contract::world::ModelRegistered", - "kind": "nested" - }, - { - "name": "EventRegistered", - "type": "dojo::world::world_contract::world::EventRegistered", - "kind": "nested" - }, - { - "name": "ContractRegistered", - "type": "dojo::world::world_contract::world::ContractRegistered", - "kind": "nested" - }, - { - "name": "ModelUpgraded", - "type": "dojo::world::world_contract::world::ModelUpgraded", - "kind": "nested" - }, - { - "name": "EventUpgraded", - "type": "dojo::world::world_contract::world::EventUpgraded", - "kind": "nested" - }, - { - "name": "ContractUpgraded", - "type": "dojo::world::world_contract::world::ContractUpgraded", - "kind": "nested" - }, - { - "name": "ContractInitialized", - "type": "dojo::world::world_contract::world::ContractInitialized", - "kind": "nested" - }, - { - "name": "EventEmitted", - "type": "dojo::world::world_contract::world::EventEmitted", - "kind": "nested" - }, - { - "name": "MetadataUpdate", - "type": "dojo::world::world_contract::world::MetadataUpdate", - "kind": "nested" - }, - { - "name": "StoreSetRecord", - "type": "dojo::world::world_contract::world::StoreSetRecord", - "kind": "nested" - }, - { - "name": "StoreUpdateRecord", - "type": "dojo::world::world_contract::world::StoreUpdateRecord", - "kind": "nested" - }, - { - "name": "StoreUpdateMember", - "type": "dojo::world::world_contract::world::StoreUpdateMember", - "kind": "nested" - }, - { - "name": "StoreDelRecord", - "type": "dojo::world::world_contract::world::StoreDelRecord", - "kind": "nested" - }, - { - "name": "WriterUpdated", - "type": "dojo::world::world_contract::world::WriterUpdated", - "kind": "nested" - }, - { - "name": "OwnerUpdated", - "type": "dojo::world::world_contract::world::OwnerUpdated", - "kind": "nested" - } - ] - } - ] - }, - "contracts": [ - { - "address": "0x12dea4f1017885f3caf0f2307769bf7a22e1138756170d6b0089052287978d4", - "class_hash": "0x38b8eea12d619d5ef8dd3ce5fd038a6bef762b64d911a3e3947892f09ceaeab", - "abi": [ - { - "type": "impl", - "name": "bank_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "bank_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "BankSystemsImpl", - "interface_name": "s1_eternum::systems::bank::contracts::bank::IBankSystems" - }, - { - "type": "interface", - "name": "s1_eternum::systems::bank::contracts::bank::IBankSystems", - "items": [ - { - "type": "function", - "name": "change_owner_amm_fee", - "inputs": [ - { - "name": "bank_entity_id", - "type": "core::integer::u32" - }, - { - "name": "new_owner_fee_num", - "type": "core::integer::u128" - }, - { - "name": "new_owner_fee_denom", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "change_owner_bridge_fee", - "inputs": [ - { - "name": "bank_entity_id", - "type": "core::integer::u32" - }, - { - "name": "owner_bridge_fee_dpt_percent", - "type": "core::integer::u16" - }, - { - "name": "owner_bridge_fee_wtdr_percent", - "type": "core::integer::u16" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::bank::contracts::bank::bank_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-bank_systems", - "selector": "0x44475a775d79049bbe99567b7c00a1e4d8d582cade61a8aec07ca3bb234f6e6", - "systems": ["change_owner_amm_fee", "change_owner_bridge_fee", "upgrade"] - }, - { - "address": "0x352ce7d5737aaa6315bd01d85f0e03e6b52f533a3a4a89294f49cbb0b57bc07", - "class_hash": "0x2d35042bdc3fe8f799396ce2cf9c31deb666e63df2427688a4a8605e34d846", - "abi": [ - { - "type": "impl", - "name": "battle_pillage_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "battle_pillage_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "BattlePillageContractImpl", - "interface_name": "s1_eternum::systems::combat::contracts::battle_systems::IBattlePillageContract" - }, - { - "type": "interface", - "name": "s1_eternum::systems::combat::contracts::battle_systems::IBattlePillageContract", - "items": [ - { - "type": "function", - "name": "battle_pillage", - "inputs": [ - { - "name": "army_id", - "type": "core::integer::u32" - }, - { - "name": "structure_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::combat::contracts::battle_systems::battle_pillage_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-battle_pillage_systems", - "selector": "0x6e8963ce01de14fbf50434fd001ac86e45313c4d43e7a255192eb26dcb5d63d", - "systems": ["battle_pillage", "upgrade"] - }, - { - "address": "0x7cdc9a51cdeb4c7f1716345abc325fb8e7ebcd7cdceb1fa2083b97fe84716ea", - "class_hash": "0x1f9260c45aed95e060c98434c5922c5dfef7c82a62b47ae42496815c3dc6401", - "abi": [ - { - "type": "impl", - "name": "battle_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "battle_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "BattleContractImpl", - "interface_name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleContract" - }, - { - "type": "enum", - "name": "s1_eternum::models::combat::BattleSide", - "variants": [ - { - "name": "None", - "type": "()" - }, - { - "name": "Attack", - "type": "()" - }, - { - "name": "Defence", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleContract", - "items": [ - { - "type": "function", - "name": "battle_start", - "inputs": [ - { - "name": "attacking_army_id", - "type": "core::integer::u32" - }, - { - "name": "defending_army_id", - "type": "core::integer::u32" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "battle_force_start", - "inputs": [ - { - "name": "battle_id", - "type": "core::integer::u32" - }, - { - "name": "defending_army_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "battle_join", - "inputs": [ - { - "name": "battle_id", - "type": "core::integer::u32" - }, - { - "name": "battle_side", - "type": "s1_eternum::models::combat::BattleSide" - }, - { - "name": "army_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "battle_leave", - "inputs": [ - { - "name": "battle_id", - "type": "core::integer::u32" - }, - { - "name": "army_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "battle_claim", - "inputs": [ - { - "name": "army_id", - "type": "core::integer::u32" - }, - { - "name": "structure_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "battle_resolve", - "inputs": [ - { - "name": "battle_id", - "type": "core::integer::u32" - }, - { - "name": "army_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::combat::contracts::battle_systems::battle_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-battle_systems", - "selector": "0x7bb97d7199b14973d6f05b84579bda637cef5714be078064da3cb80d273c79b", - "systems": [ - "battle_start", - "battle_force_start", - "battle_join", - "battle_leave", - "battle_claim", - "battle_resolve", - "upgrade" - ] - }, - { - "address": "0x6066a64d97dd37aed41748a86aa11524c7e29f20235011ef8d16c7a067b2664", - "class_hash": "0x688863adfa91d251a6d09d09c156264d2c6d1128e70c759bd2848abbbe11fc6", - "abi": [ - { - "type": "impl", - "name": "battle_utils_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "battle_utils_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "BattleUtilsContractImpl", - "interface_name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleUtilsContract" - }, - { - "type": "struct", - "name": "s1_eternum::models::combat::Troops", - "members": [ - { - "name": "knight_count", - "type": "core::integer::u64" - }, - { - "name": "paladin_count", - "type": "core::integer::u64" - }, - { - "name": "crossbowman_count", - "type": "core::integer::u64" - } - ] - }, - { - "type": "enum", - "name": "s1_eternum::models::combat::BattleSide", - "variants": [ - { - "name": "None", - "type": "()" - }, - { - "name": "Attack", - "type": "()" - }, - { - "name": "Defence", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::combat::BattleArmy", - "members": [ - { - "name": "troops", - "type": "s1_eternum::models::combat::Troops" - }, - { - "name": "battle_id", - "type": "core::integer::u32" - }, - { - "name": "battle_side", - "type": "s1_eternum::models::combat::BattleSide" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::combat::BattleHealth", - "members": [ - { - "name": "current", - "type": "core::integer::u128" - }, - { - "name": "lifetime", - "type": "core::integer::u128" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::combat::Battle", - "members": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "attack_army", - "type": "s1_eternum::models::combat::BattleArmy" - }, - { - "name": "attack_army_lifetime", - "type": "s1_eternum::models::combat::BattleArmy" - }, - { - "name": "defence_army", - "type": "s1_eternum::models::combat::BattleArmy" - }, - { - "name": "defence_army_lifetime", - "type": "s1_eternum::models::combat::BattleArmy" - }, - { - "name": "attackers_resources_escrow_id", - "type": "core::integer::u32" - }, - { - "name": "defenders_resources_escrow_id", - "type": "core::integer::u32" - }, - { - "name": "attack_army_health", - "type": "s1_eternum::models::combat::BattleHealth" - }, - { - "name": "defence_army_health", - "type": "s1_eternum::models::combat::BattleHealth" - }, - { - "name": "attack_delta", - "type": "core::integer::u64" - }, - { - "name": "defence_delta", - "type": "core::integer::u64" - }, - { - "name": "last_updated", - "type": "core::integer::u64" - }, - { - "name": "duration_left", - "type": "core::integer::u64" - }, - { - "name": "start_at", - "type": "core::integer::u64" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::combat::Army", - "members": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "troops", - "type": "s1_eternum::models::combat::Troops" - }, - { - "name": "battle_id", - "type": "core::integer::u32" - }, - { - "name": "battle_side", - "type": "s1_eternum::models::combat::BattleSide" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleUtilsContract", - "items": [ - { - "type": "function", - "name": "leave_battle", - "inputs": [ - { - "name": "battle", - "type": "s1_eternum::models::combat::Battle" - }, - { - "name": "army", - "type": "s1_eternum::models::combat::Army" - } - ], - "outputs": [ - { - "type": "(s1_eternum::models::combat::Battle, s1_eternum::models::combat::Army)" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "leave_battle_if_ended", - "inputs": [ - { - "name": "battle", - "type": "s1_eternum::models::combat::Battle" - }, - { - "name": "army", - "type": "s1_eternum::models::combat::Army" - } - ], - "outputs": [ - { - "type": "(s1_eternum::models::combat::Battle, s1_eternum::models::combat::Army)" - } - ], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::combat::contracts::battle_systems::battle_utils_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-battle_utils_systems", - "selector": "0x2b94e5432b691bad81584af7e9e97102aa0070f13aa91c6ff8c980e54d5ca33", - "systems": ["leave_battle", "leave_battle_if_ended", "upgrade"] - }, - { - "address": "0x4db43369a7b0ab29f7356d5d0568c0d06cd6da5199daf06f9bec633d3e934ff", - "class_hash": "0x7fb2e9574aa693d81a15f3734dd0a8612ba8d64057b2aef692bd3117118a446", - "abi": [ - { - "type": "impl", - "name": "config_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "config_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IWorldConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IWorldConfig", - "items": [ - { - "type": "function", - "name": "set_world_config", - "inputs": [ - { - "name": "admin_address", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "realm_l2_contract", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "SeasonConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ISeasonConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ISeasonConfig", - "items": [ - { - "type": "function", - "name": "set_season_config", - "inputs": [ - { - "name": "season_pass_address", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "realms_address", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "lords_address", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "start_at", - "type": "core::integer::u64" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_season_bridge_config", - "inputs": [ - { - "name": "close_after_end_seconds", - "type": "core::integer::u64" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "VRFConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IVRFConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IVRFConfig", - "items": [ - { - "type": "function", - "name": "set_vrf_config", - "inputs": [ - { - "name": "vrf_provider_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "QuestConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IQuestConfig" - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IQuestConfig", - "items": [ - { - "type": "function", - "name": "set_quest_reward_config", - "inputs": [ - { - "name": "quest_id", - "type": "core::integer::u32" - }, - { - "name": "resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "MapConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IMapConfig" - }, - { - "type": "struct", - "name": "s1_eternum::models::config::MapConfig", - "members": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "reward_resource_amount", - "type": "core::integer::u128" - }, - { - "name": "shards_mines_fail_probability", - "type": "core::integer::u128" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IMapConfig", - "items": [ - { - "type": "function", - "name": "set_map_config", - "inputs": [ - { - "name": "map_config", - "type": "s1_eternum::models::config::MapConfig" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "CapacityConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ICapacityConfig" - }, - { - "type": "enum", - "name": "s1_eternum::models::config::CapacityConfigCategory", - "variants": [ - { - "name": "None", - "type": "()" - }, - { - "name": "Structure", - "type": "()" - }, - { - "name": "Donkey", - "type": "()" - }, - { - "name": "Army", - "type": "()" - }, - { - "name": "Storehouse", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::config::CapacityConfig", - "members": [ - { - "name": "category", - "type": "s1_eternum::models::config::CapacityConfigCategory" - }, - { - "name": "weight_gram", - "type": "core::integer::u128" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ICapacityConfig", - "items": [ - { - "type": "function", - "name": "set_capacity_config", - "inputs": [ - { - "name": "capacity_config", - "type": "s1_eternum::models::config::CapacityConfig" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "TravelStaminaCostConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ITravelStaminaCostConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ITravelStaminaCostConfig", - "items": [ - { - "type": "function", - "name": "set_travel_stamina_cost_config", - "inputs": [ - { - "name": "travel_type", - "type": "core::integer::u8" - }, - { - "name": "cost", - "type": "core::integer::u16" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "WeightConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IWeightConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IWeightConfig", - "items": [ - { - "type": "function", - "name": "set_weight_config", - "inputs": [ - { - "name": "entity_type", - "type": "core::integer::u32" - }, - { - "name": "weight_gram", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "BattleConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IBattleConfig" - }, - { - "type": "struct", - "name": "s1_eternum::models::config::BattleConfig", - "members": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "regular_immunity_ticks", - "type": "core::integer::u8" - }, - { - "name": "hyperstructure_immunity_ticks", - "type": "core::integer::u8" - }, - { - "name": "battle_delay_seconds", - "type": "core::integer::u64" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IBattleConfig", - "items": [ - { - "type": "function", - "name": "set_battle_config", - "inputs": [ - { - "name": "battle_config", - "type": "s1_eternum::models::config::BattleConfig" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "TickConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ITickConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ITickConfig", - "items": [ - { - "type": "function", - "name": "set_tick_config", - "inputs": [ - { - "name": "tick_id", - "type": "core::integer::u8" - }, - { - "name": "tick_interval_in_seconds", - "type": "core::integer::u64" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "StaminaConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IStaminaConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IStaminaConfig", - "items": [ - { - "type": "function", - "name": "set_stamina_config", - "inputs": [ - { - "name": "unit_type", - "type": "core::integer::u8" - }, - { - "name": "max_stamina", - "type": "core::integer::u16" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "TravelFoodCostConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ITravelFoodCostConfig" - }, - { - "type": "struct", - "name": "s1_eternum::models::config::TravelFoodCostConfig", - "members": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "unit_type", - "type": "core::integer::u8" - }, - { - "name": "explore_wheat_burn_amount", - "type": "core::integer::u128" - }, - { - "name": "explore_fish_burn_amount", - "type": "core::integer::u128" - }, - { - "name": "travel_wheat_burn_amount", - "type": "core::integer::u128" - }, - { - "name": "travel_fish_burn_amount", - "type": "core::integer::u128" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ITravelFoodCostConfig", - "items": [ - { - "type": "function", - "name": "set_travel_food_cost_config", - "inputs": [ - { - "name": "travel_food_cost_config", - "type": "s1_eternum::models::config::TravelFoodCostConfig" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "StaminaRefillConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IStaminaRefillConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IStaminaRefillConfig", - "items": [ - { - "type": "function", - "name": "set_stamina_refill_config", - "inputs": [ - { - "name": "amount_per_tick", - "type": "core::integer::u16" - }, - { - "name": "start_boost_tick_count", - "type": "core::integer::u8" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "LevelingConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ILevelingConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ILevelingConfig", - "items": [ - { - "type": "function", - "name": "set_leveling_config", - "inputs": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "decay_interval", - "type": "core::integer::u64" - }, - { - "name": "max_level", - "type": "core::integer::u64" - }, - { - "name": "decay_scaled", - "type": "core::integer::u128" - }, - { - "name": "cost_percentage_scaled", - "type": "core::integer::u128" - }, - { - "name": "base_multiplier", - "type": "core::integer::u128" - }, - { - "name": "wheat_base_amount", - "type": "core::integer::u128" - }, - { - "name": "fish_base_amount", - "type": "core::integer::u128" - }, - { - "name": "resource_1_costs", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "resource_2_costs", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "resource_3_costs", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "ProductionConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IProductionConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IProductionConfig", - "items": [ - { - "type": "function", - "name": "set_production_config", - "inputs": [ - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "produced_amount", - "type": "core::integer::u128" - }, - { - "name": "labor_amount", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "LaborConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ILaborConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ILaborConfig", - "items": [ - { - "type": "function", - "name": "set_labor_config", - "inputs": [ - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "cost", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "TransportConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ITransportConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ITransportConfig", - "items": [ - { - "type": "function", - "name": "set_speed_config", - "inputs": [ - { - "name": "entity_type", - "type": "core::integer::u32" - }, - { - "name": "sec_per_km", - "type": "core::integer::u16" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "HyperstructureConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IHyperstructureConfig" - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u8, core::integer::u128, core::integer::u128)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u8, core::integer::u128, core::integer::u128)>" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IHyperstructureConfig", - "items": [ - { - "type": "function", - "name": "set_hyperstructure_config", - "inputs": [ - { - "name": "resources_for_completion", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128, core::integer::u128)>" - }, - { - "name": "time_between_shares_change", - "type": "core::integer::u64" - }, - { - "name": "points_per_cycle", - "type": "core::integer::u128" - }, - { - "name": "points_for_win", - "type": "core::integer::u128" - }, - { - "name": "points_on_completion", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "BankConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IBankConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IBankConfig", - "items": [ - { - "type": "function", - "name": "set_bank_config", - "inputs": [ - { - "name": "lords_cost", - "type": "core::integer::u128" - }, - { - "name": "lp_fee_num", - "type": "core::integer::u128" - }, - { - "name": "lp_fee_denom", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "TroopConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ITroopConfig" - }, - { - "type": "struct", - "name": "s1_eternum::models::config::TroopConfig", - "members": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "health", - "type": "core::integer::u32" - }, - { - "name": "knight_strength", - "type": "core::integer::u8" - }, - { - "name": "paladin_strength", - "type": "core::integer::u8" - }, - { - "name": "crossbowman_strength", - "type": "core::integer::u16" - }, - { - "name": "advantage_percent", - "type": "core::integer::u16" - }, - { - "name": "disadvantage_percent", - "type": "core::integer::u16" - }, - { - "name": "max_troop_count", - "type": "core::integer::u64" - }, - { - "name": "pillage_health_divisor", - "type": "core::integer::u8" - }, - { - "name": "army_free_per_structure", - "type": "core::integer::u8" - }, - { - "name": "army_extra_per_building", - "type": "core::integer::u8" - }, - { - "name": "army_max_per_structure", - "type": "core::integer::u8" - }, - { - "name": "battle_leave_slash_num", - "type": "core::integer::u8" - }, - { - "name": "battle_leave_slash_denom", - "type": "core::integer::u8" - }, - { - "name": "battle_time_scale", - "type": "core::integer::u16" - }, - { - "name": "battle_max_time_seconds", - "type": "core::integer::u64" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ITroopConfig", - "items": [ - { - "type": "function", - "name": "set_troop_config", - "inputs": [ - { - "name": "troop_config", - "type": "s1_eternum::models::config::TroopConfig" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "BuildingCategoryPopulationConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IBuildingCategoryPopConfig" - }, - { - "type": "enum", - "name": "s1_eternum::models::resource::production::building::BuildingCategory", - "variants": [ - { - "name": "None", - "type": "()" - }, - { - "name": "Castle", - "type": "()" - }, - { - "name": "Resource", - "type": "()" - }, - { - "name": "Farm", - "type": "()" - }, - { - "name": "FishingVillage", - "type": "()" - }, - { - "name": "Barracks", - "type": "()" - }, - { - "name": "Market", - "type": "()" - }, - { - "name": "ArcheryRange", - "type": "()" - }, - { - "name": "Stable", - "type": "()" - }, - { - "name": "TradingPost", - "type": "()" - }, - { - "name": "WorkersHut", - "type": "()" - }, - { - "name": "WatchTower", - "type": "()" - }, - { - "name": "Walls", - "type": "()" - }, - { - "name": "Storehouse", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IBuildingCategoryPopConfig", - "items": [ - { - "type": "function", - "name": "set_building_category_pop_config", - "inputs": [ - { - "name": "building_category", - "type": "s1_eternum::models::resource::production::building::BuildingCategory" - }, - { - "name": "population", - "type": "core::integer::u32" - }, - { - "name": "capacity", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "PopulationConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IPopulationConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IPopulationConfig", - "items": [ - { - "type": "function", - "name": "set_population_config", - "inputs": [ - { - "name": "base_population", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "BuildingConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IBuildingConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IBuildingConfig", - "items": [ - { - "type": "function", - "name": "set_building_general_config", - "inputs": [ - { - "name": "base_cost_percent_increase", - "type": "core::integer::u16" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_building_config", - "inputs": [ - { - "name": "building_category", - "type": "s1_eternum::models::resource::production::building::BuildingCategory" - }, - { - "name": "building_resource_type", - "type": "core::integer::u8" - }, - { - "name": "cost_of_building", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "IMercenariesConfig", - "interface_name": "s1_eternum::systems::config::contracts::IMercenariesConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IMercenariesConfig", - "items": [ - { - "type": "function", - "name": "set_mercenaries_config", - "inputs": [ - { - "name": "knights_lower_bound", - "type": "core::integer::u64" - }, - { - "name": "knights_upper_bound", - "type": "core::integer::u64" - }, - { - "name": "paladins_lower_bound", - "type": "core::integer::u64" - }, - { - "name": "paladins_upper_bound", - "type": "core::integer::u64" - }, - { - "name": "crossbowmen_lower_bound", - "type": "core::integer::u64" - }, - { - "name": "crossbowmen_upper_bound", - "type": "core::integer::u64" - }, - { - "name": "rewards", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "IResourceBridgeConfig", - "interface_name": "s1_eternum::systems::config::contracts::IResourceBridgeConfig" - }, - { - "type": "enum", - "name": "core::bool", - "variants": [ - { - "name": "False", - "type": "()" - }, - { - "name": "True", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::config::ResourceBridgeConfig", - "members": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "deposit_paused", - "type": "core::bool" - }, - { - "name": "withdraw_paused", - "type": "core::bool" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::config::ResourceBridgeFeeSplitConfig", - "members": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "velords_fee_on_dpt_percent", - "type": "core::integer::u16" - }, - { - "name": "velords_fee_on_wtdr_percent", - "type": "core::integer::u16" - }, - { - "name": "season_pool_fee_on_dpt_percent", - "type": "core::integer::u16" - }, - { - "name": "season_pool_fee_on_wtdr_percent", - "type": "core::integer::u16" - }, - { - "name": "client_fee_on_dpt_percent", - "type": "core::integer::u16" - }, - { - "name": "client_fee_on_wtdr_percent", - "type": "core::integer::u16" - }, - { - "name": "velords_fee_recipient", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "season_pool_fee_recipient", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "max_bank_fee_dpt_percent", - "type": "core::integer::u16" - }, - { - "name": "max_bank_fee_wtdr_percent", - "type": "core::integer::u16" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::config::ResourceBridgeWhitelistConfig", - "members": [ - { - "name": "token", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IResourceBridgeConfig", - "items": [ - { - "type": "function", - "name": "set_resource_bridge_config", - "inputs": [ - { - "name": "resource_bridge_config", - "type": "s1_eternum::models::config::ResourceBridgeConfig" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_resource_bridge_fee_split_config", - "inputs": [ - { - "name": "resource_bridge_fee_split_config", - "type": "s1_eternum::models::config::ResourceBridgeFeeSplitConfig" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_resource_bridge_whitelist_config", - "inputs": [ - { - "name": "resource_bridge_whitelist_config", - "type": "s1_eternum::models::config::ResourceBridgeWhitelistConfig" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "RealmLevelConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IRealmLevelConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IRealmLevelConfig", - "items": [ - { - "type": "function", - "name": "set_realm_max_level_config", - "inputs": [ - { - "name": "new_max_level", - "type": "core::integer::u8" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_realm_level_config", - "inputs": [ - { - "name": "level", - "type": "core::integer::u8" - }, - { - "name": "resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "ISettlementConfig", - "interface_name": "s1_eternum::systems::config::contracts::ISettlementConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ISettlementConfig", - "items": [ - { - "type": "function", - "name": "set_settlement_config", - "inputs": [ - { - "name": "center", - "type": "core::integer::u32" - }, - { - "name": "base_distance", - "type": "core::integer::u32" - }, - { - "name": "min_first_layer_distance", - "type": "core::integer::u32" - }, - { - "name": "points_placed", - "type": "core::integer::u32" - }, - { - "name": "current_layer", - "type": "core::integer::u32" - }, - { - "name": "current_side", - "type": "core::integer::u32" - }, - { - "name": "current_point_on_side", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "achievement::components::achievable::AchievableComponent::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::config::contracts::config_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - }, - { - "name": "AchievableEvent", - "type": "achievement::components::achievable::AchievableComponent::Event", - "kind": "flat" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-config_systems", - "selector": "0x1cb4608b18b40cb6420be7cf67ff21abe727a2bf599f2727d8eed5e36099fc2", - "systems": [ - "set_world_config", - "set_season_config", - "set_season_bridge_config", - "set_vrf_config", - "set_quest_reward_config", - "set_map_config", - "set_capacity_config", - "set_travel_stamina_cost_config", - "set_weight_config", - "set_battle_config", - "set_tick_config", - "set_stamina_config", - "set_travel_food_cost_config", - "set_stamina_refill_config", - "set_leveling_config", - "set_production_config", - "set_labor_config", - "set_speed_config", - "set_hyperstructure_config", - "set_bank_config", - "set_troop_config", - "set_building_category_pop_config", - "set_population_config", - "set_building_general_config", - "set_building_config", - "set_mercenaries_config", - "set_resource_bridge_config", - "set_resource_bridge_fee_split_config", - "set_resource_bridge_whitelist_config", - "set_realm_max_level_config", - "set_realm_level_config", - "set_settlement_config", - "upgrade" - ] - }, - { - "address": "0x2368b70232d701b4be5e32d03d8ab13b3d0a3c5d44a7b8e704d24a5e2c723ad", - "class_hash": "0x52cc13796077949a91149c8870679bff30e880faacc1696c444db1ffc2e03ba", - "abi": [ - { - "type": "impl", - "name": "dev_bank_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "dev_bank_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "BankSystemsImpl", - "interface_name": "s1_eternum::systems::dev::contracts::bank::IBankSystems" - }, - { - "type": "struct", - "name": "s1_eternum::models::position::Coord", - "members": [ - { - "name": "x", - "type": "core::integer::u32" - }, - { - "name": "y", - "type": "core::integer::u32" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::dev::contracts::bank::IBankSystems", - "items": [ - { - "type": "function", - "name": "create_admin_bank", - "inputs": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "coord", - "type": "s1_eternum::models::position::Coord" - }, - { - "name": "owner_fee_num", - "type": "core::integer::u128" - }, - { - "name": "owner_fee_denom", - "type": "core::integer::u128" - }, - { - "name": "owner_bridge_fee_dpt_percent", - "type": "core::integer::u16" - }, - { - "name": "owner_bridge_fee_wtdr_percent", - "type": "core::integer::u16" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::dev::contracts::bank::dev_bank_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-dev_bank_systems", - "selector": "0x653ceec4af5e357119149b66228aece89c47a9c85dbba76955cec24e809f191", - "systems": ["create_admin_bank", "upgrade"] - }, - { - "address": "0x69a706af0da6fc3d1b4b148069c467c68c4171694eea8f2012f3560c72ea9a6", - "class_hash": "0x5eade382aa35597f5cbbee1c9366af3e78caef7ba002534aabfe11c24487bce", - "abi": [ - { - "type": "impl", - "name": "dev_realm_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "dev_realm_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "DevRealmSystemsImpl", - "interface_name": "s1_eternum::systems::dev::contracts::realm::IDevRealmSystems" - }, - { - "type": "interface", - "name": "s1_eternum::systems::dev::contracts::realm::IDevRealmSystems", - "items": [ - { - "type": "function", - "name": "create", - "inputs": [ - { - "name": "realm_id", - "type": "core::integer::u32" - }, - { - "name": "frontend", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::dev::contracts::realm::dev_realm_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-dev_realm_systems", - "selector": "0x32279d1c73c6356f5f15ff0e59adc6bfc45ffcde796c785452f6944b9b36ef1", - "systems": ["create", "upgrade"] - }, - { - "address": "0x3b574cdf884243f01296332ef73e4994f98b063773a056b0a46f5eebdc10f32", - "class_hash": "0x7d9a070d9ded75006a3b6ee02cee0601012901e7910978c390cb28a232a26cc", - "abi": [ - { - "type": "impl", - "name": "dev_resource_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "dev_resource_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "ResourceSystemsImpl", - "interface_name": "s1_eternum::systems::dev::contracts::resource::IResourceSystems" - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::dev::contracts::resource::IResourceSystems", - "items": [ - { - "type": "function", - "name": "mint", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::dev::contracts::resource::dev_resource_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-dev_resource_systems", - "selector": "0x4d5cfcb90997c42faaec636a440b73118f54d7e5321a8e6e134bdb0ac946333", - "systems": ["mint", "upgrade"] - }, - { - "address": "0xa4e32c74166a9b817f53e13ba1f06bf0e5dd324dccf38e2b9e9dad255c5026", - "class_hash": "0x41e1faef49fb72e1e20ffcf0c2c15e99f80cf95dc8ae3414b5c0e31ecce6b6f", - "abi": [ - { - "type": "impl", - "name": "donkey_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "donkey_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::transport::contracts::donkey_systems::donkey_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-donkey_systems", - "selector": "0x3d69880d4cc048ff9cbc100f9667649cb239b66e1245bf3cccb47119ea29a95", - "systems": ["upgrade"] - }, - { - "address": "0x315de68b9d148a842f4aa6e16d6c5d2d6ae1e7787a03c778a3691a894f9142d", - "class_hash": "0x6178332d6302e2ccebecc0cdf7ef676443384f9e3dcffbcbb1cb9056c05b11e", - "abi": [ - { - "type": "impl", - "name": "guild_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "guild_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "GuildSystemsImpl", - "interface_name": "s1_eternum::systems::guild::contracts::IGuildSystems" - }, - { - "type": "enum", - "name": "core::bool", - "variants": [ - { - "name": "False", - "type": "()" - }, - { - "name": "True", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::guild::contracts::IGuildSystems", - "items": [ - { - "type": "function", - "name": "create_guild", - "inputs": [ - { - "name": "is_public", - "type": "core::bool" - }, - { - "name": "guild_name", - "type": "core::felt252" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "join_guild", - "inputs": [ - { - "name": "guild_entity_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "whitelist_player", - "inputs": [ - { - "name": "player_address_to_whitelist", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "guild_entity_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "transfer_guild_ownership", - "inputs": [ - { - "name": "guild_entity_id", - "type": "core::integer::u32" - }, - { - "name": "to_player_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "remove_guild_member", - "inputs": [ - { - "name": "player_address_to_remove", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "remove_player_from_whitelist", - "inputs": [ - { - "name": "player_address_to_remove", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "guild_entity_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::guild::contracts::guild_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-guild_systems", - "selector": "0x15516acac71fbb80f953b9a8fac7d65ceff957f7f2d568fecbccba36bec6263", - "systems": [ - "create_guild", - "join_guild", - "whitelist_player", - "transfer_guild_ownership", - "remove_guild_member", - "remove_player_from_whitelist", - "upgrade" - ] - }, - { - "address": "0x5d9b021d46b861f532b88e1a5b09e5ab7c46d1a11c7fcc11335e0cc459383d9", - "class_hash": "0x1af127b3e1737bc103072be80c6927cdc90616df78597a5e225f6ab981ad6e4", - "abi": [ - { - "type": "impl", - "name": "hyperstructure_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "hyperstructure_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "HyperstructureSystemsImpl", - "interface_name": "s1_eternum::systems::hyperstructure::contracts::IHyperstructureSystems" - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u32, core::integer::u16)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u32, core::integer::u16)>" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::position::Coord", - "members": [ - { - "name": "x", - "type": "core::integer::u32" - }, - { - "name": "y", - "type": "core::integer::u32" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::<(core::starknet::contract_address::ContractAddress, core::integer::u16)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::starknet::contract_address::ContractAddress, core::integer::u16)>" - } - ] - }, - { - "type": "enum", - "name": "s1_eternum::models::hyperstructure::Access", - "variants": [ - { - "name": "Public", - "type": "()" - }, - { - "name": "Private", - "type": "()" - }, - { - "name": "GuildOnly", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::hyperstructure::contracts::IHyperstructureSystems", - "items": [ - { - "type": "function", - "name": "get_points", - "inputs": [ - { - "name": "player_address", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "hyperstructures_contributed_to", - "type": "core::array::Span::" - }, - { - "name": "hyperstructure_shareholder_epochs", - "type": "core::array::Span::<(core::integer::u32, core::integer::u16)>" - } - ], - "outputs": [ - { - "type": "(core::integer::u128, core::integer::u128, core::integer::u128, core::integer::u128)" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "create", - "inputs": [ - { - "name": "creator_entity_id", - "type": "core::integer::u32" - }, - { - "name": "coord", - "type": "s1_eternum::models::position::Coord" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "contribute_to_construction", - "inputs": [ - { - "name": "hyperstructure_entity_id", - "type": "core::integer::u32" - }, - { - "name": "contributor_entity_id", - "type": "core::integer::u32" - }, - { - "name": "contributions", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_co_owners", - "inputs": [ - { - "name": "hyperstructure_entity_id", - "type": "core::integer::u32" - }, - { - "name": "co_owners", - "type": "core::array::Span::<(core::starknet::contract_address::ContractAddress, core::integer::u16)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "end_game", - "inputs": [ - { - "name": "hyperstructures_contributed_to", - "type": "core::array::Span::" - }, - { - "name": "hyperstructure_shareholder_epochs", - "type": "core::array::Span::<(core::integer::u32, core::integer::u16)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_access", - "inputs": [ - { - "name": "hyperstructure_entity_id", - "type": "core::integer::u32" - }, - { - "name": "access", - "type": "s1_eternum::models::hyperstructure::Access" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::hyperstructure::contracts::hyperstructure_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-hyperstructure_systems", - "selector": "0x4bdd8bcbb935577aba3b974bd7e906698504fcb75e0c3aa34913c21342b4498", - "systems": [ - "get_points", - "create", - "contribute_to_construction", - "set_co_owners", - "end_game", - "set_access", - "upgrade" - ] - }, - { - "address": "0x5c0ae11ece0f9b47429f496ae8aa44c990457fd45ab3f99cf17dde52ea9c58e", - "class_hash": "0x39da4b5a4c779a5961a30a6bd3be3002f7ac8ca7fcb261bae647262cb03f8df", - "abi": [ - { - "type": "impl", - "name": "liquidity_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "liquidity_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "LiquiditySystemsImpl", - "interface_name": "s1_eternum::systems::bank::contracts::liquidity::ILiquiditySystems" - }, - { - "type": "enum", - "name": "core::bool", - "variants": [ - { - "name": "False", - "type": "()" - }, - { - "name": "True", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "cubit::f128::types::fixed::Fixed", - "members": [ - { - "name": "mag", - "type": "core::integer::u128" - }, - { - "name": "sign", - "type": "core::bool" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::bank::contracts::liquidity::ILiquiditySystems", - "items": [ - { - "type": "function", - "name": "add", - "inputs": [ - { - "name": "bank_entity_id", - "type": "core::integer::u32" - }, - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "resource_amount", - "type": "core::integer::u128" - }, - { - "name": "lords_amount", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "remove", - "inputs": [ - { - "name": "bank_entity_id", - "type": "core::integer::u32" - }, - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "shares", - "type": "cubit::f128::types::fixed::Fixed" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::bank::contracts::liquidity::liquidity_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-liquidity_systems", - "selector": "0xf480ba1a0c3e5b85a74ba14244a1653f886654d67c71b4dd0804d9eecf1cd9", - "systems": ["add", "remove", "upgrade"] - }, - { - "address": "0x4c9426847f591ff00e3bc81e31ef317ed7aa3d3f967e83d3b5da5b96d0f6128", - "class_hash": "0x23550c76e27c75c2c2aab7aaca5bc20b9595837ff35fdb95cd538c3d3f2466c", - "abi": [ - { - "type": "impl", - "name": "map_generation_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "map_generation_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "MapGenerationSystemsImpl", - "interface_name": "s1_eternum::systems::map::map_generation::IMapGenerationSystems" - }, - { - "type": "struct", - "name": "s1_eternum::models::owner::EntityOwner", - "members": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "entity_owner_id", - "type": "core::integer::u32" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::position::Coord", - "members": [ - { - "name": "x", - "type": "core::integer::u32" - }, - { - "name": "y", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::bool", - "variants": [ - { - "name": "False", - "type": "()" - }, - { - "name": "True", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "core::integer::u256", - "members": [ - { - "name": "low", - "type": "core::integer::u128" - }, - { - "name": "high", - "type": "core::integer::u128" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::map::map_generation::IMapGenerationSystems", - "items": [ - { - "type": "function", - "name": "discover_shards_mine", - "inputs": [ - { - "name": "unit_entity_owner", - "type": "s1_eternum::models::owner::EntityOwner" - }, - { - "name": "coord", - "type": "s1_eternum::models::position::Coord" - } - ], - "outputs": [ - { - "type": "core::bool" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "add_mercenaries_to_structure", - "inputs": [ - { - "name": "randomness", - "type": "core::integer::u256" - }, - { - "name": "structure_entity_id", - "type": "core::integer::u32" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::map::map_generation::map_generation_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-map_generation_systems", - "selector": "0x6dbd060aee5437a68789ce311c098ad9e39dddab8447b335c10007afae949c6", - "systems": ["discover_shards_mine", "add_mercenaries_to_structure", "upgrade"] - }, - { - "address": "0x4b18cc8d4d59032998a58dc2cd075c3ccc4784e8e4796da8e9812eeaf7f7321", - "class_hash": "0x3bb707045c5ff3766935a9bece0717a1adf395e9f109cf9e0f8d025bfeadc6d", - "abi": [ - { - "type": "impl", - "name": "map_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "map_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "MapSystemsImpl", - "interface_name": "s1_eternum::systems::map::contracts::IMapSystems" - }, - { - "type": "enum", - "name": "s1_eternum::models::position::Direction", - "variants": [ - { - "name": "East", - "type": "()" - }, - { - "name": "NorthEast", - "type": "()" - }, - { - "name": "NorthWest", - "type": "()" - }, - { - "name": "West", - "type": "()" - }, - { - "name": "SouthWest", - "type": "()" - }, - { - "name": "SouthEast", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::map::contracts::IMapSystems", - "items": [ - { - "type": "function", - "name": "explore", - "inputs": [ - { - "name": "unit_id", - "type": "core::integer::u32" - }, - { - "name": "direction", - "type": "s1_eternum::models::position::Direction" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::map::contracts::map_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-map_systems", - "selector": "0x6ed75404dd23a9d2825f9459d23848133ae3e81050e63b85c0d37264695d998", - "systems": ["explore", "upgrade"] - }, - { - "address": "0x3a3d2be02acf0e88dfd22e38dbb447e813250da83024d23109791acf1112ef1", - "class_hash": "0x6a06d111761024260598c4cab0bad06ba15ec09331b176f9223e62ef2093508", - "abi": [ - { - "type": "impl", - "name": "name_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "name_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "NameSystemsImpl", - "interface_name": "s1_eternum::systems::name::contracts::INameSystems" - }, - { - "type": "interface", - "name": "s1_eternum::systems::name::contracts::INameSystems", - "items": [ - { - "type": "function", - "name": "set_address_name", - "inputs": [ - { - "name": "name", - "type": "core::felt252" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_entity_name", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "name", - "type": "core::felt252" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::name::contracts::name_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-name_systems", - "selector": "0x45b86c7ee3f36393c4d14a0da3c58fdf406677137f1d840c53f01e8544e3b80", - "systems": ["set_address_name", "set_entity_name", "upgrade"] - }, - { - "address": "0x5cb00d1d30c81404daa4dc084cbfb1ecb2114f2367fa77f5b04912bd8abd7e1", - "class_hash": "0x57f36faf3ab21b910521f361bbc7bcd09758bc4ba46015f2bad0f15f6bf53ff", - "abi": [ - { - "type": "impl", - "name": "ownership_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "ownership_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "OwnershipSystemsImpl", - "interface_name": "s1_eternum::systems::ownership::contracts::IOwnershipSystems" - }, - { - "type": "interface", - "name": "s1_eternum::systems::ownership::contracts::IOwnershipSystems", - "items": [ - { - "type": "function", - "name": "transfer_ownership", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "new_owner", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::ownership::contracts::ownership_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-ownership_systems", - "selector": "0x5045fbdb3ad9b695ea6f218e57a3ca2ce575a2964f30e15f2e710f691aa0622", - "systems": ["transfer_ownership", "upgrade"] - }, - { - "address": "0xad55bb6ef5b58306f565c398d73dee2068d060a4a3e95a948b8badec4f6c3c", - "class_hash": "0x2d8e31a55fd8bf1e95262a07e57c0b97db4a1ae573f4e9d07b6b8fdb863cc43", - "abi": [ - { - "type": "impl", - "name": "production_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "production_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "ProductionContractImpl", - "interface_name": "s1_eternum::systems::production::contracts::IProductionContract" - }, - { - "type": "enum", - "name": "s1_eternum::models::position::Direction", - "variants": [ - { - "name": "East", - "type": "()" - }, - { - "name": "NorthEast", - "type": "()" - }, - { - "name": "NorthWest", - "type": "()" - }, - { - "name": "West", - "type": "()" - }, - { - "name": "SouthWest", - "type": "()" - }, - { - "name": "SouthEast", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "s1_eternum::models::resource::production::building::BuildingCategory", - "variants": [ - { - "name": "None", - "type": "()" - }, - { - "name": "Castle", - "type": "()" - }, - { - "name": "Resource", - "type": "()" - }, - { - "name": "Farm", - "type": "()" - }, - { - "name": "FishingVillage", - "type": "()" - }, - { - "name": "Barracks", - "type": "()" - }, - { - "name": "Market", - "type": "()" - }, - { - "name": "ArcheryRange", - "type": "()" - }, - { - "name": "Stable", - "type": "()" - }, - { - "name": "TradingPost", - "type": "()" - }, - { - "name": "WorkersHut", - "type": "()" - }, - { - "name": "WatchTower", - "type": "()" - }, - { - "name": "Walls", - "type": "()" - }, - { - "name": "Storehouse", - "type": "()" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u8" - }, - { - "name": "None", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::position::Coord", - "members": [ - { - "name": "x", - "type": "core::integer::u32" - }, - { - "name": "y", - "type": "core::integer::u32" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::production::contracts::IProductionContract", - "items": [ - { - "type": "function", - "name": "create_building", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "directions", - "type": "core::array::Span::" - }, - { - "name": "building_category", - "type": "s1_eternum::models::resource::production::building::BuildingCategory" - }, - { - "name": "produce_resource_type", - "type": "core::option::Option::" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "destroy_building", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "building_coord", - "type": "s1_eternum::models::position::Coord" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "pause_building_production", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "building_coord", - "type": "s1_eternum::models::position::Coord" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "resume_building_production", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "building_coord", - "type": "s1_eternum::models::position::Coord" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "make_production_labor", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "labor_amount", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "burn_production_labor", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "labor_amount", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::production::contracts::production_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-production_systems", - "selector": "0x6d70095d0a6ca6efc41633bafa4ac5202f1f83c75afbba78987b58f495a4c0", - "systems": [ - "create_building", - "destroy_building", - "pause_building_production", - "resume_building_production", - "make_production_labor", - "burn_production_labor", - "upgrade" - ] - }, - { - "address": "0x33e0343497e2d58aa089f11f9f00faf6e2a543d58ec3670f99507d5ad9d9312", - "class_hash": "0x567e142c27b39221110078e7ffc6f3d24ee35d07978b548cb799d777d81baba", - "abi": [ - { - "type": "impl", - "name": "realm_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "realm_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "RealmSystemsImpl", - "interface_name": "s1_eternum::systems::realm::contracts::IRealmSystems" - }, - { - "type": "interface", - "name": "s1_eternum::systems::realm::contracts::IRealmSystems", - "items": [ - { - "type": "function", - "name": "create", - "inputs": [ - { - "name": "owner", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "realm_id", - "type": "core::integer::u32" - }, - { - "name": "frontend", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "upgrade_level", - "inputs": [ - { - "name": "realm_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "quest_claim", - "inputs": [ - { - "name": "quest_id", - "type": "core::integer::u32" - }, - { - "name": "entity_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::realm::contracts::realm_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-realm_systems", - "selector": "0x3b4cc14cbb49692c85e1b132ac8536fe7d0d1361cd2fb5ba8df29f726ca02d2", - "systems": ["create", "upgrade_level", "quest_claim", "upgrade"] - }, - { - "address": "0x348b0b20565b8616b0e4a42c75ff9cf48ed94ca0265b4c13b959759de9ca747", - "class_hash": "0x50d051cf375ddb6427d781b0e7f5c7670f3a0c3cea45ed487154c6fe33cdacf", - "abi": [ - { - "type": "impl", - "name": "resource_bridge_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "resource_bridge_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "ResourceBridgeImpl", - "interface_name": "s1_eternum::systems::resources::contracts::resource_bridge_systems::IResourceBridgeSystems" - }, - { - "type": "struct", - "name": "core::integer::u256", - "members": [ - { - "name": "low", - "type": "core::integer::u128" - }, - { - "name": "high", - "type": "core::integer::u128" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::resources::contracts::resource_bridge_systems::IResourceBridgeSystems", - "items": [ - { - "type": "function", - "name": "deposit_initial", - "inputs": [ - { - "name": "token", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "recipient_realm_id", - "type": "core::integer::u32" - }, - { - "name": "amount", - "type": "core::integer::u256" - }, - { - "name": "client_fee_recipient", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "deposit", - "inputs": [ - { - "name": "token", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "through_bank_id", - "type": "core::integer::u32" - }, - { - "name": "recipient_realm_id", - "type": "core::integer::u32" - }, - { - "name": "amount", - "type": "core::integer::u256" - }, - { - "name": "client_fee_recipient", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "start_withdraw", - "inputs": [ - { - "name": "through_bank_id", - "type": "core::integer::u32" - }, - { - "name": "from_realm_id", - "type": "core::integer::u32" - }, - { - "name": "token", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "amount", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "finish_withdraw", - "inputs": [ - { - "name": "through_bank_id", - "type": "core::integer::u32" - }, - { - "name": "from_entity_id", - "type": "core::integer::u32" - }, - { - "name": "token", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "recipient_address", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "client_fee_recipient", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::resources::contracts::resource_bridge_systems::resource_bridge_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-resource_bridge_systems", - "selector": "0x4f94ba58902810acb653eeeb2a36e5f8f5a7096ceac7a2705c52732281e3cd2", - "systems": ["deposit_initial", "deposit", "start_withdraw", "finish_withdraw", "upgrade"] - }, - { - "address": "0x2174d311dc76dda4d8c82402d3c9ab4e0c8a56600c681caa3e17308b3f58390", - "class_hash": "0x4e3a61a93c7703b04df217cf8e8b43698187f9a7434c457f29f3602f8ceb190", - "abi": [ - { - "type": "impl", - "name": "resource_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "resource_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "ResourceSystemsImpl", - "interface_name": "s1_eternum::systems::resources::contracts::resource_systems::IResourceSystems" - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::resources::contracts::resource_systems::IResourceSystems", - "items": [ - { - "type": "function", - "name": "approve", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "recipient_entity_id", - "type": "core::integer::u32" - }, - { - "name": "resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "send", - "inputs": [ - { - "name": "sender_entity_id", - "type": "core::integer::u32" - }, - { - "name": "recipient_entity_id", - "type": "core::integer::u32" - }, - { - "name": "resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "pickup", - "inputs": [ - { - "name": "recipient_entity_id", - "type": "core::integer::u32" - }, - { - "name": "owner_entity_id", - "type": "core::integer::u32" - }, - { - "name": "resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::resources::contracts::resource_systems::resource_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-resource_systems", - "selector": "0x626970a749fd6b8230875061236c1a9446ae65287beb6107d5b88e5ca078019", - "systems": ["approve", "send", "pickup", "upgrade"] - }, - { - "address": "0x3819b2fccc14b8dd7c885c33f835fd431742fb551c1fdc4b318fca3f6acf311", - "class_hash": "0x59c55e3ca487de1ccb5b6cf174ac5c70d98b4af6db76b9987843dc08520cef3", - "abi": [ - { - "type": "impl", - "name": "season_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "season_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "SeasonSystemsImpl", - "interface_name": "s1_eternum::systems::season::contracts::ISeasonSystems" - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u32, core::integer::u16)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u32, core::integer::u16)>" - } - ] - }, + "generatedFromTsFile": true, + "message": "This file was generated from the .ts file and should not be edited manually", + "configuration": { + "stamina": { + "travelCost": 10, + "exploreCost": 20, + "refillPerTick": 20, + "startBoostTickCount": 2 + }, + "resources": { + "resourcePrecision": 1000000000, + "resourceMultiplier": 1000000000, + "resourceAmountPerTick": 10, + "startingResourcesInputProductionFactor": 6, + "resourceInputs": { + "1": [ + { + "resource": 3, + "amount": 5 + }, + { + "resource": 2, + "amount": 3.8 + }, + { + "resource": 29, + "amount": 5 + } + ], + "2": [ + { + "resource": 1, + "amount": 4.2 + }, + { + "resource": 4, + "amount": 2.8 + }, + { + "resource": 29, + "amount": 5 + } + ], + "3": [ + { + "resource": 1, + "amount": 3 + }, + { + "resource": 2, + "amount": 3.2 + }, + { + "resource": 29, + "amount": 5 + } + ], + "4": [ + { + "resource": 2, + "amount": 5.8 + }, + { + "resource": 6, + "amount": 3.4 + }, + { + "resource": 29, + "amount": 5 + } + ], + "5": [ + { + "resource": 8, + "amount": 6 + }, + { + "resource": 11, + "amount": 3.2 + }, + { + "resource": 30, + "amount": 4 + } + ], + "6": [ + { + "resource": 4, + "amount": 4.8 + }, + { + "resource": 8, + "amount": 3.2 + }, + { + "resource": 29, + "amount": 5 + } + ], + "7": [ + { + "resource": 11, + "amount": 4.2 + }, + { + "resource": 15, + "amount": 2.6 + }, + { + "resource": 30, + "amount": 4 + } + ], + "8": [ + { + "resource": 6, + "amount": 5 + }, + { + "resource": 5, + "amount": 2.8 + }, + { + "resource": 30, + "amount": 4 + } + ], + "9": [ + { + "resource": 19, + "amount": 6 + }, + { + "resource": 22, + "amount": 2.4 + }, + { + "resource": 30, + "amount": 4 + } + ], + "10": [ + { + "resource": 17, + "amount": 4.8 + }, + { + "resource": 19, + "amount": 2.4 + }, + { + "resource": 30, + "amount": 4 + } + ], + "11": [ + { + "resource": 5, + "amount": 5 + }, + { + "resource": 7, + "amount": 3.8 + }, + { + "resource": 30, + "amount": 4 + } + ], + "12": [ + { + "resource": 13, + "amount": 4 + }, + { + "resource": 16, + "amount": 4.2 + }, + { + "resource": 30, + "amount": 4 + } + ], + "13": [ + { + "resource": 20, + "amount": 4.2 + }, + { + "resource": 12, + "amount": 4 + }, + { + "resource": 30, + "amount": 4 + } + ], + "14": [ + { + "resource": 15, + "amount": 8 + }, + { + "resource": 20, + "amount": 3.2 + }, + { + "resource": 30, + "amount": 4 + } + ], + "15": [ + { + "resource": 7, + "amount": 6.2 + }, + { + "resource": 14, + "amount": 2 + }, + { + "resource": 30, + "amount": 4 + } + ], + "16": [ + { + "resource": 12, + "amount": 5.6 + }, + { + "resource": 21, + "amount": 3.8 + }, + { + "resource": 30, + "amount": 4 + } + ], + "17": [ + { + "resource": 18, + "amount": 5 + }, + { + "resource": 10, + "amount": 3.4 + }, + { + "resource": 30, + "amount": 4 + } + ], + "18": [ + { + "resource": 21, + "amount": 4.6 + }, + { + "resource": 17, + "amount": 3.2 + }, + { + "resource": 30, + "amount": 4 + } + ], + "19": [ + { + "resource": 10, + "amount": 6.8 + }, + { + "resource": 9, + "amount": 2.6 + }, + { + "resource": 30, + "amount": 4 + } + ], + "20": [ + { + "resource": 14, + "amount": 4.8 + }, + { + "resource": 13, + "amount": 3.8 + }, + { + "resource": 30, + "amount": 4 + } + ], + "21": [ + { + "resource": 16, + "amount": 4.2 + }, + { + "resource": 18, + "amount": 3.4 + }, + { + "resource": 30, + "amount": 4 + } + ], + "22": [ + { + "resource": 9, + "amount": 6.4 + }, + { + "resource": 19, + "amount": 4 + }, + { + "resource": 30, + "amount": 4 + } + ], + "23": [], + "24": [], + "25": [ + { + "resource": 29, + "amount": 25 + }, + { + "resource": 31, + "amount": 0.01 + } + ], + "26": [ + { + "resource": 29, + "amount": 50 + }, + { + "resource": 30, + "amount": 50 + }, + { + "resource": 8, + "amount": 2 + }, + { + "resource": 5, + "amount": 5 + } + ], + "27": [ + { + "resource": 29, + "amount": 50 + }, + { + "resource": 30, + "amount": 50 + }, + { + "resource": 6, + "amount": 2 + }, + { + "resource": 11, + "amount": 5 + } + ], + "28": [ + { + "resource": 29, + "amount": 50 + }, + { + "resource": 30, + "amount": 50 + }, + { + "resource": 4, + "amount": 2 + }, + { + "resource": 7, + "amount": 5 + } + ], + "29": [], + "30": [], + "31": [] + }, + "resourceOutputs": { + "1": 30, + "2": 30, + "3": 30, + "4": 30, + "5": 30, + "6": 30, + "7": 30, + "8": 30, + "9": 30, + "10": 30, + "11": 30, + "12": 30, + "13": 30, + "14": 30, + "15": 30, + "16": 30, + "17": 30, + "18": 30, + "19": 30, + "20": 30, + "21": 30, + "22": 30, + "23": 0.005, + "24": 1, + "25": 0.5, + "26": 0.04, + "27": 0.04, + "28": 0.04, + "29": 50, + "30": 50, + "31": 0 + }, + "resourceProductionByLaborParams": { + "1": { + "resource_rarity": 127, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "2": { + "resource_rarity": 131, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "3": { + "resource_rarity": 100, + "depreciation_percent_num": 100, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "4": { + "resource_rarity": 190, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "5": { + "resource_rarity": 425, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "6": { + "resource_rarity": 226, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "7": { + "resource_rarity": 549, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "8": { + "resource_rarity": 288, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "9": { + "resource_rarity": 13553, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "10": { + "resource_rarity": 5392, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "11": { + "resource_rarity": 524, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "12": { + "resource_rarity": 2098, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "13": { + "resource_rarity": 2098, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "14": { + "resource_rarity": 1672, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "15": { + "resource_rarity": 844, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "16": { + "resource_rarity": 2915, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "17": { + "resource_rarity": 4518, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "18": { + "resource_rarity": 3606, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "19": { + "resource_rarity": 9120, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "20": { + "resource_rarity": 2030, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "21": { + "resource_rarity": 3095, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "22": { + "resource_rarity": 21792, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "23": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "24": { + "resource_rarity": 2098, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 250000, + "fish_burn_per_labor": 300000 + }, + "25": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "26": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "27": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "28": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "29": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "30": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "31": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + } + }, + "resourceWeightsGrams": { + "1": 1000, + "2": 1000, + "3": 1000, + "4": 1000, + "5": 1000, + "6": 1000, + "7": 1000, + "8": 1000, + "9": 1000, + "10": 1000, + "11": 1000, + "12": 1000, + "13": 1000, + "14": 1000, + "15": 1000, + "16": 1000, + "17": 1000, + "18": 1000, + "19": 1000, + "20": 1000, + "21": 1000, + "22": 1000, + "23": 1000, + "24": 1000, + "25": 0, + "26": 5000, + "27": 3000, + "28": 5000, + "29": 100, + "30": 100, + "31": 0 + }, + "resourceRarity": { + "1": 1.27, + "2": 1.31, + "3": 1, + "4": 1.9, + "5": 4.25, + "6": 2.26, + "7": 5.49, + "8": 2.88, + "9": 135.53, + "10": 53.92, + "11": 5.24, + "12": 20.98, + "13": 20.98, + "14": 16.72, + "15": 8.44, + "16": 29.15, + "17": 45.18, + "18": 36.06, + "19": 91.2, + "20": 20.3, + "21": 30.95, + "22": 217.92, + "24": 20.98, + "25": 1, + "26": 1, + "27": 1, + "28": 1, + "29": 1, + "30": 1, + "31": 1 + } + }, + "banks": { + "name": "Central Bank", + "lordsCost": 1000, + "lpFeesNumerator": 15, + "lpFeesDenominator": 100, + "ownerFeesNumerator": 15, + "ownerFeesDenominator": 100, + "ownerBridgeFeeOnDepositPercent": 1000, + "ownerBridgeFeeOnWithdrawalPercent": 1000, + "ammStartingLiquidity": { + "1": 500000, + "2": 500000, + "3": 500000, + "4": 500000, + "5": 200000, + "6": 500000, + "7": 200000, + "8": 500000, + "9": 50000, + "10": 50000, + "11": 200000, + "12": 75000, + "13": 100000, + "14": 100000, + "15": 200000, + "16": 75000, + "17": 50000, + "18": 50000, + "19": 50000, + "20": 100000, + "21": 50000, + "22": 50000, + "25": 10000 + }, + "lordsLiquidityPerResource": 1000 + }, + "populationCapacity": { + "workerHuts": 5, + "basePopulation": 5 + }, + "exploration": { + "reward": 750, + "shardsMinesFailProbability": 99000 + }, + "tick": { + "defaultTickIntervalInSeconds": 1, + "armiesTickIntervalInSeconds": 3600 + }, + "carryCapacityGram": { + "0": 0, + "1": "340282366920938463463374607431768211455", + "2": 500000, + "3": 10000, + "4": 300000000 + }, + "speed": { + "donkey": 9, + "army": 1 + }, + "battle": { + "graceTickCount": 24, + "graceTickCountHyp": 1, + "delaySeconds": 28800 + }, + "troop": { + "health": 1, + "knightStrength": 1, + "paladinStrength": 1, + "crossbowmanStrength": 1, + "advantagePercent": 1000, + "disadvantagePercent": 1000, + "maxTroopCount": 500000, + "baseArmyNumberForStructure": 3, + "armyExtraPerMilitaryBuilding": 1, + "maxArmiesPerStructure": 7, + "pillageHealthDivisor": 8, + "battleLeaveSlashNum": 25, + "battleLeaveSlashDenom": 100, + "battleTimeReductionScale": 1000, + "battleMaxTimeSeconds": 172800, + "troopStaminas": { + "26": 80, + "27": 80, + "28": 100 + }, + "troopFoodConsumption": { + "26": { + "explore_wheat_burn_amount": 10, + "explore_fish_burn_amount": 10, + "travel_wheat_burn_amount": 5, + "travel_fish_burn_amount": 5 + }, + "27": { + "explore_wheat_burn_amount": 6, + "explore_fish_burn_amount": 6, + "travel_wheat_burn_amount": 3, + "travel_fish_burn_amount": 3 + }, + "28": { + "explore_wheat_burn_amount": 10, + "explore_fish_burn_amount": 10, + "travel_wheat_burn_amount": 4, + "travel_fish_burn_amount": 4 + } + } + }, + "mercenaries": { + "knights_lower_bound": 1000, + "knights_upper_bound": 4000, + "paladins_lower_bound": 1000, + "paladins_upper_bound": 4000, + "crossbowmen_lower_bound": 1000, + "crossbowmen_upper_bound": 4000, + "rewards": [ + { + "resource": 29, + "amount": 0 + }, + { + "resource": 30, + "amount": 0 + } + ] + }, + "settlement": { + "center": 2147483646, + "base_distance": 10, + "min_first_layer_distance": 30, + "points_placed": 0, + "current_layer": 1, + "current_side": 1, + "current_point_on_side": 0 + }, + "buildings": { + "buildingCapacity": { + "0": 0, + "1": 5, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 5, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0 + }, + "buildingPopulation": { + "0": 0, + "1": 0, + "2": 2, + "3": 1, + "4": 1, + "5": 2, + "6": 3, + "7": 2, + "8": 3, + "9": 2, + "10": 0, + "11": 2, + "12": 2, + "13": 2, + "14": 0, + "15": 0 + }, + "buildingResourceProduced": { + "0": 0, + "1": 23, + "2": 0, + "3": 29, + "4": 30, + "5": 26, + "6": 25, + "7": 27, + "8": 28, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 24 + }, + "otherBuildingCosts": { + "0": [], + "1": [], + "2": [], + "3": [ + { + "resource": 30, + "amount": 450000 + } + ], + "4": [ + { + "resource": 29, + "amount": 450000 + } + ], + "5": [ + { + "resource": 29, + "amount": 1000000 + }, + { + "resource": 3, + "amount": 75000 + }, + { + "resource": 2, + "amount": 75000 + }, + { + "resource": 8, + "amount": 50000 + }, + { + "resource": 7, + "amount": 45000 + } + ], + "6": [ + { + "resource": 30, + "amount": 750000 + }, + { + "resource": 1, + "amount": 125000 + }, + { + "resource": 6, + "amount": 50000 + }, + { + "resource": 13, + "amount": 25000 + }, + { + "resource": 12, + "amount": 5000 + } + ], + "7": [ + { + "resource": 30, + "amount": 1000000 + }, + { + "resource": 3, + "amount": 75000 + }, + { + "resource": 6, + "amount": 75000 + }, + { + "resource": 7, + "amount": 25000 + }, + { + "resource": 15, + "amount": 25000 + } + ], + "8": [ + { + "resource": 29, + "amount": 1000000 + }, + { + "resource": 3, + "amount": 75000 + }, + { + "resource": 8, + "amount": 75000 + }, + { + "resource": 5, + "amount": 35000 + }, + { + "resource": 7, + "amount": 25000 + } + ], + "9": [], + "10": [ + { + "resource": 29, + "amount": 300000 + }, + { + "resource": 1, + "amount": 75000 + }, + { + "resource": 3, + "amount": 75000 + }, + { + "resource": 2, + "amount": 75000 + } + ], + "11": [], + "12": [], + "13": [ + { + "resource": 30, + "amount": 1000000 + }, + { + "resource": 2, + "amount": 75000 + }, + { + "resource": 1, + "amount": 75000 + }, + { + "resource": 20, + "amount": 10000 + } + ], + "14": [], + "15": [] + }, + "resourceBuildingCosts": { + "1": [ + { + "resource": 30, + "amount": 750000 + } + ], + "2": [ + { + "resource": 29, + "amount": 750000 + } + ], + "3": [ + { + "resource": 29, + "amount": 750000 + } + ], + "4": [ + { + "resource": 30, + "amount": 750000 + } + ], + "5": [ + { + "resource": 29, + "amount": 750000 + } + ], + "6": [ + { + "resource": 29, + "amount": 750000 + } + ], + "7": [ + { + "resource": 29, + "amount": 750000 + } + ], + "8": [ + { + "resource": 30, + "amount": 750000 + } + ], + "9": [ + { + "resource": 29, + "amount": 750000 + } + ], + "10": [ + { + "resource": 29, + "amount": 750000 + } + ], + "11": [ + { + "resource": 30, + "amount": 750000 + } + ], + "12": [ + { + "resource": 30, + "amount": 750000 + } + ], + "13": [ + { + "resource": 29, + "amount": 750000 + } + ], + "14": [ + { + "resource": 29, + "amount": 750000 + } + ], + "15": [ + { + "resource": 30, + "amount": 750000 + } + ], + "16": [ + { + "resource": 29, + "amount": 750 + } + ], + "17": [ + { + "resource": 30, + "amount": 750000 + } + ], + "18": [ + { + "resource": 29, + "amount": 750000 + } + ], + "19": [ + { + "resource": 30, + "amount": 750000 + } + ], + "20": [ + { + "resource": 30, + "amount": 750000 + } + ], + "21": [ + { + "resource": 30, + "amount": 750000 + } + ], + "22": [ + { + "resource": 30, + "amount": 750000 + } + ] + }, + "buildingFixedCostScalePercent": 5000 + }, + "hyperstructures": { + "hyperstructureCreationCosts": [ + { + "resource_tier": 1, + "min_amount": 3000000, + "max_amount": 3000000 + } + ], + "hyperstructureConstructionCosts": [ + { + "resource_tier": 2, + "min_amount": 0, + "max_amount": 0 + }, + { + "resource_tier": 3, + "min_amount": 0, + "max_amount": 0 + }, + { + "resource_tier": 4, + "min_amount": 0, + "max_amount": 0 + }, + { + "resource_tier": 5, + "min_amount": 120000000, + "max_amount": 240000000 + }, + { + "resource_tier": 6, + "min_amount": 90000000, + "max_amount": 180000000 + }, + { + "resource_tier": 7, + "min_amount": 40000000, + "max_amount": 80000000 + }, + { + "resource_tier": 8, + "min_amount": 20000000, + "max_amount": 40000000 + }, + { + "resource_tier": 9, + "min_amount": 7000000, + "max_amount": 14000000 + } + ], + "hyperstructureTotalCosts": [ + { + "resource_tier": 2, + "min_amount": 0, + "max_amount": 0 + }, + { + "resource_tier": 3, + "min_amount": 0, + "max_amount": 0 + }, + { + "resource_tier": 4, + "min_amount": 0, + "max_amount": 0 + }, + { + "resource_tier": 5, + "min_amount": 120000000, + "max_amount": 240000000 + }, + { + "resource_tier": 6, + "min_amount": 90000000, + "max_amount": 180000000 + }, + { + "resource_tier": 7, + "min_amount": 40000000, + "max_amount": 80000000 + }, + { + "resource_tier": 8, + "min_amount": 20000000, + "max_amount": 40000000 + }, + { + "resource_tier": 9, + "min_amount": 7000000, + "max_amount": 14000000 + }, + { + "resource_tier": 1, + "min_amount": 3000000, + "max_amount": 3000000 + } + ], + "hyperstructurePointsPerCycle": 7, + "hyperstructurePointsOnCompletion": 500000, + "hyperstructureTimeBetweenSharesChangeSeconds": 17280, + "hyperstructurePointsForWin": 9620000 + }, + "season": { + "startAfterSeconds": 60, + "bridgeCloseAfterEndSeconds": 172800 + }, + "bridge": { + "velords_fee_on_dpt_percent": 400, + "velords_fee_on_wtdr_percent": 400, + "season_pool_fee_on_dpt_percent": 400, + "season_pool_fee_on_wtdr_percent": 400, + "client_fee_on_dpt_percent": 200, + "client_fee_on_wtdr_percent": 200, + "velords_fee_recipient": "0x045c587318c9ebcf2fbe21febf288ee2e3597a21cd48676005a5770a50d433c5", + "season_pool_fee_recipient": "0x3819b2fccc14b8dd7c885c33f835fd431742fb551c1fdc4b318fca3f6acf311", + "max_bank_fee_dpt_percent": 0, + "max_bank_fee_wtdr_percent": 0 + }, + "vrf": { + "vrfProviderAddress": "0x0" + }, + "questResources": { + "1": [ + { + "resource": 29, + "amount": 1200000 + }, + { + "resource": 30, + "amount": 1200000 + } + ], + "2": [ + { + "resource": 3, + "amount": 5000 + }, + { + "resource": 1, + "amount": 5000 + }, + { + "resource": 2, + "amount": 5000 + }, + { + "resource": 4, + "amount": 5000 + }, + { + "resource": 6, + "amount": 5000 + }, + { + "resource": 8, + "amount": 5000 + }, + { + "resource": 5, + "amount": 5000 + }, + { + "resource": 11, + "amount": 5000 + }, + { + "resource": 7, + "amount": 5000 + }, + { + "resource": 15, + "amount": 5000 + }, + { + "resource": 14, + "amount": 5000 + }, + { + "resource": 20, + "amount": 5000 + }, + { + "resource": 13, + "amount": 5000 + }, + { + "resource": 12, + "amount": 5000 + }, + { + "resource": 16, + "amount": 5000 + }, + { + "resource": 21, + "amount": 5000 + }, + { + "resource": 18, + "amount": 5000 + }, + { + "resource": 17, + "amount": 5000 + }, + { + "resource": 10, + "amount": 5000 + }, + { + "resource": 19, + "amount": 5000 + }, + { + "resource": 9, + "amount": 5000 + }, + { + "resource": 22, + "amount": 5000 + } + ], + "3": [ + { + "resource": 25, + "amount": 200 + } + ], + "4": [ + { + "resource": 26, + "amount": 500 + }, + { + "resource": 27, + "amount": 500 + }, + { + "resource": 28, + "amount": 500 + } + ], + "5": [ + { + "resource": 25, + "amount": 200 + } + ], + "6": [ + { + "resource": 26, + "amount": 500 + }, + { + "resource": 28, + "amount": 500 + }, + { + "resource": 27, + "amount": 500 + } + ], + "7": [ + { + "resource": 25, + "amount": 200 + } + ], + "8": [ + { + "resource": 25, + "amount": 200 + }, + { + "resource": 28, + "amount": 200 + }, + { + "resource": 26, + "amount": 200 + }, + { + "resource": 27, + "amount": 200 + }, + { + "resource": 24, + "amount": 200 + } + ] + }, + "realmUpgradeCosts": { + "0": [], + "1": [ + { + "resource": 29, + "amount": 3000000 + }, + { + "resource": 30, + "amount": 3000000 + } + ], + "2": [ + { + "resource": 11, + "amount": 600000 + }, + { + "resource": 15, + "amount": 600000 + }, + { + "resource": 14, + "amount": 600000 + }, + { + "resource": 20, + "amount": 600000 + }, + { + "resource": 12, + "amount": 600000 + }, + { + "resource": 29, + "amount": 5000000 + }, + { + "resource": 30, + "amount": 5000000 + } + ], + "3": [ + { + "resource": 10, + "amount": 50000 + }, + { + "resource": 19, + "amount": 50000 + }, + { + "resource": 9, + "amount": 50000 + }, + { + "resource": 22, + "amount": 50000 + }, + { + "resource": 29, + "amount": 9000000 + }, + { + "resource": 30, + "amount": 9000000 + } + ] + }, + "realmMaxLevel": 4, + "setup": { + "chain": "local", + "addresses": { + "seasonPass": "0x464814f72d5e669572bd2f84d127451e280eebb1bf19167f74a0bee3c307c4", + "realms": "0x2bc5f563bc3067e69f4df1258768cf1e72ff2bae24b1c9052759fb6e20674e2", + "lords": "0x493bab1811d17f06e531ecfc31ca789ea81013d942dc229461a2370f7c37bdb", + "resources": { + "STONE": [ + 1, + "0x6e21d4bfbf086c88e6f20ac52f6d122d2af5d65a98c94db15e12b5a0113fd24" + ], + "COAL": [ + 2, + "0x3395ba1f835d12d232c011a6263c8812f24ca03b9dfc9cd3e74cdf21c352de" + ], + "WOOD": [ + 3, + "0x3e9eda88eb6bbfb30e6c4954ca194e7d91b9b23a3b87f62d9bda4305b8fcc6b" + ], + "COPPER": [ + 4, + "0x79f020d5a4b29cbbc87db44308713c9514a43809e140f364f6e611096d068f5" + ], + "IRONWOOD": [ + 5, + "0x7468d19f0294a3ab84dd98fcd2296acbce0e9d8952aa72ca7344948624140f9" + ], + "OBSIDIAN": [ + 6, + "0xc7271941ba7486ca7407f319174c99387862fc102283f1ce8badab8249d0d5" + ], + "GOLD": [ + 7, + "0x459968d90bb3d5f526f94677d5f8a05a8c97f584449948c77a1d2258ea48b3e" + ], + "SILVER": [ + 8, + "0x3d021d2b442e505cbe234da80608569570b139d22c90e8664f807a2b3e42c46" + ], + "MITHRAL": [ + 9, + "0x21f8e3be754b09ac710b46ea65f6b922964d3f566179d5c4cd6830387c01f64" + ], + "ALCHEMICALSILVER": [ + 10, + "0x71c6a21b81427273195e47c279b69c99711d4fddd557b843047c2a65717242a" + ], + "COLDIRON": [ + 11, + "0x3dd67716ff730d5cf081b06442335f557306b5e9e65d55efbf40203724b285d" + ], + "DEEPCRYSTAL": [ + 12, + "0x1e99c10e53912482c4b1a8ca3baa42eb7c8445d6f0bf7c347c1bcbdb964ded1" + ], + "RUBY": [ + 13, + "0x3f1c1a6b5e5bd8f675d85fe961c48b68d8730287401c838381802a746f44439" + ], + "DIAMONDS": [ + 14, + "0x535c3ac9850d48a62a532ffe36873fa8b4ca1fc0dfea93f574b2b1cad97c6ad" + ], + "HARTWOOD": [ + 15, + "0x55d1299be18e1f9718160490614d9d36d36422f3d3484ad069599f4d8bf431f" + ], + "IGNIUM": [ + 16, + "0x63e8e6b5521c6566cc771508fe952223d9d07f4d8bb158de1bbeef4aadd5db6" + ], + "TWILIGHTQUARTZ": [ + 17, + "0x6266baf5acf57c33f5a522198f2e8596f45718c4d8b75fc2e02760a81dfb594" + ], + "TRUEICE": [ + 18, + "0x5fcce631cd5d61e217e653495c5181cb4e38590c559e5fc276cb9fd367232a7" + ], + "ADAMANTINE": [ + 19, + "0x77c8f8b2ba4b5615cc5c6536a3ab68abb43ca2388b0f1ab70daa4bb3d69868e" + ], + "SAPPHIRE": [ + 20, + "0x43d46b3161f82bd42721a23809683903a669cf2575e34f4784b33d23630898e" + ], + "ETHEREALSILICA": [ + 21, + "0x2779396bc3470d40fa0a14667bd4ebbf6c5e432a037eca59a455aa8fe1aea65" + ], + "DRAGONHIDE": [ + 22, + "0x3f200daf07b162584a13e29821f7ccc5fe475783adfe2c64b02363dc95d393f" + ], + "ANCIENTFRAGMENT": [ + 24, + "0x71db61ca824480d1f3a983a5e998614178f552e6211740b29f4512b90ed7548" + ], + "DONKEY": [ + 25, + "0x5b77be368e2861fcdf2b229e2f00f9070233bb7a00ff3b42f00b1e98149c890" + ], + "KNIGHT": [ + 26, + "0x107155692dac2884a81329e7a2cbc554114d80d7a3712641f51c82a2c65d7f1" + ], + "CROSSBOWMAN": [ + 27, + "0x70a3420ef8cfceb84027f85edc3b76f65a008efcbd36e1cc34bf6c9dd5878f4" + ], + "PALADIN": [ + 28, + "0x376eff88c2a9eba8a92cb462a24eac7720ff912f1ff7d4f6dea3ad88fea4fcb" + ], + "WHEAT": [ + 29, + "0x171eaab7ca1e4ae9074b24f1119fe6548c9bb443a00a6bf681bea5005c11b3c" + ], + "FISH": [ + 30, + "0x305b6c3b24f52e87fddada7219c58d2e8889d2599517d373a00a1ba12398dd5" + ], + "LORDS": [ + 31, + "0x493bab1811d17f06e531ecfc31ca789ea81013d942dc229461a2370f7c37bdb" + ] + } + }, + "manifest": { + "world": { + "class_hash": "0x45575a88cc5cef1e444c77ce60b7b4c9e73a01cbbe20926d5a4c72a94011410", + "address": "0x9dd5e66cfa83f893c2a70b9ea5221e2df18aaf52a111fe9003264f948c7aa", + "seed": "s1_eternum", + "name": "Realms: Eternum", + "entrypoints": [ + "uuid", + "set_metadata", + "register_namespace", + "register_event", + "register_model", + "register_contract", + "init_contract", + "upgrade_event", + "upgrade_model", + "upgrade_contract", + "emit_event", + "emit_events", + "set_entity", + "set_entities", + "delete_entity", + "delete_entities", + "grant_owner", + "revoke_owner", + "grant_writer", + "revoke_writer", + "upgrade" + ], + "abi": [ + { + "type": "impl", + "name": "World", + "interface_name": "dojo::world::iworld::IWorld" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ { - "type": "interface", - "name": "s1_eternum::systems::season::contracts::ISeasonSystems", - "items": [ - { - "type": "function", - "name": "register_to_leaderboard", - "inputs": [ - { - "name": "hyperstructures_contributed_to", - "type": "core::array::Span::" - }, - { - "name": "hyperstructure_shareholder_epochs", - "type": "core::array::Span::<(core::integer::u32, core::integer::u16)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "claim_leaderboard_rewards", - "inputs": [ - { - "name": "token", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] + "name": "data", + "type": "core::array::Array::" }, { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" + "name": "pending_word", + "type": "core::felt252" }, { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "dojo::world::resource::Resource", + "variants": [ { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] + "name": "Model", + "type": "(core::starknet::contract_address::ContractAddress, core::felt252)" }, { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] + "name": "Event", + "type": "(core::starknet::contract_address::ContractAddress, core::felt252)" }, { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + "name": "Contract", + "type": "(core::starknet::contract_address::ContractAddress, core::felt252)" }, { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] + "name": "Namespace", + "type": "core::byte_array::ByteArray" }, { - "type": "constructor", - "name": "constructor", - "inputs": [] + "name": "World", + "type": "()" }, { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, + "name": "Unregistered", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::metadata::ResourceMetadata", + "members": [ { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] + "name": "resource_id", + "type": "core::felt252" }, { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] + "name": "metadata_uri", + "type": "core::byte_array::ByteArray" }, { - "type": "event", - "name": "s1_eternum::systems::season::contracts::season_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] + "name": "metadata_hash", + "type": "core::felt252" } - ], - "init_calldata": [], - "tag": "s1_eternum-season_systems", - "selector": "0x44e1edf9ca51b11a8c1d6ffc341d3248fdbeebc7e7d3ee6314fee33174860c4", - "systems": ["register_to_leaderboard", "claim_leaderboard_rewards", "upgrade"] + ] }, { - "address": "0x7a267e053addb92514d51fcbed967b274a71381b8e6a95b1103323a80d34993", - "class_hash": "0x6ecba556869f9af550c06eebf09953b9a9b5e021d1841e1fdba2893f6375787", - "abi": [ - { - "type": "impl", - "name": "swap_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, + "type": "struct", + "name": "core::array::Span::", + "members": [ { - "type": "impl", - "name": "swap_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::>", + "members": [ { - "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" - } - ] - }, + "name": "snapshot", + "type": "@core::array::Array::>" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::definition::ModelIndex", + "variants": [ { - "type": "interface", - "name": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] + "name": "Keys", + "type": "core::array::Span::" }, { - "type": "impl", - "name": "SwapSystemsImpl", - "interface_name": "s1_eternum::systems::bank::contracts::swap::ISwapSystems" + "name": "Id", + "type": "core::felt252" }, { - "type": "interface", - "name": "s1_eternum::systems::bank::contracts::swap::ISwapSystems", - "items": [ - { - "type": "function", - "name": "buy", - "inputs": [ - { - "name": "bank_entity_id", - "type": "core::integer::u32" - }, - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "amount", - "type": "core::integer::u128" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "sell", - "inputs": [ - { - "name": "bank_entity_id", - "type": "core::integer::u32" - }, - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "amount", - "type": "core::integer::u128" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - } - ] - }, + "name": "MemberId", + "type": "(core::felt252, core::felt252)" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::meta::layout::FieldLayout", + "members": [ { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + "name": "selector", + "type": "core::felt252" }, { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, + "name": "layout", + "type": "dojo::meta::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::meta::layout::Layout", + "variants": [ { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] + "name": "Fixed", + "type": "core::array::Span::" }, { - "type": "constructor", - "name": "constructor", - "inputs": [] + "name": "Struct", + "type": "core::array::Span::" }, { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] + "name": "Tuple", + "type": "core::array::Span::" }, { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] + "name": "Array", + "type": "core::array::Span::" }, { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] + "name": "ByteArray", + "type": "()" }, { - "type": "event", - "name": "s1_eternum::systems::bank::contracts::swap::swap_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] + "name": "Enum", + "type": "core::array::Span::" } - ], - "init_calldata": [], - "tag": "s1_eternum-swap_systems", - "selector": "0x187f170f62cb2f89334e291ddc0d0f388a855abcdd2b911425fed8304d3fdc3", - "systems": ["buy", "sell", "upgrade"] + ] }, { - "address": "0x46b3c69414f2501d808b459b186ce20d12ecf6691953da7b2d15fb10d101e6d", - "class_hash": "0xc9da769a96f6e3aacd9c9329f89fc32c82a3318f82a92373cf4eaf3759f230", - "abi": [ + "type": "struct", + "name": "core::array::Span::", + "members": [ { - "type": "impl", - "name": "trade_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] + "name": "False", + "type": "()" }, { - "type": "impl", - "name": "trade_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, + "name": "True", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::iworld::IWorld", + "items": [ { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, + "type": "function", + "name": "resource", + "inputs": [ { - "name": "pending_word", + "name": "selector", "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" } - ] - }, - { - "type": "interface", - "name": "dojo::meta::interface::IDeployedResource", - "items": [ + ], + "outputs": [ { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" + "type": "dojo::world::resource::Resource" } - ] - }, - { - "type": "impl", - "name": "TradeSystemsImpl", - "interface_name": "s1_eternum::systems::trade::contracts::trade_systems::ITradeSystems" + ], + "state_mutability": "view" }, { - "type": "struct", - "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", - "members": [ + "type": "function", + "name": "uuid", + "inputs": [], + "outputs": [ { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" + "type": "core::integer::u32" } - ] + ], + "state_mutability": "external" }, { - "type": "interface", - "name": "s1_eternum::systems::trade::contracts::trade_systems::ITradeSystems", - "items": [ - { - "type": "function", - "name": "create_order", - "inputs": [ - { - "name": "maker_id", - "type": "core::integer::u32" - }, - { - "name": "maker_gives_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "taker_id", - "type": "core::integer::u32" - }, - { - "name": "taker_gives_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "expires_at", - "type": "core::integer::u64" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "accept_order", - "inputs": [ - { - "name": "taker_id", - "type": "core::integer::u32" - }, - { - "name": "trade_id", - "type": "core::integer::u32" - }, - { - "name": "maker_gives_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "taker_gives_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, + "type": "function", + "name": "metadata", + "inputs": [ { - "type": "function", - "name": "accept_partial_order", - "inputs": [ - { - "name": "taker_id", - "type": "core::integer::u32" - }, - { - "name": "trade_id", - "type": "core::integer::u32" - }, - { - "name": "maker_gives_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "taker_gives_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "taker_gives_actual_amount", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - }, + "name": "resource_selector", + "type": "core::felt252" + } + ], + "outputs": [ { - "type": "function", - "name": "cancel_order", - "inputs": [ - { - "name": "trade_id", - "type": "core::integer::u32" - }, - { - "name": "return_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" + "type": "dojo::model::metadata::ResourceMetadata" } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], + ], "state_mutability": "view" }, { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ + "type": "function", + "name": "set_metadata", + "inputs": [ { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" + "name": "metadata", + "type": "dojo::model::metadata::ResourceMetadata" } - ] + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ + "type": "function", + "name": "register_namespace", + "inputs": [ { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" + "name": "namespace", + "type": "core::byte_array::ByteArray" } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ + "type": "function", + "name": "register_event", + "inputs": [ { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ + "name": "namespace", + "type": "core::byte_array::ByteArray" + }, { "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" + "type": "core::starknet::class_hash::ClassHash" } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "event", - "name": "s1_eternum::systems::trade::contracts::trade_systems::trade_systems::Event", - "kind": "enum", - "variants": [ + "type": "function", + "name": "register_model", + "inputs": [ { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" + "name": "namespace", + "type": "core::byte_array::ByteArray" }, { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-trade_systems", - "selector": "0x25205919a9c1be9b6b4c75d8435d21e748b4144575e3ed50d453ebd586f1467", - "systems": ["create_order", "accept_order", "accept_partial_order", "cancel_order", "upgrade"] - }, - { - "address": "0x52b9c90b7e0037ccb1fe4377714e171886c78459a6dc288bb5c2ec9e656c0f4", - "class_hash": "0x1dea2c672934cc98154903b1e64e34287fbd24ffa3be05415371f9a21638484", - "abi": [ - { - "type": "impl", - "name": "travel_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "travel_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ + "type": "function", + "name": "register_contract", + "inputs": [ { - "name": "data", - "type": "core::array::Array::" + "name": "salt", + "type": "core::felt252" }, { - "name": "pending_word", - "type": "core::felt252" + "name": "namespace", + "type": "core::byte_array::ByteArray" }, { - "name": "pending_word_len", - "type": "core::integer::u32" + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" } - ] - }, - { - "type": "interface", - "name": "dojo::meta::interface::IDeployedResource", - "items": [ + ], + "outputs": [ { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" + "type": "core::starknet::contract_address::ContractAddress" } - ] + ], + "state_mutability": "external" }, { - "type": "impl", - "name": "TravelSystemsImpl", - "interface_name": "s1_eternum::systems::transport::contracts::travel_systems::ITravelSystems" - }, - { - "type": "enum", - "name": "s1_eternum::models::position::Direction", - "variants": [ - { - "name": "East", - "type": "()" - }, - { - "name": "NorthEast", - "type": "()" - }, - { - "name": "NorthWest", - "type": "()" - }, - { - "name": "West", - "type": "()" - }, + "type": "function", + "name": "init_contract", + "inputs": [ { - "name": "SouthWest", - "type": "()" + "name": "selector", + "type": "core::felt252" }, { - "name": "SouthEast", - "type": "()" + "name": "init_calldata", + "type": "core::array::Span::" } - ] + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "struct", - "name": "core::array::Span::", - "members": [ + "type": "function", + "name": "upgrade_event", + "inputs": [ { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::transport::contracts::travel_systems::ITravelSystems", - "items": [ + "name": "namespace", + "type": "core::byte_array::ByteArray" + }, { - "type": "function", - "name": "travel_hex", - "inputs": [ - { - "name": "travelling_entity_id", - "type": "core::integer::u32" - }, - { - "name": "directions", - "type": "core::array::Span::" - } - ], - "outputs": [], - "state_mutability": "external" + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], + ], "outputs": [], - "state_mutability": "view" + "state_mutability": "external" }, { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ + "type": "function", + "name": "upgrade_model", + "inputs": [ { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ + "name": "namespace", + "type": "core::byte_array::ByteArray" + }, { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ + "type": "function", + "name": "upgrade_contract", + "inputs": [ { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ + "name": "namespace", + "type": "core::byte_array::ByteArray" + }, { "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" + "type": "core::starknet::class_hash::ClassHash" } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ + ], + "outputs": [ { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" + "type": "core::starknet::class_hash::ClassHash" } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] + ], + "state_mutability": "external" }, { - "type": "event", - "name": "s1_eternum::systems::transport::contracts::travel_systems::travel_systems::Event", - "kind": "enum", - "variants": [ + "type": "function", + "name": "emit_event", + "inputs": [ { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" + "name": "event_selector", + "type": "core::felt252" + }, + { + "name": "keys", + "type": "core::array::Span::" }, { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" + "name": "values", + "type": "core::array::Span::" } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-travel_systems", - "selector": "0x309ed1eaf532082015ddf768dfea6a2d7b6c78f61892005f9af6efe505f3317", - "systems": ["travel_hex", "upgrade"] - }, - { - "address": "0x61396cdd9898842f7f4b61d5e1494c5ced4eb559e0494f20c2dd7e272c0e6b5", - "class_hash": "0x710a28a02d258fc3ac7b008f52d1bcb472249ac0948221d328858c01b08a889", - "abi": [ - { - "type": "impl", - "name": "troop_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "troop_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ + "type": "function", + "name": "emit_events", + "inputs": [ { - "name": "data", - "type": "core::array::Array::" + "name": "event_selector", + "type": "core::felt252" }, { - "name": "pending_word", - "type": "core::felt252" + "name": "keys", + "type": "core::array::Span::>" }, { - "name": "pending_word_len", - "type": "core::integer::u32" + "name": "values", + "type": "core::array::Span::>" } - ] + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "interface", - "name": "dojo::meta::interface::IDeployedResource", - "items": [ + "type": "function", + "name": "entity", + "inputs": [ { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "TroopContractImpl", - "interface_name": "s1_eternum::systems::combat::contracts::troop_systems::ITroopContract" - }, - { - "type": "enum", - "name": "core::bool", - "variants": [ + "name": "model_selector", + "type": "core::felt252" + }, { - "name": "False", - "type": "()" + "name": "index", + "type": "dojo::model::definition::ModelIndex" }, { - "name": "True", - "type": "()" + "name": "layout", + "type": "dojo::meta::layout::Layout" + } + ], + "outputs": [ + { + "type": "core::array::Span::" } - ] + ], + "state_mutability": "view" }, { - "type": "struct", - "name": "s1_eternum::models::combat::Troops", - "members": [ + "type": "function", + "name": "entities", + "inputs": [ { - "name": "knight_count", - "type": "core::integer::u64" + "name": "model_selector", + "type": "core::felt252" }, { - "name": "paladin_count", - "type": "core::integer::u64" + "name": "indexes", + "type": "core::array::Span::" }, { - "name": "crossbowman_count", - "type": "core::integer::u64" + "name": "layout", + "type": "dojo::meta::layout::Layout" + } + ], + "outputs": [ + { + "type": "core::array::Span::>" } - ] + ], + "state_mutability": "view" }, { - "type": "interface", - "name": "s1_eternum::systems::combat::contracts::troop_systems::ITroopContract", - "items": [ + "type": "function", + "name": "set_entity", + "inputs": [ { - "type": "function", - "name": "army_create", - "inputs": [ - { - "name": "army_owner_id", - "type": "core::integer::u32" - }, - { - "name": "is_defensive_army", - "type": "core::bool" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" + "name": "model_selector", + "type": "core::felt252" }, { - "type": "function", - "name": "army_delete", - "inputs": [ - { - "name": "army_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" + "name": "index", + "type": "dojo::model::definition::ModelIndex" }, { - "type": "function", - "name": "army_buy_troops", - "inputs": [ - { - "name": "army_id", - "type": "core::integer::u32" - }, - { - "name": "payer_id", - "type": "core::integer::u32" - }, - { - "name": "troops", - "type": "s1_eternum::models::combat::Troops" - } - ], - "outputs": [], - "state_mutability": "external" + "name": "values", + "type": "core::array::Span::" }, { - "type": "function", - "name": "army_merge_troops", - "inputs": [ - { - "name": "from_army_id", - "type": "core::integer::u32" - }, - { - "name": "to_army_id", - "type": "core::integer::u32" - }, - { - "name": "troops", - "type": "s1_eternum::models::combat::Troops" - } - ], - "outputs": [], - "state_mutability": "external" + "name": "layout", + "type": "dojo::meta::layout::Layout" } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], + ], "outputs": [], - "state_mutability": "view" + "state_mutability": "external" }, { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ + "type": "function", + "name": "set_entities", + "inputs": [ { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "indexes", + "type": "core::array::Span::" + }, + { + "name": "values", + "type": "core::array::Span::>" + }, + { + "name": "layout", + "type": "dojo::meta::layout::Layout" } - ] + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ + "type": "function", + "name": "delete_entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" + "name": "index", + "type": "dojo::model::definition::ModelIndex" + }, + { + "name": "layout", + "type": "dojo::meta::layout::Layout" } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ + "type": "function", + "name": "delete_entities", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "indexes", + "type": "core::array::Span::" + }, { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" + "name": "layout", + "type": "dojo::meta::layout::Layout" } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ + "type": "function", + "name": "is_owner", + "inputs": [ { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ + ], + "outputs": [ { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" + "type": "core::bool" } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] + ], + "state_mutability": "view" }, { - "type": "event", - "name": "s1_eternum::systems::combat::contracts::troop_systems::troop_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, + "type": "function", + "name": "grant_owner", + "inputs": [ { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-troop_systems", - "selector": "0x36dc6a7aac90e16df98cc6cef8b971d3432a436339f92352921ab2d542363b0", - "systems": ["army_create", "army_delete", "army_buy_troops", "army_merge_troops", "upgrade"] - } - ], - "models": [ - { - "members": [], - "class_hash": "0x15f3f6904f0500d87d6c57ababf28b0dffaf929e7b74701be185cd09fcd82d3", - "tag": "s1_eternum-AddressName", - "selector": "0x42709c94217aac1ce5900d6bb822dc5e203071e9f184165b4d32144ff0e326c" - }, - { - "members": [], - "class_hash": "0x28f9ddc0b8df7e2dd4ebaae28edc221d3755cb2e2172353364bd6b05f39209d", - "tag": "s1_eternum-Army", - "selector": "0x16cd0112383678968a6dcc0476cc193ce544a0f2cb27bbf911b519cc66cb2e1" - }, - { - "members": [], - "class_hash": "0xf99d18de1389cd897d7c2eaac1d9a23eef4f2ee40f6fb017adfa59a6c6fe55", - "tag": "s1_eternum-ArrivalTime", - "selector": "0x15839d06bf0dd2c3ae1fef464555f3016e153bd6bac0cf62c5c1de9926eadd" - }, - { - "members": [], - "class_hash": "0xd5d3a9a0f87f881bb0c62d6383e0c1914a3263dd2788a72641ce15eba55345", - "tag": "s1_eternum-Bank", - "selector": "0x46318cd2cff6337f8934ee9e3cbe3ecf1ccb5b1b57dd1711f3b1eb7d7327aab" - }, - { - "members": [], - "class_hash": "0x58484f4b87730ec90812b21b0071478121b549694230ccfc380fe5bc7ce04bc", - "tag": "s1_eternum-BankConfig", - "selector": "0x2a590ba3496e4ade5081de7b2de27ed15ecd709e8d88c89f1eeafca9c852079" - }, - { - "members": [], - "class_hash": "0x6108b6e1f6786a67f3864acec676ff7fe33772797a0c771878dd769aed59c0", - "tag": "s1_eternum-Battle", - "selector": "0x169c07a291ef2ba4cfb31ba5b81d45fc49f6a02169c766ac950f823879152fc" - }, - { - "members": [], - "class_hash": "0x722133bc4e72dec6f3ffb973622227b9f4d51001bf369832e44bca4cd90e414", - "tag": "s1_eternum-BattleConfig", - "selector": "0x506ef0f4b8e567ce2fd94517984758871ac3f9f965426073203aefdeec4fd21" - }, - { - "members": [], - "class_hash": "0x26132d9d528638aa4fdc6377b4f342982e15a796292ee9d8a7d9ff443f035b0", - "tag": "s1_eternum-Building", - "selector": "0x383bc83e69df10c0e58ce05aef021bb904346af8b28de6dd09ed16a497fae29" - }, - { - "members": [], - "class_hash": "0x369a5260d31d6edd5c3d19b487fa8a2c4bd293845e804cd794a7f00f1fcc35c", - "tag": "s1_eternum-BuildingCategoryPopConfig", - "selector": "0x2b847fd482c7e77364e1a29d18c690661dee59631db5538e063065cd28a9157" - }, - { - "members": [], - "class_hash": "0xbcb13c22c1c2e177c9a7953f6db153d0b1435baa293e2d7fdc7aa22f380f53", - "tag": "s1_eternum-BuildingConfig", - "selector": "0x10ab036ccd4d1e968f0b3b3333d59911fd7f96cbd0fe73c9d639b80aaf10ef4" - }, - { - "members": [], - "class_hash": "0xf34fedb8b8bea2b87c8e17c6db5f2b284e46513b186cdb115464aacf72994d", - "tag": "s1_eternum-BuildingGeneralConfig", - "selector": "0x32c22b1ba3f414eff9d3684771ddf9a576adf879fb9db155d153e04092f06d1" - }, - { - "members": [], - "class_hash": "0x6ad15a23139b6577c1adfc3d8d2ad5cf4f55230f17f2ed957cef9a70bdac286", - "tag": "s1_eternum-BuildingQuantityv2", - "selector": "0x7f0d990d9539f02e2536fb9077c112528c214d6250597813b5637fcdf4faea1" - }, - { - "members": [], - "class_hash": "0x5a650bc0e579da2efb53a5ff5d49ace7a4836831001fe05a66de94e8a200fe", - "tag": "s1_eternum-CapacityCategory", - "selector": "0x77c5b56819d589d4ccf66c86b519f61fea422fadc3011bce01b68b36312a931" - }, - { - "members": [], - "class_hash": "0xff54f724bb9d25b28e52c53402ff004324f9bf8551d21666569798e982537", - "tag": "s1_eternum-CapacityConfig", - "selector": "0x329d78ba810d64a65e56dc6d9648681b25cf5077b2b2a1b006b4280b4a46941" - }, - { - "members": [], - "class_hash": "0x10f6568d82fcf4a14aa2063fa811ceac7bd52923fe06e5c0c89d23d2959ba47", - "tag": "s1_eternum-Contribution", - "selector": "0x5610d7fde56cbda8d6714af14cb51989d77e24ffd867561e6f6ce36a5c8cda0" - }, - { - "members": [], - "class_hash": "0x4ca6ae3ddda2725df1d3f656b45d376bff55f2556fc63188f33436e54cad458", - "tag": "s1_eternum-DetachedResource", - "selector": "0x5fbe88f3b3abf51a9a1e58a0423a555786a2e557f480a7f804a6a89afee5b2c" - }, - { - "members": [], - "class_hash": "0x10c87458dd8a14eba7aa1771e8288f46be3b60a738d5dc0af7f45eb2ed4e326", - "tag": "s1_eternum-EntityName", - "selector": "0x4d2ad6e4875bb784306ee539c87d6ea84bd77cd3e7a6a98c7cb073003131c80" - }, - { - "members": [], - "class_hash": "0x3ae0ab3e0bc8e3ad2288634e6a286bfb08d466a91e9d6a2e37f025bf1d5749f", - "tag": "s1_eternum-EntityOwner", - "selector": "0x45cac7458f40ce855a5d63cf402a25425ad1a761fa4a2657c722d124e6aa540" - }, - { - "members": [], - "class_hash": "0x5ced63836e14228fb5398d583aa7e603f011951859784a767a0da67d5d1ee82", - "tag": "s1_eternum-Epoch", - "selector": "0x7538402a46c4b333f00ed41744e67a26bb14f26753fdbe032f0ff218f83ff6a" - }, - { - "members": [], - "class_hash": "0x5893d1ef16dd422bf83ed0622527c59e061c0e80431c2dd7bee08b4d1445071", - "tag": "s1_eternum-Guild", - "selector": "0x1005f12b60fb0b9955acaa3d2ef4e839a9d9ca0de11ba53c74c3a4b5d324142" - }, - { - "members": [], - "class_hash": "0x503feaac2cbb9b6e3568daa741bd89db2a9206d315fca008ea4cf44d87dce88", - "tag": "s1_eternum-GuildMember", - "selector": "0x4e1c4b07b2c1113f22a01d146dbe1224007cd027c7681007de3828761f92c1" - }, - { - "members": [], - "class_hash": "0x51e97f9e0e1b92c53d309c07a145d8786aaec64518b87c3bb970d4685759081", - "tag": "s1_eternum-GuildWhitelist", - "selector": "0x58ba641332348c46d0aad19ab754598e63a4d8736db7ef9654918c79d6ad071" - }, - { - "members": [], - "class_hash": "0x4eb153ffe6fce442cee9384e6a7e95159480a4aee2c563b74c7b1b50eff73d6", - "tag": "s1_eternum-Health", - "selector": "0x2f45d2395ab511a8e093bc7830fe25b18b387f360e515107021e75eaea474b5" - }, - { - "members": [], - "class_hash": "0x490bea09a254afb811b6a26d88507598193d366a05fe6e9d28455ca51930c9b", - "tag": "s1_eternum-Hyperstructure", - "selector": "0x5894102a0f9c53bf2298d3bdaf4b0f8a0f92777d57ff0d585ca3b5c5b25b7bc" - }, - { - "members": [], - "class_hash": "0x47718f195842c1e7de343f276874d6cbd4e3af43e46d91779219bb775f07b30", - "tag": "s1_eternum-HyperstructureConfig", - "selector": "0x555fffbe98ed821a2943490fa9ec2fd479940fb1a06434031a6ed49fce06413" - }, - { - "members": [], - "class_hash": "0x298c3a93889760e341ab90f7ec3432fb9f564ec90ab6dae8ca160cb477fd64b", - "tag": "s1_eternum-HyperstructureResourceConfig", - "selector": "0x344c119cf22cf69ac0954dadeb846930657d9d80e550aec607fe0d285e2d1b6" - }, - { - "members": [], - "class_hash": "0x328f1fff82bb8aeba6b1e75fc1edf15d815324486c97df194a8ad682bd419f6", - "tag": "s1_eternum-LaborConfig", - "selector": "0x6f056844c678da88f4b2829f7252b9264702448b0305224729f30026db3f644" - }, - { - "members": [], - "class_hash": "0x5f9e1048bc3fcab978c16ea514c906e08a6a908a551b01c9d8d56991eb3be12", - "tag": "s1_eternum-Leaderboard", - "selector": "0x2731a4b2cc1d25c3605cbd9f58fb010860aa57f2fd978b012309815622bad38" - }, - { - "members": [], - "class_hash": "0x6098e4bd9970a954a3a7581ae0c272d7b0e4134bd1b701f376480627678c260", - "tag": "s1_eternum-LeaderboardEntry", - "selector": "0x64d192ab245076ad4a8fc1065a8ed826370b3b9ac74e19e5ba62c4778afbd0e" - }, - { - "members": [], - "class_hash": "0x278cfb9c271d230ae30c965120df0ceb1772b42982abceb4c5696afc5a91d3c", - "tag": "s1_eternum-LeaderboardRegisterContribution", - "selector": "0x19570cd480372cee10d9c139bc552086c7b8222c1bc012113bbfd39b56a7e8" - }, - { - "members": [], - "class_hash": "0x6ea5e22c4403403c4ef68ce5789b68da3ff18607693fb048bae52293204ce9b", - "tag": "s1_eternum-LeaderboardRegisterShare", - "selector": "0x75ac5be2d09aae03d624ea55302b474702a77e282b53b6ae223e7e2f2fcf331" - }, - { - "members": [], - "class_hash": "0x94162e9c662781d890a9ab0dfba07a5ec2248410ef1b42d4913e1a4a489cc6", - "tag": "s1_eternum-LeaderboardRegistered", - "selector": "0x23cb90d19983cc3481c16b0daca97a2e9d61ccca2887ec43a37e8d0c8bc8a82" - }, - { - "members": [], - "class_hash": "0x50bdffa18201a51190d38b3a83d62dbc9314b5634b8543f92c6fa692fbed6be", - "tag": "s1_eternum-LeaderboardRewardClaimed", - "selector": "0x4a2604638f545e33a48aaa88165cdf7c14d2e3e90dc0ffef45efaafce0a7acb" - }, - { - "members": [], - "class_hash": "0xe08cd3f99dea6cb5ac7af83788cf444cc5961187685f2c54179b990d3a4ae7", - "tag": "s1_eternum-LevelingConfig", - "selector": "0x1ae8c072019c12fbf04cba6e1a71a0a645dffc7fff83847d97ef2229e3abb33" - }, - { - "members": [], - "class_hash": "0x41389837334c7959eddc48a3a3c0b3f8d77ea4f0be3d5b908087873323fc3f6", - "tag": "s1_eternum-Liquidity", - "selector": "0x4ba2cf13ce80401e973629d0ba586aad1cae4ac3cf68ed3140f3373d361659" - }, - { - "members": [], - "class_hash": "0x2e6bbce3307779bb4e22bfa12b254f648bda3e5667bb4aff23a189ee68a0ecb", - "tag": "s1_eternum-MapConfig", - "selector": "0xc723bc276585620edab428548e0c62b996567932757495abf2346153959bbd" - }, - { - "members": [], - "class_hash": "0x3e5a538297e5b4a973a580d26b347779d457a0813e552e71d56ac9347d143b0", - "tag": "s1_eternum-Market", - "selector": "0x1fcfb4aa02fa062c2f9fe4a658759a4cbe73fc5db42c595184e770c9076750a" - }, - { - "members": [], - "class_hash": "0x3eb553163a235623d1a4cd887565391f6183aef59993752b018fdcd99e7ec6e", - "tag": "s1_eternum-MercenariesConfig", - "selector": "0x76cec8905e7623b482bec7afebbbd87f2556ffa6068c887ff2fc9e8ef97373a" - }, - { - "members": [], - "class_hash": "0x4e9acf58624786c7d118f4d0a1eb23bd2dccb7b7ab1755b012a3b0412af70f9", - "tag": "s1_eternum-Message", - "selector": "0x3ce31878ad62fd485eb46bdbd403bbe7daf2e544c15d386dcc7ac519a10678a" - }, - { - "members": [], - "class_hash": "0x78bf5c45268df4bc02c367db341e1aa4331857c21304683feb2e65306204bf9", - "tag": "s1_eternum-Movable", - "selector": "0x2f6cc9ab06c7e016297339e078c3755e568fce8048462de2033e8d42e5d94e0" - }, - { - "members": [], - "class_hash": "0x4dff527f0c7b7b73e3ac91dab4ad66ae4dae4f3616cb6338dd4bad8c3246382", - "tag": "s1_eternum-Orders", - "selector": "0x3d92d333e580695c5676529fc9b81f0fdab316ad7385d7c362ea7074413b99a" - }, - { - "members": [], - "class_hash": "0x60330a73e8c079c062165120e11d002eafa7a8b4970d0b7dc3e73904e014544", - "tag": "s1_eternum-OwnedResourcesTracker", - "selector": "0x1a8f5317e84356a084dbf2555cdf3c429e285e6f161654a678eaf73c137e52b" - }, - { - "members": [], - "class_hash": "0x6619f0441ff7330f6291777da5a95a3121189f8c5b136cc5f3e85cc6f728f44", - "tag": "s1_eternum-Owner", - "selector": "0x35bfd77bc5bbf7f39cbe2c9ced8de632af641500a672e876dffbc89cc10441d" - }, - { - "members": [], - "class_hash": "0xf29140e158b9089a938917604b82d2ec14daa08f21f9d742a97cf17f30c18", - "tag": "s1_eternum-Population", - "selector": "0x6f2e4171b9907e7629eea2a19485a64d97f104121c4337452de122f897c0be8" - }, - { - "members": [], - "class_hash": "0x7e5024ab76ebcd616507b1998768d29b5372c54de3ac88bcd6fdfafcbf67720", - "tag": "s1_eternum-PopulationConfig", - "selector": "0x441576bc8f9ac5063b8ca88eeae1b33156078c75de8cbdf506139e8450b78cf" - }, - { - "members": [], - "class_hash": "0x2c8600cc8411484671075036b8dca8f03524e5b0503617e36ac306b95cf87fd", - "tag": "s1_eternum-Position", - "selector": "0xe340ea49c8540928b5c4010db9108cd13f719d89a5f7b18cb30902e01104ae" - }, - { - "members": [], - "class_hash": "0x4482f857b3d5e6d6d1fb9d5680663a1e0eda04699b105aa565490498e395d1e", - "tag": "s1_eternum-ProductionConfig", - "selector": "0x38bacafc2ceed54f95033f7529efa9559f877aea41db072b797235cee383a06" - }, - { - "members": [], - "class_hash": "0xef748f29f1ce62c69e4c0bfcaaca0cc20c90d69411fbbfabb5883e53444c94", - "tag": "s1_eternum-Progress", - "selector": "0x510024ae0ff452228a083d9fb3aba5e3521c107ab7a84246efcac7bcdfddcb5" - }, - { - "members": [], - "class_hash": "0x2eb9f6f9ea6824c466ded7da0b97f77d4b54be4e0b5180c0f0696ec7311c142", - "tag": "s1_eternum-Protectee", - "selector": "0x60fac544ae19c3bdb391a986108823d052d2d65891459589b6f3c698f206ce1" - }, - { - "members": [], - "class_hash": "0x756cbd91b86e9eb15a8454b066b7e593cbf9a121ee1aee4bcd34023d5076591", - "tag": "s1_eternum-Protector", - "selector": "0x7c858e96804191100397f8a4683ca93d81d7d341dc68d163c7cea59dc974ec4" - }, - { - "members": [], - "class_hash": "0xfd49d43ef8943b2e262ca7ce1d43c5187969b3cee4007f4d0e177b92981c03", - "tag": "s1_eternum-Quantity", - "selector": "0x8646cb000744430c5d95cf5616ce8ba4913401760158aa1ad6738475a36591" - }, - { - "members": [], - "class_hash": "0xdeb7bcee3ae613715225d0980526d7c9d4735829be2e7f080c914876bf5ff3", - "tag": "s1_eternum-QuantityTracker", - "selector": "0x5f336941c172ea1a837a1c82d98ff802817688e6e5f66a32ac3a9ff320cfb18" - }, - { - "members": [], - "class_hash": "0x1922623eed2f3eb9d7d770af2514efcd2d40e6773e9c2c1944bc2741e07b3b7", - "tag": "s1_eternum-Quest", - "selector": "0x5748c683cbda725287adb63a5b5c7c471d1d782f2779609d4f66efeda03ff68" - }, - { - "members": [], - "class_hash": "0x59846aef7554c61f02aa00ba350ed1001b00b5d7a26e3c66c95901bc7bfd797", - "tag": "s1_eternum-QuestRewardConfig", - "selector": "0x2f5fb5139fc5144da42495b348183b95708defe554ca9d6768498cccecb0066" - }, - { - "members": [], - "class_hash": "0x5ab6ce70c4041941408e527f5e677cf0e68b9ca4bbfcaaa3c7dcd6deba090b6", - "tag": "s1_eternum-Realm", - "selector": "0x6b15a2a9c9d60eefc6c82731f77ae2167b6abc68a909e06ed4f0a0c20a447ae" - }, - { - "members": [], - "class_hash": "0x271add51127069822688df385865088bb78d39040babb928223896e9cf90a60", - "tag": "s1_eternum-RealmLevelConfig", - "selector": "0x7a5266268ba6febaa9248d1ec5543f7731c07391553c9d9b089023790344d78" - }, - { - "members": [], - "class_hash": "0x56c6a40b5d709cd4c5669c7a92664b7220ab156e793b6d0df694baa0d29b99", - "tag": "s1_eternum-RealmMaxLevelConfig", - "selector": "0x23ce30f931b91b01eb8a34f92c50de018fa49e05b9ea5cd0b4350a4c94fa7a7" - }, - { - "members": [], - "class_hash": "0xc58be0c889a407b92a5b1df7f1221567a43ee5a3f5315464f3c598aafa1725", - "tag": "s1_eternum-Resource", - "selector": "0x6bd14dc16a7f05252fcf2fb66630b8f05d39d75b36f55013334a4b3bb8fec57" - }, - { - "members": [], - "class_hash": "0x32648f303c21fcdc338110b1b5a06b419832c5432787228d9bfe330ff65ebfd", - "tag": "s1_eternum-ResourceAllowance", - "selector": "0xf21a6f41bed8651cea6e86ea4d796e7c2be9e0e798b48b971b82f489e68a3d" - }, - { - "members": [], - "class_hash": "0x7d04749bc8b5042f74fd6cf08f00dd4b1a1af9da5db5f9d0e21da9eb574620a", - "tag": "s1_eternum-ResourceBridgeConfig", - "selector": "0x5b58fe2f01c7767c5885c18997654853caf0765fbd6e72d2f54b8d8163a2105" - }, - { - "members": [], - "class_hash": "0x369998561431ccfd4977aab82c53ae491bae58a867ee91ce77701c68c64d2bc", - "tag": "s1_eternum-ResourceBridgeFeeSplitConfig", - "selector": "0xda0261867f8d357360b3d3c651e6f26a72caaa5401021843d7515acf5a7300" - }, - { - "members": [], - "class_hash": "0x505f9ac2bcabc71c14489b2327e757a0c1d9b0721257c7cbaae10a5f4c90c6", - "tag": "s1_eternum-ResourceBridgeWhitelistConfig", - "selector": "0x3af6fef221ed38a459a75bf2c20c5534745e6e9fa3d6c9df899c43a6aee1eee" - }, - { - "members": [], - "class_hash": "0x6c52d4ea5109c6be197e8f64fda6ebf06f8a9fbfc9ae44c4fc479817bc46d33", - "tag": "s1_eternum-ResourceCost", - "selector": "0x5e5b5b182766e23d14ca1bde33304c8b6c2e348d037073fa87cb23adb3acd2d" - }, - { - "members": [], - "class_hash": "0x32512653d00dbf62a310e75a52a4c555c66dea91eae09adadb4a9c26ec6e065", - "tag": "s1_eternum-ResourceTransferLock", - "selector": "0xfb5fa4535e4bca521abeb02621675a6550ea74c791f4342f7e5a3a2d6c19b0" - }, - { - "members": [], - "class_hash": "0x5e33063c9c71448f97e418619192c0bb534cc1d6b130690675020b12c53abc1", - "tag": "s1_eternum-Season", - "selector": "0x7a6034c750e0dc9a1fad3776dd6e6c6697eb36993aed5228e7729206dd560ab" - }, - { - "members": [], - "class_hash": "0x440e7887f604b152a04b9de6fc119d9278259cec2ca4050133b951d28ac9897", - "tag": "s1_eternum-SeasonAddressesConfig", - "selector": "0xa98bd556a5b641497f413f155e4bdce557ba25a48080540ac1e827d0dae5b3" - }, - { - "members": [], - "class_hash": "0x488068b6a2aeab65ba68fc47404d00482be3e34473f557e5fa189a2ed916679", - "tag": "s1_eternum-SeasonBridgeConfig", - "selector": "0x53dcfaf952a8e333e8212bf13c39cfb7d02f26ca8cf47aba06e4a90282481e3" - }, - { - "members": [], - "class_hash": "0x59de73957bcca5ee7a6523eaf9e450d30e5a8d179b756d59a4ad76bd39fe31d", - "tag": "s1_eternum-SettlementConfig", - "selector": "0x4d38d3858af58aab284639984a674293c5689216c5e0b9f3574aef9f3a9dad0" - }, - { - "members": [], - "class_hash": "0x2b346ce8db28ee8e45ff1dd81535f00b044a3fdc5c8841f4de9106afbd22a16", - "tag": "s1_eternum-SpeedConfig", - "selector": "0x56c1e6bea9218e0afdd55a3cc2c5360d969a6a0ccf3f6d1078e4b200cce51cc" - }, - { - "members": [], - "class_hash": "0x234946625a5b48f2e490906ab36e28c0a24d6c5778276475c6bf8034b2ace8a", - "tag": "s1_eternum-Stamina", - "selector": "0x1b2f9a5ab3ea1bc2565fc5cc30f432b41848f7909b64fd3d97d76dcddacbd3d" - }, - { - "members": [], - "class_hash": "0x38bf80ee86dca16edc5ec0302d52efc5b5f01672c3ef09b49aee393d5de8fde", - "tag": "s1_eternum-StaminaConfig", - "selector": "0x1049adf44800338362f91c904678f82fa47fd0ea0828711bee3e36bee63b97e" - }, - { - "members": [], - "class_hash": "0x626911965fc08d9d620dba8722c90e677371f046248b06f3adcf4390622f287", - "tag": "s1_eternum-StaminaRefillConfig", - "selector": "0x7c6db9d03dc473ddec8a0bb2c50b5988a8af928935daea336bb6f0f766a3b41" - }, - { - "members": [], - "class_hash": "0x8184163f4573706c555f878a960da7dd6dd73e550759c26ddf31bb15b265dd", - "tag": "s1_eternum-Status", - "selector": "0x3ebd20c50f05e81810279f60088898425cb0ae9e35f5ac99359e8552292be24" - }, - { - "members": [], - "class_hash": "0x445850a334dc7395fb4b0773760908c704d6cd343acb309f787364e2d6f027b", - "tag": "s1_eternum-Structure", - "selector": "0x3b407b0e3490f7044ce3870614a93f2a0fcbec02710f0975bfdb6c28fdfbecc" - }, - { - "members": [], - "class_hash": "0x3c90dfd7d56f15d47d5fd20d2ac9eb956788c90c66c8d9c61cd2797114704e9", - "tag": "s1_eternum-StructureCount", - "selector": "0x23b5a2b877c85f0d71bc36b420ec53e12e5ef8369cf1aedffa0bc838eea2dc4" - }, - { - "members": [], - "class_hash": "0x78bcb719dc3c363d315c54e49acf539a6b206f8094a8df13905300c90c54e2c", - "tag": "s1_eternum-TickConfig", - "selector": "0x576d27d39e416d211c923deeebe1505c982fe3aaeb511c7bcb0ef063f566e66" - }, - { - "members": [], - "class_hash": "0x1571af1924102cd1a6b9796935ad85debfc12fd1057c7738f22ab6bf9d0a734", - "tag": "s1_eternum-Tile", - "selector": "0x66c306156fe0c5b2785192d61977ac8475e3cb3dbc5d68f5547ade25fe1f4f2" - }, - { - "members": [], - "class_hash": "0x3e187fcc088b7453ee843c1a4534139b7d1527860c64c609279afcb7bccba93", - "tag": "s1_eternum-Trade", - "selector": "0x6ddb8e334e9c33541fce1e72774d6c43c1057a1057a570f2eb12426f51291" - }, - { - "members": [], - "class_hash": "0x421846bd7dfaea423ad0b9d025d960a20172ddcf321d5e16665ed1c667ecd6a", - "tag": "s1_eternum-TravelFoodCostConfig", - "selector": "0x4201d15b950f8e080217e23d7ef911390c3eddb573f7dc857e56c5ddfc606ab" - }, - { - "members": [], - "class_hash": "0x3a3107b2bf45e26c59666750c41655385ce7ffd19d0c8ac59856b0363105d51", - "tag": "s1_eternum-TravelStaminaCostConfig", - "selector": "0x30011c19eca1b0f0f35a4c6bbdac1e437ae7db4670f3ae445d057ee5516ba6e" - }, - { - "members": [], - "class_hash": "0x2f06311d5311c9345f4675fedd74e2f840ffff25509020fd380426a512d7362", - "tag": "s1_eternum-TroopConfig", - "selector": "0x440013884df718dc78b23b652dc4495f0e74de6e3e26f29993cf97a26e96e37" - }, - { - "members": [], - "class_hash": "0x6212d501854ddd5fb4a76f0020b88166a6ace18c51829d9868bf00495c93c79", - "tag": "s1_eternum-VRFConfig", - "selector": "0x40efcfc7e03b7e498a48587f3e7e535a6ed12eff77adeb65553a8e8092786fa" - }, - { - "members": [], - "class_hash": "0x2441bc3e5725d8632d181e17e1a5997544523f35945c6e4c80e257fb9e4886a", - "tag": "s1_eternum-Weight", - "selector": "0x6a857f799cd0abc86c75a666d024ee52f6e81e856f74bb2137bf2f1a534e0e1" - }, - { - "members": [], - "class_hash": "0x3cf8b4b83c710368da4a168ed462b2049721ba5e20d63197a981321672adbdd", - "tag": "s1_eternum-WeightConfig", - "selector": "0x1198553c941fe946e251e66c8f4f3177f44e59e56ac455dbc269557b7ae4d81" - }, - { - "members": [], - "class_hash": "0x75d683bc6831ab3ed4172aa8e35997c47ee37963062e5fabae8729a2b15b475", - "tag": "s1_eternum-WorldConfig", - "selector": "0x6212a03a10506a6661b44a6685e9d2978709dfdfc8de36fe93d947b939f200a" - } - ], - "events": [ - { - "members": [], - "class_hash": "0x6ce0d1733305e5837a804a2fcaaadc4257b33fbbb9072adfa558552806baba7", - "tag": "s1_eternum-AcceptOrder", - "selector": "0x30b1df6433db61c4a92580a1630c9e5126b5c82be28123a06b62f808ecd522" - }, - { - "members": [], - "class_hash": "0x559dd281303289b1fcfc9e64083749dc41f21da90857b5d757e1850e936e1a8", - "tag": "s1_eternum-AcceptPartialOrder", - "selector": "0x10466b8a291c68b1392b0c839dff152f5884e63efecc6616ae39eaaa8dddb16" - }, - { - "members": [], - "class_hash": "0x934049a8b2170110cdd0038113cc44d28a44c9468d386842b6f0f4269930d8", - "tag": "s1_eternum-BattleClaimData", - "selector": "0x41680e7ebc53d924909df6da64cb9bf2f93e4c52c773a46c2d98d26130e4b04" - }, - { - "members": [], - "class_hash": "0x21e47bd56785fa3feb60d847cb8dd208c9a54d7485c3a717266a68cb12922b2", - "tag": "s1_eternum-BattleJoinData", - "selector": "0x52d813cd875f5ab136509292d799f8e50454d7a216d4b0f82011537da338e45" + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "revoke_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "is_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "grant_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "revoke_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] }, { - "members": [], - "class_hash": "0x63fcfc6b83c0369df7577ea9ee1be924a91d3f56e751975135352f6d668e48f", - "tag": "s1_eternum-BattleLeaveData", - "selector": "0x2e2634c5a528ebe93bfdd4760906943ab27acda1780d8a0fe6e047daf59e3bb" + "type": "impl", + "name": "UpgradeableWorld", + "interface_name": "dojo::world::iworld::IUpgradeableWorld" }, { - "members": [], - "class_hash": "0x4c4c86484c191574bc777bd9f0a4f0fd42cea3723ebcce1262ae4a6206099a8", - "tag": "s1_eternum-BattlePillageData", - "selector": "0x20e12ccd908df9671ef87e056aeb9225412ed7710b218cf196c2069a36509ca" + "type": "interface", + "name": "dojo::world::iworld::IUpgradeableWorld", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] }, { - "members": [], - "class_hash": "0x7148e1c4747938842ac35ad3133ef7b03e2f890c578f7840a42bf7290fec96a", - "tag": "s1_eternum-BattleStartData", - "selector": "0x29d565ff98451bd6ac59f3a8d0b4d2ef14031a4a39ce4b4e8ee5dab0e02e1c9" + "type": "constructor", + "name": "constructor", + "inputs": [ + { + "name": "world_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ] }, { - "members": [], - "class_hash": "0x73a2e5508322468a7bcadbbb6d8d4ad14e5b7bc19500df530f904c0c2a0ef52", - "tag": "s1_eternum-BurnDonkey", - "selector": "0x4a1aac57c8cb6ec732bd40283fd1a892987d708a6b8a7d3a4dd65da6f0e7700" + "type": "event", + "name": "dojo::world::world_contract::world::WorldSpawned", + "kind": "struct", + "members": [ + { + "name": "creator", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0xb99ae4fd4c6ad7faddd8bc49b59116e8e6ea6900d55571ef6720c6c3e55bc", - "tag": "s1_eternum-CancelOrder", - "selector": "0x1a522313c76bbf3297f8527f95976169c4269831fe8b337f3d19ff0fccb8c87" + "type": "event", + "name": "dojo::world::world_contract::world::WorldUpgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x452f2d31f89ac1d6f689859282e4b8848db14035d14c64388240237f9c952af", - "tag": "s1_eternum-CreateGuild", - "selector": "0x45b5322475ee81006e7e7df176c2f31829e57224ae86ca261738a15ef8c88a7" + "type": "event", + "name": "dojo::world::world_contract::world::NamespaceRegistered", + "kind": "struct", + "members": [ + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "hash", + "type": "core::felt252", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x7ba3c37bfe133370931d979db6a74d2707a4922d56741b37fed2f3f9ffe2412", - "tag": "s1_eternum-CreateOrder", - "selector": "0x10edec58284a982448a15b0f37a3abc65944a16091efed6a39389b5064a6319" + "type": "event", + "name": "dojo::world::world_contract::world::ModelRegistered", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x33eed23e37ab8177b103e50d9fe7998079fb54ba97ed6d6174a18c16c3ce25", - "tag": "s1_eternum-FragmentMineDiscovered", - "selector": "0x6dd702d62f987ca281572763a9ebb8ed1937b7016d874f3c979ecb2b698012a" + "type": "event", + "name": "dojo::world::world_contract::world::EventRegistered", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x788ecb9baee1f026854cfa77c8b6e046731d044ed95aab1ee29d474e2c41385", - "tag": "s1_eternum-GameEnded", - "selector": "0x2146af1d5d48461a767ddc54400c751b49d4fc74619953f68aaf486dd447cfa" + "type": "event", + "name": "dojo::world::world_contract::world::ContractRegistered", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "salt", + "type": "core::felt252", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x261625f7f14957f14923385d1293a382a7198e1c2c4342fc274fda159c7bcbf", - "tag": "s1_eternum-HyperstructureCoOwnersChange", - "selector": "0x4dc6d1cc5a4a96d06bc7d47706082b809f07a72a7276f95d8e781cab476f579" + "type": "event", + "name": "dojo::world::world_contract::world::ModelUpgraded", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "prev_address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x751a5d1cd2cfc38b069298a54e665c644329906cb72c156a462400e4378007c", - "tag": "s1_eternum-HyperstructureContribution", - "selector": "0x554c3cb394ec5eb94799313ff57c04489f889918b97c883ec80fad3fb69142" + "type": "event", + "name": "dojo::world::world_contract::world::EventUpgraded", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "prev_address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x1a70f061a8b5ec44881ee4c8c1312704f8a74c852e15e39b0a50ccb6003fdc4", - "tag": "s1_eternum-HyperstructureFinished", - "selector": "0x1e7330fdbaa38d25a4192cae3a2f625a2474d21bea91894b61c78015e4c0a2f" + "type": "event", + "name": "dojo::world::world_contract::world::ContractUpgraded", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x578690752e499bd366110e7627cacf40b36346187aaa69adef84a61e79950ab", - "tag": "s1_eternum-HyperstructureStarted", - "selector": "0x576568f1e35d7395c3585e049cf835153b9337a7f605f0471ae460e79a801" + "type": "event", + "name": "dojo::world::world_contract::world::ContractInitialized", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "init_calldata", + "type": "core::array::Span::", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x63695bd49a77821a9d01ea9a5816eef76a851376cc4bc01a68c1a9e15287322", - "tag": "s1_eternum-JoinGuild", - "selector": "0x1341888a2238268a519a7c39af6c03489343fe2288ef7f66bea5c1f479cc1e4" + "type": "event", + "name": "dojo::world::world_contract::world::EventEmitted", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "system_address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "key" + }, + { + "name": "keys", + "type": "core::array::Span::", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x4141ad0fcb145ce54bc2ed7cb12e8f3092b6fe60da8dfcaf036bed082232851", - "tag": "s1_eternum-LiquidityEvent", - "selector": "0x4e19f323259ff883daf1f685cfb94306159cde4c8cb46155a290a9b9c91df8c" + "type": "event", + "name": "dojo::world::world_contract::world::MetadataUpdate", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "uri", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "hash", + "type": "core::felt252", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x561ffdd2e934a6c5f65c58120faade578dafb4af7e61d8ea278bed9932efc41", - "tag": "s1_eternum-MapExplored", - "selector": "0x22543e5f3bd15c01417b0fff116311e6e742ce8f43072e1391fc366b3dc05ad" + "type": "event", + "name": "dojo::world::world_contract::world::StoreSetRecord", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "keys", + "type": "core::array::Span::", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x2bc2301835d38f55c1a061a363e6038ec6c9807443718f620ba7e412a543c53", - "tag": "s1_eternum-SettleRealmData", - "selector": "0x7eff418a618f1ecd46303c1e0560094940d883e7ec2edde98bcb002a6e1ccca" + "type": "event", + "name": "dojo::world::world_contract::world::StoreUpdateRecord", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x37bcec3363a81c4aa899552958b4e9c6fa3a97a4fc8a96c45740abe655ef95d", - "tag": "s1_eternum-SwapEvent", - "selector": "0x1f926fcf957ccc9852cfb520498d1eac5512f8e710ffd77db1b1fcad55bfbee" + "type": "event", + "name": "dojo::world::world_contract::world::StoreUpdateMember", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "member_selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x6cc999fc86266f1dbc7aa840b708d01884985ad69bdc2b5638cc5911e076fd0", - "tag": "s1_eternum-Transfer", - "selector": "0x51c9cda93a0b9735874f08742333f5d601bee76457f1565f608075666678ee3" + "type": "event", + "name": "dojo::world::world_contract::world::StoreDelRecord", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "key" + } + ] }, { - "members": [], - "class_hash": "0x749a49ac7ff5b1b45c2043b9fb682a7afb16508b1294460876dcdf3cfc5a619", - "tag": "s1_eternum-Travel", - "selector": "0x30e8e79033762c0f9e6738ae07398a015b0ffd2969f6d2c1fb09d5475902ae6" + "type": "event", + "name": "dojo::world::world_contract::world::WriterUpdated", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "key" + }, + { + "name": "value", + "type": "core::bool", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x6b38999d987627835d4c20e7e571c73d32ddc856786d9790a131bdb3372a246", - "tag": "s1_eternum-TrophyCreation", - "selector": "0x730009ea3268cc71709a37a164c9ce9ca00430d63d571ad16b5b72c3f51bc9a" + "type": "event", + "name": "dojo::world::world_contract::world::OwnerUpdated", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "key" + }, + { + "name": "value", + "type": "core::bool", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0xf05f290a704ad2671544b391f0c33d50d6d43d468d52791282852a833a00c7", - "tag": "s1_eternum-TrophyProgression", - "selector": "0x198e5fb446b41882f55a08f8baaba4387f41637ca140b0084459ce5338f617d" + "type": "event", + "name": "dojo::world::world_contract::world::Event", + "kind": "enum", + "variants": [ + { + "name": "WorldSpawned", + "type": "dojo::world::world_contract::world::WorldSpawned", + "kind": "nested" + }, + { + "name": "WorldUpgraded", + "type": "dojo::world::world_contract::world::WorldUpgraded", + "kind": "nested" + }, + { + "name": "NamespaceRegistered", + "type": "dojo::world::world_contract::world::NamespaceRegistered", + "kind": "nested" + }, + { + "name": "ModelRegistered", + "type": "dojo::world::world_contract::world::ModelRegistered", + "kind": "nested" + }, + { + "name": "EventRegistered", + "type": "dojo::world::world_contract::world::EventRegistered", + "kind": "nested" + }, + { + "name": "ContractRegistered", + "type": "dojo::world::world_contract::world::ContractRegistered", + "kind": "nested" + }, + { + "name": "ModelUpgraded", + "type": "dojo::world::world_contract::world::ModelUpgraded", + "kind": "nested" + }, + { + "name": "EventUpgraded", + "type": "dojo::world::world_contract::world::EventUpgraded", + "kind": "nested" + }, + { + "name": "ContractUpgraded", + "type": "dojo::world::world_contract::world::ContractUpgraded", + "kind": "nested" + }, + { + "name": "ContractInitialized", + "type": "dojo::world::world_contract::world::ContractInitialized", + "kind": "nested" + }, + { + "name": "EventEmitted", + "type": "dojo::world::world_contract::world::EventEmitted", + "kind": "nested" + }, + { + "name": "MetadataUpdate", + "type": "dojo::world::world_contract::world::MetadataUpdate", + "kind": "nested" + }, + { + "name": "StoreSetRecord", + "type": "dojo::world::world_contract::world::StoreSetRecord", + "kind": "nested" + }, + { + "name": "StoreUpdateRecord", + "type": "dojo::world::world_contract::world::StoreUpdateRecord", + "kind": "nested" + }, + { + "name": "StoreUpdateMember", + "type": "dojo::world::world_contract::world::StoreUpdateMember", + "kind": "nested" + }, + { + "name": "StoreDelRecord", + "type": "dojo::world::world_contract::world::StoreDelRecord", + "kind": "nested" + }, + { + "name": "WriterUpdated", + "type": "dojo::world::world_contract::world::WriterUpdated", + "kind": "nested" + }, + { + "name": "OwnerUpdated", + "type": "dojo::world::world_contract::world::OwnerUpdated", + "kind": "nested" + } + ] } ] - } + }, + "contracts": [ + { + "address": "0x12dea4f1017885f3caf0f2307769bf7a22e1138756170d6b0089052287978d4", + "class_hash": "0x38b8eea12d619d5ef8dd3ce5fd038a6bef762b64d911a3e3947892f09ceaeab", + "abi": [ + { + "type": "impl", + "name": "bank_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "bank_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "BankSystemsImpl", + "interface_name": "s1_eternum::systems::bank::contracts::bank::IBankSystems" + }, + { + "type": "interface", + "name": "s1_eternum::systems::bank::contracts::bank::IBankSystems", + "items": [ + { + "type": "function", + "name": "change_owner_amm_fee", + "inputs": [ + { + "name": "bank_entity_id", + "type": "core::integer::u32" + }, + { + "name": "new_owner_fee_num", + "type": "core::integer::u128" + }, + { + "name": "new_owner_fee_denom", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "change_owner_bridge_fee", + "inputs": [ + { + "name": "bank_entity_id", + "type": "core::integer::u32" + }, + { + "name": "owner_bridge_fee_dpt_percent", + "type": "core::integer::u16" + }, + { + "name": "owner_bridge_fee_wtdr_percent", + "type": "core::integer::u16" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::bank::contracts::bank::bank_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-bank_systems", + "selector": "0x44475a775d79049bbe99567b7c00a1e4d8d582cade61a8aec07ca3bb234f6e6", + "systems": [ + "change_owner_amm_fee", + "change_owner_bridge_fee", + "upgrade" + ] + }, + { + "address": "0x3b81b30bbf30c2f91e6948449a778e748e2481df5dfac2cdd91d00ebb9d1ce9", + "class_hash": "0x205d037fb517aca51484f6d89dae7b11c6dceed1d55943c21ea1e70bc62cc", + "abi": [ + { + "type": "impl", + "name": "battle_pillage_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "battle_pillage_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "BattlePillageContractImpl", + "interface_name": "s1_eternum::systems::combat::contracts::battle_systems::IBattlePillageContract" + }, + { + "type": "interface", + "name": "s1_eternum::systems::combat::contracts::battle_systems::IBattlePillageContract", + "items": [ + { + "type": "function", + "name": "battle_pillage", + "inputs": [ + { + "name": "army_id", + "type": "core::integer::u32" + }, + { + "name": "structure_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::combat::contracts::battle_systems::battle_pillage_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-battle_pillage_systems", + "selector": "0x6e8963ce01de14fbf50434fd001ac86e45313c4d43e7a255192eb26dcb5d63d", + "systems": [ + "battle_pillage", + "upgrade" + ] + }, + { + "address": "0x2e31e58a51bb7d45c4713045161a1a83cc2532589c2fca44285de349f08dc5", + "class_hash": "0x6ec06498582ccec7dd073f767ddcee7350bfcb4211f9238316599bb28c9330f", + "abi": [ + { + "type": "impl", + "name": "battle_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "battle_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "BattleContractImpl", + "interface_name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleContract" + }, + { + "type": "enum", + "name": "s1_eternum::models::combat::BattleSide", + "variants": [ + { + "name": "None", + "type": "()" + }, + { + "name": "Attack", + "type": "()" + }, + { + "name": "Defence", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleContract", + "items": [ + { + "type": "function", + "name": "battle_start", + "inputs": [ + { + "name": "attacking_army_id", + "type": "core::integer::u32" + }, + { + "name": "defending_army_id", + "type": "core::integer::u32" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "battle_force_start", + "inputs": [ + { + "name": "battle_id", + "type": "core::integer::u32" + }, + { + "name": "defending_army_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "battle_join", + "inputs": [ + { + "name": "battle_id", + "type": "core::integer::u32" + }, + { + "name": "battle_side", + "type": "s1_eternum::models::combat::BattleSide" + }, + { + "name": "army_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "battle_leave", + "inputs": [ + { + "name": "battle_id", + "type": "core::integer::u32" + }, + { + "name": "army_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "battle_claim", + "inputs": [ + { + "name": "army_id", + "type": "core::integer::u32" + }, + { + "name": "structure_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "battle_resolve", + "inputs": [ + { + "name": "battle_id", + "type": "core::integer::u32" + }, + { + "name": "army_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::combat::contracts::battle_systems::battle_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-battle_systems", + "selector": "0x7bb97d7199b14973d6f05b84579bda637cef5714be078064da3cb80d273c79b", + "systems": [ + "battle_start", + "battle_force_start", + "battle_join", + "battle_leave", + "battle_claim", + "battle_resolve", + "upgrade" + ] + }, + { + "address": "0xe785ec9a3e5fbaec71ad24a55d724f2814a7ff8c6232f949da5b53f4e18cb3", + "class_hash": "0x2ad3b3278498fafb701f93b6836fd9f9b9c5cd2e050d18c5ebb1caaecbef3c", + "abi": [ + { + "type": "impl", + "name": "battle_utils_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "battle_utils_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "BattleUtilsContractImpl", + "interface_name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleUtilsContract" + }, + { + "type": "struct", + "name": "s1_eternum::models::combat::Troops", + "members": [ + { + "name": "knight_count", + "type": "core::integer::u64" + }, + { + "name": "paladin_count", + "type": "core::integer::u64" + }, + { + "name": "crossbowman_count", + "type": "core::integer::u64" + } + ] + }, + { + "type": "enum", + "name": "s1_eternum::models::combat::BattleSide", + "variants": [ + { + "name": "None", + "type": "()" + }, + { + "name": "Attack", + "type": "()" + }, + { + "name": "Defence", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::combat::BattleArmy", + "members": [ + { + "name": "troops", + "type": "s1_eternum::models::combat::Troops" + }, + { + "name": "battle_id", + "type": "core::integer::u32" + }, + { + "name": "battle_side", + "type": "s1_eternum::models::combat::BattleSide" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::combat::BattleHealth", + "members": [ + { + "name": "current", + "type": "core::integer::u128" + }, + { + "name": "lifetime", + "type": "core::integer::u128" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::combat::Battle", + "members": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "attack_army", + "type": "s1_eternum::models::combat::BattleArmy" + }, + { + "name": "attack_army_lifetime", + "type": "s1_eternum::models::combat::BattleArmy" + }, + { + "name": "defence_army", + "type": "s1_eternum::models::combat::BattleArmy" + }, + { + "name": "defence_army_lifetime", + "type": "s1_eternum::models::combat::BattleArmy" + }, + { + "name": "attackers_resources_escrow_id", + "type": "core::integer::u32" + }, + { + "name": "defenders_resources_escrow_id", + "type": "core::integer::u32" + }, + { + "name": "attack_army_health", + "type": "s1_eternum::models::combat::BattleHealth" + }, + { + "name": "defence_army_health", + "type": "s1_eternum::models::combat::BattleHealth" + }, + { + "name": "attack_delta", + "type": "core::integer::u64" + }, + { + "name": "defence_delta", + "type": "core::integer::u64" + }, + { + "name": "last_updated", + "type": "core::integer::u64" + }, + { + "name": "duration_left", + "type": "core::integer::u64" + }, + { + "name": "start_at", + "type": "core::integer::u64" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::combat::Army", + "members": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "troops", + "type": "s1_eternum::models::combat::Troops" + }, + { + "name": "battle_id", + "type": "core::integer::u32" + }, + { + "name": "battle_side", + "type": "s1_eternum::models::combat::BattleSide" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleUtilsContract", + "items": [ + { + "type": "function", + "name": "leave_battle", + "inputs": [ + { + "name": "battle", + "type": "s1_eternum::models::combat::Battle" + }, + { + "name": "army", + "type": "s1_eternum::models::combat::Army" + } + ], + "outputs": [ + { + "type": "(s1_eternum::models::combat::Battle, s1_eternum::models::combat::Army)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "leave_battle_if_ended", + "inputs": [ + { + "name": "battle", + "type": "s1_eternum::models::combat::Battle" + }, + { + "name": "army", + "type": "s1_eternum::models::combat::Army" + } + ], + "outputs": [ + { + "type": "(s1_eternum::models::combat::Battle, s1_eternum::models::combat::Army)" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::combat::contracts::battle_systems::battle_utils_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-battle_utils_systems", + "selector": "0x2b94e5432b691bad81584af7e9e97102aa0070f13aa91c6ff8c980e54d5ca33", + "systems": [ + "leave_battle", + "leave_battle_if_ended", + "upgrade" + ] + }, + { + "address": "0x7a9fc055d71b905595cc7f9d63331906ce3ea9fa9fa82b7ed9c5e8114fa3938", + "class_hash": "0x747b7a6788796c5f9899d3b7db8931ba43475a5c3393eff28f156c8761a31c3", + "abi": [ + { + "type": "impl", + "name": "config_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "config_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IWorldConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IWorldConfig", + "items": [ + { + "type": "function", + "name": "set_world_config", + "inputs": [ + { + "name": "admin_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "realm_l2_contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "SeasonConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ISeasonConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ISeasonConfig", + "items": [ + { + "type": "function", + "name": "set_season_config", + "inputs": [ + { + "name": "season_pass_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "realms_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "lords_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "start_at", + "type": "core::integer::u64" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_season_bridge_config", + "inputs": [ + { + "name": "close_after_end_seconds", + "type": "core::integer::u64" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "VRFConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IVRFConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IVRFConfig", + "items": [ + { + "type": "function", + "name": "set_vrf_config", + "inputs": [ + { + "name": "vrf_provider_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "QuestConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IQuestConfig" + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IQuestConfig", + "items": [ + { + "type": "function", + "name": "set_quest_reward_config", + "inputs": [ + { + "name": "quest_id", + "type": "core::integer::u32" + }, + { + "name": "resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "MapConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IMapConfig" + }, + { + "type": "struct", + "name": "s1_eternum::models::config::MapConfig", + "members": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "reward_resource_amount", + "type": "core::integer::u128" + }, + { + "name": "shards_mines_fail_probability", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IMapConfig", + "items": [ + { + "type": "function", + "name": "set_map_config", + "inputs": [ + { + "name": "map_config", + "type": "s1_eternum::models::config::MapConfig" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "CapacityConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ICapacityConfig" + }, + { + "type": "enum", + "name": "s1_eternum::models::config::CapacityConfigCategory", + "variants": [ + { + "name": "None", + "type": "()" + }, + { + "name": "Structure", + "type": "()" + }, + { + "name": "Donkey", + "type": "()" + }, + { + "name": "Army", + "type": "()" + }, + { + "name": "Storehouse", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::config::CapacityConfig", + "members": [ + { + "name": "category", + "type": "s1_eternum::models::config::CapacityConfigCategory" + }, + { + "name": "weight_gram", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ICapacityConfig", + "items": [ + { + "type": "function", + "name": "set_capacity_config", + "inputs": [ + { + "name": "capacity_config", + "type": "s1_eternum::models::config::CapacityConfig" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "TravelStaminaCostConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ITravelStaminaCostConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ITravelStaminaCostConfig", + "items": [ + { + "type": "function", + "name": "set_travel_stamina_cost_config", + "inputs": [ + { + "name": "travel_type", + "type": "core::integer::u8" + }, + { + "name": "cost", + "type": "core::integer::u16" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "WeightConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IWeightConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IWeightConfig", + "items": [ + { + "type": "function", + "name": "set_weight_config", + "inputs": [ + { + "name": "entity_type", + "type": "core::integer::u32" + }, + { + "name": "weight_gram", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "BattleConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IBattleConfig" + }, + { + "type": "struct", + "name": "s1_eternum::models::config::BattleConfig", + "members": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "regular_immunity_ticks", + "type": "core::integer::u8" + }, + { + "name": "hyperstructure_immunity_ticks", + "type": "core::integer::u8" + }, + { + "name": "battle_delay_seconds", + "type": "core::integer::u64" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IBattleConfig", + "items": [ + { + "type": "function", + "name": "set_battle_config", + "inputs": [ + { + "name": "battle_config", + "type": "s1_eternum::models::config::BattleConfig" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "TickConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ITickConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ITickConfig", + "items": [ + { + "type": "function", + "name": "set_tick_config", + "inputs": [ + { + "name": "tick_id", + "type": "core::integer::u8" + }, + { + "name": "tick_interval_in_seconds", + "type": "core::integer::u64" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "StaminaConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IStaminaConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IStaminaConfig", + "items": [ + { + "type": "function", + "name": "set_stamina_config", + "inputs": [ + { + "name": "unit_type", + "type": "core::integer::u8" + }, + { + "name": "max_stamina", + "type": "core::integer::u16" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "TravelFoodCostConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ITravelFoodCostConfig" + }, + { + "type": "struct", + "name": "s1_eternum::models::config::TravelFoodCostConfig", + "members": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "unit_type", + "type": "core::integer::u8" + }, + { + "name": "explore_wheat_burn_amount", + "type": "core::integer::u128" + }, + { + "name": "explore_fish_burn_amount", + "type": "core::integer::u128" + }, + { + "name": "travel_wheat_burn_amount", + "type": "core::integer::u128" + }, + { + "name": "travel_fish_burn_amount", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ITravelFoodCostConfig", + "items": [ + { + "type": "function", + "name": "set_travel_food_cost_config", + "inputs": [ + { + "name": "travel_food_cost_config", + "type": "s1_eternum::models::config::TravelFoodCostConfig" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "StaminaRefillConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IStaminaRefillConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IStaminaRefillConfig", + "items": [ + { + "type": "function", + "name": "set_stamina_refill_config", + "inputs": [ + { + "name": "amount_per_tick", + "type": "core::integer::u16" + }, + { + "name": "start_boost_tick_count", + "type": "core::integer::u8" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "LevelingConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ILevelingConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ILevelingConfig", + "items": [ + { + "type": "function", + "name": "set_leveling_config", + "inputs": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "decay_interval", + "type": "core::integer::u64" + }, + { + "name": "max_level", + "type": "core::integer::u64" + }, + { + "name": "decay_scaled", + "type": "core::integer::u128" + }, + { + "name": "cost_percentage_scaled", + "type": "core::integer::u128" + }, + { + "name": "base_multiplier", + "type": "core::integer::u128" + }, + { + "name": "wheat_base_amount", + "type": "core::integer::u128" + }, + { + "name": "fish_base_amount", + "type": "core::integer::u128" + }, + { + "name": "resource_1_costs", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "resource_2_costs", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "resource_3_costs", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "ProductionConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IProductionConfig" + }, + { + "type": "struct", + "name": "s1_eternum::models::config::LaborBurnPrStrategy", + "members": [ + { + "name": "resource_rarity", + "type": "core::integer::u128" + }, + { + "name": "depreciation_percent_num", + "type": "core::integer::u16" + }, + { + "name": "depreciation_percent_denom", + "type": "core::integer::u16" + }, + { + "name": "wheat_burn_per_labor", + "type": "core::integer::u128" + }, + { + "name": "fish_burn_per_labor", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IProductionConfig", + "items": [ + { + "type": "function", + "name": "set_production_config", + "inputs": [ + { + "name": "resource_type", + "type": "core::integer::u8" + }, + { + "name": "amount_per_building_per_tick", + "type": "core::integer::u128" + }, + { + "name": "labor_burn_strategy", + "type": "s1_eternum::models::config::LaborBurnPrStrategy" + }, + { + "name": "predefined_resource_burn_cost", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "TransportConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ITransportConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ITransportConfig", + "items": [ + { + "type": "function", + "name": "set_speed_config", + "inputs": [ + { + "name": "entity_type", + "type": "core::integer::u32" + }, + { + "name": "sec_per_km", + "type": "core::integer::u16" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "HyperstructureConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IHyperstructureConfig" + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u8, core::integer::u128, core::integer::u128)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u8, core::integer::u128, core::integer::u128)>" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IHyperstructureConfig", + "items": [ + { + "type": "function", + "name": "set_hyperstructure_config", + "inputs": [ + { + "name": "resources_for_completion", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128, core::integer::u128)>" + }, + { + "name": "time_between_shares_change", + "type": "core::integer::u64" + }, + { + "name": "points_per_cycle", + "type": "core::integer::u128" + }, + { + "name": "points_for_win", + "type": "core::integer::u128" + }, + { + "name": "points_on_completion", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "BankConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IBankConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IBankConfig", + "items": [ + { + "type": "function", + "name": "set_bank_config", + "inputs": [ + { + "name": "lords_cost", + "type": "core::integer::u128" + }, + { + "name": "lp_fee_num", + "type": "core::integer::u128" + }, + { + "name": "lp_fee_denom", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "TroopConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ITroopConfig" + }, + { + "type": "struct", + "name": "s1_eternum::models::config::TroopConfig", + "members": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "health", + "type": "core::integer::u32" + }, + { + "name": "knight_strength", + "type": "core::integer::u8" + }, + { + "name": "paladin_strength", + "type": "core::integer::u8" + }, + { + "name": "crossbowman_strength", + "type": "core::integer::u16" + }, + { + "name": "advantage_percent", + "type": "core::integer::u16" + }, + { + "name": "disadvantage_percent", + "type": "core::integer::u16" + }, + { + "name": "max_troop_count", + "type": "core::integer::u64" + }, + { + "name": "pillage_health_divisor", + "type": "core::integer::u8" + }, + { + "name": "army_free_per_structure", + "type": "core::integer::u8" + }, + { + "name": "army_extra_per_building", + "type": "core::integer::u8" + }, + { + "name": "army_max_per_structure", + "type": "core::integer::u8" + }, + { + "name": "battle_leave_slash_num", + "type": "core::integer::u8" + }, + { + "name": "battle_leave_slash_denom", + "type": "core::integer::u8" + }, + { + "name": "battle_time_scale", + "type": "core::integer::u16" + }, + { + "name": "battle_max_time_seconds", + "type": "core::integer::u64" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ITroopConfig", + "items": [ + { + "type": "function", + "name": "set_troop_config", + "inputs": [ + { + "name": "troop_config", + "type": "s1_eternum::models::config::TroopConfig" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "BuildingCategoryPopulationConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IBuildingCategoryPopConfig" + }, + { + "type": "enum", + "name": "s1_eternum::models::resource::production::building::BuildingCategory", + "variants": [ + { + "name": "None", + "type": "()" + }, + { + "name": "Castle", + "type": "()" + }, + { + "name": "Resource", + "type": "()" + }, + { + "name": "Farm", + "type": "()" + }, + { + "name": "FishingVillage", + "type": "()" + }, + { + "name": "Barracks", + "type": "()" + }, + { + "name": "Market", + "type": "()" + }, + { + "name": "ArcheryRange", + "type": "()" + }, + { + "name": "Stable", + "type": "()" + }, + { + "name": "TradingPost", + "type": "()" + }, + { + "name": "WorkersHut", + "type": "()" + }, + { + "name": "WatchTower", + "type": "()" + }, + { + "name": "Walls", + "type": "()" + }, + { + "name": "Storehouse", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IBuildingCategoryPopConfig", + "items": [ + { + "type": "function", + "name": "set_building_category_pop_config", + "inputs": [ + { + "name": "building_category", + "type": "s1_eternum::models::resource::production::building::BuildingCategory" + }, + { + "name": "population", + "type": "core::integer::u32" + }, + { + "name": "capacity", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "PopulationConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IPopulationConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IPopulationConfig", + "items": [ + { + "type": "function", + "name": "set_population_config", + "inputs": [ + { + "name": "base_population", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "BuildingConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IBuildingConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IBuildingConfig", + "items": [ + { + "type": "function", + "name": "set_building_general_config", + "inputs": [ + { + "name": "base_cost_percent_increase", + "type": "core::integer::u16" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_building_config", + "inputs": [ + { + "name": "building_category", + "type": "s1_eternum::models::resource::production::building::BuildingCategory" + }, + { + "name": "building_resource_type", + "type": "core::integer::u8" + }, + { + "name": "cost_of_building", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "IMercenariesConfig", + "interface_name": "s1_eternum::systems::config::contracts::IMercenariesConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IMercenariesConfig", + "items": [ + { + "type": "function", + "name": "set_mercenaries_config", + "inputs": [ + { + "name": "knights_lower_bound", + "type": "core::integer::u64" + }, + { + "name": "knights_upper_bound", + "type": "core::integer::u64" + }, + { + "name": "paladins_lower_bound", + "type": "core::integer::u64" + }, + { + "name": "paladins_upper_bound", + "type": "core::integer::u64" + }, + { + "name": "crossbowmen_lower_bound", + "type": "core::integer::u64" + }, + { + "name": "crossbowmen_upper_bound", + "type": "core::integer::u64" + }, + { + "name": "rewards", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "IResourceBridgeConfig", + "interface_name": "s1_eternum::systems::config::contracts::IResourceBridgeConfig" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::config::ResourceBridgeConfig", + "members": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "deposit_paused", + "type": "core::bool" + }, + { + "name": "withdraw_paused", + "type": "core::bool" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::config::ResourceBridgeFeeSplitConfig", + "members": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "velords_fee_on_dpt_percent", + "type": "core::integer::u16" + }, + { + "name": "velords_fee_on_wtdr_percent", + "type": "core::integer::u16" + }, + { + "name": "season_pool_fee_on_dpt_percent", + "type": "core::integer::u16" + }, + { + "name": "season_pool_fee_on_wtdr_percent", + "type": "core::integer::u16" + }, + { + "name": "client_fee_on_dpt_percent", + "type": "core::integer::u16" + }, + { + "name": "client_fee_on_wtdr_percent", + "type": "core::integer::u16" + }, + { + "name": "velords_fee_recipient", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "season_pool_fee_recipient", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "max_bank_fee_dpt_percent", + "type": "core::integer::u16" + }, + { + "name": "max_bank_fee_wtdr_percent", + "type": "core::integer::u16" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::config::ResourceBridgeWhitelistConfig", + "members": [ + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "resource_type", + "type": "core::integer::u8" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IResourceBridgeConfig", + "items": [ + { + "type": "function", + "name": "set_resource_bridge_config", + "inputs": [ + { + "name": "resource_bridge_config", + "type": "s1_eternum::models::config::ResourceBridgeConfig" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_resource_bridge_fee_split_config", + "inputs": [ + { + "name": "resource_bridge_fee_split_config", + "type": "s1_eternum::models::config::ResourceBridgeFeeSplitConfig" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_resource_bridge_whitelist_config", + "inputs": [ + { + "name": "resource_bridge_whitelist_config", + "type": "s1_eternum::models::config::ResourceBridgeWhitelistConfig" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "RealmLevelConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IRealmLevelConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IRealmLevelConfig", + "items": [ + { + "type": "function", + "name": "set_realm_max_level_config", + "inputs": [ + { + "name": "new_max_level", + "type": "core::integer::u8" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_realm_level_config", + "inputs": [ + { + "name": "level", + "type": "core::integer::u8" + }, + { + "name": "resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "ISettlementConfig", + "interface_name": "s1_eternum::systems::config::contracts::ISettlementConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ISettlementConfig", + "items": [ + { + "type": "function", + "name": "set_settlement_config", + "inputs": [ + { + "name": "center", + "type": "core::integer::u32" + }, + { + "name": "base_distance", + "type": "core::integer::u32" + }, + { + "name": "min_first_layer_distance", + "type": "core::integer::u32" + }, + { + "name": "points_placed", + "type": "core::integer::u32" + }, + { + "name": "current_layer", + "type": "core::integer::u32" + }, + { + "name": "current_side", + "type": "core::integer::u32" + }, + { + "name": "current_point_on_side", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "achievement::components::achievable::AchievableComponent::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::config::contracts::config_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + }, + { + "name": "AchievableEvent", + "type": "achievement::components::achievable::AchievableComponent::Event", + "kind": "flat" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-config_systems", + "selector": "0x1cb4608b18b40cb6420be7cf67ff21abe727a2bf599f2727d8eed5e36099fc2", + "systems": [ + "set_world_config", + "set_season_config", + "set_season_bridge_config", + "set_vrf_config", + "set_quest_reward_config", + "set_map_config", + "set_capacity_config", + "set_travel_stamina_cost_config", + "set_weight_config", + "set_battle_config", + "set_tick_config", + "set_stamina_config", + "set_travel_food_cost_config", + "set_stamina_refill_config", + "set_leveling_config", + "set_production_config", + "set_speed_config", + "set_hyperstructure_config", + "set_bank_config", + "set_troop_config", + "set_building_category_pop_config", + "set_population_config", + "set_building_general_config", + "set_building_config", + "set_mercenaries_config", + "set_resource_bridge_config", + "set_resource_bridge_fee_split_config", + "set_resource_bridge_whitelist_config", + "set_realm_max_level_config", + "set_realm_level_config", + "set_settlement_config", + "upgrade" + ] + }, + { + "address": "0x2368b70232d701b4be5e32d03d8ab13b3d0a3c5d44a7b8e704d24a5e2c723ad", + "class_hash": "0x52cc13796077949a91149c8870679bff30e880faacc1696c444db1ffc2e03ba", + "abi": [ + { + "type": "impl", + "name": "dev_bank_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "dev_bank_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "BankSystemsImpl", + "interface_name": "s1_eternum::systems::dev::contracts::bank::IBankSystems" + }, + { + "type": "struct", + "name": "s1_eternum::models::position::Coord", + "members": [ + { + "name": "x", + "type": "core::integer::u32" + }, + { + "name": "y", + "type": "core::integer::u32" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::dev::contracts::bank::IBankSystems", + "items": [ + { + "type": "function", + "name": "create_admin_bank", + "inputs": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "coord", + "type": "s1_eternum::models::position::Coord" + }, + { + "name": "owner_fee_num", + "type": "core::integer::u128" + }, + { + "name": "owner_fee_denom", + "type": "core::integer::u128" + }, + { + "name": "owner_bridge_fee_dpt_percent", + "type": "core::integer::u16" + }, + { + "name": "owner_bridge_fee_wtdr_percent", + "type": "core::integer::u16" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::dev::contracts::bank::dev_bank_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-dev_bank_systems", + "selector": "0x653ceec4af5e357119149b66228aece89c47a9c85dbba76955cec24e809f191", + "systems": [ + "create_admin_bank", + "upgrade" + ] + }, + { + "address": "0x7c4376f84b971e6e3aa1bdd9285c4450122cb02b59c8ce752d46abdf399029", + "class_hash": "0x568e9e9963345b80ed1bfcf91d08d78dd12bcc96280ce9f85ec3a104f602594", + "abi": [ + { + "type": "impl", + "name": "dev_resource_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "dev_resource_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ResourceSystemsImpl", + "interface_name": "s1_eternum::systems::dev::contracts::resource::IResourceSystems" + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::dev::contracts::resource::IResourceSystems", + "items": [ + { + "type": "function", + "name": "mint", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::dev::contracts::resource::dev_resource_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-dev_resource_systems", + "selector": "0x4d5cfcb90997c42faaec636a440b73118f54d7e5321a8e6e134bdb0ac946333", + "systems": [ + "mint", + "upgrade" + ] + }, + { + "address": "0xa4e32c74166a9b817f53e13ba1f06bf0e5dd324dccf38e2b9e9dad255c5026", + "class_hash": "0x41e1faef49fb72e1e20ffcf0c2c15e99f80cf95dc8ae3414b5c0e31ecce6b6f", + "abi": [ + { + "type": "impl", + "name": "donkey_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "donkey_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::transport::contracts::donkey_systems::donkey_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-donkey_systems", + "selector": "0x3d69880d4cc048ff9cbc100f9667649cb239b66e1245bf3cccb47119ea29a95", + "systems": [ + "upgrade" + ] + }, + { + "address": "0x315de68b9d148a842f4aa6e16d6c5d2d6ae1e7787a03c778a3691a894f9142d", + "class_hash": "0x6178332d6302e2ccebecc0cdf7ef676443384f9e3dcffbcbb1cb9056c05b11e", + "abi": [ + { + "type": "impl", + "name": "guild_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "guild_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "GuildSystemsImpl", + "interface_name": "s1_eternum::systems::guild::contracts::IGuildSystems" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::guild::contracts::IGuildSystems", + "items": [ + { + "type": "function", + "name": "create_guild", + "inputs": [ + { + "name": "is_public", + "type": "core::bool" + }, + { + "name": "guild_name", + "type": "core::felt252" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "join_guild", + "inputs": [ + { + "name": "guild_entity_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "whitelist_player", + "inputs": [ + { + "name": "player_address_to_whitelist", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "guild_entity_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "transfer_guild_ownership", + "inputs": [ + { + "name": "guild_entity_id", + "type": "core::integer::u32" + }, + { + "name": "to_player_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "remove_guild_member", + "inputs": [ + { + "name": "player_address_to_remove", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "remove_player_from_whitelist", + "inputs": [ + { + "name": "player_address_to_remove", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "guild_entity_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::guild::contracts::guild_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-guild_systems", + "selector": "0x15516acac71fbb80f953b9a8fac7d65ceff957f7f2d568fecbccba36bec6263", + "systems": [ + "create_guild", + "join_guild", + "whitelist_player", + "transfer_guild_ownership", + "remove_guild_member", + "remove_player_from_whitelist", + "upgrade" + ] + }, + { + "address": "0x58ab26e43a452dd752f9459e3cc51eddca4a19cab13f7b03b77f867430f3fb", + "class_hash": "0xa9133f3532a2a84bb5594c4cd32f77d1c8618954f3410c8b2068104fa39987", + "abi": [ + { + "type": "impl", + "name": "hyperstructure_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "hyperstructure_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "HyperstructureSystemsImpl", + "interface_name": "s1_eternum::systems::hyperstructure::contracts::IHyperstructureSystems" + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u32, core::integer::u16)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u32, core::integer::u16)>" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::position::Coord", + "members": [ + { + "name": "x", + "type": "core::integer::u32" + }, + { + "name": "y", + "type": "core::integer::u32" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::starknet::contract_address::ContractAddress, core::integer::u16)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::starknet::contract_address::ContractAddress, core::integer::u16)>" + } + ] + }, + { + "type": "enum", + "name": "s1_eternum::models::hyperstructure::Access", + "variants": [ + { + "name": "Public", + "type": "()" + }, + { + "name": "Private", + "type": "()" + }, + { + "name": "GuildOnly", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::hyperstructure::contracts::IHyperstructureSystems", + "items": [ + { + "type": "function", + "name": "get_points", + "inputs": [ + { + "name": "player_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "hyperstructures_contributed_to", + "type": "core::array::Span::" + }, + { + "name": "hyperstructure_shareholder_epochs", + "type": "core::array::Span::<(core::integer::u32, core::integer::u16)>" + } + ], + "outputs": [ + { + "type": "(core::integer::u128, core::integer::u128, core::integer::u128, core::integer::u128)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "create", + "inputs": [ + { + "name": "creator_entity_id", + "type": "core::integer::u32" + }, + { + "name": "coord", + "type": "s1_eternum::models::position::Coord" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "contribute_to_construction", + "inputs": [ + { + "name": "hyperstructure_entity_id", + "type": "core::integer::u32" + }, + { + "name": "contributor_entity_id", + "type": "core::integer::u32" + }, + { + "name": "contributions", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_co_owners", + "inputs": [ + { + "name": "hyperstructure_entity_id", + "type": "core::integer::u32" + }, + { + "name": "co_owners", + "type": "core::array::Span::<(core::starknet::contract_address::ContractAddress, core::integer::u16)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "end_game", + "inputs": [ + { + "name": "hyperstructures_contributed_to", + "type": "core::array::Span::" + }, + { + "name": "hyperstructure_shareholder_epochs", + "type": "core::array::Span::<(core::integer::u32, core::integer::u16)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_access", + "inputs": [ + { + "name": "hyperstructure_entity_id", + "type": "core::integer::u32" + }, + { + "name": "access", + "type": "s1_eternum::models::hyperstructure::Access" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::hyperstructure::contracts::hyperstructure_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-hyperstructure_systems", + "selector": "0x4bdd8bcbb935577aba3b974bd7e906698504fcb75e0c3aa34913c21342b4498", + "systems": [ + "get_points", + "create", + "contribute_to_construction", + "set_co_owners", + "end_game", + "set_access", + "upgrade" + ] + }, + { + "address": "0x2a03b9e371cf24f708132c0e42361829360a7b628b0e20bcf9283755df72869", + "class_hash": "0x49e8054a2fde6f49ce8b2563d677efd248bbeadf1f753e59a41ba7d3b9efe8f", + "abi": [ + { + "type": "impl", + "name": "liquidity_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "liquidity_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "LiquiditySystemsImpl", + "interface_name": "s1_eternum::systems::bank::contracts::liquidity::ILiquiditySystems" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "cubit::f128::types::fixed::Fixed", + "members": [ + { + "name": "mag", + "type": "core::integer::u128" + }, + { + "name": "sign", + "type": "core::bool" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::bank::contracts::liquidity::ILiquiditySystems", + "items": [ + { + "type": "function", + "name": "add", + "inputs": [ + { + "name": "bank_entity_id", + "type": "core::integer::u32" + }, + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "resource_type", + "type": "core::integer::u8" + }, + { + "name": "resource_amount", + "type": "core::integer::u128" + }, + { + "name": "lords_amount", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "remove", + "inputs": [ + { + "name": "bank_entity_id", + "type": "core::integer::u32" + }, + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "resource_type", + "type": "core::integer::u8" + }, + { + "name": "shares", + "type": "cubit::f128::types::fixed::Fixed" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::bank::contracts::liquidity::liquidity_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-liquidity_systems", + "selector": "0xf480ba1a0c3e5b85a74ba14244a1653f886654d67c71b4dd0804d9eecf1cd9", + "systems": [ + "add", + "remove", + "upgrade" + ] + }, + { + "address": "0x71ae361edf33ada5d5b6e946d1b5c68ea880f13557dccfbd5e199637d2abb73", + "class_hash": "0x43b25f249e159cfbe93bb91651c5833cc04dda10534c2b6a64eab6ec260cd63", + "abi": [ + { + "type": "impl", + "name": "map_generation_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "map_generation_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "MapGenerationSystemsImpl", + "interface_name": "s1_eternum::systems::map::map_generation::IMapGenerationSystems" + }, + { + "type": "struct", + "name": "s1_eternum::models::owner::EntityOwner", + "members": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "entity_owner_id", + "type": "core::integer::u32" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::position::Coord", + "members": [ + { + "name": "x", + "type": "core::integer::u32" + }, + { + "name": "y", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::integer::u256", + "members": [ + { + "name": "low", + "type": "core::integer::u128" + }, + { + "name": "high", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::map::map_generation::IMapGenerationSystems", + "items": [ + { + "type": "function", + "name": "discover_shards_mine", + "inputs": [ + { + "name": "unit_entity_owner", + "type": "s1_eternum::models::owner::EntityOwner" + }, + { + "name": "coord", + "type": "s1_eternum::models::position::Coord" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "add_mercenaries_to_structure", + "inputs": [ + { + "name": "randomness", + "type": "core::integer::u256" + }, + { + "name": "structure_entity_id", + "type": "core::integer::u32" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::map::map_generation::map_generation_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-map_generation_systems", + "selector": "0x6dbd060aee5437a68789ce311c098ad9e39dddab8447b335c10007afae949c6", + "systems": [ + "discover_shards_mine", + "add_mercenaries_to_structure", + "upgrade" + ] + }, + { + "address": "0x7a48ff67963712fed7b4577a994e74393423ec5c4f07738740dc82c994c9076", + "class_hash": "0x6feebc73f723c38719ee76e2499d8dd53fc1a2c9a30027ef28eeb642944cb8d", + "abi": [ + { + "type": "impl", + "name": "map_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "map_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "MapSystemsImpl", + "interface_name": "s1_eternum::systems::map::contracts::IMapSystems" + }, + { + "type": "enum", + "name": "s1_eternum::models::position::Direction", + "variants": [ + { + "name": "East", + "type": "()" + }, + { + "name": "NorthEast", + "type": "()" + }, + { + "name": "NorthWest", + "type": "()" + }, + { + "name": "West", + "type": "()" + }, + { + "name": "SouthWest", + "type": "()" + }, + { + "name": "SouthEast", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::map::contracts::IMapSystems", + "items": [ + { + "type": "function", + "name": "explore", + "inputs": [ + { + "name": "unit_id", + "type": "core::integer::u32" + }, + { + "name": "direction", + "type": "s1_eternum::models::position::Direction" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::map::contracts::map_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-map_systems", + "selector": "0x6ed75404dd23a9d2825f9459d23848133ae3e81050e63b85c0d37264695d998", + "systems": [ + "explore", + "upgrade" + ] + }, + { + "address": "0x3a3d2be02acf0e88dfd22e38dbb447e813250da83024d23109791acf1112ef1", + "class_hash": "0x6a06d111761024260598c4cab0bad06ba15ec09331b176f9223e62ef2093508", + "abi": [ + { + "type": "impl", + "name": "name_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "name_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "NameSystemsImpl", + "interface_name": "s1_eternum::systems::name::contracts::INameSystems" + }, + { + "type": "interface", + "name": "s1_eternum::systems::name::contracts::INameSystems", + "items": [ + { + "type": "function", + "name": "set_address_name", + "inputs": [ + { + "name": "name", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_entity_name", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "name", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::name::contracts::name_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-name_systems", + "selector": "0x45b86c7ee3f36393c4d14a0da3c58fdf406677137f1d840c53f01e8544e3b80", + "systems": [ + "set_address_name", + "set_entity_name", + "upgrade" + ] + }, + { + "address": "0x5cb00d1d30c81404daa4dc084cbfb1ecb2114f2367fa77f5b04912bd8abd7e1", + "class_hash": "0x57f36faf3ab21b910521f361bbc7bcd09758bc4ba46015f2bad0f15f6bf53ff", + "abi": [ + { + "type": "impl", + "name": "ownership_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "ownership_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "OwnershipSystemsImpl", + "interface_name": "s1_eternum::systems::ownership::contracts::IOwnershipSystems" + }, + { + "type": "interface", + "name": "s1_eternum::systems::ownership::contracts::IOwnershipSystems", + "items": [ + { + "type": "function", + "name": "transfer_ownership", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "new_owner", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::ownership::contracts::ownership_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-ownership_systems", + "selector": "0x5045fbdb3ad9b695ea6f218e57a3ca2ce575a2964f30e15f2e710f691aa0622", + "systems": [ + "transfer_ownership", + "upgrade" + ] + }, + { + "address": "0x494564ed0fb05d3137060064c4fb6a7216bf31c8e45639ae313ff80db5b29c1", + "class_hash": "0x35557504fbd9f5c2e6a8f2aa174cff1ec997ce480b872464c120a345d4dfb40", + "abi": [ + { + "type": "impl", + "name": "production_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "production_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ProductionContractImpl", + "interface_name": "s1_eternum::systems::production::contracts::IProductionContract" + }, + { + "type": "enum", + "name": "s1_eternum::models::position::Direction", + "variants": [ + { + "name": "East", + "type": "()" + }, + { + "name": "NorthEast", + "type": "()" + }, + { + "name": "NorthWest", + "type": "()" + }, + { + "name": "West", + "type": "()" + }, + { + "name": "SouthWest", + "type": "()" + }, + { + "name": "SouthEast", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "s1_eternum::models::resource::production::building::BuildingCategory", + "variants": [ + { + "name": "None", + "type": "()" + }, + { + "name": "Castle", + "type": "()" + }, + { + "name": "Resource", + "type": "()" + }, + { + "name": "Farm", + "type": "()" + }, + { + "name": "FishingVillage", + "type": "()" + }, + { + "name": "Barracks", + "type": "()" + }, + { + "name": "Market", + "type": "()" + }, + { + "name": "ArcheryRange", + "type": "()" + }, + { + "name": "Stable", + "type": "()" + }, + { + "name": "TradingPost", + "type": "()" + }, + { + "name": "WorkersHut", + "type": "()" + }, + { + "name": "WatchTower", + "type": "()" + }, + { + "name": "Walls", + "type": "()" + }, + { + "name": "Storehouse", + "type": "()" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u8" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::position::Coord", + "members": [ + { + "name": "x", + "type": "core::integer::u32" + }, + { + "name": "y", + "type": "core::integer::u32" + } + ] + }, + { + "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": "interface", + "name": "s1_eternum::systems::production::contracts::IProductionContract", + "items": [ + { + "type": "function", + "name": "create_building", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "directions", + "type": "core::array::Span::" + }, + { + "name": "building_category", + "type": "s1_eternum::models::resource::production::building::BuildingCategory" + }, + { + "name": "produce_resource_type", + "type": "core::option::Option::" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "destroy_building", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "building_coord", + "type": "s1_eternum::models::position::Coord" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "pause_building_production", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "building_coord", + "type": "s1_eternum::models::position::Coord" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "resume_building_production", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "building_coord", + "type": "s1_eternum::models::position::Coord" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "burn_other_resources_for_labor_production", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "resource_types", + "type": "core::array::Span::" + }, + { + "name": "resource_amounts", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "burn_labor_resources_for_other_production", + "inputs": [ + { + "name": "from_entity_id", + "type": "core::integer::u32" + }, + { + "name": "labor_amounts", + "type": "core::array::Span::" + }, + { + "name": "produced_resource_types", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "burn_other_predefined_resources_for_resources", + "inputs": [ + { + "name": "from_entity_id", + "type": "core::integer::u32" + }, + { + "name": "produced_resource_types", + "type": "core::array::Span::" + }, + { + "name": "production_tick_counts", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::production::contracts::production_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-production_systems", + "selector": "0x6d70095d0a6ca6efc41633bafa4ac5202f1f83c75afbba78987b58f495a4c0", + "systems": [ + "create_building", + "destroy_building", + "pause_building_production", + "resume_building_production", + "burn_other_resources_for_labor_production", + "burn_labor_resources_for_other_production", + "burn_other_predefined_resources_for_resources", + "upgrade" + ] + }, + { + "address": "0x58b1609142c8f9e547124a7c628bd2b7b16d4fd75086b0fc2745f5531436bad", + "class_hash": "0x624789ed60dbb1ffa7075f19b968fe21082b4a2e24649624450f6a032867404", + "abi": [ + { + "type": "impl", + "name": "realm_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "realm_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "RealmSystemsImpl", + "interface_name": "s1_eternum::systems::realm::contracts::IRealmSystems" + }, + { + "type": "interface", + "name": "s1_eternum::systems::realm::contracts::IRealmSystems", + "items": [ + { + "type": "function", + "name": "create", + "inputs": [ + { + "name": "owner", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "realm_id", + "type": "core::integer::u32" + }, + { + "name": "frontend", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "upgrade_level", + "inputs": [ + { + "name": "realm_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "quest_claim", + "inputs": [ + { + "name": "quest_id", + "type": "core::integer::u32" + }, + { + "name": "entity_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::realm::contracts::realm_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-realm_systems", + "selector": "0x3b4cc14cbb49692c85e1b132ac8536fe7d0d1361cd2fb5ba8df29f726ca02d2", + "systems": [ + "create", + "upgrade_level", + "quest_claim", + "upgrade" + ] + }, + { + "address": "0xdcc1e0050f98035c2c7f6471d72cbf0ec35a7479a621cee776a6c0adc50cd0", + "class_hash": "0x7361d220d222dce19ff7a7334da11cfe9b9ef8bdeb2ab068d6f0b435db0255a", + "abi": [ + { + "type": "impl", + "name": "resource_bridge_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "resource_bridge_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ResourceBridgeImpl", + "interface_name": "s1_eternum::systems::resources::contracts::resource_bridge_systems::IResourceBridgeSystems" + }, + { + "type": "struct", + "name": "core::integer::u256", + "members": [ + { + "name": "low", + "type": "core::integer::u128" + }, + { + "name": "high", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::resources::contracts::resource_bridge_systems::IResourceBridgeSystems", + "items": [ + { + "type": "function", + "name": "deposit_initial", + "inputs": [ + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "recipient_realm_id", + "type": "core::integer::u32" + }, + { + "name": "amount", + "type": "core::integer::u256" + }, + { + "name": "client_fee_recipient", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "deposit", + "inputs": [ + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "through_bank_id", + "type": "core::integer::u32" + }, + { + "name": "recipient_realm_id", + "type": "core::integer::u32" + }, + { + "name": "amount", + "type": "core::integer::u256" + }, + { + "name": "client_fee_recipient", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "start_withdraw", + "inputs": [ + { + "name": "through_bank_id", + "type": "core::integer::u32" + }, + { + "name": "from_realm_id", + "type": "core::integer::u32" + }, + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "amount", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "finish_withdraw", + "inputs": [ + { + "name": "through_bank_id", + "type": "core::integer::u32" + }, + { + "name": "from_entity_id", + "type": "core::integer::u32" + }, + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "recipient_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "client_fee_recipient", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::resources::contracts::resource_bridge_systems::resource_bridge_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-resource_bridge_systems", + "selector": "0x4f94ba58902810acb653eeeb2a36e5f8f5a7096ceac7a2705c52732281e3cd2", + "systems": [ + "deposit_initial", + "deposit", + "start_withdraw", + "finish_withdraw", + "upgrade" + ] + }, + { + "address": "0x60f8d9d7d458569be5df3bb56bb1b27cc77a30c1aab5f1a541380e6542e9668", + "class_hash": "0x26911f009cb5948dcbf27e3782f3572436f26d7e70bbe87957819015b67f20c", + "abi": [ + { + "type": "impl", + "name": "resource_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "resource_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ResourceSystemsImpl", + "interface_name": "s1_eternum::systems::resources::contracts::resource_systems::IResourceSystems" + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::resources::contracts::resource_systems::IResourceSystems", + "items": [ + { + "type": "function", + "name": "approve", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "recipient_entity_id", + "type": "core::integer::u32" + }, + { + "name": "resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "send", + "inputs": [ + { + "name": "sender_entity_id", + "type": "core::integer::u32" + }, + { + "name": "recipient_entity_id", + "type": "core::integer::u32" + }, + { + "name": "resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "pickup", + "inputs": [ + { + "name": "recipient_entity_id", + "type": "core::integer::u32" + }, + { + "name": "owner_entity_id", + "type": "core::integer::u32" + }, + { + "name": "resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::resources::contracts::resource_systems::resource_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-resource_systems", + "selector": "0x626970a749fd6b8230875061236c1a9446ae65287beb6107d5b88e5ca078019", + "systems": [ + "approve", + "send", + "pickup", + "upgrade" + ] + }, + { + "address": "0x3819b2fccc14b8dd7c885c33f835fd431742fb551c1fdc4b318fca3f6acf311", + "class_hash": "0x59c55e3ca487de1ccb5b6cf174ac5c70d98b4af6db76b9987843dc08520cef3", + "abi": [ + { + "type": "impl", + "name": "season_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "season_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "SeasonSystemsImpl", + "interface_name": "s1_eternum::systems::season::contracts::ISeasonSystems" + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u32, core::integer::u16)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u32, core::integer::u16)>" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::season::contracts::ISeasonSystems", + "items": [ + { + "type": "function", + "name": "register_to_leaderboard", + "inputs": [ + { + "name": "hyperstructures_contributed_to", + "type": "core::array::Span::" + }, + { + "name": "hyperstructure_shareholder_epochs", + "type": "core::array::Span::<(core::integer::u32, core::integer::u16)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "claim_leaderboard_rewards", + "inputs": [ + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::season::contracts::season_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-season_systems", + "selector": "0x44e1edf9ca51b11a8c1d6ffc341d3248fdbeebc7e7d3ee6314fee33174860c4", + "systems": [ + "register_to_leaderboard", + "claim_leaderboard_rewards", + "upgrade" + ] + }, + { + "address": "0x5d1adca62d336a5ed93380055103c0ff2de3f7103f932a8e35e290602cb7fce", + "class_hash": "0x291d4795f52427b407b35a8b4d94e001b62d37dcd77faff84b41361e29a4f0d", + "abi": [ + { + "type": "impl", + "name": "swap_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "swap_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "SwapSystemsImpl", + "interface_name": "s1_eternum::systems::bank::contracts::swap::ISwapSystems" + }, + { + "type": "interface", + "name": "s1_eternum::systems::bank::contracts::swap::ISwapSystems", + "items": [ + { + "type": "function", + "name": "buy", + "inputs": [ + { + "name": "bank_entity_id", + "type": "core::integer::u32" + }, + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "resource_type", + "type": "core::integer::u8" + }, + { + "name": "amount", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "sell", + "inputs": [ + { + "name": "bank_entity_id", + "type": "core::integer::u32" + }, + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "resource_type", + "type": "core::integer::u8" + }, + { + "name": "amount", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::bank::contracts::swap::swap_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-swap_systems", + "selector": "0x187f170f62cb2f89334e291ddc0d0f388a855abcdd2b911425fed8304d3fdc3", + "systems": [ + "buy", + "sell", + "upgrade" + ] + }, + { + "address": "0x808453a3b049bcaf1e43d932620977d4002d2005242ae38c36c92e0cbb1b8", + "class_hash": "0x357ca13c3a158d43bc1f5d7c902eefbeadad3a3b43c6228bb5727a78a310d6f", + "abi": [ + { + "type": "impl", + "name": "trade_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "trade_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "TradeSystemsImpl", + "interface_name": "s1_eternum::systems::trade::contracts::trade_systems::ITradeSystems" + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::trade::contracts::trade_systems::ITradeSystems", + "items": [ + { + "type": "function", + "name": "create_order", + "inputs": [ + { + "name": "maker_id", + "type": "core::integer::u32" + }, + { + "name": "maker_gives_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "taker_id", + "type": "core::integer::u32" + }, + { + "name": "taker_gives_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "expires_at", + "type": "core::integer::u64" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "accept_order", + "inputs": [ + { + "name": "taker_id", + "type": "core::integer::u32" + }, + { + "name": "trade_id", + "type": "core::integer::u32" + }, + { + "name": "maker_gives_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "taker_gives_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "accept_partial_order", + "inputs": [ + { + "name": "taker_id", + "type": "core::integer::u32" + }, + { + "name": "trade_id", + "type": "core::integer::u32" + }, + { + "name": "maker_gives_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "taker_gives_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "taker_gives_actual_amount", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "cancel_order", + "inputs": [ + { + "name": "trade_id", + "type": "core::integer::u32" + }, + { + "name": "return_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::trade::contracts::trade_systems::trade_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-trade_systems", + "selector": "0x25205919a9c1be9b6b4c75d8435d21e748b4144575e3ed50d453ebd586f1467", + "systems": [ + "create_order", + "accept_order", + "accept_partial_order", + "cancel_order", + "upgrade" + ] + }, + { + "address": "0x65571a65aaf94bcff7d57b3cfcfcffdc2478417c89f63d44da2fec052507887", + "class_hash": "0x4dcd50d3a264279a3745d63f7b48d1753991091101ff4bd9b930de1f0d9fa16", + "abi": [ + { + "type": "impl", + "name": "travel_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "travel_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "TravelSystemsImpl", + "interface_name": "s1_eternum::systems::transport::contracts::travel_systems::ITravelSystems" + }, + { + "type": "enum", + "name": "s1_eternum::models::position::Direction", + "variants": [ + { + "name": "East", + "type": "()" + }, + { + "name": "NorthEast", + "type": "()" + }, + { + "name": "NorthWest", + "type": "()" + }, + { + "name": "West", + "type": "()" + }, + { + "name": "SouthWest", + "type": "()" + }, + { + "name": "SouthEast", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::transport::contracts::travel_systems::ITravelSystems", + "items": [ + { + "type": "function", + "name": "travel_hex", + "inputs": [ + { + "name": "travelling_entity_id", + "type": "core::integer::u32" + }, + { + "name": "directions", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::transport::contracts::travel_systems::travel_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-travel_systems", + "selector": "0x309ed1eaf532082015ddf768dfea6a2d7b6c78f61892005f9af6efe505f3317", + "systems": [ + "travel_hex", + "upgrade" + ] + }, + { + "address": "0x2aeef101d4a21b0153def740aa3aeea43d0be69bcab8052763800c297682306", + "class_hash": "0x24ad1ba7ad9d438f816ae4e8c1451c5db113e15dcac0fde483e3472b55ae715", + "abi": [ + { + "type": "impl", + "name": "troop_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "troop_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "TroopContractImpl", + "interface_name": "s1_eternum::systems::combat::contracts::troop_systems::ITroopContract" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::combat::Troops", + "members": [ + { + "name": "knight_count", + "type": "core::integer::u64" + }, + { + "name": "paladin_count", + "type": "core::integer::u64" + }, + { + "name": "crossbowman_count", + "type": "core::integer::u64" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::combat::contracts::troop_systems::ITroopContract", + "items": [ + { + "type": "function", + "name": "army_create", + "inputs": [ + { + "name": "army_owner_id", + "type": "core::integer::u32" + }, + { + "name": "is_defensive_army", + "type": "core::bool" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "army_delete", + "inputs": [ + { + "name": "army_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "army_buy_troops", + "inputs": [ + { + "name": "army_id", + "type": "core::integer::u32" + }, + { + "name": "payer_id", + "type": "core::integer::u32" + }, + { + "name": "troops", + "type": "s1_eternum::models::combat::Troops" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "army_merge_troops", + "inputs": [ + { + "name": "from_army_id", + "type": "core::integer::u32" + }, + { + "name": "to_army_id", + "type": "core::integer::u32" + }, + { + "name": "troops", + "type": "s1_eternum::models::combat::Troops" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::combat::contracts::troop_systems::troop_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-troop_systems", + "selector": "0x36dc6a7aac90e16df98cc6cef8b971d3432a436339f92352921ab2d542363b0", + "systems": [ + "army_create", + "army_delete", + "army_buy_troops", + "army_merge_troops", + "upgrade" + ] + } + ], + "models": [ + { + "members": [], + "class_hash": "0x15f3f6904f0500d87d6c57ababf28b0dffaf929e7b74701be185cd09fcd82d3", + "tag": "s1_eternum-AddressName", + "selector": "0x42709c94217aac1ce5900d6bb822dc5e203071e9f184165b4d32144ff0e326c" + }, + { + "members": [], + "class_hash": "0x28f9ddc0b8df7e2dd4ebaae28edc221d3755cb2e2172353364bd6b05f39209d", + "tag": "s1_eternum-Army", + "selector": "0x16cd0112383678968a6dcc0476cc193ce544a0f2cb27bbf911b519cc66cb2e1" + }, + { + "members": [], + "class_hash": "0xf99d18de1389cd897d7c2eaac1d9a23eef4f2ee40f6fb017adfa59a6c6fe55", + "tag": "s1_eternum-ArrivalTime", + "selector": "0x15839d06bf0dd2c3ae1fef464555f3016e153bd6bac0cf62c5c1de9926eadd" + }, + { + "members": [], + "class_hash": "0xd5d3a9a0f87f881bb0c62d6383e0c1914a3263dd2788a72641ce15eba55345", + "tag": "s1_eternum-Bank", + "selector": "0x46318cd2cff6337f8934ee9e3cbe3ecf1ccb5b1b57dd1711f3b1eb7d7327aab" + }, + { + "members": [], + "class_hash": "0x58484f4b87730ec90812b21b0071478121b549694230ccfc380fe5bc7ce04bc", + "tag": "s1_eternum-BankConfig", + "selector": "0x2a590ba3496e4ade5081de7b2de27ed15ecd709e8d88c89f1eeafca9c852079" + }, + { + "members": [], + "class_hash": "0x6108b6e1f6786a67f3864acec676ff7fe33772797a0c771878dd769aed59c0", + "tag": "s1_eternum-Battle", + "selector": "0x169c07a291ef2ba4cfb31ba5b81d45fc49f6a02169c766ac950f823879152fc" + }, + { + "members": [], + "class_hash": "0x722133bc4e72dec6f3ffb973622227b9f4d51001bf369832e44bca4cd90e414", + "tag": "s1_eternum-BattleConfig", + "selector": "0x506ef0f4b8e567ce2fd94517984758871ac3f9f965426073203aefdeec4fd21" + }, + { + "members": [], + "class_hash": "0x26132d9d528638aa4fdc6377b4f342982e15a796292ee9d8a7d9ff443f035b0", + "tag": "s1_eternum-Building", + "selector": "0x383bc83e69df10c0e58ce05aef021bb904346af8b28de6dd09ed16a497fae29" + }, + { + "members": [], + "class_hash": "0x369a5260d31d6edd5c3d19b487fa8a2c4bd293845e804cd794a7f00f1fcc35c", + "tag": "s1_eternum-BuildingCategoryPopConfig", + "selector": "0x2b847fd482c7e77364e1a29d18c690661dee59631db5538e063065cd28a9157" + }, + { + "members": [], + "class_hash": "0xbcb13c22c1c2e177c9a7953f6db153d0b1435baa293e2d7fdc7aa22f380f53", + "tag": "s1_eternum-BuildingConfig", + "selector": "0x10ab036ccd4d1e968f0b3b3333d59911fd7f96cbd0fe73c9d639b80aaf10ef4" + }, + { + "members": [], + "class_hash": "0xf34fedb8b8bea2b87c8e17c6db5f2b284e46513b186cdb115464aacf72994d", + "tag": "s1_eternum-BuildingGeneralConfig", + "selector": "0x32c22b1ba3f414eff9d3684771ddf9a576adf879fb9db155d153e04092f06d1" + }, + { + "members": [], + "class_hash": "0x6ad15a23139b6577c1adfc3d8d2ad5cf4f55230f17f2ed957cef9a70bdac286", + "tag": "s1_eternum-BuildingQuantityv2", + "selector": "0x7f0d990d9539f02e2536fb9077c112528c214d6250597813b5637fcdf4faea1" + }, + { + "members": [], + "class_hash": "0x5a650bc0e579da2efb53a5ff5d49ace7a4836831001fe05a66de94e8a200fe", + "tag": "s1_eternum-CapacityCategory", + "selector": "0x77c5b56819d589d4ccf66c86b519f61fea422fadc3011bce01b68b36312a931" + }, + { + "members": [], + "class_hash": "0xff54f724bb9d25b28e52c53402ff004324f9bf8551d21666569798e982537", + "tag": "s1_eternum-CapacityConfig", + "selector": "0x329d78ba810d64a65e56dc6d9648681b25cf5077b2b2a1b006b4280b4a46941" + }, + { + "members": [], + "class_hash": "0x10f6568d82fcf4a14aa2063fa811ceac7bd52923fe06e5c0c89d23d2959ba47", + "tag": "s1_eternum-Contribution", + "selector": "0x5610d7fde56cbda8d6714af14cb51989d77e24ffd867561e6f6ce36a5c8cda0" + }, + { + "members": [], + "class_hash": "0x4ca6ae3ddda2725df1d3f656b45d376bff55f2556fc63188f33436e54cad458", + "tag": "s1_eternum-DetachedResource", + "selector": "0x5fbe88f3b3abf51a9a1e58a0423a555786a2e557f480a7f804a6a89afee5b2c" + }, + { + "members": [], + "class_hash": "0x10c87458dd8a14eba7aa1771e8288f46be3b60a738d5dc0af7f45eb2ed4e326", + "tag": "s1_eternum-EntityName", + "selector": "0x4d2ad6e4875bb784306ee539c87d6ea84bd77cd3e7a6a98c7cb073003131c80" + }, + { + "members": [], + "class_hash": "0x3ae0ab3e0bc8e3ad2288634e6a286bfb08d466a91e9d6a2e37f025bf1d5749f", + "tag": "s1_eternum-EntityOwner", + "selector": "0x45cac7458f40ce855a5d63cf402a25425ad1a761fa4a2657c722d124e6aa540" + }, + { + "members": [], + "class_hash": "0x5ced63836e14228fb5398d583aa7e603f011951859784a767a0da67d5d1ee82", + "tag": "s1_eternum-Epoch", + "selector": "0x7538402a46c4b333f00ed41744e67a26bb14f26753fdbe032f0ff218f83ff6a" + }, + { + "members": [], + "class_hash": "0x5893d1ef16dd422bf83ed0622527c59e061c0e80431c2dd7bee08b4d1445071", + "tag": "s1_eternum-Guild", + "selector": "0x1005f12b60fb0b9955acaa3d2ef4e839a9d9ca0de11ba53c74c3a4b5d324142" + }, + { + "members": [], + "class_hash": "0x503feaac2cbb9b6e3568daa741bd89db2a9206d315fca008ea4cf44d87dce88", + "tag": "s1_eternum-GuildMember", + "selector": "0x4e1c4b07b2c1113f22a01d146dbe1224007cd027c7681007de3828761f92c1" + }, + { + "members": [], + "class_hash": "0x51e97f9e0e1b92c53d309c07a145d8786aaec64518b87c3bb970d4685759081", + "tag": "s1_eternum-GuildWhitelist", + "selector": "0x58ba641332348c46d0aad19ab754598e63a4d8736db7ef9654918c79d6ad071" + }, + { + "members": [], + "class_hash": "0x4eb153ffe6fce442cee9384e6a7e95159480a4aee2c563b74c7b1b50eff73d6", + "tag": "s1_eternum-Health", + "selector": "0x2f45d2395ab511a8e093bc7830fe25b18b387f360e515107021e75eaea474b5" + }, + { + "members": [], + "class_hash": "0x490bea09a254afb811b6a26d88507598193d366a05fe6e9d28455ca51930c9b", + "tag": "s1_eternum-Hyperstructure", + "selector": "0x5894102a0f9c53bf2298d3bdaf4b0f8a0f92777d57ff0d585ca3b5c5b25b7bc" + }, + { + "members": [], + "class_hash": "0x47718f195842c1e7de343f276874d6cbd4e3af43e46d91779219bb775f07b30", + "tag": "s1_eternum-HyperstructureConfig", + "selector": "0x555fffbe98ed821a2943490fa9ec2fd479940fb1a06434031a6ed49fce06413" + }, + { + "members": [], + "class_hash": "0x298c3a93889760e341ab90f7ec3432fb9f564ec90ab6dae8ca160cb477fd64b", + "tag": "s1_eternum-HyperstructureResourceConfig", + "selector": "0x344c119cf22cf69ac0954dadeb846930657d9d80e550aec607fe0d285e2d1b6" + }, + { + "members": [], + "class_hash": "0x5f9e1048bc3fcab978c16ea514c906e08a6a908a551b01c9d8d56991eb3be12", + "tag": "s1_eternum-Leaderboard", + "selector": "0x2731a4b2cc1d25c3605cbd9f58fb010860aa57f2fd978b012309815622bad38" + }, + { + "members": [], + "class_hash": "0x6098e4bd9970a954a3a7581ae0c272d7b0e4134bd1b701f376480627678c260", + "tag": "s1_eternum-LeaderboardEntry", + "selector": "0x64d192ab245076ad4a8fc1065a8ed826370b3b9ac74e19e5ba62c4778afbd0e" + }, + { + "members": [], + "class_hash": "0x278cfb9c271d230ae30c965120df0ceb1772b42982abceb4c5696afc5a91d3c", + "tag": "s1_eternum-LeaderboardRegisterContribution", + "selector": "0x19570cd480372cee10d9c139bc552086c7b8222c1bc012113bbfd39b56a7e8" + }, + { + "members": [], + "class_hash": "0x6ea5e22c4403403c4ef68ce5789b68da3ff18607693fb048bae52293204ce9b", + "tag": "s1_eternum-LeaderboardRegisterShare", + "selector": "0x75ac5be2d09aae03d624ea55302b474702a77e282b53b6ae223e7e2f2fcf331" + }, + { + "members": [], + "class_hash": "0x94162e9c662781d890a9ab0dfba07a5ec2248410ef1b42d4913e1a4a489cc6", + "tag": "s1_eternum-LeaderboardRegistered", + "selector": "0x23cb90d19983cc3481c16b0daca97a2e9d61ccca2887ec43a37e8d0c8bc8a82" + }, + { + "members": [], + "class_hash": "0x50bdffa18201a51190d38b3a83d62dbc9314b5634b8543f92c6fa692fbed6be", + "tag": "s1_eternum-LeaderboardRewardClaimed", + "selector": "0x4a2604638f545e33a48aaa88165cdf7c14d2e3e90dc0ffef45efaafce0a7acb" + }, + { + "members": [], + "class_hash": "0xe08cd3f99dea6cb5ac7af83788cf444cc5961187685f2c54179b990d3a4ae7", + "tag": "s1_eternum-LevelingConfig", + "selector": "0x1ae8c072019c12fbf04cba6e1a71a0a645dffc7fff83847d97ef2229e3abb33" + }, + { + "members": [], + "class_hash": "0x41389837334c7959eddc48a3a3c0b3f8d77ea4f0be3d5b908087873323fc3f6", + "tag": "s1_eternum-Liquidity", + "selector": "0x4ba2cf13ce80401e973629d0ba586aad1cae4ac3cf68ed3140f3373d361659" + }, + { + "members": [], + "class_hash": "0x2e6bbce3307779bb4e22bfa12b254f648bda3e5667bb4aff23a189ee68a0ecb", + "tag": "s1_eternum-MapConfig", + "selector": "0xc723bc276585620edab428548e0c62b996567932757495abf2346153959bbd" + }, + { + "members": [], + "class_hash": "0x3e5a538297e5b4a973a580d26b347779d457a0813e552e71d56ac9347d143b0", + "tag": "s1_eternum-Market", + "selector": "0x1fcfb4aa02fa062c2f9fe4a658759a4cbe73fc5db42c595184e770c9076750a" + }, + { + "members": [], + "class_hash": "0x3eb553163a235623d1a4cd887565391f6183aef59993752b018fdcd99e7ec6e", + "tag": "s1_eternum-MercenariesConfig", + "selector": "0x76cec8905e7623b482bec7afebbbd87f2556ffa6068c887ff2fc9e8ef97373a" + }, + { + "members": [], + "class_hash": "0x4e9acf58624786c7d118f4d0a1eb23bd2dccb7b7ab1755b012a3b0412af70f9", + "tag": "s1_eternum-Message", + "selector": "0x3ce31878ad62fd485eb46bdbd403bbe7daf2e544c15d386dcc7ac519a10678a" + }, + { + "members": [], + "class_hash": "0x78bf5c45268df4bc02c367db341e1aa4331857c21304683feb2e65306204bf9", + "tag": "s1_eternum-Movable", + "selector": "0x2f6cc9ab06c7e016297339e078c3755e568fce8048462de2033e8d42e5d94e0" + }, + { + "members": [], + "class_hash": "0x4dff527f0c7b7b73e3ac91dab4ad66ae4dae4f3616cb6338dd4bad8c3246382", + "tag": "s1_eternum-Orders", + "selector": "0x3d92d333e580695c5676529fc9b81f0fdab316ad7385d7c362ea7074413b99a" + }, + { + "members": [], + "class_hash": "0x60330a73e8c079c062165120e11d002eafa7a8b4970d0b7dc3e73904e014544", + "tag": "s1_eternum-OwnedResourcesTracker", + "selector": "0x1a8f5317e84356a084dbf2555cdf3c429e285e6f161654a678eaf73c137e52b" + }, + { + "members": [], + "class_hash": "0x6619f0441ff7330f6291777da5a95a3121189f8c5b136cc5f3e85cc6f728f44", + "tag": "s1_eternum-Owner", + "selector": "0x35bfd77bc5bbf7f39cbe2c9ced8de632af641500a672e876dffbc89cc10441d" + }, + { + "members": [], + "class_hash": "0xf29140e158b9089a938917604b82d2ec14daa08f21f9d742a97cf17f30c18", + "tag": "s1_eternum-Population", + "selector": "0x6f2e4171b9907e7629eea2a19485a64d97f104121c4337452de122f897c0be8" + }, + { + "members": [], + "class_hash": "0x7e5024ab76ebcd616507b1998768d29b5372c54de3ac88bcd6fdfafcbf67720", + "tag": "s1_eternum-PopulationConfig", + "selector": "0x441576bc8f9ac5063b8ca88eeae1b33156078c75de8cbdf506139e8450b78cf" + }, + { + "members": [], + "class_hash": "0x2c8600cc8411484671075036b8dca8f03524e5b0503617e36ac306b95cf87fd", + "tag": "s1_eternum-Position", + "selector": "0xe340ea49c8540928b5c4010db9108cd13f719d89a5f7b18cb30902e01104ae" + }, + { + "members": [], + "class_hash": "0x1dbf495a2614ebff450da2c0b88a9ada07716e5c3546c7dab92691e40bcee21", + "tag": "s1_eternum-ProductionConfig", + "selector": "0x38bacafc2ceed54f95033f7529efa9559f877aea41db072b797235cee383a06" + }, + { + "members": [], + "class_hash": "0xef748f29f1ce62c69e4c0bfcaaca0cc20c90d69411fbbfabb5883e53444c94", + "tag": "s1_eternum-Progress", + "selector": "0x510024ae0ff452228a083d9fb3aba5e3521c107ab7a84246efcac7bcdfddcb5" + }, + { + "members": [], + "class_hash": "0x2eb9f6f9ea6824c466ded7da0b97f77d4b54be4e0b5180c0f0696ec7311c142", + "tag": "s1_eternum-Protectee", + "selector": "0x60fac544ae19c3bdb391a986108823d052d2d65891459589b6f3c698f206ce1" + }, + { + "members": [], + "class_hash": "0x756cbd91b86e9eb15a8454b066b7e593cbf9a121ee1aee4bcd34023d5076591", + "tag": "s1_eternum-Protector", + "selector": "0x7c858e96804191100397f8a4683ca93d81d7d341dc68d163c7cea59dc974ec4" + }, + { + "members": [], + "class_hash": "0xfd49d43ef8943b2e262ca7ce1d43c5187969b3cee4007f4d0e177b92981c03", + "tag": "s1_eternum-Quantity", + "selector": "0x8646cb000744430c5d95cf5616ce8ba4913401760158aa1ad6738475a36591" + }, + { + "members": [], + "class_hash": "0xdeb7bcee3ae613715225d0980526d7c9d4735829be2e7f080c914876bf5ff3", + "tag": "s1_eternum-QuantityTracker", + "selector": "0x5f336941c172ea1a837a1c82d98ff802817688e6e5f66a32ac3a9ff320cfb18" + }, + { + "members": [], + "class_hash": "0x1922623eed2f3eb9d7d770af2514efcd2d40e6773e9c2c1944bc2741e07b3b7", + "tag": "s1_eternum-Quest", + "selector": "0x5748c683cbda725287adb63a5b5c7c471d1d782f2779609d4f66efeda03ff68" + }, + { + "members": [], + "class_hash": "0x59846aef7554c61f02aa00ba350ed1001b00b5d7a26e3c66c95901bc7bfd797", + "tag": "s1_eternum-QuestRewardConfig", + "selector": "0x2f5fb5139fc5144da42495b348183b95708defe554ca9d6768498cccecb0066" + }, + { + "members": [], + "class_hash": "0x5ab6ce70c4041941408e527f5e677cf0e68b9ca4bbfcaaa3c7dcd6deba090b6", + "tag": "s1_eternum-Realm", + "selector": "0x6b15a2a9c9d60eefc6c82731f77ae2167b6abc68a909e06ed4f0a0c20a447ae" + }, + { + "members": [], + "class_hash": "0x271add51127069822688df385865088bb78d39040babb928223896e9cf90a60", + "tag": "s1_eternum-RealmLevelConfig", + "selector": "0x7a5266268ba6febaa9248d1ec5543f7731c07391553c9d9b089023790344d78" + }, + { + "members": [], + "class_hash": "0x56c6a40b5d709cd4c5669c7a92664b7220ab156e793b6d0df694baa0d29b99", + "tag": "s1_eternum-RealmMaxLevelConfig", + "selector": "0x23ce30f931b91b01eb8a34f92c50de018fa49e05b9ea5cd0b4350a4c94fa7a7" + }, + { + "members": [], + "class_hash": "0x295211961c83e77d8c315214c3ac2bff8890e822b3b9f7e244af4a905cfd53e", + "tag": "s1_eternum-Resource", + "selector": "0x6bd14dc16a7f05252fcf2fb66630b8f05d39d75b36f55013334a4b3bb8fec57" + }, + { + "members": [], + "class_hash": "0x32648f303c21fcdc338110b1b5a06b419832c5432787228d9bfe330ff65ebfd", + "tag": "s1_eternum-ResourceAllowance", + "selector": "0xf21a6f41bed8651cea6e86ea4d796e7c2be9e0e798b48b971b82f489e68a3d" + }, + { + "members": [], + "class_hash": "0x7d04749bc8b5042f74fd6cf08f00dd4b1a1af9da5db5f9d0e21da9eb574620a", + "tag": "s1_eternum-ResourceBridgeConfig", + "selector": "0x5b58fe2f01c7767c5885c18997654853caf0765fbd6e72d2f54b8d8163a2105" + }, + { + "members": [], + "class_hash": "0x369998561431ccfd4977aab82c53ae491bae58a867ee91ce77701c68c64d2bc", + "tag": "s1_eternum-ResourceBridgeFeeSplitConfig", + "selector": "0xda0261867f8d357360b3d3c651e6f26a72caaa5401021843d7515acf5a7300" + }, + { + "members": [], + "class_hash": "0x505f9ac2bcabc71c14489b2327e757a0c1d9b0721257c7cbaae10a5f4c90c6", + "tag": "s1_eternum-ResourceBridgeWhitelistConfig", + "selector": "0x3af6fef221ed38a459a75bf2c20c5534745e6e9fa3d6c9df899c43a6aee1eee" + }, + { + "members": [], + "class_hash": "0x6c52d4ea5109c6be197e8f64fda6ebf06f8a9fbfc9ae44c4fc479817bc46d33", + "tag": "s1_eternum-ResourceCost", + "selector": "0x5e5b5b182766e23d14ca1bde33304c8b6c2e348d037073fa87cb23adb3acd2d" + }, + { + "members": [], + "class_hash": "0x32512653d00dbf62a310e75a52a4c555c66dea91eae09adadb4a9c26ec6e065", + "tag": "s1_eternum-ResourceTransferLock", + "selector": "0xfb5fa4535e4bca521abeb02621675a6550ea74c791f4342f7e5a3a2d6c19b0" + }, + { + "members": [], + "class_hash": "0x5e33063c9c71448f97e418619192c0bb534cc1d6b130690675020b12c53abc1", + "tag": "s1_eternum-Season", + "selector": "0x7a6034c750e0dc9a1fad3776dd6e6c6697eb36993aed5228e7729206dd560ab" + }, + { + "members": [], + "class_hash": "0x440e7887f604b152a04b9de6fc119d9278259cec2ca4050133b951d28ac9897", + "tag": "s1_eternum-SeasonAddressesConfig", + "selector": "0xa98bd556a5b641497f413f155e4bdce557ba25a48080540ac1e827d0dae5b3" + }, + { + "members": [], + "class_hash": "0x488068b6a2aeab65ba68fc47404d00482be3e34473f557e5fa189a2ed916679", + "tag": "s1_eternum-SeasonBridgeConfig", + "selector": "0x53dcfaf952a8e333e8212bf13c39cfb7d02f26ca8cf47aba06e4a90282481e3" + }, + { + "members": [], + "class_hash": "0x59de73957bcca5ee7a6523eaf9e450d30e5a8d179b756d59a4ad76bd39fe31d", + "tag": "s1_eternum-SettlementConfig", + "selector": "0x4d38d3858af58aab284639984a674293c5689216c5e0b9f3574aef9f3a9dad0" + }, + { + "members": [], + "class_hash": "0x2b346ce8db28ee8e45ff1dd81535f00b044a3fdc5c8841f4de9106afbd22a16", + "tag": "s1_eternum-SpeedConfig", + "selector": "0x56c1e6bea9218e0afdd55a3cc2c5360d969a6a0ccf3f6d1078e4b200cce51cc" + }, + { + "members": [], + "class_hash": "0x234946625a5b48f2e490906ab36e28c0a24d6c5778276475c6bf8034b2ace8a", + "tag": "s1_eternum-Stamina", + "selector": "0x1b2f9a5ab3ea1bc2565fc5cc30f432b41848f7909b64fd3d97d76dcddacbd3d" + }, + { + "members": [], + "class_hash": "0x38bf80ee86dca16edc5ec0302d52efc5b5f01672c3ef09b49aee393d5de8fde", + "tag": "s1_eternum-StaminaConfig", + "selector": "0x1049adf44800338362f91c904678f82fa47fd0ea0828711bee3e36bee63b97e" + }, + { + "members": [], + "class_hash": "0x626911965fc08d9d620dba8722c90e677371f046248b06f3adcf4390622f287", + "tag": "s1_eternum-StaminaRefillConfig", + "selector": "0x7c6db9d03dc473ddec8a0bb2c50b5988a8af928935daea336bb6f0f766a3b41" + }, + { + "members": [], + "class_hash": "0x8184163f4573706c555f878a960da7dd6dd73e550759c26ddf31bb15b265dd", + "tag": "s1_eternum-Status", + "selector": "0x3ebd20c50f05e81810279f60088898425cb0ae9e35f5ac99359e8552292be24" + }, + { + "members": [], + "class_hash": "0x445850a334dc7395fb4b0773760908c704d6cd343acb309f787364e2d6f027b", + "tag": "s1_eternum-Structure", + "selector": "0x3b407b0e3490f7044ce3870614a93f2a0fcbec02710f0975bfdb6c28fdfbecc" + }, + { + "members": [], + "class_hash": "0x3c90dfd7d56f15d47d5fd20d2ac9eb956788c90c66c8d9c61cd2797114704e9", + "tag": "s1_eternum-StructureCount", + "selector": "0x23b5a2b877c85f0d71bc36b420ec53e12e5ef8369cf1aedffa0bc838eea2dc4" + }, + { + "members": [], + "class_hash": "0x78bcb719dc3c363d315c54e49acf539a6b206f8094a8df13905300c90c54e2c", + "tag": "s1_eternum-TickConfig", + "selector": "0x576d27d39e416d211c923deeebe1505c982fe3aaeb511c7bcb0ef063f566e66" + }, + { + "members": [], + "class_hash": "0x1571af1924102cd1a6b9796935ad85debfc12fd1057c7738f22ab6bf9d0a734", + "tag": "s1_eternum-Tile", + "selector": "0x66c306156fe0c5b2785192d61977ac8475e3cb3dbc5d68f5547ade25fe1f4f2" + }, + { + "members": [], + "class_hash": "0x3e187fcc088b7453ee843c1a4534139b7d1527860c64c609279afcb7bccba93", + "tag": "s1_eternum-Trade", + "selector": "0x6ddb8e334e9c33541fce1e72774d6c43c1057a1057a570f2eb12426f51291" + }, + { + "members": [], + "class_hash": "0x421846bd7dfaea423ad0b9d025d960a20172ddcf321d5e16665ed1c667ecd6a", + "tag": "s1_eternum-TravelFoodCostConfig", + "selector": "0x4201d15b950f8e080217e23d7ef911390c3eddb573f7dc857e56c5ddfc606ab" + }, + { + "members": [], + "class_hash": "0x3a3107b2bf45e26c59666750c41655385ce7ffd19d0c8ac59856b0363105d51", + "tag": "s1_eternum-TravelStaminaCostConfig", + "selector": "0x30011c19eca1b0f0f35a4c6bbdac1e437ae7db4670f3ae445d057ee5516ba6e" + }, + { + "members": [], + "class_hash": "0x2f06311d5311c9345f4675fedd74e2f840ffff25509020fd380426a512d7362", + "tag": "s1_eternum-TroopConfig", + "selector": "0x440013884df718dc78b23b652dc4495f0e74de6e3e26f29993cf97a26e96e37" + }, + { + "members": [], + "class_hash": "0x6212d501854ddd5fb4a76f0020b88166a6ace18c51829d9868bf00495c93c79", + "tag": "s1_eternum-VRFConfig", + "selector": "0x40efcfc7e03b7e498a48587f3e7e535a6ed12eff77adeb65553a8e8092786fa" + }, + { + "members": [], + "class_hash": "0x2441bc3e5725d8632d181e17e1a5997544523f35945c6e4c80e257fb9e4886a", + "tag": "s1_eternum-Weight", + "selector": "0x6a857f799cd0abc86c75a666d024ee52f6e81e856f74bb2137bf2f1a534e0e1" + }, + { + "members": [], + "class_hash": "0x3cf8b4b83c710368da4a168ed462b2049721ba5e20d63197a981321672adbdd", + "tag": "s1_eternum-WeightConfig", + "selector": "0x1198553c941fe946e251e66c8f4f3177f44e59e56ac455dbc269557b7ae4d81" + }, + { + "members": [], + "class_hash": "0x75d683bc6831ab3ed4172aa8e35997c47ee37963062e5fabae8729a2b15b475", + "tag": "s1_eternum-WorldConfig", + "selector": "0x6212a03a10506a6661b44a6685e9d2978709dfdfc8de36fe93d947b939f200a" + } + ], + "events": [ + { + "members": [], + "class_hash": "0x6ce0d1733305e5837a804a2fcaaadc4257b33fbbb9072adfa558552806baba7", + "tag": "s1_eternum-AcceptOrder", + "selector": "0x30b1df6433db61c4a92580a1630c9e5126b5c82be28123a06b62f808ecd522" + }, + { + "members": [], + "class_hash": "0x559dd281303289b1fcfc9e64083749dc41f21da90857b5d757e1850e936e1a8", + "tag": "s1_eternum-AcceptPartialOrder", + "selector": "0x10466b8a291c68b1392b0c839dff152f5884e63efecc6616ae39eaaa8dddb16" + }, + { + "members": [], + "class_hash": "0x934049a8b2170110cdd0038113cc44d28a44c9468d386842b6f0f4269930d8", + "tag": "s1_eternum-BattleClaimData", + "selector": "0x41680e7ebc53d924909df6da64cb9bf2f93e4c52c773a46c2d98d26130e4b04" + }, + { + "members": [], + "class_hash": "0x21e47bd56785fa3feb60d847cb8dd208c9a54d7485c3a717266a68cb12922b2", + "tag": "s1_eternum-BattleJoinData", + "selector": "0x52d813cd875f5ab136509292d799f8e50454d7a216d4b0f82011537da338e45" + }, + { + "members": [], + "class_hash": "0x63fcfc6b83c0369df7577ea9ee1be924a91d3f56e751975135352f6d668e48f", + "tag": "s1_eternum-BattleLeaveData", + "selector": "0x2e2634c5a528ebe93bfdd4760906943ab27acda1780d8a0fe6e047daf59e3bb" + }, + { + "members": [], + "class_hash": "0x4c4c86484c191574bc777bd9f0a4f0fd42cea3723ebcce1262ae4a6206099a8", + "tag": "s1_eternum-BattlePillageData", + "selector": "0x20e12ccd908df9671ef87e056aeb9225412ed7710b218cf196c2069a36509ca" + }, + { + "members": [], + "class_hash": "0x7148e1c4747938842ac35ad3133ef7b03e2f890c578f7840a42bf7290fec96a", + "tag": "s1_eternum-BattleStartData", + "selector": "0x29d565ff98451bd6ac59f3a8d0b4d2ef14031a4a39ce4b4e8ee5dab0e02e1c9" + }, + { + "members": [], + "class_hash": "0x73a2e5508322468a7bcadbbb6d8d4ad14e5b7bc19500df530f904c0c2a0ef52", + "tag": "s1_eternum-BurnDonkey", + "selector": "0x4a1aac57c8cb6ec732bd40283fd1a892987d708a6b8a7d3a4dd65da6f0e7700" + }, + { + "members": [], + "class_hash": "0xb99ae4fd4c6ad7faddd8bc49b59116e8e6ea6900d55571ef6720c6c3e55bc", + "tag": "s1_eternum-CancelOrder", + "selector": "0x1a522313c76bbf3297f8527f95976169c4269831fe8b337f3d19ff0fccb8c87" + }, + { + "members": [], + "class_hash": "0x452f2d31f89ac1d6f689859282e4b8848db14035d14c64388240237f9c952af", + "tag": "s1_eternum-CreateGuild", + "selector": "0x45b5322475ee81006e7e7df176c2f31829e57224ae86ca261738a15ef8c88a7" + }, + { + "members": [], + "class_hash": "0x7ba3c37bfe133370931d979db6a74d2707a4922d56741b37fed2f3f9ffe2412", + "tag": "s1_eternum-CreateOrder", + "selector": "0x10edec58284a982448a15b0f37a3abc65944a16091efed6a39389b5064a6319" + }, + { + "members": [], + "class_hash": "0x33eed23e37ab8177b103e50d9fe7998079fb54ba97ed6d6174a18c16c3ce25", + "tag": "s1_eternum-FragmentMineDiscovered", + "selector": "0x6dd702d62f987ca281572763a9ebb8ed1937b7016d874f3c979ecb2b698012a" + }, + { + "members": [], + "class_hash": "0x788ecb9baee1f026854cfa77c8b6e046731d044ed95aab1ee29d474e2c41385", + "tag": "s1_eternum-GameEnded", + "selector": "0x2146af1d5d48461a767ddc54400c751b49d4fc74619953f68aaf486dd447cfa" + }, + { + "members": [], + "class_hash": "0x261625f7f14957f14923385d1293a382a7198e1c2c4342fc274fda159c7bcbf", + "tag": "s1_eternum-HyperstructureCoOwnersChange", + "selector": "0x4dc6d1cc5a4a96d06bc7d47706082b809f07a72a7276f95d8e781cab476f579" + }, + { + "members": [], + "class_hash": "0x751a5d1cd2cfc38b069298a54e665c644329906cb72c156a462400e4378007c", + "tag": "s1_eternum-HyperstructureContribution", + "selector": "0x554c3cb394ec5eb94799313ff57c04489f889918b97c883ec80fad3fb69142" + }, + { + "members": [], + "class_hash": "0x1a70f061a8b5ec44881ee4c8c1312704f8a74c852e15e39b0a50ccb6003fdc4", + "tag": "s1_eternum-HyperstructureFinished", + "selector": "0x1e7330fdbaa38d25a4192cae3a2f625a2474d21bea91894b61c78015e4c0a2f" + }, + { + "members": [], + "class_hash": "0x578690752e499bd366110e7627cacf40b36346187aaa69adef84a61e79950ab", + "tag": "s1_eternum-HyperstructureStarted", + "selector": "0x576568f1e35d7395c3585e049cf835153b9337a7f605f0471ae460e79a801" + }, + { + "members": [], + "class_hash": "0x63695bd49a77821a9d01ea9a5816eef76a851376cc4bc01a68c1a9e15287322", + "tag": "s1_eternum-JoinGuild", + "selector": "0x1341888a2238268a519a7c39af6c03489343fe2288ef7f66bea5c1f479cc1e4" + }, + { + "members": [], + "class_hash": "0x4141ad0fcb145ce54bc2ed7cb12e8f3092b6fe60da8dfcaf036bed082232851", + "tag": "s1_eternum-LiquidityEvent", + "selector": "0x4e19f323259ff883daf1f685cfb94306159cde4c8cb46155a290a9b9c91df8c" + }, + { + "members": [], + "class_hash": "0x561ffdd2e934a6c5f65c58120faade578dafb4af7e61d8ea278bed9932efc41", + "tag": "s1_eternum-MapExplored", + "selector": "0x22543e5f3bd15c01417b0fff116311e6e742ce8f43072e1391fc366b3dc05ad" + }, + { + "members": [], + "class_hash": "0x2bc2301835d38f55c1a061a363e6038ec6c9807443718f620ba7e412a543c53", + "tag": "s1_eternum-SettleRealmData", + "selector": "0x7eff418a618f1ecd46303c1e0560094940d883e7ec2edde98bcb002a6e1ccca" + }, + { + "members": [], + "class_hash": "0x37bcec3363a81c4aa899552958b4e9c6fa3a97a4fc8a96c45740abe655ef95d", + "tag": "s1_eternum-SwapEvent", + "selector": "0x1f926fcf957ccc9852cfb520498d1eac5512f8e710ffd77db1b1fcad55bfbee" + }, + { + "members": [], + "class_hash": "0x6cc999fc86266f1dbc7aa840b708d01884985ad69bdc2b5638cc5911e076fd0", + "tag": "s1_eternum-Transfer", + "selector": "0x51c9cda93a0b9735874f08742333f5d601bee76457f1565f608075666678ee3" + }, + { + "members": [], + "class_hash": "0x749a49ac7ff5b1b45c2043b9fb682a7afb16508b1294460876dcdf3cfc5a619", + "tag": "s1_eternum-Travel", + "selector": "0x30e8e79033762c0f9e6738ae07398a015b0ffd2969f6d2c1fb09d5475902ae6" + }, + { + "members": [], + "class_hash": "0x6b38999d987627835d4c20e7e571c73d32ddc856786d9790a131bdb3372a246", + "tag": "s1_eternum-TrophyCreation", + "selector": "0x730009ea3268cc71709a37a164c9ce9ca00430d63d571ad16b5b72c3f51bc9a" + }, + { + "members": [], + "class_hash": "0xf05f290a704ad2671544b391f0c33d50d6d43d468d52791282852a833a00c7", + "tag": "s1_eternum-TrophyProgression", + "selector": "0x198e5fb446b41882f55a08f8baaba4387f41637ca140b0084459ce5338f617d" + } + ] } } } + } \ No newline at end of file diff --git a/config/environments/data/mainnet.json b/config/environments/data/mainnet.json index 2193ae9e6..24c00bffb 100644 --- a/config/environments/data/mainnet.json +++ b/config/environments/data/mainnet.json @@ -11149,4 +11149,4 @@ } } } -} +} \ No newline at end of file diff --git a/config/environments/data/sepolia.json b/config/environments/data/sepolia.json index 7a8e39c99..8c05dad03 100644 --- a/config/environments/data/sepolia.json +++ b/config/environments/data/sepolia.json @@ -1,11121 +1,11297 @@ { - "generatedFromTsFile": true, - "message": "This file was generated from the .ts file and should not be edited manually", - "configuration": { - "stamina": { - "travelCost": 10, - "exploreCost": 20, - "refillPerTick": 20, - "startBoostTickCount": 2 - }, - "resources": { - "resourcePrecision": 1000000000, - "resourceMultiplier": 1000000000, - "resourceAmountPerTick": 10, - "startingResourcesInputProductionFactor": 6, - "resourceInputs": { - "1": [ - { - "resource": 3, - "amount": 5 - }, - { - "resource": 2, - "amount": 3.8 - }, - { - "resource": 29, - "amount": 5 - } - ], - "2": [ - { - "resource": 1, - "amount": 4.2 - }, - { - "resource": 4, - "amount": 2.8 - }, - { - "resource": 29, - "amount": 5 - } - ], - "3": [ - { - "resource": 1, - "amount": 3 - }, - { - "resource": 2, - "amount": 3.2 - }, - { - "resource": 29, - "amount": 5 - } - ], - "4": [ - { - "resource": 2, - "amount": 5.8 - }, - { - "resource": 6, - "amount": 3.4 - }, - { - "resource": 29, - "amount": 5 - } - ], - "5": [ - { - "resource": 8, - "amount": 6 - }, - { - "resource": 11, - "amount": 3.2 - }, - { - "resource": 30, - "amount": 4 - } - ], - "6": [ - { - "resource": 4, - "amount": 4.8 - }, - { - "resource": 8, - "amount": 3.2 - }, - { - "resource": 29, - "amount": 5 - } - ], - "7": [ - { - "resource": 11, - "amount": 4.2 - }, - { - "resource": 15, - "amount": 2.6 - }, - { - "resource": 30, - "amount": 4 - } - ], - "8": [ - { - "resource": 6, - "amount": 5 - }, - { - "resource": 5, - "amount": 2.8 - }, - { - "resource": 30, - "amount": 4 - } - ], - "9": [ - { - "resource": 19, - "amount": 6 - }, - { - "resource": 22, - "amount": 2.4 - }, - { - "resource": 30, - "amount": 4 - } - ], - "10": [ - { - "resource": 17, - "amount": 4.8 - }, - { - "resource": 19, - "amount": 2.4 - }, - { - "resource": 30, - "amount": 4 - } - ], - "11": [ - { - "resource": 5, - "amount": 5 - }, - { - "resource": 7, - "amount": 3.8 - }, - { - "resource": 30, - "amount": 4 - } - ], - "12": [ - { - "resource": 13, - "amount": 4 - }, - { - "resource": 16, - "amount": 4.2 - }, - { - "resource": 30, - "amount": 4 - } - ], - "13": [ - { - "resource": 20, - "amount": 4.2 - }, - { - "resource": 12, - "amount": 4 - }, - { - "resource": 30, - "amount": 4 - } - ], - "14": [ - { - "resource": 15, - "amount": 8 - }, - { - "resource": 20, - "amount": 3.2 - }, - { - "resource": 30, - "amount": 4 - } - ], - "15": [ - { - "resource": 7, - "amount": 6.2 - }, - { - "resource": 14, - "amount": 2 - }, - { - "resource": 30, - "amount": 4 - } - ], - "16": [ - { - "resource": 12, - "amount": 5.6 - }, - { - "resource": 21, - "amount": 3.8 - }, - { - "resource": 30, - "amount": 4 - } - ], - "17": [ - { - "resource": 18, - "amount": 5 - }, - { - "resource": 10, - "amount": 3.4 - }, - { - "resource": 30, - "amount": 4 - } - ], - "18": [ - { - "resource": 21, - "amount": 4.6 - }, - { - "resource": 17, - "amount": 3.2 - }, - { - "resource": 30, - "amount": 4 - } - ], - "19": [ - { - "resource": 10, - "amount": 6.8 - }, - { - "resource": 9, - "amount": 2.6 - }, - { - "resource": 30, - "amount": 4 - } - ], - "20": [ - { - "resource": 14, - "amount": 4.8 - }, - { - "resource": 13, - "amount": 3.8 - }, - { - "resource": 30, - "amount": 4 - } - ], - "21": [ - { - "resource": 16, - "amount": 4.2 - }, - { - "resource": 18, - "amount": 3.4 - }, - { - "resource": 30, - "amount": 4 - } - ], - "22": [ - { - "resource": 9, - "amount": 6.4 - }, - { - "resource": 19, - "amount": 4 - }, - { - "resource": 30, - "amount": 4 - } - ], - "24": [], - "25": [ - { - "resource": 29, - "amount": 25 - }, - { - "resource": 31, - "amount": 0.01 - } - ], - "26": [ - { - "resource": 29, - "amount": 50 - }, - { - "resource": 30, - "amount": 50 - }, - { - "resource": 8, - "amount": 2 - }, - { - "resource": 5, - "amount": 5 - } - ], - "27": [ - { - "resource": 29, - "amount": 50 - }, - { - "resource": 30, - "amount": 50 - }, - { - "resource": 6, - "amount": 2 - }, - { - "resource": 11, - "amount": 5 - } - ], - "28": [ - { - "resource": 29, - "amount": 50 - }, - { - "resource": 30, - "amount": 50 - }, - { - "resource": 4, - "amount": 2 - }, - { - "resource": 7, - "amount": 5 - } - ], - "29": [], - "30": [], - "31": [] - }, - "resourceOutputs": { - "1": 30, - "2": 30, - "3": 30, - "4": 30, - "5": 30, - "6": 30, - "7": 30, - "8": 30, - "9": 30, - "10": 30, - "11": 30, - "12": 30, - "13": 30, - "14": 30, - "15": 30, - "16": 30, - "17": 30, - "18": 30, - "19": 30, - "20": 30, - "21": 30, - "22": 30, - "24": 1, - "25": 0.5, - "26": 0.04, - "27": 0.04, - "28": 0.04, - "29": 50, - "30": 50, - "31": 0 - }, - "resourceWeightsGrams": { - "1": 1000, - "2": 1000, - "3": 1000, - "4": 1000, - "5": 1000, - "6": 1000, - "7": 1000, - "8": 1000, - "9": 1000, - "10": 1000, - "11": 1000, - "12": 1000, - "13": 1000, - "14": 1000, - "15": 1000, - "16": 1000, - "17": 1000, - "18": 1000, - "19": 1000, - "20": 1000, - "21": 1000, - "22": 1000, - "24": 1000, - "25": 0, - "26": 5000, - "27": 3000, - "28": 5000, - "29": 100, - "30": 100, - "31": 0 - }, - "resourceRarity": { - "1": 1.27, - "2": 1.31, - "3": 1, - "4": 1.9, - "5": 4.25, - "6": 2.26, - "7": 5.49, - "8": 2.88, - "9": 135.53, - "10": 53.92, - "11": 5.24, - "12": 20.98, - "13": 20.98, - "14": 16.72, - "15": 8.44, - "16": 29.15, - "17": 45.18, - "18": 36.06, - "19": 91.2, - "20": 20.3, - "21": 30.95, - "22": 217.92, - "24": 20.98, - "25": 1, - "26": 1, - "27": 1, - "28": 1, - "29": 1, - "30": 1, - "31": 1 - }, - "resourceBuildingCosts": { - "1": [ - { - "resource": 30, - "amount": 750000 - } - ], - "2": [ - { - "resource": 29, - "amount": 750000 - } - ], - "3": [ - { - "resource": 29, - "amount": 750000 - } - ], - "4": [ - { - "resource": 30, - "amount": 750000 - } - ], - "5": [ - { - "resource": 29, - "amount": 750000 - } - ], - "6": [ - { - "resource": 29, - "amount": 750000 - } - ], - "7": [ - { - "resource": 29, - "amount": 750000 - } - ], - "8": [ - { - "resource": 30, - "amount": 750000 - } - ], - "9": [ - { - "resource": 29, - "amount": 750000 - } - ], - "10": [ - { - "resource": 29, - "amount": 750000 - } - ], - "11": [ - { - "resource": 30, - "amount": 750000 - } - ], - "12": [ - { - "resource": 30, - "amount": 750000 - } - ], - "13": [ - { - "resource": 29, - "amount": 750000 - } - ], - "14": [ - { - "resource": 29, - "amount": 750000 - } - ], - "15": [ - { - "resource": 30, - "amount": 750000 - } - ], - "16": [ - { - "resource": 29, - "amount": 750 - } - ], - "17": [ - { - "resource": 30, - "amount": 750000 - } - ], - "18": [ - { - "resource": 29, - "amount": 750000 - } - ], - "19": [ - { - "resource": 30, - "amount": 750000 - } - ], - "20": [ - { - "resource": 30, - "amount": 750000 - } - ], - "21": [ - { - "resource": 30, - "amount": 750000 - } - ], - "22": [ - { - "resource": 30, - "amount": 750000 - } - ], - "24": [ - { - "resource": 30, - "amount": 750000 - } - ], - "25": [ - { - "resource": 29, - "amount": 750000 - } - ], - "26": [ - { - "resource": 30, - "amount": 750000 - } - ], - "27": [ - { - "resource": 29, - "amount": 750000 - } - ], - "28": [ - { - "resource": 30, - "amount": 750000 - } - ], - "29": [ - { - "resource": 29, - "amount": 750000 - } - ], - "30": [ - { - "resource": 30, - "amount": 750000 - } - ], - "31": [ - { - "resource": 29, - "amount": 750000 - } - ] - } - }, - "banks": { - "name": "Central Bank", - "lordsCost": 1000, - "lpFeesNumerator": 15, - "lpFeesDenominator": 100, - "ownerFeesNumerator": 15, - "ownerFeesDenominator": 100, - "ownerBridgeFeeOnDepositPercent": 1000, - "ownerBridgeFeeOnWithdrawalPercent": 1000, - "ammStartingLiquidity": { - "1": 500000, - "2": 500000, - "3": 500000, - "4": 500000, - "5": 200000, - "6": 500000, - "7": 200000, - "8": 500000, - "9": 50000, - "10": 50000, - "11": 200000, - "12": 75000, - "13": 100000, - "14": 100000, - "15": 200000, - "16": 75000, - "17": 50000, - "18": 50000, - "19": 50000, - "20": 100000, - "21": 50000, - "22": 50000, - "25": 10000 - }, - "lordsLiquidityPerResource": 1000 - }, - "populationCapacity": { - "workerHuts": 5, - "basePopulation": 5 - }, - "exploration": { - "reward": 750, - "shardsMinesFailProbability": 99000 - }, - "tick": { - "defaultTickIntervalInSeconds": 1, - "armiesTickIntervalInSeconds": 3600 - }, - "carryCapacityGram": { - "0": 0, - "1": "340282366920938463463374607431768211455", - "2": 500000, - "3": 10000, - "4": 300000000 - }, - "speed": { - "donkey": 9, - "army": 1 - }, - "battle": { - "graceTickCount": 24, - "graceTickCountHyp": 1, - "delaySeconds": 28800 - }, - "troop": { - "health": 1, - "knightStrength": 1, - "paladinStrength": 1, - "crossbowmanStrength": 1, - "advantagePercent": 1000, - "disadvantagePercent": 1000, - "maxTroopCount": 500000, - "baseArmyNumberForStructure": 3, - "armyExtraPerMilitaryBuilding": 1, - "maxArmiesPerStructure": 7, - "pillageHealthDivisor": 8, - "battleLeaveSlashNum": 25, - "battleLeaveSlashDenom": 100, - "battleTimeReductionScale": 1000, - "battleMaxTimeSeconds": 172800, - "troopStaminas": { - "26": 80, - "27": 80, - "28": 100 - }, - "troopFoodConsumption": { - "26": { - "explore_wheat_burn_amount": 10, - "explore_fish_burn_amount": 10, - "travel_wheat_burn_amount": 5, - "travel_fish_burn_amount": 5 - }, - "27": { - "explore_wheat_burn_amount": 6, - "explore_fish_burn_amount": 6, - "travel_wheat_burn_amount": 3, - "travel_fish_burn_amount": 3 - }, - "28": { - "explore_wheat_burn_amount": 10, - "explore_fish_burn_amount": 10, - "travel_wheat_burn_amount": 4, - "travel_fish_burn_amount": 4 - } - } - }, - "mercenaries": { - "knights_lower_bound": 1000, - "knights_upper_bound": 4000, - "paladins_lower_bound": 1000, - "paladins_upper_bound": 4000, - "crossbowmen_lower_bound": 1000, - "crossbowmen_upper_bound": 4000, - "rewards": [ - { - "resource": 29, - "amount": 0 - }, - { - "resource": 30, - "amount": 0 - } - ] - }, - "settlement": { - "center": 2147483646, - "base_distance": 10, - "min_first_layer_distance": 30, - "points_placed": 0, - "current_layer": 1, - "current_side": 1, - "current_point_on_side": 0 - }, - "buildings": { - "buildingCapacity": { - "0": 0, - "1": 5, - "2": 0, - "3": 0, - "4": 0, - "5": 0, - "6": 0, - "7": 0, - "8": 0, - "9": 0, - "10": 5, - "11": 0, - "12": 0, - "13": 0, - "14": 0, - "15": 0 - }, - "buildingPopulation": { - "0": 0, - "1": 0, - "2": 2, - "3": 1, - "4": 1, - "5": 2, - "6": 3, - "7": 2, - "8": 3, - "9": 2, - "10": 0, - "11": 2, - "12": 2, - "13": 2, - "14": 0, - "15": 0 - }, - "buildingResourceProduced": { - "0": 0, - "1": 0, - "2": 0, - "3": 29, - "4": 30, - "5": 26, - "6": 25, - "7": 27, - "8": 28, - "9": 0, - "10": 0, - "11": 0, - "12": 0, - "13": 0, - "14": 0, - "15": 24 - }, - "buildingCosts": { - "0": [], - "1": [], - "2": [], - "3": [ - { - "resource": 30, - "amount": 450000 - } - ], - "4": [ - { - "resource": 29, - "amount": 450000 - } - ], - "5": [ - { - "resource": 29, - "amount": 1000000 - }, - { - "resource": 3, - "amount": 75000 - }, - { - "resource": 2, - "amount": 75000 - }, - { - "resource": 8, - "amount": 50000 - }, - { - "resource": 7, - "amount": 45000 - } - ], - "6": [ - { - "resource": 30, - "amount": 750000 - }, - { - "resource": 1, - "amount": 125000 - }, - { - "resource": 6, - "amount": 50000 - }, - { - "resource": 13, - "amount": 25000 - }, - { - "resource": 12, - "amount": 5000 - } - ], - "7": [ - { - "resource": 30, - "amount": 1000000 - }, - { - "resource": 3, - "amount": 75000 - }, - { - "resource": 6, - "amount": 75000 - }, - { - "resource": 7, - "amount": 25000 - }, - { - "resource": 15, - "amount": 25000 - } - ], - "8": [ - { - "resource": 29, - "amount": 1000000 - }, - { - "resource": 3, - "amount": 75000 - }, - { - "resource": 8, - "amount": 75000 - }, - { - "resource": 5, - "amount": 35000 - }, - { - "resource": 7, - "amount": 25000 - } - ], - "9": [], - "10": [ - { - "resource": 29, - "amount": 300000 - }, - { - "resource": 1, - "amount": 75000 - }, - { - "resource": 3, - "amount": 75000 - }, - { - "resource": 2, - "amount": 75000 - } - ], - "11": [], - "12": [], - "13": [ - { - "resource": 30, - "amount": 1000000 - }, - { - "resource": 2, - "amount": 75000 - }, - { - "resource": 1, - "amount": 75000 - }, - { - "resource": 20, - "amount": 10000 - } - ], - "14": [], - "15": [] - }, - "buildingFixedCostScalePercent": 5000 - }, - "hyperstructures": { - "hyperstructureCreationCosts": [ - { - "resource_tier": 1, - "min_amount": 3000000, - "max_amount": 3000000 - } - ], - "hyperstructureConstructionCosts": [ - { - "resource_tier": 2, - "min_amount": 0, - "max_amount": 0 - }, - { - "resource_tier": 3, - "min_amount": 0, - "max_amount": 0 - }, - { - "resource_tier": 4, - "min_amount": 0, - "max_amount": 0 - }, - { - "resource_tier": 5, - "min_amount": 120000000, - "max_amount": 240000000 - }, - { - "resource_tier": 6, - "min_amount": 90000000, - "max_amount": 180000000 - }, - { - "resource_tier": 7, - "min_amount": 40000000, - "max_amount": 80000000 - }, - { - "resource_tier": 8, - "min_amount": 20000000, - "max_amount": 40000000 - }, - { - "resource_tier": 9, - "min_amount": 7000000, - "max_amount": 14000000 - } - ], - "hyperstructureTotalCosts": [ - { - "resource_tier": 2, - "min_amount": 0, - "max_amount": 0 - }, - { - "resource_tier": 3, - "min_amount": 0, - "max_amount": 0 - }, - { - "resource_tier": 4, - "min_amount": 0, - "max_amount": 0 - }, - { - "resource_tier": 5, - "min_amount": 120000000, - "max_amount": 240000000 - }, - { - "resource_tier": 6, - "min_amount": 90000000, - "max_amount": 180000000 - }, - { - "resource_tier": 7, - "min_amount": 40000000, - "max_amount": 80000000 - }, - { - "resource_tier": 8, - "min_amount": 20000000, - "max_amount": 40000000 - }, - { - "resource_tier": 9, - "min_amount": 7000000, - "max_amount": 14000000 - }, - { - "resource_tier": 1, - "min_amount": 3000000, - "max_amount": 3000000 - } - ], - "hyperstructurePointsPerCycle": 7, - "hyperstructurePointsOnCompletion": 500000, - "hyperstructureTimeBetweenSharesChangeSeconds": 17280, - "hyperstructurePointsForWin": 9620000 - }, - "season": { - "startAfterSeconds": 60, - "bridgeCloseAfterEndSeconds": 172800 - }, - "bridge": { - "velords_fee_on_dpt_percent": 400, - "velords_fee_on_wtdr_percent": 400, - "season_pool_fee_on_dpt_percent": 400, - "season_pool_fee_on_wtdr_percent": 400, - "client_fee_on_dpt_percent": 200, - "client_fee_on_wtdr_percent": 200, - "velords_fee_recipient": "1972411780975621738773701578535203409474110909068539627767144719329707439045", - "season_pool_fee_recipient": "3142851546241575954057824643129852594117999628682104083137187756123467473479", - "max_bank_fee_dpt_percent": 0, - "max_bank_fee_wtdr_percent": 0 - }, - "vrf": { - "vrfProviderAddress": "0x051fea4450da9d6aee758bdeba88b2f665bcbf549d2c61421aa724e9ac0ced8f" - }, - "questResources": { - "1": [ - { - "resource": 29, - "amount": 1200000 - }, - { - "resource": 30, - "amount": 1200000 - } - ], - "2": [ - { - "resource": 3, - "amount": 5000 - }, - { - "resource": 1, - "amount": 5000 - }, - { - "resource": 2, - "amount": 5000 - }, - { - "resource": 4, - "amount": 5000 - }, - { - "resource": 6, - "amount": 5000 - }, - { - "resource": 8, - "amount": 5000 - }, - { - "resource": 5, - "amount": 5000 - }, - { - "resource": 11, - "amount": 5000 - }, - { - "resource": 7, - "amount": 5000 - }, - { - "resource": 15, - "amount": 5000 - }, - { - "resource": 14, - "amount": 5000 - }, - { - "resource": 20, - "amount": 5000 - }, - { - "resource": 13, - "amount": 5000 - }, - { - "resource": 12, - "amount": 5000 - }, - { - "resource": 16, - "amount": 5000 - }, - { - "resource": 21, - "amount": 5000 - }, - { - "resource": 18, - "amount": 5000 - }, - { - "resource": 17, - "amount": 5000 - }, - { - "resource": 10, - "amount": 5000 - }, - { - "resource": 19, - "amount": 5000 - }, - { - "resource": 9, - "amount": 5000 - }, - { - "resource": 22, - "amount": 5000 - } - ], - "3": [ - { - "resource": 25, - "amount": 200 - } - ], - "4": [ - { - "resource": 26, - "amount": 500 - }, - { - "resource": 27, - "amount": 500 - }, - { - "resource": 28, - "amount": 500 - } - ], - "5": [ - { - "resource": 25, - "amount": 200 - } - ], - "6": [ - { - "resource": 26, - "amount": 500 - }, - { - "resource": 28, - "amount": 500 - }, - { - "resource": 27, - "amount": 500 - } - ], - "7": [ - { - "resource": 25, - "amount": 200 - } - ], - "8": [ - { - "resource": 25, - "amount": 200 - }, - { - "resource": 28, - "amount": 200 - }, - { - "resource": 26, - "amount": 200 - }, - { - "resource": 27, - "amount": 200 - }, - { - "resource": 24, - "amount": 200 - } - ] - }, - "realmUpgradeCosts": { - "0": [], - "1": [ - { - "resource": 29, - "amount": 3000000 - }, - { - "resource": 30, - "amount": 3000000 - } - ], - "2": [ - { - "resource": 11, - "amount": 600000 - }, - { - "resource": 15, - "amount": 600000 - }, - { - "resource": 14, - "amount": 600000 - }, - { - "resource": 20, - "amount": 600000 - }, - { - "resource": 12, - "amount": 600000 - }, - { - "resource": 29, - "amount": 5000000 - }, - { - "resource": 30, - "amount": 5000000 - } - ], - "3": [ - { - "resource": 10, - "amount": 50000 - }, - { - "resource": 19, - "amount": 50000 - }, - { - "resource": 9, - "amount": 50000 - }, - { - "resource": 22, - "amount": 50000 - }, - { - "resource": 29, - "amount": 9000000 - }, - { - "resource": 30, - "amount": 9000000 - } - ] - }, - "realmMaxLevel": 4, - "setup": { - "chain": "sepolia", - "addresses": { - "seasonPass": "0xf13c0880fd96d4960be5042f564ce50921531c8cd9bae3a0c5b1687f053263", - "realms": "0x731af37beee9f49d1927b997cb5b1a2f6b2f0c341753d9bdfe23768ef65f53f", - "lords": "0x6bf1ddd27d699ddef8818e9d23a085b787798d9b557d79f22a6e155891506fb", - "resources": { - "STONE": [1, "0x260c29baeb23e7b14faeb3b4b14718a3bd41710508c0514d506e471e49667d3"], - "COAL": [2, "0x5f45379a55ead3fb6ff7c070e003c5654d95c292e25ef62c8c03c01e03c8477"], - "WOOD": [3, "0x15c729641ffdd4602f8ac57fdd9f34a14bd0cf554210bc3c5fb827b6ae122bd"], - "COPPER": [4, "0x2634151f1f112e516ea712513fa5c0e690a909becd5fc58484ed78ff7f35794"], - "IRONWOOD": [5, "0x5cd06d0219846406301ad6df1870364b9b1ea98b014d01f1f117fafad9016f8"], - "OBSIDIAN": [6, "0x9f923859f45e7b35882a06688e7278506c9393aa2e098e2a2588c6acfb54c1"], - "GOLD": [7, "0x7c7efe0d57938f93b4f9ae878e0f2e53c5e2b5e06b01c63617d2228303182cf"], - "SILVER": [8, "0xc5e4ca351da04b74eb754d077fba0069b73c8cafa370f4647ff7a61fc0e652"], - "MITHRAL": [9, "0x98ff50534f661d96119b235e616158f9e451f11ac793af18ae7accdd5c3bf3"], - "ALCHEMICALSILVER": [10, "0x7de22f62aa87a35b619184d5d3bf113449da6b2758afd1d89dd49647ed8839e"], - "COLDIRON": [11, "0x4b0a20bc4f11ff34b218b5fe5fd824be8ad6a185caee75b2bf9280554b5ab22"], - "DEEPCRYSTAL": [12, "0x48ef28f3e8cb53d68421fd55857862d749a609f991b5e217b31451e0a7a8aef"], - "RUBY": [13, "0x36b690f1074614861b0ff5d95b1120b1233946eeca7a4216aeb274c553cf745"], - "DIAMONDS": [14, "0x1dc7dce0c3823dabd6ba388eab584b1325c36c99b4b52cc6a1e155bdee21182"], - "HARTWOOD": [15, "0x723e86fd8129a352768ce52d88a9da69b80ac1f217c5c65ea44883d984bedd4"], - "IGNIUM": [16, "0x75582e365229a72959fbaf97c49d36ea29cb5b4e6e35846c691be4065d604d2"], - "TWILIGHTQUARTZ": [17, "0x4953450ac18b6b949d73ed171628f7199e9ee142d2b80505e95162d0f8dfac3"], - "TRUEICE": [18, "0x65e7bf089b3f824336c30d1fc5c83d7bf43aed3d47cae1f10fe62cd7e603f55"], - "ADAMANTINE": [19, "0xb3f8efd4329baa12020c434e6ec40dfe5d723745fac3127a945562e6ce6044"], - "SAPPHIRE": [20, "0x65420977edd0497260cab8e1d6a4fc21e49039d6abadc4aa8ab4e4f96533314"], - "ETHEREALSILICA": [21, "0x34a57dc37d6734d27ad70883b808b562b1c7585c0c121c64d04d8ac541d06f0"], - "DRAGONHIDE": [22, "0x179a22a5c6f9b509beda8c004bde0d06446392be1d4b97a66b5a0ffb43e9d09"], - "ANCIENTFRAGMENT": [24, "0x7ce3f9322d6cfec3c5f90f6e13da21edb63c47f2ca38c54c77184c18cb56a07"], - "DONKEY": [25, "0x63baaece8c556f583d2f9448e467cb548e96efd950621bed3b0bbfaefde9db6"], - "KNIGHT": [26, "0x283615e4f4daa1e740381ea9b9a3d2bdb513e574f60e94a2185174ab1ac07dc"], - "CROSSBOWMAN": [27, "0x146291d7ad2159165368e3896ca5ab22d6785226cb6b6df8c3171456259a13"], - "PALADIN": [28, "0x6e92373426b165824e67653f0dd3445b49345644f970a2e60ae25025902fc0f"], - "WHEAT": [29, "0x70586522efa247ea88b51ed14b11abbe5f8132126e2cbd8ddacceb14bbb145b"], - "FISH": [30, "0x7a0f684fd06524c7fdc4093f84fdfe7437aa7a4c9767c7e437314931a3cb605"], - "LORDS": [31, "0x6bf1ddd27d699ddef8818e9d23a085b787798d9b557d79f22a6e155891506fb"] - } - }, - "manifest": { - "world": { - "class_hash": "0x45575a88cc5cef1e444c77ce60b7b4c9e73a01cbbe20926d5a4c72a94011410", - "address": "0x489ee246082cd1a1676dd03c334f85eb8b2960cb78701ae1b974c61a8373aaa", - "seed": "s1_eternum-11", - "name": "Realms: Eternum", - "entrypoints": [ - "uuid", - "set_metadata", - "register_namespace", - "register_event", - "register_model", - "register_contract", - "init_contract", - "upgrade_event", - "upgrade_model", - "upgrade_contract", - "emit_event", - "emit_events", - "set_entity", - "set_entities", - "delete_entity", - "delete_entities", - "grant_owner", - "revoke_owner", - "grant_writer", - "revoke_writer", - "upgrade" - ], - "abi": [ - { - "type": "impl", - "name": "World", - "interface_name": "dojo::world::iworld::IWorld" - }, - { - "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": "dojo::world::resource::Resource", - "variants": [ - { - "name": "Model", - "type": "(core::starknet::contract_address::ContractAddress, core::felt252)" - }, - { - "name": "Event", - "type": "(core::starknet::contract_address::ContractAddress, core::felt252)" - }, - { - "name": "Contract", - "type": "(core::starknet::contract_address::ContractAddress, core::felt252)" - }, - { - "name": "Namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "World", - "type": "()" - }, - { - "name": "Unregistered", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "dojo::model::metadata::ResourceMetadata", - "members": [ - { - "name": "resource_id", - "type": "core::felt252" - }, - { - "name": "metadata_uri", - "type": "core::byte_array::ByteArray" - }, - { - "name": "metadata_hash", - "type": "core::felt252" - } - ] - }, - { - "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::model::definition::ModelIndex", - "variants": [ - { - "name": "Keys", - "type": "core::array::Span::" - }, - { - "name": "Id", - "type": "core::felt252" - }, - { - "name": "MemberId", - "type": "(core::felt252, core::felt252)" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "dojo::meta::layout::FieldLayout", - "members": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "layout", - "type": "dojo::meta::layout::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::meta::layout::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::" - } - ] - }, - { - "type": "enum", - "name": "core::bool", - "variants": [ - { - "name": "False", - "type": "()" - }, - { - "name": "True", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "dojo::world::iworld::IWorld", - "items": [ - { - "type": "function", - "name": "resource", - "inputs": [ - { - "name": "selector", - "type": "core::felt252" - } - ], - "outputs": [ - { - "type": "dojo::world::resource::Resource" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "uuid", - "inputs": [], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "metadata", - "inputs": [ - { - "name": "resource_selector", - "type": "core::felt252" - } - ], - "outputs": [ - { - "type": "dojo::model::metadata::ResourceMetadata" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "set_metadata", - "inputs": [ - { - "name": "metadata", - "type": "dojo::model::metadata::ResourceMetadata" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "register_namespace", - "inputs": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "register_event", - "inputs": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "register_model", - "inputs": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "register_contract", - "inputs": [ - { - "name": "salt", - "type": "core::felt252" - }, - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [ - { - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "init_contract", - "inputs": [ - { - "name": "selector", - "type": "core::felt252" - }, - { - "name": "init_calldata", - "type": "core::array::Span::" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "upgrade_event", - "inputs": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "upgrade_model", - "inputs": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "upgrade_contract", - "inputs": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [ - { - "type": "core::starknet::class_hash::ClassHash" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "emit_event", - "inputs": [ - { - "name": "event_selector", - "type": "core::felt252" - }, - { - "name": "keys", - "type": "core::array::Span::" - }, - { - "name": "values", - "type": "core::array::Span::" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "emit_events", - "inputs": [ - { - "name": "event_selector", - "type": "core::felt252" - }, - { - "name": "keys", - "type": "core::array::Span::>" - }, - { - "name": "values", - "type": "core::array::Span::>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "entity", - "inputs": [ - { - "name": "model_selector", - "type": "core::felt252" - }, - { - "name": "index", - "type": "dojo::model::definition::ModelIndex" - }, - { - "name": "layout", - "type": "dojo::meta::layout::Layout" - } - ], - "outputs": [ - { - "type": "core::array::Span::" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "entities", - "inputs": [ - { - "name": "model_selector", - "type": "core::felt252" - }, - { - "name": "indexes", - "type": "core::array::Span::" - }, - { - "name": "layout", - "type": "dojo::meta::layout::Layout" - } - ], - "outputs": [ - { - "type": "core::array::Span::>" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "set_entity", - "inputs": [ - { - "name": "model_selector", - "type": "core::felt252" - }, - { - "name": "index", - "type": "dojo::model::definition::ModelIndex" - }, - { - "name": "values", - "type": "core::array::Span::" - }, - { - "name": "layout", - "type": "dojo::meta::layout::Layout" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_entities", - "inputs": [ - { - "name": "model_selector", - "type": "core::felt252" - }, - { - "name": "indexes", - "type": "core::array::Span::" - }, - { - "name": "values", - "type": "core::array::Span::>" - }, - { - "name": "layout", - "type": "dojo::meta::layout::Layout" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "delete_entity", - "inputs": [ - { - "name": "model_selector", - "type": "core::felt252" - }, - { - "name": "index", - "type": "dojo::model::definition::ModelIndex" - }, - { - "name": "layout", - "type": "dojo::meta::layout::Layout" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "delete_entities", - "inputs": [ - { - "name": "model_selector", - "type": "core::felt252" - }, - { - "name": "indexes", - "type": "core::array::Span::" - }, - { - "name": "layout", - "type": "dojo::meta::layout::Layout" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "is_owner", - "inputs": [ - { - "name": "resource", - "type": "core::felt252" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [ - { - "type": "core::bool" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "grant_owner", - "inputs": [ - { - "name": "resource", - "type": "core::felt252" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "revoke_owner", - "inputs": [ - { - "name": "resource", - "type": "core::felt252" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "is_writer", - "inputs": [ - { - "name": "resource", - "type": "core::felt252" - }, - { - "name": "contract", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [ - { - "type": "core::bool" - } - ], - "state_mutability": "view" - }, - { - "type": "function", - "name": "grant_writer", - "inputs": [ - { - "name": "resource", - "type": "core::felt252" - }, - { - "name": "contract", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "revoke_writer", - "inputs": [ - { - "name": "resource", - "type": "core::felt252" - }, - { - "name": "contract", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableWorld", - "interface_name": "dojo::world::iworld::IUpgradeableWorld" - }, - { - "type": "interface", - "name": "dojo::world::iworld::IUpgradeableWorld", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [ - { - "name": "world_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::WorldSpawned", - "kind": "struct", - "members": [ - { - "name": "creator", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::WorldUpgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::NamespaceRegistered", - "kind": "struct", - "members": [ - { - "name": "namespace", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "hash", - "type": "core::felt252", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::ModelRegistered", - "kind": "struct", - "members": [ - { - "name": "name", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "namespace", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::EventRegistered", - "kind": "struct", - "members": [ - { - "name": "name", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "namespace", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::ContractRegistered", - "kind": "struct", - "members": [ - { - "name": "name", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "namespace", - "type": "core::byte_array::ByteArray", - "kind": "key" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - }, - { - "name": "salt", - "type": "core::felt252", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::ModelUpgraded", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - }, - { - "name": "prev_address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::EventUpgraded", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - }, - { - "name": "address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - }, - { - "name": "prev_address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::ContractUpgraded", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::ContractInitialized", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "init_calldata", - "type": "core::array::Span::", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::EventEmitted", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "system_address", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "key" - }, - { - "name": "keys", - "type": "core::array::Span::", - "kind": "data" - }, - { - "name": "values", - "type": "core::array::Span::", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::MetadataUpdate", - "kind": "struct", - "members": [ - { - "name": "resource", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "uri", - "type": "core::byte_array::ByteArray", - "kind": "data" - }, - { - "name": "hash", - "type": "core::felt252", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::StoreSetRecord", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "entity_id", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "keys", - "type": "core::array::Span::", - "kind": "data" - }, - { - "name": "values", - "type": "core::array::Span::", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::StoreUpdateRecord", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "entity_id", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "values", - "type": "core::array::Span::", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::StoreUpdateMember", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "entity_id", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "member_selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "values", - "type": "core::array::Span::", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::StoreDelRecord", - "kind": "struct", - "members": [ - { - "name": "selector", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "entity_id", - "type": "core::felt252", - "kind": "key" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::WriterUpdated", - "kind": "struct", - "members": [ - { - "name": "resource", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "contract", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "key" - }, - { - "name": "value", - "type": "core::bool", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::OwnerUpdated", - "kind": "struct", - "members": [ - { - "name": "resource", - "type": "core::felt252", - "kind": "key" - }, - { - "name": "contract", - "type": "core::starknet::contract_address::ContractAddress", - "kind": "key" - }, - { - "name": "value", - "type": "core::bool", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::world::world_contract::world::Event", - "kind": "enum", - "variants": [ - { - "name": "WorldSpawned", - "type": "dojo::world::world_contract::world::WorldSpawned", - "kind": "nested" - }, - { - "name": "WorldUpgraded", - "type": "dojo::world::world_contract::world::WorldUpgraded", - "kind": "nested" - }, - { - "name": "NamespaceRegistered", - "type": "dojo::world::world_contract::world::NamespaceRegistered", - "kind": "nested" - }, - { - "name": "ModelRegistered", - "type": "dojo::world::world_contract::world::ModelRegistered", - "kind": "nested" - }, - { - "name": "EventRegistered", - "type": "dojo::world::world_contract::world::EventRegistered", - "kind": "nested" - }, - { - "name": "ContractRegistered", - "type": "dojo::world::world_contract::world::ContractRegistered", - "kind": "nested" - }, - { - "name": "ModelUpgraded", - "type": "dojo::world::world_contract::world::ModelUpgraded", - "kind": "nested" - }, - { - "name": "EventUpgraded", - "type": "dojo::world::world_contract::world::EventUpgraded", - "kind": "nested" - }, - { - "name": "ContractUpgraded", - "type": "dojo::world::world_contract::world::ContractUpgraded", - "kind": "nested" - }, - { - "name": "ContractInitialized", - "type": "dojo::world::world_contract::world::ContractInitialized", - "kind": "nested" - }, - { - "name": "EventEmitted", - "type": "dojo::world::world_contract::world::EventEmitted", - "kind": "nested" - }, - { - "name": "MetadataUpdate", - "type": "dojo::world::world_contract::world::MetadataUpdate", - "kind": "nested" - }, - { - "name": "StoreSetRecord", - "type": "dojo::world::world_contract::world::StoreSetRecord", - "kind": "nested" - }, - { - "name": "StoreUpdateRecord", - "type": "dojo::world::world_contract::world::StoreUpdateRecord", - "kind": "nested" - }, - { - "name": "StoreUpdateMember", - "type": "dojo::world::world_contract::world::StoreUpdateMember", - "kind": "nested" - }, - { - "name": "StoreDelRecord", - "type": "dojo::world::world_contract::world::StoreDelRecord", - "kind": "nested" - }, - { - "name": "WriterUpdated", - "type": "dojo::world::world_contract::world::WriterUpdated", - "kind": "nested" - }, - { - "name": "OwnerUpdated", - "type": "dojo::world::world_contract::world::OwnerUpdated", - "kind": "nested" - } - ] - } - ] - }, - "contracts": [ - { - "address": "0x22fca458aa0869b4cacca2098ae8fe3cc462bc5cef9dd222a5a68055cb8906b", - "class_hash": "0x38b8eea12d619d5ef8dd3ce5fd038a6bef762b64d911a3e3947892f09ceaeab", - "abi": [ - { - "type": "impl", - "name": "bank_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "bank_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "BankSystemsImpl", - "interface_name": "s1_eternum::systems::bank::contracts::bank::IBankSystems" - }, - { - "type": "interface", - "name": "s1_eternum::systems::bank::contracts::bank::IBankSystems", - "items": [ - { - "type": "function", - "name": "change_owner_amm_fee", - "inputs": [ - { - "name": "bank_entity_id", - "type": "core::integer::u32" - }, - { - "name": "new_owner_fee_num", - "type": "core::integer::u128" - }, - { - "name": "new_owner_fee_denom", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "change_owner_bridge_fee", - "inputs": [ - { - "name": "bank_entity_id", - "type": "core::integer::u32" - }, - { - "name": "owner_bridge_fee_dpt_percent", - "type": "core::integer::u16" - }, - { - "name": "owner_bridge_fee_wtdr_percent", - "type": "core::integer::u16" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::bank::contracts::bank::bank_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-bank_systems", - "selector": "0x44475a775d79049bbe99567b7c00a1e4d8d582cade61a8aec07ca3bb234f6e6", - "systems": ["change_owner_amm_fee", "change_owner_bridge_fee", "upgrade"] - }, - { - "address": "0x158114da9a538d75512dc29b3d1995ff551dfb61bee80996232abe54b8febc2", - "class_hash": "0x2d35042bdc3fe8f799396ce2cf9c31deb666e63df2427688a4a8605e34d846", - "abi": [ - { - "type": "impl", - "name": "battle_pillage_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "battle_pillage_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "BattlePillageContractImpl", - "interface_name": "s1_eternum::systems::combat::contracts::battle_systems::IBattlePillageContract" - }, - { - "type": "interface", - "name": "s1_eternum::systems::combat::contracts::battle_systems::IBattlePillageContract", - "items": [ - { - "type": "function", - "name": "battle_pillage", - "inputs": [ - { - "name": "army_id", - "type": "core::integer::u32" - }, - { - "name": "structure_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::combat::contracts::battle_systems::battle_pillage_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-battle_pillage_systems", - "selector": "0x6e8963ce01de14fbf50434fd001ac86e45313c4d43e7a255192eb26dcb5d63d", - "systems": ["battle_pillage", "upgrade"] - }, - { - "address": "0x66bc2d8ef45ce10d3847cc901a41af6a05db34c0ea0ab87fc332ca8c9b2ccb0", - "class_hash": "0x1f9260c45aed95e060c98434c5922c5dfef7c82a62b47ae42496815c3dc6401", - "abi": [ - { - "type": "impl", - "name": "battle_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "battle_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "BattleContractImpl", - "interface_name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleContract" - }, - { - "type": "enum", - "name": "s1_eternum::models::combat::BattleSide", - "variants": [ - { - "name": "None", - "type": "()" - }, - { - "name": "Attack", - "type": "()" - }, - { - "name": "Defence", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleContract", - "items": [ - { - "type": "function", - "name": "battle_start", - "inputs": [ - { - "name": "attacking_army_id", - "type": "core::integer::u32" - }, - { - "name": "defending_army_id", - "type": "core::integer::u32" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "battle_force_start", - "inputs": [ - { - "name": "battle_id", - "type": "core::integer::u32" - }, - { - "name": "defending_army_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "battle_join", - "inputs": [ - { - "name": "battle_id", - "type": "core::integer::u32" - }, - { - "name": "battle_side", - "type": "s1_eternum::models::combat::BattleSide" - }, - { - "name": "army_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "battle_leave", - "inputs": [ - { - "name": "battle_id", - "type": "core::integer::u32" - }, - { - "name": "army_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "battle_claim", - "inputs": [ - { - "name": "army_id", - "type": "core::integer::u32" - }, - { - "name": "structure_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "battle_resolve", - "inputs": [ - { - "name": "battle_id", - "type": "core::integer::u32" - }, - { - "name": "army_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::combat::contracts::battle_systems::battle_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-battle_systems", - "selector": "0x7bb97d7199b14973d6f05b84579bda637cef5714be078064da3cb80d273c79b", - "systems": [ - "battle_start", - "battle_force_start", - "battle_join", - "battle_leave", - "battle_claim", - "battle_resolve", - "upgrade" - ] - }, - { - "address": "0x73dff02735d7031496afb34d28f6fd935d8f8e2db14b0877aaf871b3d11f524", - "class_hash": "0x688863adfa91d251a6d09d09c156264d2c6d1128e70c759bd2848abbbe11fc6", - "abi": [ - { - "type": "impl", - "name": "battle_utils_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "battle_utils_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "BattleUtilsContractImpl", - "interface_name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleUtilsContract" - }, - { - "type": "struct", - "name": "s1_eternum::models::combat::Troops", - "members": [ - { - "name": "knight_count", - "type": "core::integer::u64" - }, - { - "name": "paladin_count", - "type": "core::integer::u64" - }, - { - "name": "crossbowman_count", - "type": "core::integer::u64" - } - ] - }, - { - "type": "enum", - "name": "s1_eternum::models::combat::BattleSide", - "variants": [ - { - "name": "None", - "type": "()" - }, - { - "name": "Attack", - "type": "()" - }, - { - "name": "Defence", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::combat::BattleArmy", - "members": [ - { - "name": "troops", - "type": "s1_eternum::models::combat::Troops" - }, - { - "name": "battle_id", - "type": "core::integer::u32" - }, - { - "name": "battle_side", - "type": "s1_eternum::models::combat::BattleSide" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::combat::BattleHealth", - "members": [ - { - "name": "current", - "type": "core::integer::u128" - }, - { - "name": "lifetime", - "type": "core::integer::u128" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::combat::Battle", - "members": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "attack_army", - "type": "s1_eternum::models::combat::BattleArmy" - }, - { - "name": "attack_army_lifetime", - "type": "s1_eternum::models::combat::BattleArmy" - }, - { - "name": "defence_army", - "type": "s1_eternum::models::combat::BattleArmy" - }, - { - "name": "defence_army_lifetime", - "type": "s1_eternum::models::combat::BattleArmy" - }, - { - "name": "attackers_resources_escrow_id", - "type": "core::integer::u32" - }, - { - "name": "defenders_resources_escrow_id", - "type": "core::integer::u32" - }, - { - "name": "attack_army_health", - "type": "s1_eternum::models::combat::BattleHealth" - }, - { - "name": "defence_army_health", - "type": "s1_eternum::models::combat::BattleHealth" - }, - { - "name": "attack_delta", - "type": "core::integer::u64" - }, - { - "name": "defence_delta", - "type": "core::integer::u64" - }, - { - "name": "last_updated", - "type": "core::integer::u64" - }, - { - "name": "duration_left", - "type": "core::integer::u64" - }, - { - "name": "start_at", - "type": "core::integer::u64" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::combat::Army", - "members": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "troops", - "type": "s1_eternum::models::combat::Troops" - }, - { - "name": "battle_id", - "type": "core::integer::u32" - }, - { - "name": "battle_side", - "type": "s1_eternum::models::combat::BattleSide" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleUtilsContract", - "items": [ - { - "type": "function", - "name": "leave_battle", - "inputs": [ - { - "name": "battle", - "type": "s1_eternum::models::combat::Battle" - }, - { - "name": "army", - "type": "s1_eternum::models::combat::Army" - } - ], - "outputs": [ - { - "type": "(s1_eternum::models::combat::Battle, s1_eternum::models::combat::Army)" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "leave_battle_if_ended", - "inputs": [ - { - "name": "battle", - "type": "s1_eternum::models::combat::Battle" - }, - { - "name": "army", - "type": "s1_eternum::models::combat::Army" - } - ], - "outputs": [ - { - "type": "(s1_eternum::models::combat::Battle, s1_eternum::models::combat::Army)" - } - ], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::combat::contracts::battle_systems::battle_utils_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-battle_utils_systems", - "selector": "0x2b94e5432b691bad81584af7e9e97102aa0070f13aa91c6ff8c980e54d5ca33", - "systems": ["leave_battle", "leave_battle_if_ended", "upgrade"] - }, - { - "address": "0x5827e314ca954f7eb04127a2a321e5c1f8fa6d51546b8fa6d6b38830f2b6d18", - "class_hash": "0x7fb2e9574aa693d81a15f3734dd0a8612ba8d64057b2aef692bd3117118a446", - "abi": [ - { - "type": "impl", - "name": "config_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "config_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IWorldConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IWorldConfig", - "items": [ - { - "type": "function", - "name": "set_world_config", - "inputs": [ - { - "name": "admin_address", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "realm_l2_contract", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "SeasonConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ISeasonConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ISeasonConfig", - "items": [ - { - "type": "function", - "name": "set_season_config", - "inputs": [ - { - "name": "season_pass_address", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "realms_address", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "lords_address", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "start_at", - "type": "core::integer::u64" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_season_bridge_config", - "inputs": [ - { - "name": "close_after_end_seconds", - "type": "core::integer::u64" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "VRFConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IVRFConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IVRFConfig", - "items": [ - { - "type": "function", - "name": "set_vrf_config", - "inputs": [ - { - "name": "vrf_provider_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "QuestConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IQuestConfig" - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IQuestConfig", - "items": [ - { - "type": "function", - "name": "set_quest_reward_config", - "inputs": [ - { - "name": "quest_id", - "type": "core::integer::u32" - }, - { - "name": "resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "MapConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IMapConfig" - }, - { - "type": "struct", - "name": "s1_eternum::models::config::MapConfig", - "members": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "reward_resource_amount", - "type": "core::integer::u128" - }, - { - "name": "shards_mines_fail_probability", - "type": "core::integer::u128" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IMapConfig", - "items": [ - { - "type": "function", - "name": "set_map_config", - "inputs": [ - { - "name": "map_config", - "type": "s1_eternum::models::config::MapConfig" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "CapacityConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ICapacityConfig" - }, - { - "type": "enum", - "name": "s1_eternum::models::config::CapacityConfigCategory", - "variants": [ - { - "name": "None", - "type": "()" - }, - { - "name": "Structure", - "type": "()" - }, - { - "name": "Donkey", - "type": "()" - }, - { - "name": "Army", - "type": "()" - }, - { - "name": "Storehouse", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::config::CapacityConfig", - "members": [ - { - "name": "category", - "type": "s1_eternum::models::config::CapacityConfigCategory" - }, - { - "name": "weight_gram", - "type": "core::integer::u128" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ICapacityConfig", - "items": [ - { - "type": "function", - "name": "set_capacity_config", - "inputs": [ - { - "name": "capacity_config", - "type": "s1_eternum::models::config::CapacityConfig" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "TravelStaminaCostConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ITravelStaminaCostConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ITravelStaminaCostConfig", - "items": [ - { - "type": "function", - "name": "set_travel_stamina_cost_config", - "inputs": [ - { - "name": "travel_type", - "type": "core::integer::u8" - }, - { - "name": "cost", - "type": "core::integer::u16" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "WeightConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IWeightConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IWeightConfig", - "items": [ - { - "type": "function", - "name": "set_weight_config", - "inputs": [ - { - "name": "entity_type", - "type": "core::integer::u32" - }, - { - "name": "weight_gram", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "BattleConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IBattleConfig" - }, - { - "type": "struct", - "name": "s1_eternum::models::config::BattleConfig", - "members": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "regular_immunity_ticks", - "type": "core::integer::u8" - }, - { - "name": "hyperstructure_immunity_ticks", - "type": "core::integer::u8" - }, - { - "name": "battle_delay_seconds", - "type": "core::integer::u64" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IBattleConfig", - "items": [ - { - "type": "function", - "name": "set_battle_config", - "inputs": [ - { - "name": "battle_config", - "type": "s1_eternum::models::config::BattleConfig" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "TickConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ITickConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ITickConfig", - "items": [ - { - "type": "function", - "name": "set_tick_config", - "inputs": [ - { - "name": "tick_id", - "type": "core::integer::u8" - }, - { - "name": "tick_interval_in_seconds", - "type": "core::integer::u64" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "StaminaConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IStaminaConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IStaminaConfig", - "items": [ - { - "type": "function", - "name": "set_stamina_config", - "inputs": [ - { - "name": "unit_type", - "type": "core::integer::u8" - }, - { - "name": "max_stamina", - "type": "core::integer::u16" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "TravelFoodCostConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ITravelFoodCostConfig" - }, - { - "type": "struct", - "name": "s1_eternum::models::config::TravelFoodCostConfig", - "members": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "unit_type", - "type": "core::integer::u8" - }, - { - "name": "explore_wheat_burn_amount", - "type": "core::integer::u128" - }, - { - "name": "explore_fish_burn_amount", - "type": "core::integer::u128" - }, - { - "name": "travel_wheat_burn_amount", - "type": "core::integer::u128" - }, - { - "name": "travel_fish_burn_amount", - "type": "core::integer::u128" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ITravelFoodCostConfig", - "items": [ - { - "type": "function", - "name": "set_travel_food_cost_config", - "inputs": [ - { - "name": "travel_food_cost_config", - "type": "s1_eternum::models::config::TravelFoodCostConfig" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "StaminaRefillConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IStaminaRefillConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IStaminaRefillConfig", - "items": [ - { - "type": "function", - "name": "set_stamina_refill_config", - "inputs": [ - { - "name": "amount_per_tick", - "type": "core::integer::u16" - }, - { - "name": "start_boost_tick_count", - "type": "core::integer::u8" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "LevelingConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ILevelingConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ILevelingConfig", - "items": [ - { - "type": "function", - "name": "set_leveling_config", - "inputs": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "decay_interval", - "type": "core::integer::u64" - }, - { - "name": "max_level", - "type": "core::integer::u64" - }, - { - "name": "decay_scaled", - "type": "core::integer::u128" - }, - { - "name": "cost_percentage_scaled", - "type": "core::integer::u128" - }, - { - "name": "base_multiplier", - "type": "core::integer::u128" - }, - { - "name": "wheat_base_amount", - "type": "core::integer::u128" - }, - { - "name": "fish_base_amount", - "type": "core::integer::u128" - }, - { - "name": "resource_1_costs", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "resource_2_costs", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "resource_3_costs", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "ProductionConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IProductionConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IProductionConfig", - "items": [ - { - "type": "function", - "name": "set_production_config", - "inputs": [ - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "produced_amount", - "type": "core::integer::u128" - }, - { - "name": "labor_amount", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "LaborConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ILaborConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ILaborConfig", - "items": [ - { - "type": "function", - "name": "set_labor_config", - "inputs": [ - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "cost", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "TransportConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ITransportConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ITransportConfig", - "items": [ - { - "type": "function", - "name": "set_speed_config", - "inputs": [ - { - "name": "entity_type", - "type": "core::integer::u32" - }, - { - "name": "sec_per_km", - "type": "core::integer::u16" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "HyperstructureConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IHyperstructureConfig" - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u8, core::integer::u128, core::integer::u128)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u8, core::integer::u128, core::integer::u128)>" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IHyperstructureConfig", - "items": [ - { - "type": "function", - "name": "set_hyperstructure_config", - "inputs": [ - { - "name": "resources_for_completion", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128, core::integer::u128)>" - }, - { - "name": "time_between_shares_change", - "type": "core::integer::u64" - }, - { - "name": "points_per_cycle", - "type": "core::integer::u128" - }, - { - "name": "points_for_win", - "type": "core::integer::u128" - }, - { - "name": "points_on_completion", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "BankConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IBankConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IBankConfig", - "items": [ - { - "type": "function", - "name": "set_bank_config", - "inputs": [ - { - "name": "lords_cost", - "type": "core::integer::u128" - }, - { - "name": "lp_fee_num", - "type": "core::integer::u128" - }, - { - "name": "lp_fee_denom", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "TroopConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ITroopConfig" - }, - { - "type": "struct", - "name": "s1_eternum::models::config::TroopConfig", - "members": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "health", - "type": "core::integer::u32" - }, - { - "name": "knight_strength", - "type": "core::integer::u8" - }, - { - "name": "paladin_strength", - "type": "core::integer::u8" - }, - { - "name": "crossbowman_strength", - "type": "core::integer::u16" - }, - { - "name": "advantage_percent", - "type": "core::integer::u16" - }, - { - "name": "disadvantage_percent", - "type": "core::integer::u16" - }, - { - "name": "max_troop_count", - "type": "core::integer::u64" - }, - { - "name": "pillage_health_divisor", - "type": "core::integer::u8" - }, - { - "name": "army_free_per_structure", - "type": "core::integer::u8" - }, - { - "name": "army_extra_per_building", - "type": "core::integer::u8" - }, - { - "name": "army_max_per_structure", - "type": "core::integer::u8" - }, - { - "name": "battle_leave_slash_num", - "type": "core::integer::u8" - }, - { - "name": "battle_leave_slash_denom", - "type": "core::integer::u8" - }, - { - "name": "battle_time_scale", - "type": "core::integer::u16" - }, - { - "name": "battle_max_time_seconds", - "type": "core::integer::u64" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ITroopConfig", - "items": [ - { - "type": "function", - "name": "set_troop_config", - "inputs": [ - { - "name": "troop_config", - "type": "s1_eternum::models::config::TroopConfig" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "BuildingCategoryPopulationConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IBuildingCategoryPopConfig" - }, - { - "type": "enum", - "name": "s1_eternum::models::resource::production::building::BuildingCategory", - "variants": [ - { - "name": "None", - "type": "()" - }, - { - "name": "Castle", - "type": "()" - }, - { - "name": "Resource", - "type": "()" - }, - { - "name": "Farm", - "type": "()" - }, - { - "name": "FishingVillage", - "type": "()" - }, - { - "name": "Barracks", - "type": "()" - }, - { - "name": "Market", - "type": "()" - }, - { - "name": "ArcheryRange", - "type": "()" - }, - { - "name": "Stable", - "type": "()" - }, - { - "name": "TradingPost", - "type": "()" - }, - { - "name": "WorkersHut", - "type": "()" - }, - { - "name": "WatchTower", - "type": "()" - }, - { - "name": "Walls", - "type": "()" - }, - { - "name": "Storehouse", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IBuildingCategoryPopConfig", - "items": [ - { - "type": "function", - "name": "set_building_category_pop_config", - "inputs": [ - { - "name": "building_category", - "type": "s1_eternum::models::resource::production::building::BuildingCategory" - }, - { - "name": "population", - "type": "core::integer::u32" - }, - { - "name": "capacity", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "PopulationConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IPopulationConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IPopulationConfig", - "items": [ - { - "type": "function", - "name": "set_population_config", - "inputs": [ - { - "name": "base_population", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "BuildingConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IBuildingConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IBuildingConfig", - "items": [ - { - "type": "function", - "name": "set_building_general_config", - "inputs": [ - { - "name": "base_cost_percent_increase", - "type": "core::integer::u16" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_building_config", - "inputs": [ - { - "name": "building_category", - "type": "s1_eternum::models::resource::production::building::BuildingCategory" - }, - { - "name": "building_resource_type", - "type": "core::integer::u8" - }, - { - "name": "cost_of_building", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "IMercenariesConfig", - "interface_name": "s1_eternum::systems::config::contracts::IMercenariesConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IMercenariesConfig", - "items": [ - { - "type": "function", - "name": "set_mercenaries_config", - "inputs": [ - { - "name": "knights_lower_bound", - "type": "core::integer::u64" - }, - { - "name": "knights_upper_bound", - "type": "core::integer::u64" - }, - { - "name": "paladins_lower_bound", - "type": "core::integer::u64" - }, - { - "name": "paladins_upper_bound", - "type": "core::integer::u64" - }, - { - "name": "crossbowmen_lower_bound", - "type": "core::integer::u64" - }, - { - "name": "crossbowmen_upper_bound", - "type": "core::integer::u64" - }, - { - "name": "rewards", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "IResourceBridgeConfig", - "interface_name": "s1_eternum::systems::config::contracts::IResourceBridgeConfig" - }, - { - "type": "enum", - "name": "core::bool", - "variants": [ - { - "name": "False", - "type": "()" - }, - { - "name": "True", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::config::ResourceBridgeConfig", - "members": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "deposit_paused", - "type": "core::bool" - }, - { - "name": "withdraw_paused", - "type": "core::bool" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::config::ResourceBridgeFeeSplitConfig", - "members": [ - { - "name": "config_id", - "type": "core::integer::u32" - }, - { - "name": "velords_fee_on_dpt_percent", - "type": "core::integer::u16" - }, - { - "name": "velords_fee_on_wtdr_percent", - "type": "core::integer::u16" - }, - { - "name": "season_pool_fee_on_dpt_percent", - "type": "core::integer::u16" - }, - { - "name": "season_pool_fee_on_wtdr_percent", - "type": "core::integer::u16" - }, - { - "name": "client_fee_on_dpt_percent", - "type": "core::integer::u16" - }, - { - "name": "client_fee_on_wtdr_percent", - "type": "core::integer::u16" - }, - { - "name": "velords_fee_recipient", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "season_pool_fee_recipient", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "max_bank_fee_dpt_percent", - "type": "core::integer::u16" - }, - { - "name": "max_bank_fee_wtdr_percent", - "type": "core::integer::u16" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::config::ResourceBridgeWhitelistConfig", - "members": [ - { - "name": "token", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IResourceBridgeConfig", - "items": [ - { - "type": "function", - "name": "set_resource_bridge_config", - "inputs": [ - { - "name": "resource_bridge_config", - "type": "s1_eternum::models::config::ResourceBridgeConfig" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_resource_bridge_fee_split_config", - "inputs": [ - { - "name": "resource_bridge_fee_split_config", - "type": "s1_eternum::models::config::ResourceBridgeFeeSplitConfig" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_resource_bridge_whitelist_config", - "inputs": [ - { - "name": "resource_bridge_whitelist_config", - "type": "s1_eternum::models::config::ResourceBridgeWhitelistConfig" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "RealmLevelConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::IRealmLevelConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::IRealmLevelConfig", - "items": [ - { - "type": "function", - "name": "set_realm_max_level_config", - "inputs": [ - { - "name": "new_max_level", - "type": "core::integer::u8" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_realm_level_config", - "inputs": [ - { - "name": "level", - "type": "core::integer::u8" - }, - { - "name": "resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "ISettlementConfig", - "interface_name": "s1_eternum::systems::config::contracts::ISettlementConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ISettlementConfig", - "items": [ - { - "type": "function", - "name": "set_settlement_config", - "inputs": [ - { - "name": "center", - "type": "core::integer::u32" - }, - { - "name": "base_distance", - "type": "core::integer::u32" - }, - { - "name": "min_first_layer_distance", - "type": "core::integer::u32" - }, - { - "name": "points_placed", - "type": "core::integer::u32" - }, - { - "name": "current_layer", - "type": "core::integer::u32" - }, - { - "name": "current_side", - "type": "core::integer::u32" - }, - { - "name": "current_point_on_side", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "achievement::components::achievable::AchievableComponent::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::config::contracts::config_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - }, - { - "name": "AchievableEvent", - "type": "achievement::components::achievable::AchievableComponent::Event", - "kind": "flat" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-config_systems", - "selector": "0x1cb4608b18b40cb6420be7cf67ff21abe727a2bf599f2727d8eed5e36099fc2", - "systems": [ - "set_world_config", - "set_season_config", - "set_season_bridge_config", - "set_vrf_config", - "set_quest_reward_config", - "set_map_config", - "set_capacity_config", - "set_travel_stamina_cost_config", - "set_weight_config", - "set_battle_config", - "set_tick_config", - "set_stamina_config", - "set_travel_food_cost_config", - "set_stamina_refill_config", - "set_leveling_config", - "set_production_config", - "set_labor_config", - "set_speed_config", - "set_hyperstructure_config", - "set_bank_config", - "set_troop_config", - "set_building_category_pop_config", - "set_population_config", - "set_building_general_config", - "set_building_config", - "set_mercenaries_config", - "set_resource_bridge_config", - "set_resource_bridge_fee_split_config", - "set_resource_bridge_whitelist_config", - "set_realm_max_level_config", - "set_realm_level_config", - "set_settlement_config", - "upgrade" - ] - }, - { - "address": "0x6c0ae788bf4a46b49a57a67944bfb614c8da00b2b99c5d2917ec9bafb8ed460", - "class_hash": "0x52cc13796077949a91149c8870679bff30e880faacc1696c444db1ffc2e03ba", - "abi": [ - { - "type": "impl", - "name": "dev_bank_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "dev_bank_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "BankSystemsImpl", - "interface_name": "s1_eternum::systems::dev::contracts::bank::IBankSystems" - }, - { - "type": "struct", - "name": "s1_eternum::models::position::Coord", - "members": [ - { - "name": "x", - "type": "core::integer::u32" - }, - { - "name": "y", - "type": "core::integer::u32" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::dev::contracts::bank::IBankSystems", - "items": [ - { - "type": "function", - "name": "create_admin_bank", - "inputs": [ - { - "name": "name", - "type": "core::felt252" - }, - { - "name": "coord", - "type": "s1_eternum::models::position::Coord" - }, - { - "name": "owner_fee_num", - "type": "core::integer::u128" - }, - { - "name": "owner_fee_denom", - "type": "core::integer::u128" - }, - { - "name": "owner_bridge_fee_dpt_percent", - "type": "core::integer::u16" - }, - { - "name": "owner_bridge_fee_wtdr_percent", - "type": "core::integer::u16" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::dev::contracts::bank::dev_bank_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-dev_bank_systems", - "selector": "0x653ceec4af5e357119149b66228aece89c47a9c85dbba76955cec24e809f191", - "systems": ["create_admin_bank", "upgrade"] - }, - { - "address": "0x2c4b344be05a87cd6f26defb2056e5e55b1770abd9a57f899f73ba8eb4e2f2f", - "class_hash": "0x5eade382aa35597f5cbbee1c9366af3e78caef7ba002534aabfe11c24487bce", - "abi": [ - { - "type": "impl", - "name": "dev_realm_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "dev_realm_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "DevRealmSystemsImpl", - "interface_name": "s1_eternum::systems::dev::contracts::realm::IDevRealmSystems" - }, - { - "type": "interface", - "name": "s1_eternum::systems::dev::contracts::realm::IDevRealmSystems", - "items": [ - { - "type": "function", - "name": "create", - "inputs": [ - { - "name": "realm_id", - "type": "core::integer::u32" - }, - { - "name": "frontend", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::dev::contracts::realm::dev_realm_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-dev_realm_systems", - "selector": "0x32279d1c73c6356f5f15ff0e59adc6bfc45ffcde796c785452f6944b9b36ef1", - "systems": ["create", "upgrade"] - }, - { - "address": "0x1c8793d542cb6fb3cb140279ece63cdb8265868874e2aed3dce8a7b7cffd256", - "class_hash": "0x7d9a070d9ded75006a3b6ee02cee0601012901e7910978c390cb28a232a26cc", - "abi": [ - { - "type": "impl", - "name": "dev_resource_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "dev_resource_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "ResourceSystemsImpl", - "interface_name": "s1_eternum::systems::dev::contracts::resource::IResourceSystems" - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::dev::contracts::resource::IResourceSystems", - "items": [ - { - "type": "function", - "name": "mint", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::dev::contracts::resource::dev_resource_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-dev_resource_systems", - "selector": "0x4d5cfcb90997c42faaec636a440b73118f54d7e5321a8e6e134bdb0ac946333", - "systems": ["mint", "upgrade"] - }, - { - "address": "0x4204a54ee15c321687de3b19ca4ccc01a65a1dff5b034cb6799ff32f73f106f", - "class_hash": "0x41e1faef49fb72e1e20ffcf0c2c15e99f80cf95dc8ae3414b5c0e31ecce6b6f", - "abi": [ - { - "type": "impl", - "name": "donkey_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "donkey_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::transport::contracts::donkey_systems::donkey_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-donkey_systems", - "selector": "0x3d69880d4cc048ff9cbc100f9667649cb239b66e1245bf3cccb47119ea29a95", - "systems": ["upgrade"] - }, - { - "address": "0x345779feb4e212431505dff8d8581c38de82201ad9cb6bc32d7bb547087f402", - "class_hash": "0x6178332d6302e2ccebecc0cdf7ef676443384f9e3dcffbcbb1cb9056c05b11e", - "abi": [ - { - "type": "impl", - "name": "guild_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "guild_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "GuildSystemsImpl", - "interface_name": "s1_eternum::systems::guild::contracts::IGuildSystems" - }, - { - "type": "enum", - "name": "core::bool", - "variants": [ - { - "name": "False", - "type": "()" - }, - { - "name": "True", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::guild::contracts::IGuildSystems", - "items": [ - { - "type": "function", - "name": "create_guild", - "inputs": [ - { - "name": "is_public", - "type": "core::bool" - }, - { - "name": "guild_name", - "type": "core::felt252" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "join_guild", - "inputs": [ - { - "name": "guild_entity_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "whitelist_player", - "inputs": [ - { - "name": "player_address_to_whitelist", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "guild_entity_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "transfer_guild_ownership", - "inputs": [ - { - "name": "guild_entity_id", - "type": "core::integer::u32" - }, - { - "name": "to_player_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "remove_guild_member", - "inputs": [ - { - "name": "player_address_to_remove", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "remove_player_from_whitelist", - "inputs": [ - { - "name": "player_address_to_remove", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "guild_entity_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::guild::contracts::guild_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-guild_systems", - "selector": "0x15516acac71fbb80f953b9a8fac7d65ceff957f7f2d568fecbccba36bec6263", - "systems": [ - "create_guild", - "join_guild", - "whitelist_player", - "transfer_guild_ownership", - "remove_guild_member", - "remove_player_from_whitelist", - "upgrade" - ] - }, - { - "address": "0xd4a3c274fbdc8ca6fc0c0a2e1bdb9f4ef78ec6efe253592e936bd2e5db712f", - "class_hash": "0x1af127b3e1737bc103072be80c6927cdc90616df78597a5e225f6ab981ad6e4", - "abi": [ - { - "type": "impl", - "name": "hyperstructure_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "hyperstructure_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "HyperstructureSystemsImpl", - "interface_name": "s1_eternum::systems::hyperstructure::contracts::IHyperstructureSystems" - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u32, core::integer::u16)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u32, core::integer::u16)>" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::position::Coord", - "members": [ - { - "name": "x", - "type": "core::integer::u32" - }, - { - "name": "y", - "type": "core::integer::u32" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::<(core::starknet::contract_address::ContractAddress, core::integer::u16)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::starknet::contract_address::ContractAddress, core::integer::u16)>" - } - ] - }, - { - "type": "enum", - "name": "s1_eternum::models::hyperstructure::Access", - "variants": [ - { - "name": "Public", - "type": "()" - }, - { - "name": "Private", - "type": "()" - }, - { - "name": "GuildOnly", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::hyperstructure::contracts::IHyperstructureSystems", - "items": [ - { - "type": "function", - "name": "get_points", - "inputs": [ - { - "name": "player_address", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "hyperstructures_contributed_to", - "type": "core::array::Span::" - }, - { - "name": "hyperstructure_shareholder_epochs", - "type": "core::array::Span::<(core::integer::u32, core::integer::u16)>" - } - ], - "outputs": [ - { - "type": "(core::integer::u128, core::integer::u128, core::integer::u128, core::integer::u128)" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "create", - "inputs": [ - { - "name": "creator_entity_id", - "type": "core::integer::u32" - }, - { - "name": "coord", - "type": "s1_eternum::models::position::Coord" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "contribute_to_construction", - "inputs": [ - { - "name": "hyperstructure_entity_id", - "type": "core::integer::u32" - }, - { - "name": "contributor_entity_id", - "type": "core::integer::u32" - }, - { - "name": "contributions", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_co_owners", - "inputs": [ - { - "name": "hyperstructure_entity_id", - "type": "core::integer::u32" - }, - { - "name": "co_owners", - "type": "core::array::Span::<(core::starknet::contract_address::ContractAddress, core::integer::u16)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "end_game", - "inputs": [ - { - "name": "hyperstructures_contributed_to", - "type": "core::array::Span::" - }, - { - "name": "hyperstructure_shareholder_epochs", - "type": "core::array::Span::<(core::integer::u32, core::integer::u16)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_access", - "inputs": [ - { - "name": "hyperstructure_entity_id", - "type": "core::integer::u32" - }, - { - "name": "access", - "type": "s1_eternum::models::hyperstructure::Access" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::hyperstructure::contracts::hyperstructure_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-hyperstructure_systems", - "selector": "0x4bdd8bcbb935577aba3b974bd7e906698504fcb75e0c3aa34913c21342b4498", - "systems": [ - "get_points", - "create", - "contribute_to_construction", - "set_co_owners", - "end_game", - "set_access", - "upgrade" - ] - }, - { - "address": "0x12b32981130d1089c5642125fbe96cdb4da0562e904eb8da590a30ea4f0aa9d", - "class_hash": "0x39da4b5a4c779a5961a30a6bd3be3002f7ac8ca7fcb261bae647262cb03f8df", - "abi": [ - { - "type": "impl", - "name": "liquidity_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "liquidity_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "LiquiditySystemsImpl", - "interface_name": "s1_eternum::systems::bank::contracts::liquidity::ILiquiditySystems" - }, - { - "type": "enum", - "name": "core::bool", - "variants": [ - { - "name": "False", - "type": "()" - }, - { - "name": "True", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "cubit::f128::types::fixed::Fixed", - "members": [ - { - "name": "mag", - "type": "core::integer::u128" - }, - { - "name": "sign", - "type": "core::bool" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::bank::contracts::liquidity::ILiquiditySystems", - "items": [ - { - "type": "function", - "name": "add", - "inputs": [ - { - "name": "bank_entity_id", - "type": "core::integer::u32" - }, - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "resource_amount", - "type": "core::integer::u128" - }, - { - "name": "lords_amount", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "remove", - "inputs": [ - { - "name": "bank_entity_id", - "type": "core::integer::u32" - }, - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "shares", - "type": "cubit::f128::types::fixed::Fixed" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::bank::contracts::liquidity::liquidity_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-liquidity_systems", - "selector": "0xf480ba1a0c3e5b85a74ba14244a1653f886654d67c71b4dd0804d9eecf1cd9", - "systems": ["add", "remove", "upgrade"] - }, - { - "address": "0x43b2a3f4e47fa52ef2549162f89258dbcbd23bc62a51d0a331b80039a66bc9b", - "class_hash": "0x23550c76e27c75c2c2aab7aaca5bc20b9595837ff35fdb95cd538c3d3f2466c", - "abi": [ - { - "type": "impl", - "name": "map_generation_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "map_generation_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "MapGenerationSystemsImpl", - "interface_name": "s1_eternum::systems::map::map_generation::IMapGenerationSystems" - }, - { - "type": "struct", - "name": "s1_eternum::models::owner::EntityOwner", - "members": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "entity_owner_id", - "type": "core::integer::u32" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::position::Coord", - "members": [ - { - "name": "x", - "type": "core::integer::u32" - }, - { - "name": "y", - "type": "core::integer::u32" - } - ] - }, - { - "type": "enum", - "name": "core::bool", - "variants": [ - { - "name": "False", - "type": "()" - }, - { - "name": "True", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "core::integer::u256", - "members": [ - { - "name": "low", - "type": "core::integer::u128" - }, - { - "name": "high", - "type": "core::integer::u128" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::map::map_generation::IMapGenerationSystems", - "items": [ - { - "type": "function", - "name": "discover_shards_mine", - "inputs": [ - { - "name": "unit_entity_owner", - "type": "s1_eternum::models::owner::EntityOwner" - }, - { - "name": "coord", - "type": "s1_eternum::models::position::Coord" - } - ], - "outputs": [ - { - "type": "core::bool" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "add_mercenaries_to_structure", - "inputs": [ - { - "name": "randomness", - "type": "core::integer::u256" - }, - { - "name": "structure_entity_id", - "type": "core::integer::u32" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::map::map_generation::map_generation_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-map_generation_systems", - "selector": "0x6dbd060aee5437a68789ce311c098ad9e39dddab8447b335c10007afae949c6", - "systems": ["discover_shards_mine", "add_mercenaries_to_structure", "upgrade"] - }, - { - "address": "0x6e173c5aca48a948de710aea5492c1df18a3f477b666a9af82281e1024e7bd2", - "class_hash": "0x3bb707045c5ff3766935a9bece0717a1adf395e9f109cf9e0f8d025bfeadc6d", - "abi": [ - { - "type": "impl", - "name": "map_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "map_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "MapSystemsImpl", - "interface_name": "s1_eternum::systems::map::contracts::IMapSystems" - }, - { - "type": "enum", - "name": "s1_eternum::models::position::Direction", - "variants": [ - { - "name": "East", - "type": "()" - }, - { - "name": "NorthEast", - "type": "()" - }, - { - "name": "NorthWest", - "type": "()" - }, - { - "name": "West", - "type": "()" - }, - { - "name": "SouthWest", - "type": "()" - }, - { - "name": "SouthEast", - "type": "()" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::map::contracts::IMapSystems", - "items": [ - { - "type": "function", - "name": "explore", - "inputs": [ - { - "name": "unit_id", - "type": "core::integer::u32" - }, - { - "name": "direction", - "type": "s1_eternum::models::position::Direction" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::map::contracts::map_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-map_systems", - "selector": "0x6ed75404dd23a9d2825f9459d23848133ae3e81050e63b85c0d37264695d998", - "systems": ["explore", "upgrade"] - }, - { - "address": "0x7ad2d6a7a566fece8c3cb08b96ca16c43f6981c77f7e1b2fa2112aac2976661", - "class_hash": "0x6a06d111761024260598c4cab0bad06ba15ec09331b176f9223e62ef2093508", - "abi": [ - { - "type": "impl", - "name": "name_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "name_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "NameSystemsImpl", - "interface_name": "s1_eternum::systems::name::contracts::INameSystems" - }, - { - "type": "interface", - "name": "s1_eternum::systems::name::contracts::INameSystems", - "items": [ - { - "type": "function", - "name": "set_address_name", - "inputs": [ - { - "name": "name", - "type": "core::felt252" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "set_entity_name", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "name", - "type": "core::felt252" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::name::contracts::name_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-name_systems", - "selector": "0x45b86c7ee3f36393c4d14a0da3c58fdf406677137f1d840c53f01e8544e3b80", - "systems": ["set_address_name", "set_entity_name", "upgrade"] - }, - { - "address": "0x5f20dfb2ac256e7b8394d2ac6bbd12288c2844c64143a87e27cb5bd3027ebc0", - "class_hash": "0x57f36faf3ab21b910521f361bbc7bcd09758bc4ba46015f2bad0f15f6bf53ff", - "abi": [ - { - "type": "impl", - "name": "ownership_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "ownership_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "OwnershipSystemsImpl", - "interface_name": "s1_eternum::systems::ownership::contracts::IOwnershipSystems" - }, - { - "type": "interface", - "name": "s1_eternum::systems::ownership::contracts::IOwnershipSystems", - "items": [ - { - "type": "function", - "name": "transfer_ownership", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "new_owner", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::ownership::contracts::ownership_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-ownership_systems", - "selector": "0x5045fbdb3ad9b695ea6f218e57a3ca2ce575a2964f30e15f2e710f691aa0622", - "systems": ["transfer_ownership", "upgrade"] - }, - { - "address": "0x47773b52867c0867b40b26408e3ff84fca0b1a9afe55c0cb0fe284c1a18c3d8", - "class_hash": "0x2d8e31a55fd8bf1e95262a07e57c0b97db4a1ae573f4e9d07b6b8fdb863cc43", - "abi": [ - { - "type": "impl", - "name": "production_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "production_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "ProductionContractImpl", - "interface_name": "s1_eternum::systems::production::contracts::IProductionContract" - }, - { - "type": "enum", - "name": "s1_eternum::models::position::Direction", - "variants": [ - { - "name": "East", - "type": "()" - }, - { - "name": "NorthEast", - "type": "()" - }, - { - "name": "NorthWest", - "type": "()" - }, - { - "name": "West", - "type": "()" - }, - { - "name": "SouthWest", - "type": "()" - }, - { - "name": "SouthEast", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "enum", - "name": "s1_eternum::models::resource::production::building::BuildingCategory", - "variants": [ - { - "name": "None", - "type": "()" - }, - { - "name": "Castle", - "type": "()" - }, - { - "name": "Resource", - "type": "()" - }, - { - "name": "Farm", - "type": "()" - }, - { - "name": "FishingVillage", - "type": "()" - }, - { - "name": "Barracks", - "type": "()" - }, - { - "name": "Market", - "type": "()" - }, - { - "name": "ArcheryRange", - "type": "()" - }, - { - "name": "Stable", - "type": "()" - }, - { - "name": "TradingPost", - "type": "()" - }, - { - "name": "WorkersHut", - "type": "()" - }, - { - "name": "WatchTower", - "type": "()" - }, - { - "name": "Walls", - "type": "()" - }, - { - "name": "Storehouse", - "type": "()" - } - ] - }, - { - "type": "enum", - "name": "core::option::Option::", - "variants": [ - { - "name": "Some", - "type": "core::integer::u8" - }, - { - "name": "None", - "type": "()" - } - ] - }, - { - "type": "struct", - "name": "s1_eternum::models::position::Coord", - "members": [ - { - "name": "x", - "type": "core::integer::u32" - }, - { - "name": "y", - "type": "core::integer::u32" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::production::contracts::IProductionContract", - "items": [ - { - "type": "function", - "name": "create_building", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "directions", - "type": "core::array::Span::" - }, - { - "name": "building_category", - "type": "s1_eternum::models::resource::production::building::BuildingCategory" - }, - { - "name": "produce_resource_type", - "type": "core::option::Option::" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "destroy_building", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "building_coord", - "type": "s1_eternum::models::position::Coord" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "pause_building_production", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "building_coord", - "type": "s1_eternum::models::position::Coord" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "resume_building_production", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "building_coord", - "type": "s1_eternum::models::position::Coord" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "make_production_labor", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "labor_amount", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "burn_production_labor", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "labor_amount", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::production::contracts::production_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-production_systems", - "selector": "0x6d70095d0a6ca6efc41633bafa4ac5202f1f83c75afbba78987b58f495a4c0", - "systems": [ - "create_building", - "destroy_building", - "pause_building_production", - "resume_building_production", - "make_production_labor", - "burn_production_labor", - "upgrade" - ] - }, - { - "address": "0x30b9c5bf6c05b8e950901079bba39766f4a4d23466f2df0258e1ecca3731e19", - "class_hash": "0x567e142c27b39221110078e7ffc6f3d24ee35d07978b548cb799d777d81baba", - "abi": [ - { - "type": "impl", - "name": "realm_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "realm_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "RealmSystemsImpl", - "interface_name": "s1_eternum::systems::realm::contracts::IRealmSystems" - }, - { - "type": "interface", - "name": "s1_eternum::systems::realm::contracts::IRealmSystems", - "items": [ - { - "type": "function", - "name": "create", - "inputs": [ - { - "name": "owner", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "realm_id", - "type": "core::integer::u32" - }, - { - "name": "frontend", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "upgrade_level", - "inputs": [ - { - "name": "realm_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "quest_claim", - "inputs": [ - { - "name": "quest_id", - "type": "core::integer::u32" - }, - { - "name": "entity_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::realm::contracts::realm_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-realm_systems", - "selector": "0x3b4cc14cbb49692c85e1b132ac8536fe7d0d1361cd2fb5ba8df29f726ca02d2", - "systems": ["create", "upgrade_level", "quest_claim", "upgrade"] - }, - { - "address": "0x1e859bd917c725f938d7ffecdd9f687e04af2b44cf534848895e7efa946378a", - "class_hash": "0x50d051cf375ddb6427d781b0e7f5c7670f3a0c3cea45ed487154c6fe33cdacf", - "abi": [ - { - "type": "impl", - "name": "resource_bridge_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "resource_bridge_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "ResourceBridgeImpl", - "interface_name": "s1_eternum::systems::resources::contracts::resource_bridge_systems::IResourceBridgeSystems" - }, - { - "type": "struct", - "name": "core::integer::u256", - "members": [ - { - "name": "low", - "type": "core::integer::u128" - }, - { - "name": "high", - "type": "core::integer::u128" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::resources::contracts::resource_bridge_systems::IResourceBridgeSystems", - "items": [ - { - "type": "function", - "name": "deposit_initial", - "inputs": [ - { - "name": "token", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "recipient_realm_id", - "type": "core::integer::u32" - }, - { - "name": "amount", - "type": "core::integer::u256" - }, - { - "name": "client_fee_recipient", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "deposit", - "inputs": [ - { - "name": "token", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "through_bank_id", - "type": "core::integer::u32" - }, - { - "name": "recipient_realm_id", - "type": "core::integer::u32" - }, - { - "name": "amount", - "type": "core::integer::u256" - }, - { - "name": "client_fee_recipient", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "start_withdraw", - "inputs": [ - { - "name": "through_bank_id", - "type": "core::integer::u32" - }, - { - "name": "from_realm_id", - "type": "core::integer::u32" - }, - { - "name": "token", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "amount", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "finish_withdraw", - "inputs": [ - { - "name": "through_bank_id", - "type": "core::integer::u32" - }, - { - "name": "from_entity_id", - "type": "core::integer::u32" - }, - { - "name": "token", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "recipient_address", - "type": "core::starknet::contract_address::ContractAddress" - }, - { - "name": "client_fee_recipient", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::resources::contracts::resource_bridge_systems::resource_bridge_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-resource_bridge_systems", - "selector": "0x4f94ba58902810acb653eeeb2a36e5f8f5a7096ceac7a2705c52732281e3cd2", - "systems": ["deposit_initial", "deposit", "start_withdraw", "finish_withdraw", "upgrade"] - }, - { - "address": "0x7e9f737c5c89d0f4e2c2b9f0ffda396da22b2c9fa14106f2d940dddae35497a", - "class_hash": "0x4e3a61a93c7703b04df217cf8e8b43698187f9a7434c457f29f3602f8ceb190", - "abi": [ - { - "type": "impl", - "name": "resource_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "resource_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "ResourceSystemsImpl", - "interface_name": "s1_eternum::systems::resources::contracts::resource_systems::IResourceSystems" - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::resources::contracts::resource_systems::IResourceSystems", - "items": [ - { - "type": "function", - "name": "approve", - "inputs": [ - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "recipient_entity_id", - "type": "core::integer::u32" - }, - { - "name": "resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "send", - "inputs": [ - { - "name": "sender_entity_id", - "type": "core::integer::u32" - }, - { - "name": "recipient_entity_id", - "type": "core::integer::u32" - }, - { - "name": "resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "pickup", - "inputs": [ - { - "name": "recipient_entity_id", - "type": "core::integer::u32" - }, - { - "name": "owner_entity_id", - "type": "core::integer::u32" - }, - { - "name": "resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::resources::contracts::resource_systems::resource_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-resource_systems", - "selector": "0x626970a749fd6b8230875061236c1a9446ae65287beb6107d5b88e5ca078019", - "systems": ["approve", "send", "pickup", "upgrade"] - }, - { - "address": "0x6f2ca7adc33ebf6cbe7d539cb50dff53cffcc701ac252b65eadc9454e12e247", - "class_hash": "0x59c55e3ca487de1ccb5b6cf174ac5c70d98b4af6db76b9987843dc08520cef3", - "abi": [ - { - "type": "impl", - "name": "season_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "season_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "SeasonSystemsImpl", - "interface_name": "s1_eternum::systems::season::contracts::ISeasonSystems" - }, - { - "type": "struct", - "name": "core::array::Span::", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "struct", - "name": "core::array::Span::<(core::integer::u32, core::integer::u16)>", - "members": [ - { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u32, core::integer::u16)>" - } - ] - }, + "generatedFromTsFile": true, + "message": "This file was generated from the .ts file and should not be edited manually", + "configuration": { + "stamina": { + "travelCost": 0, + "exploreCost": 0, + "refillPerTick": 20, + "startBoostTickCount": 2 + }, + "resources": { + "resourcePrecision": 1000000000, + "resourceMultiplier": 1000000000, + "resourceAmountPerTick": 10, + "startingResourcesInputProductionFactor": 6, + "resourceInputs": { + "1": [ + { + "resource": 3, + "amount": 5 + }, + { + "resource": 2, + "amount": 3.8 + }, + { + "resource": 29, + "amount": 5 + } + ], + "2": [ + { + "resource": 1, + "amount": 4.2 + }, + { + "resource": 4, + "amount": 2.8 + }, + { + "resource": 29, + "amount": 5 + } + ], + "3": [ + { + "resource": 1, + "amount": 3 + }, + { + "resource": 2, + "amount": 3.2 + }, + { + "resource": 29, + "amount": 5 + } + ], + "4": [ + { + "resource": 2, + "amount": 5.8 + }, + { + "resource": 6, + "amount": 3.4 + }, + { + "resource": 29, + "amount": 5 + } + ], + "5": [ + { + "resource": 8, + "amount": 6 + }, + { + "resource": 11, + "amount": 3.2 + }, + { + "resource": 30, + "amount": 4 + } + ], + "6": [ + { + "resource": 4, + "amount": 4.8 + }, + { + "resource": 8, + "amount": 3.2 + }, + { + "resource": 29, + "amount": 5 + } + ], + "7": [ + { + "resource": 11, + "amount": 4.2 + }, + { + "resource": 15, + "amount": 2.6 + }, + { + "resource": 30, + "amount": 4 + } + ], + "8": [ + { + "resource": 6, + "amount": 5 + }, + { + "resource": 5, + "amount": 2.8 + }, + { + "resource": 30, + "amount": 4 + } + ], + "9": [ + { + "resource": 19, + "amount": 6 + }, + { + "resource": 22, + "amount": 2.4 + }, + { + "resource": 30, + "amount": 4 + } + ], + "10": [ + { + "resource": 17, + "amount": 4.8 + }, + { + "resource": 19, + "amount": 2.4 + }, + { + "resource": 30, + "amount": 4 + } + ], + "11": [ + { + "resource": 5, + "amount": 5 + }, + { + "resource": 7, + "amount": 3.8 + }, + { + "resource": 30, + "amount": 4 + } + ], + "12": [ + { + "resource": 13, + "amount": 4 + }, + { + "resource": 16, + "amount": 4.2 + }, + { + "resource": 30, + "amount": 4 + } + ], + "13": [ + { + "resource": 20, + "amount": 4.2 + }, + { + "resource": 12, + "amount": 4 + }, + { + "resource": 30, + "amount": 4 + } + ], + "14": [ + { + "resource": 15, + "amount": 8 + }, + { + "resource": 20, + "amount": 3.2 + }, + { + "resource": 30, + "amount": 4 + } + ], + "15": [ + { + "resource": 7, + "amount": 6.2 + }, + { + "resource": 14, + "amount": 2 + }, + { + "resource": 30, + "amount": 4 + } + ], + "16": [ + { + "resource": 12, + "amount": 5.6 + }, + { + "resource": 21, + "amount": 3.8 + }, + { + "resource": 30, + "amount": 4 + } + ], + "17": [ + { + "resource": 18, + "amount": 5 + }, + { + "resource": 10, + "amount": 3.4 + }, + { + "resource": 30, + "amount": 4 + } + ], + "18": [ + { + "resource": 21, + "amount": 4.6 + }, + { + "resource": 17, + "amount": 3.2 + }, + { + "resource": 30, + "amount": 4 + } + ], + "19": [ + { + "resource": 10, + "amount": 6.8 + }, + { + "resource": 9, + "amount": 2.6 + }, + { + "resource": 30, + "amount": 4 + } + ], + "20": [ + { + "resource": 14, + "amount": 4.8 + }, + { + "resource": 13, + "amount": 3.8 + }, + { + "resource": 30, + "amount": 4 + } + ], + "21": [ + { + "resource": 16, + "amount": 4.2 + }, + { + "resource": 18, + "amount": 3.4 + }, + { + "resource": 30, + "amount": 4 + } + ], + "22": [ + { + "resource": 9, + "amount": 6.4 + }, + { + "resource": 19, + "amount": 4 + }, + { + "resource": 30, + "amount": 4 + } + ], + "23": [], + "24": [], + "25": [ + { + "resource": 29, + "amount": 25 + }, + { + "resource": 31, + "amount": 0.01 + } + ], + "26": [ + { + "resource": 29, + "amount": 50 + }, + { + "resource": 30, + "amount": 50 + }, + { + "resource": 8, + "amount": 2 + }, + { + "resource": 5, + "amount": 5 + } + ], + "27": [ + { + "resource": 29, + "amount": 50 + }, + { + "resource": 30, + "amount": 50 + }, + { + "resource": 6, + "amount": 2 + }, + { + "resource": 11, + "amount": 5 + } + ], + "28": [ + { + "resource": 29, + "amount": 50 + }, + { + "resource": 30, + "amount": 50 + }, + { + "resource": 4, + "amount": 2 + }, + { + "resource": 7, + "amount": 5 + } + ], + "29": [], + "30": [], + "31": [] + }, + "resourceOutputs": { + "1": 30, + "2": 30, + "3": 30, + "4": 30, + "5": 30, + "6": 30, + "7": 30, + "8": 30, + "9": 30, + "10": 30, + "11": 30, + "12": 30, + "13": 30, + "14": 30, + "15": 30, + "16": 30, + "17": 30, + "18": 30, + "19": 30, + "20": 30, + "21": 30, + "22": 30, + "23": 30, + "24": 1, + "25": 0.5, + "26": 0.04, + "27": 0.04, + "28": 0.04, + "29": 50, + "30": 50, + "31": 0 + }, + "resourceProductionByLaborParams": { + "1": { + "resource_rarity": 1, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "2": { + "resource_rarity": 1, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "3": { + "resource_rarity": 1, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "4": { + "resource_rarity": 2, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "5": { + "resource_rarity": 4, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "6": { + "resource_rarity": 2, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "7": { + "resource_rarity": 5, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "8": { + "resource_rarity": 3, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "9": { + "resource_rarity": 136, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "10": { + "resource_rarity": 54, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "11": { + "resource_rarity": 5, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "12": { + "resource_rarity": 21, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "13": { + "resource_rarity": 21, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "14": { + "resource_rarity": 17, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "15": { + "resource_rarity": 8, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "16": { + "resource_rarity": 29, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "17": { + "resource_rarity": 45, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "18": { + "resource_rarity": 36, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "19": { + "resource_rarity": 91, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "20": { + "resource_rarity": 20, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "21": { + "resource_rarity": 31, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "22": { + "resource_rarity": 218, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "23": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "24": { + "resource_rarity": 21, + "depreciation_percent_num": 10, + "depreciation_percent_denom": 100, + "wheat_burn_per_labor": 25, + "fish_burn_per_labor": 30 + }, + "25": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "26": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "27": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "28": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "29": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "30": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + }, + "31": { + "resource_rarity": 0, + "depreciation_percent_num": 0, + "depreciation_percent_denom": 0, + "wheat_burn_per_labor": 0, + "fish_burn_per_labor": 0 + } + }, + "resourceWeightsGrams": { + "1": 1000, + "2": 1000, + "3": 1000, + "4": 1000, + "5": 1000, + "6": 1000, + "7": 1000, + "8": 1000, + "9": 1000, + "10": 1000, + "11": 1000, + "12": 1000, + "13": 1000, + "14": 1000, + "15": 1000, + "16": 1000, + "17": 1000, + "18": 1000, + "19": 1000, + "20": 1000, + "21": 1000, + "22": 1000, + "23": 1000, + "24": 1000, + "25": 0, + "26": 5000, + "27": 3000, + "28": 5000, + "29": 100, + "30": 100, + "31": 0 + }, + "resourceRarity": { + "1": 1.27, + "2": 1.31, + "3": 1, + "4": 1.9, + "5": 4.25, + "6": 2.26, + "7": 5.49, + "8": 2.88, + "9": 135.53, + "10": 53.92, + "11": 5.24, + "12": 20.98, + "13": 20.98, + "14": 16.72, + "15": 8.44, + "16": 29.15, + "17": 45.18, + "18": 36.06, + "19": 91.2, + "20": 20.3, + "21": 30.95, + "22": 217.92, + "24": 20.98, + "25": 1, + "26": 1, + "27": 1, + "28": 1, + "29": 1, + "30": 1, + "31": 1 + } + }, + "banks": { + "name": "Central Bank", + "lordsCost": 1000, + "lpFeesNumerator": 15, + "lpFeesDenominator": 100, + "ownerFeesNumerator": 15, + "ownerFeesDenominator": 100, + "ownerBridgeFeeOnDepositPercent": 1000, + "ownerBridgeFeeOnWithdrawalPercent": 1000, + "ammStartingLiquidity": { + "1": 500000, + "2": 500000, + "3": 500000, + "4": 500000, + "5": 200000, + "6": 500000, + "7": 200000, + "8": 500000, + "9": 50000, + "10": 50000, + "11": 200000, + "12": 75000, + "13": 100000, + "14": 100000, + "15": 200000, + "16": 75000, + "17": 50000, + "18": 50000, + "19": 50000, + "20": 100000, + "21": 50000, + "22": 50000, + "25": 10000 + }, + "lordsLiquidityPerResource": 1000 + }, + "populationCapacity": { + "workerHuts": 5, + "basePopulation": 5 + }, + "exploration": { + "reward": 750, + "shardsMinesFailProbability": 99000 + }, + "tick": { + "defaultTickIntervalInSeconds": 1, + "armiesTickIntervalInSeconds": 3600 + }, + "carryCapacityGram": { + "0": 0, + "1": "340282366920938463463374607431768211455", + "2": 500000, + "3": 10000, + "4": 300000000 + }, + "speed": { + "donkey": 1, + "army": 1 + }, + "battle": { + "graceTickCount": 0, + "graceTickCountHyp": 0, + "delaySeconds": 0 + }, + "troop": { + "health": 1, + "knightStrength": 1, + "paladinStrength": 1, + "crossbowmanStrength": 1, + "advantagePercent": 1000, + "disadvantagePercent": 1000, + "maxTroopCount": 500000, + "baseArmyNumberForStructure": 3, + "armyExtraPerMilitaryBuilding": 1, + "maxArmiesPerStructure": 7, + "pillageHealthDivisor": 8, + "battleLeaveSlashNum": 25, + "battleLeaveSlashDenom": 100, + "battleTimeReductionScale": 1000, + "battleMaxTimeSeconds": 172800, + "troopStaminas": { + "26": 80, + "27": 80, + "28": 100 + }, + "troopFoodConsumption": { + "26": { + "explore_wheat_burn_amount": 10, + "explore_fish_burn_amount": 10, + "travel_wheat_burn_amount": 5, + "travel_fish_burn_amount": 5 + }, + "27": { + "explore_wheat_burn_amount": 6, + "explore_fish_burn_amount": 6, + "travel_wheat_burn_amount": 3, + "travel_fish_burn_amount": 3 + }, + "28": { + "explore_wheat_burn_amount": 10, + "explore_fish_burn_amount": 10, + "travel_wheat_burn_amount": 4, + "travel_fish_burn_amount": 4 + } + } + }, + "mercenaries": { + "knights_lower_bound": 1000, + "knights_upper_bound": 4000, + "paladins_lower_bound": 1000, + "paladins_upper_bound": 4000, + "crossbowmen_lower_bound": 1000, + "crossbowmen_upper_bound": 4000, + "rewards": [ + { + "resource": 29, + "amount": 0 + }, + { + "resource": 30, + "amount": 0 + } + ] + }, + "settlement": { + "center": 2147483646, + "base_distance": 10, + "min_first_layer_distance": 30, + "points_placed": 0, + "current_layer": 1, + "current_side": 1, + "current_point_on_side": 0 + }, + "buildings": { + "buildingCapacity": { + "0": 0, + "1": 5, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0, + "10": 5, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 0 + }, + "buildingPopulation": { + "0": 0, + "1": 0, + "2": 2, + "3": 1, + "4": 1, + "5": 2, + "6": 3, + "7": 2, + "8": 3, + "9": 2, + "10": 0, + "11": 2, + "12": 2, + "13": 2, + "14": 0, + "15": 0 + }, + "buildingResourceProduced": { + "0": 0, + "1": 23, + "2": 0, + "3": 29, + "4": 30, + "5": 26, + "6": 25, + "7": 27, + "8": 28, + "9": 0, + "10": 0, + "11": 0, + "12": 0, + "13": 0, + "14": 0, + "15": 24 + }, + "otherBuildingCosts": { + "0": [], + "1": [], + "2": [], + "3": [ + { + "resource": 30, + "amount": 450000 + } + ], + "4": [ + { + "resource": 29, + "amount": 450000 + } + ], + "5": [ + { + "resource": 29, + "amount": 1000000 + }, + { + "resource": 3, + "amount": 75000 + }, + { + "resource": 2, + "amount": 75000 + }, + { + "resource": 8, + "amount": 50000 + }, + { + "resource": 7, + "amount": 45000 + } + ], + "6": [ + { + "resource": 30, + "amount": 750000 + }, + { + "resource": 1, + "amount": 125000 + }, + { + "resource": 6, + "amount": 50000 + }, + { + "resource": 13, + "amount": 25000 + }, + { + "resource": 12, + "amount": 5000 + } + ], + "7": [ + { + "resource": 30, + "amount": 1000000 + }, + { + "resource": 3, + "amount": 75000 + }, + { + "resource": 6, + "amount": 75000 + }, + { + "resource": 7, + "amount": 25000 + }, + { + "resource": 15, + "amount": 25000 + } + ], + "8": [ + { + "resource": 29, + "amount": 1000000 + }, + { + "resource": 3, + "amount": 75000 + }, + { + "resource": 8, + "amount": 75000 + }, + { + "resource": 5, + "amount": 35000 + }, + { + "resource": 7, + "amount": 25000 + } + ], + "9": [], + "10": [ + { + "resource": 29, + "amount": 300000 + }, + { + "resource": 1, + "amount": 75000 + }, + { + "resource": 3, + "amount": 75000 + }, + { + "resource": 2, + "amount": 75000 + } + ], + "11": [], + "12": [], + "13": [ + { + "resource": 30, + "amount": 1000000 + }, + { + "resource": 2, + "amount": 75000 + }, + { + "resource": 1, + "amount": 75000 + }, + { + "resource": 20, + "amount": 10000 + } + ], + "14": [], + "15": [] + }, + "resourceBuildingCosts": { + "1": [ + { + "resource": 30, + "amount": 750000 + } + ], + "2": [ + { + "resource": 29, + "amount": 750000 + } + ], + "3": [ + { + "resource": 29, + "amount": 750000 + } + ], + "4": [ + { + "resource": 30, + "amount": 750000 + } + ], + "5": [ + { + "resource": 29, + "amount": 750000 + } + ], + "6": [ + { + "resource": 29, + "amount": 750000 + } + ], + "7": [ + { + "resource": 29, + "amount": 750000 + } + ], + "8": [ + { + "resource": 30, + "amount": 750000 + } + ], + "9": [ + { + "resource": 29, + "amount": 750000 + } + ], + "10": [ + { + "resource": 29, + "amount": 750000 + } + ], + "11": [ + { + "resource": 30, + "amount": 750000 + } + ], + "12": [ + { + "resource": 30, + "amount": 750000 + } + ], + "13": [ + { + "resource": 29, + "amount": 750000 + } + ], + "14": [ + { + "resource": 29, + "amount": 750000 + } + ], + "15": [ + { + "resource": 30, + "amount": 750000 + } + ], + "16": [ + { + "resource": 29, + "amount": 750 + } + ], + "17": [ + { + "resource": 30, + "amount": 750000 + } + ], + "18": [ + { + "resource": 29, + "amount": 750000 + } + ], + "19": [ + { + "resource": 30, + "amount": 750000 + } + ], + "20": [ + { + "resource": 30, + "amount": 750000 + } + ], + "21": [ + { + "resource": 30, + "amount": 750000 + } + ], + "22": [ + { + "resource": 30, + "amount": 750000 + } + ] + }, + "buildingFixedCostScalePercent": 5000 + }, + "hyperstructures": { + "hyperstructureCreationCosts": [ + { + "resource_tier": 1, + "min_amount": 3000, + "max_amount": 3000 + } + ], + "hyperstructureConstructionCosts": [ + { + "resource_tier": 2, + "min_amount": 0, + "max_amount": 0 + }, + { + "resource_tier": 3, + "min_amount": 0, + "max_amount": 0 + }, + { + "resource_tier": 4, + "min_amount": 0, + "max_amount": 0 + }, + { + "resource_tier": 5, + "min_amount": 120000000, + "max_amount": 240000000 + }, + { + "resource_tier": 6, + "min_amount": 90000000, + "max_amount": 180000000 + }, + { + "resource_tier": 7, + "min_amount": 40000000, + "max_amount": 80000000 + }, + { + "resource_tier": 8, + "min_amount": 20000000, + "max_amount": 40000000 + }, + { + "resource_tier": 9, + "min_amount": 7000000, + "max_amount": 14000000 + } + ], + "hyperstructureTotalCosts": [ + { + "resource_tier": 2, + "min_amount": 0, + "max_amount": 0 + }, + { + "resource_tier": 3, + "min_amount": 0, + "max_amount": 0 + }, + { + "resource_tier": 4, + "min_amount": 0, + "max_amount": 0 + }, + { + "resource_tier": 5, + "min_amount": 120000000, + "max_amount": 240000000 + }, + { + "resource_tier": 6, + "min_amount": 90000000, + "max_amount": 180000000 + }, + { + "resource_tier": 7, + "min_amount": 40000000, + "max_amount": 80000000 + }, + { + "resource_tier": 8, + "min_amount": 20000000, + "max_amount": 40000000 + }, + { + "resource_tier": 9, + "min_amount": 7000000, + "max_amount": 14000000 + }, + { + "resource_tier": 1, + "min_amount": 3000000, + "max_amount": 3000000 + } + ], + "hyperstructurePointsPerCycle": 7, + "hyperstructurePointsOnCompletion": 500000, + "hyperstructureTimeBetweenSharesChangeSeconds": 17280, + "hyperstructurePointsForWin": 9620000 + }, + "season": { + "startAfterSeconds": 60, + "bridgeCloseAfterEndSeconds": 172800 + }, + "bridge": { + "velords_fee_on_dpt_percent": 400, + "velords_fee_on_wtdr_percent": 400, + "season_pool_fee_on_dpt_percent": 400, + "season_pool_fee_on_wtdr_percent": 400, + "client_fee_on_dpt_percent": 200, + "client_fee_on_wtdr_percent": 200, + "velords_fee_recipient": "0x045c587318c9ebcf2fbe21febf288ee2e3597a21cd48676005a5770a50d433c5", + "season_pool_fee_recipient": "0x6f1ecad7e45043715d052ec7075910fe49379ccec56caa30773bffb1bd8ce42", + "max_bank_fee_dpt_percent": 0, + "max_bank_fee_wtdr_percent": 0 + }, + "vrf": { + "vrfProviderAddress": "0x051fea4450da9d6aee758bdeba88b2f665bcbf549d2c61421aa724e9ac0ced8f" + }, + "questResources": { + "1": [ + { + "resource": 29, + "amount": 1200000000 + }, + { + "resource": 30, + "amount": 1200000000 + } + ], + "2": [ + { + "resource": 3, + "amount": 5000000 + }, + { + "resource": 1, + "amount": 5000000 + }, + { + "resource": 2, + "amount": 5000000 + }, + { + "resource": 4, + "amount": 5000000 + }, + { + "resource": 6, + "amount": 5000000 + }, + { + "resource": 8, + "amount": 5000000 + }, + { + "resource": 5, + "amount": 5000000 + }, + { + "resource": 11, + "amount": 5000000 + }, + { + "resource": 7, + "amount": 5000000 + }, + { + "resource": 15, + "amount": 5000000 + }, + { + "resource": 14, + "amount": 5000000 + }, + { + "resource": 20, + "amount": 5000000 + }, + { + "resource": 13, + "amount": 5000000 + }, + { + "resource": 12, + "amount": 5000000 + }, + { + "resource": 16, + "amount": 5000000 + }, + { + "resource": 21, + "amount": 5000000 + }, + { + "resource": 18, + "amount": 5000000 + }, + { + "resource": 17, + "amount": 5000000 + }, + { + "resource": 10, + "amount": 5000000 + }, + { + "resource": 19, + "amount": 5000000 + }, + { + "resource": 9, + "amount": 5000000 + }, + { + "resource": 22, + "amount": 5000000 + } + ], + "3": [ + { + "resource": 25, + "amount": 200000 + } + ], + "4": [ + { + "resource": 26, + "amount": 500000 + }, + { + "resource": 27, + "amount": 500000 + }, + { + "resource": 28, + "amount": 500000 + } + ], + "5": [ + { + "resource": 25, + "amount": 200000 + } + ], + "6": [ + { + "resource": 26, + "amount": 500000 + }, + { + "resource": 28, + "amount": 500000 + }, + { + "resource": 27, + "amount": 500000 + } + ], + "7": [ + { + "resource": 25, + "amount": 200000 + } + ], + "8": [ + { + "resource": 25, + "amount": 200000 + }, + { + "resource": 28, + "amount": 200000 + }, + { + "resource": 26, + "amount": 200000 + }, + { + "resource": 27, + "amount": 200000 + }, + { + "resource": 24, + "amount": 200000 + } + ] + }, + "realmUpgradeCosts": { + "0": [], + "1": [ + { + "resource": 29, + "amount": 3000000 + }, + { + "resource": 30, + "amount": 3000000 + } + ], + "2": [ + { + "resource": 11, + "amount": 600000 + }, + { + "resource": 15, + "amount": 600000 + }, + { + "resource": 14, + "amount": 600000 + }, + { + "resource": 20, + "amount": 600000 + }, + { + "resource": 12, + "amount": 600000 + }, + { + "resource": 29, + "amount": 5000000 + }, + { + "resource": 30, + "amount": 5000000 + } + ], + "3": [ + { + "resource": 10, + "amount": 50000 + }, + { + "resource": 19, + "amount": 50000 + }, + { + "resource": 9, + "amount": 50000 + }, + { + "resource": 22, + "amount": 50000 + }, + { + "resource": 29, + "amount": 9000000 + }, + { + "resource": 30, + "amount": 9000000 + } + ] + }, + "realmMaxLevel": 4, + "setup": { + "chain": "sepolia", + "addresses": { + "seasonPass": "0x2b7c1780bb74754d8f2044d69bf6321c4de44e0a2670f4158948400a225044b", + "realms": "0x71a4862d6bc70347928c6719d032616332faf6bcc649d66a40b8329a2cb2a17", + "lords": "0x52eb09380ad9c74c0c12583815c435aa4c162f22a9e4e06acbc9744d301ebf3", + "resources": { + "STONE": [ + 1, + "0x45b34981831a01ffd668ed249c9cc380e27228c11c52ee2d384108a912b27d9" + ], + "COAL": [ + 2, + "0x596dcd983bb9eff3f02bc6f03af5ba60ee2f9c46f5ff2dfe1ddb27f15bd9085" + ], + "WOOD": [ + 3, + "0x2c0362a0cada93e250277a96d926af7b6b7a6e555db826659c01c97ae2bae5a" + ], + "COPPER": [ + 4, + "0x72b81059f7d96d0bff85f9ec45851c86b7eb37dcff8d65db05f48686febc53f" + ], + "IRONWOOD": [ + 5, + "0xfab021b6e7ab05b5a50f91de4414417b902c16e63f8e9e1766eb4ba491506d" + ], + "OBSIDIAN": [ + 6, + "0x24883f9729e7375ae92cdbbb6220476cd7e3d4d6b3d5bc0aeda16478e0ae1c0" + ], + "GOLD": [ + 7, + "0x4804d38ef487dd918fe2937d0efe994e66ff6fab3127d47661805b980d42b70" + ], + "SILVER": [ + 8, + "0x6e34928d8fbfc1faf909ba4de08fc1096ca53ef7f2d62b5255f6ff9b991e94b" + ], + "MITHRAL": [ + 9, + "0x7e259200bce2848a1e32a3a8897223cb659c6a71c61931656698c39afb880da" + ], + "ALCHEMICALSILVER": [ + 10, + "0x41ef1d076afc5bbceb3761ce4f407f5ef33fa33589bf54950ce8c5ef678c2a8" + ], + "COLDIRON": [ + 11, + "0x20f03196a2ff20e3055bb90dac2d9427bf00ce28e896fb8ba26b071d0e3ff60" + ], + "DEEPCRYSTAL": [ + 12, + "0x21077360ee165d8804b0750a76ded9cbb897c63f80f66bde662a3475e163f80" + ], + "RUBY": [ + 13, + "0x48968cae832875f1c90e765421998ffd1b1bf4799d80f8ad36b9b1ab969e6c4" + ], + "DIAMONDS": [ + 14, + "0x66519a66ad7d416674652b18defd5dbe3b0d7bfa9f5de0730da7201fa152c34" + ], + "HARTWOOD": [ + 15, + "0x6194b646b82d138206b706b6ef7fc7ea861e94ab248c0775b710ed3242433e5" + ], + "IGNIUM": [ + 16, + "0x61762e249b73f4a400f1f4e910c0dfe89254a3f7522c4edff23332b272767a6" + ], + "TWILIGHTQUARTZ": [ + 17, + "0x69b94c8ee4d30bc81b552c677523aeea5ac729b7a5703af664d6635fdb5c940" + ], + "TRUEICE": [ + 18, + "0x20eeb8348e20820f08b2bc62083c62e3667ec0313ad6e2b749668f71c304c1c" + ], + "ADAMANTINE": [ + 19, + "0x6ce638e5a9129be5d9ed5c54a2e57ad1db04fa37f93f7e1f6d2cb0d31540f15" + ], + "SAPPHIRE": [ + 20, + "0x55cea70d4cac46ec777e23c57008ce8a042869e53d868294acca8cf6082073f" + ], + "ETHEREALSILICA": [ + 21, + "0xfc78ad78bc8d42ff9709f9621633916733e644fce4510be5d9ed7acc253a8b" + ], + "DRAGONHIDE": [ + 22, + "0x4be29fa0f1dea7daa0c0a316c2165eedf8ce0f1d03cbb073d12a2415842c83e" + ], + "ANCIENTFRAGMENT": [ + 24, + "0x7ac24b476cd9444d2ab0b07a7a47c89d6686a9abaf0b7114f5a6db6fcd3ca0c" + ], + "DONKEY": [ + 25, + "0x3ab297389ffadc70e9a0d40a98b6ac306623f00f98088eb9d21159208142d64" + ], + "KNIGHT": [ + 26, + "0x783fdc3c626b1ae3f72612a2405362a121f57a17b320a5a106ad74fc1b1c1bd" + ], + "CROSSBOWMAN": [ + 27, + "0x7fc9d4d214c0820a82ecbfb1359848ce7f32f12cf0532e805e362c01249ad5f" + ], + "PALADIN": [ + 28, + "0x1d031ece66bb35df9a5ccb18ed4f6cab5ec1ccaf32988c2491ebb6d640df2ad" + ], + "WHEAT": [ + 29, + "0x65d213cd2a8d21cadd978d6de1f3133087fb2abb769ba2bb4165627049f724f" + ], + "FISH": [ + 30, + "0x1ad78ab9e6a5076c902b489ba0bde42ec8eb3fc1e56a83ffcccaef94ae10655" + ], + "LORDS": [ + 31, + "0x52eb09380ad9c74c0c12583815c435aa4c162f22a9e4e06acbc9744d301ebf3" + ] + } + }, + "manifest": { + "world": { + "class_hash": "0x45575a88cc5cef1e444c77ce60b7b4c9e73a01cbbe20926d5a4c72a94011410", + "address": "0x663558449893cb8d1052bedf2ba82d9840580b7a4c88778c6c43de06c72fdd4", + "seed": "eternum-sepolia-s1.1", + "name": "Eternum Sepolia", + "entrypoints": [ + "uuid", + "set_metadata", + "register_namespace", + "register_event", + "register_model", + "register_contract", + "init_contract", + "upgrade_event", + "upgrade_model", + "upgrade_contract", + "emit_event", + "emit_events", + "set_entity", + "set_entities", + "delete_entity", + "delete_entities", + "grant_owner", + "revoke_owner", + "grant_writer", + "revoke_writer", + "upgrade" + ], + "abi": [ + { + "type": "impl", + "name": "World", + "interface_name": "dojo::world::iworld::IWorld" + }, + { + "type": "struct", + "name": "core::byte_array::ByteArray", + "members": [ { - "type": "interface", - "name": "s1_eternum::systems::season::contracts::ISeasonSystems", - "items": [ - { - "type": "function", - "name": "register_to_leaderboard", - "inputs": [ - { - "name": "hyperstructures_contributed_to", - "type": "core::array::Span::" - }, - { - "name": "hyperstructure_shareholder_epochs", - "type": "core::array::Span::<(core::integer::u32, core::integer::u16)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "claim_leaderboard_rewards", - "inputs": [ - { - "name": "token", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] + "name": "data", + "type": "core::array::Array::" }, { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" + "name": "pending_word", + "type": "core::felt252" }, { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, + "name": "pending_word_len", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "dojo::world::resource::Resource", + "variants": [ { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] + "name": "Model", + "type": "(core::starknet::contract_address::ContractAddress, core::felt252)" }, { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] + "name": "Event", + "type": "(core::starknet::contract_address::ContractAddress, core::felt252)" }, { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + "name": "Contract", + "type": "(core::starknet::contract_address::ContractAddress, core::felt252)" }, { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] + "name": "Namespace", + "type": "core::byte_array::ByteArray" }, { - "type": "constructor", - "name": "constructor", - "inputs": [] + "name": "World", + "type": "()" }, { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, + "name": "Unregistered", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "dojo::model::metadata::ResourceMetadata", + "members": [ { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] + "name": "resource_id", + "type": "core::felt252" }, { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] + "name": "metadata_uri", + "type": "core::byte_array::ByteArray" }, { - "type": "event", - "name": "s1_eternum::systems::season::contracts::season_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] + "name": "metadata_hash", + "type": "core::felt252" } - ], - "init_calldata": [], - "tag": "s1_eternum-season_systems", - "selector": "0x44e1edf9ca51b11a8c1d6ffc341d3248fdbeebc7e7d3ee6314fee33174860c4", - "systems": ["register_to_leaderboard", "claim_leaderboard_rewards", "upgrade"] + ] }, { - "address": "0x67d9fbdbb222b30679aa4b6d4d15f0e16f984603996111c6ef8b425293d29c7", - "class_hash": "0x6ecba556869f9af550c06eebf09953b9a9b5e021d1841e1fdba2893f6375787", - "abi": [ - { - "type": "impl", - "name": "swap_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, + "type": "struct", + "name": "core::array::Span::", + "members": [ { - "type": "impl", - "name": "swap_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::>", + "members": [ { - "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" - } - ] - }, + "name": "snapshot", + "type": "@core::array::Array::>" + } + ] + }, + { + "type": "enum", + "name": "dojo::model::definition::ModelIndex", + "variants": [ { - "type": "interface", - "name": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] + "name": "Keys", + "type": "core::array::Span::" }, { - "type": "impl", - "name": "SwapSystemsImpl", - "interface_name": "s1_eternum::systems::bank::contracts::swap::ISwapSystems" + "name": "Id", + "type": "core::felt252" }, { - "type": "interface", - "name": "s1_eternum::systems::bank::contracts::swap::ISwapSystems", - "items": [ - { - "type": "function", - "name": "buy", - "inputs": [ - { - "name": "bank_entity_id", - "type": "core::integer::u32" - }, - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "amount", - "type": "core::integer::u128" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "sell", - "inputs": [ - { - "name": "bank_entity_id", - "type": "core::integer::u32" - }, - { - "name": "entity_id", - "type": "core::integer::u32" - }, - { - "name": "resource_type", - "type": "core::integer::u8" - }, - { - "name": "amount", - "type": "core::integer::u128" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - } - ] - }, + "name": "MemberId", + "type": "(core::felt252, core::felt252)" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "dojo::meta::layout::FieldLayout", + "members": [ { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + "name": "selector", + "type": "core::felt252" }, { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, + "name": "layout", + "type": "dojo::meta::layout::Layout" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "dojo::meta::layout::Layout", + "variants": [ { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] + "name": "Fixed", + "type": "core::array::Span::" }, { - "type": "constructor", - "name": "constructor", - "inputs": [] + "name": "Struct", + "type": "core::array::Span::" }, { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] + "name": "Tuple", + "type": "core::array::Span::" }, { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] + "name": "Array", + "type": "core::array::Span::" }, { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] + "name": "ByteArray", + "type": "()" }, { - "type": "event", - "name": "s1_eternum::systems::bank::contracts::swap::swap_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] + "name": "Enum", + "type": "core::array::Span::" } - ], - "init_calldata": [], - "tag": "s1_eternum-swap_systems", - "selector": "0x187f170f62cb2f89334e291ddc0d0f388a855abcdd2b911425fed8304d3fdc3", - "systems": ["buy", "sell", "upgrade"] + ] }, { - "address": "0x4949075e31363f02ac3d4374bf1cb726873cd55a3f572dc85ddc9f8ef89c351", - "class_hash": "0xc9da769a96f6e3aacd9c9329f89fc32c82a3318f82a92373cf4eaf3759f230", - "abi": [ + "type": "struct", + "name": "core::array::Span::", + "members": [ { - "type": "impl", - "name": "trade_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] + "name": "False", + "type": "()" }, { - "type": "impl", - "name": "trade_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, + "name": "True", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "dojo::world::iworld::IWorld", + "items": [ { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ - { - "name": "data", - "type": "core::array::Array::" - }, + "type": "function", + "name": "resource", + "inputs": [ { - "name": "pending_word", + "name": "selector", "type": "core::felt252" - }, - { - "name": "pending_word_len", - "type": "core::integer::u32" } - ] - }, - { - "type": "interface", - "name": "dojo::meta::interface::IDeployedResource", - "items": [ + ], + "outputs": [ { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" + "type": "dojo::world::resource::Resource" } - ] - }, - { - "type": "impl", - "name": "TradeSystemsImpl", - "interface_name": "s1_eternum::systems::trade::contracts::trade_systems::ITradeSystems" + ], + "state_mutability": "view" }, { - "type": "struct", - "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", - "members": [ + "type": "function", + "name": "uuid", + "inputs": [], + "outputs": [ { - "name": "snapshot", - "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" + "type": "core::integer::u32" } - ] + ], + "state_mutability": "external" }, { - "type": "interface", - "name": "s1_eternum::systems::trade::contracts::trade_systems::ITradeSystems", - "items": [ - { - "type": "function", - "name": "create_order", - "inputs": [ - { - "name": "maker_id", - "type": "core::integer::u32" - }, - { - "name": "maker_gives_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "taker_id", - "type": "core::integer::u32" - }, - { - "name": "taker_gives_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "expires_at", - "type": "core::integer::u64" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" - }, - { - "type": "function", - "name": "accept_order", - "inputs": [ - { - "name": "taker_id", - "type": "core::integer::u32" - }, - { - "name": "trade_id", - "type": "core::integer::u32" - }, - { - "name": "maker_gives_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "taker_gives_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" - }, + "type": "function", + "name": "metadata", + "inputs": [ { - "type": "function", - "name": "accept_partial_order", - "inputs": [ - { - "name": "taker_id", - "type": "core::integer::u32" - }, - { - "name": "trade_id", - "type": "core::integer::u32" - }, - { - "name": "maker_gives_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "taker_gives_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - }, - { - "name": "taker_gives_actual_amount", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - }, + "name": "resource_selector", + "type": "core::felt252" + } + ], + "outputs": [ { - "type": "function", - "name": "cancel_order", - "inputs": [ - { - "name": "trade_id", - "type": "core::integer::u32" - }, - { - "name": "return_resources", - "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" - } - ], - "outputs": [], - "state_mutability": "external" + "type": "dojo::model::metadata::ResourceMetadata" } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], + ], "state_mutability": "view" }, { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ + "type": "function", + "name": "set_metadata", + "inputs": [ { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" + "name": "metadata", + "type": "dojo::model::metadata::ResourceMetadata" } - ] + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ + "type": "function", + "name": "register_namespace", + "inputs": [ { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" + "name": "namespace", + "type": "core::byte_array::ByteArray" } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ + "type": "function", + "name": "register_event", + "inputs": [ { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ + "name": "namespace", + "type": "core::byte_array::ByteArray" + }, { "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" + "type": "core::starknet::class_hash::ClassHash" } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "event", - "name": "s1_eternum::systems::trade::contracts::trade_systems::trade_systems::Event", - "kind": "enum", - "variants": [ + "type": "function", + "name": "register_model", + "inputs": [ { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" + "name": "namespace", + "type": "core::byte_array::ByteArray" }, { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-trade_systems", - "selector": "0x25205919a9c1be9b6b4c75d8435d21e748b4144575e3ed50d453ebd586f1467", - "systems": ["create_order", "accept_order", "accept_partial_order", "cancel_order", "upgrade"] - }, - { - "address": "0x5bb3ed403abb2ceeb6ce8911052a4f9c922f2d4777427454fcbea605192ddc9", - "class_hash": "0x1dea2c672934cc98154903b1e64e34287fbd24ffa3be05415371f9a21638484", - "abi": [ - { - "type": "impl", - "name": "travel_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "travel_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ + "type": "function", + "name": "register_contract", + "inputs": [ { - "name": "data", - "type": "core::array::Array::" + "name": "salt", + "type": "core::felt252" }, { - "name": "pending_word", - "type": "core::felt252" + "name": "namespace", + "type": "core::byte_array::ByteArray" }, { - "name": "pending_word_len", - "type": "core::integer::u32" + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" } - ] - }, - { - "type": "interface", - "name": "dojo::meta::interface::IDeployedResource", - "items": [ + ], + "outputs": [ { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" + "type": "core::starknet::contract_address::ContractAddress" } - ] + ], + "state_mutability": "external" }, { - "type": "impl", - "name": "TravelSystemsImpl", - "interface_name": "s1_eternum::systems::transport::contracts::travel_systems::ITravelSystems" - }, - { - "type": "enum", - "name": "s1_eternum::models::position::Direction", - "variants": [ - { - "name": "East", - "type": "()" - }, - { - "name": "NorthEast", - "type": "()" - }, - { - "name": "NorthWest", - "type": "()" - }, - { - "name": "West", - "type": "()" - }, + "type": "function", + "name": "init_contract", + "inputs": [ { - "name": "SouthWest", - "type": "()" + "name": "selector", + "type": "core::felt252" }, { - "name": "SouthEast", - "type": "()" + "name": "init_calldata", + "type": "core::array::Span::" } - ] + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "struct", - "name": "core::array::Span::", - "members": [ + "type": "function", + "name": "upgrade_event", + "inputs": [ { - "name": "snapshot", - "type": "@core::array::Array::" - } - ] - }, - { - "type": "interface", - "name": "s1_eternum::systems::transport::contracts::travel_systems::ITravelSystems", - "items": [ + "name": "namespace", + "type": "core::byte_array::ByteArray" + }, { - "type": "function", - "name": "travel_hex", - "inputs": [ - { - "name": "travelling_entity_id", - "type": "core::integer::u32" - }, - { - "name": "directions", - "type": "core::array::Span::" - } - ], - "outputs": [], - "state_mutability": "external" + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], + ], "outputs": [], - "state_mutability": "view" + "state_mutability": "external" }, { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ + "type": "function", + "name": "upgrade_model", + "inputs": [ { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ + "name": "namespace", + "type": "core::byte_array::ByteArray" + }, { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ + "type": "function", + "name": "upgrade_contract", + "inputs": [ { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ + "name": "namespace", + "type": "core::byte_array::ByteArray" + }, { "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" + "type": "core::starknet::class_hash::ClassHash" } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ + ], + "outputs": [ { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" + "type": "core::starknet::class_hash::ClassHash" } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] + ], + "state_mutability": "external" }, { - "type": "event", - "name": "s1_eternum::systems::transport::contracts::travel_systems::travel_systems::Event", - "kind": "enum", - "variants": [ + "type": "function", + "name": "emit_event", + "inputs": [ { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" + "name": "event_selector", + "type": "core::felt252" + }, + { + "name": "keys", + "type": "core::array::Span::" }, { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" + "name": "values", + "type": "core::array::Span::" } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-travel_systems", - "selector": "0x309ed1eaf532082015ddf768dfea6a2d7b6c78f61892005f9af6efe505f3317", - "systems": ["travel_hex", "upgrade"] - }, - { - "address": "0x4d6d43ec3fe5fb0d22398f9aee1846285e7c44bfa3900b7e490d18a9fb4eae4", - "class_hash": "0x710a28a02d258fc3ac7b008f52d1bcb472249ac0948221d328858c01b08a889", - "abi": [ - { - "type": "impl", - "name": "troop_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "troop_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "struct", - "name": "core::byte_array::ByteArray", - "members": [ + "type": "function", + "name": "emit_events", + "inputs": [ { - "name": "data", - "type": "core::array::Array::" + "name": "event_selector", + "type": "core::felt252" }, { - "name": "pending_word", - "type": "core::felt252" + "name": "keys", + "type": "core::array::Span::>" }, { - "name": "pending_word_len", - "type": "core::integer::u32" + "name": "values", + "type": "core::array::Span::>" } - ] + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "interface", - "name": "dojo::meta::interface::IDeployedResource", - "items": [ + "type": "function", + "name": "entity", + "inputs": [ { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "TroopContractImpl", - "interface_name": "s1_eternum::systems::combat::contracts::troop_systems::ITroopContract" - }, - { - "type": "enum", - "name": "core::bool", - "variants": [ + "name": "model_selector", + "type": "core::felt252" + }, { - "name": "False", - "type": "()" + "name": "index", + "type": "dojo::model::definition::ModelIndex" }, { - "name": "True", - "type": "()" + "name": "layout", + "type": "dojo::meta::layout::Layout" + } + ], + "outputs": [ + { + "type": "core::array::Span::" } - ] + ], + "state_mutability": "view" }, { - "type": "struct", - "name": "s1_eternum::models::combat::Troops", - "members": [ + "type": "function", + "name": "entities", + "inputs": [ { - "name": "knight_count", - "type": "core::integer::u64" + "name": "model_selector", + "type": "core::felt252" }, { - "name": "paladin_count", - "type": "core::integer::u64" + "name": "indexes", + "type": "core::array::Span::" }, { - "name": "crossbowman_count", - "type": "core::integer::u64" + "name": "layout", + "type": "dojo::meta::layout::Layout" + } + ], + "outputs": [ + { + "type": "core::array::Span::>" } - ] + ], + "state_mutability": "view" }, { - "type": "interface", - "name": "s1_eternum::systems::combat::contracts::troop_systems::ITroopContract", - "items": [ + "type": "function", + "name": "set_entity", + "inputs": [ { - "type": "function", - "name": "army_create", - "inputs": [ - { - "name": "army_owner_id", - "type": "core::integer::u32" - }, - { - "name": "is_defensive_army", - "type": "core::bool" - } - ], - "outputs": [ - { - "type": "core::integer::u32" - } - ], - "state_mutability": "external" + "name": "model_selector", + "type": "core::felt252" }, { - "type": "function", - "name": "army_delete", - "inputs": [ - { - "name": "army_id", - "type": "core::integer::u32" - } - ], - "outputs": [], - "state_mutability": "external" + "name": "index", + "type": "dojo::model::definition::ModelIndex" }, { - "type": "function", - "name": "army_buy_troops", - "inputs": [ - { - "name": "army_id", - "type": "core::integer::u32" - }, - { - "name": "payer_id", - "type": "core::integer::u32" - }, - { - "name": "troops", - "type": "s1_eternum::models::combat::Troops" - } - ], - "outputs": [], - "state_mutability": "external" + "name": "values", + "type": "core::array::Span::" }, { - "type": "function", - "name": "army_merge_troops", - "inputs": [ - { - "name": "from_army_id", - "type": "core::integer::u32" - }, - { - "name": "to_army_id", - "type": "core::integer::u32" - }, - { - "name": "troops", - "type": "s1_eternum::models::combat::Troops" - } - ], - "outputs": [], - "state_mutability": "external" + "name": "layout", + "type": "dojo::meta::layout::Layout" } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], + ], "outputs": [], - "state_mutability": "view" + "state_mutability": "external" }, { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ + "type": "function", + "name": "set_entities", + "inputs": [ { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "indexes", + "type": "core::array::Span::" + }, + { + "name": "values", + "type": "core::array::Span::>" + }, + { + "name": "layout", + "type": "dojo::meta::layout::Layout" } - ] + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ + "type": "function", + "name": "delete_entity", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" + "name": "index", + "type": "dojo::model::definition::ModelIndex" + }, + { + "name": "layout", + "type": "dojo::meta::layout::Layout" } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ + "type": "function", + "name": "delete_entities", + "inputs": [ + { + "name": "model_selector", + "type": "core::felt252" + }, + { + "name": "indexes", + "type": "core::array::Span::" + }, { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" + "name": "layout", + "type": "dojo::meta::layout::Layout" } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] + ], + "outputs": [], + "state_mutability": "external" }, { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ + "type": "function", + "name": "is_owner", + "inputs": [ { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ + ], + "outputs": [ { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" + "type": "core::bool" } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] + ], + "state_mutability": "view" }, { - "type": "event", - "name": "s1_eternum::systems::combat::contracts::troop_systems::troop_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, + "type": "function", + "name": "grant_owner", + "inputs": [ { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-troop_systems", - "selector": "0x36dc6a7aac90e16df98cc6cef8b971d3432a436339f92352921ab2d542363b0", - "systems": ["army_create", "army_delete", "army_buy_troops", "army_merge_troops", "upgrade"] - } - ], - "models": [ - { - "members": [], - "class_hash": "0x15f3f6904f0500d87d6c57ababf28b0dffaf929e7b74701be185cd09fcd82d3", - "tag": "s1_eternum-AddressName", - "selector": "0x42709c94217aac1ce5900d6bb822dc5e203071e9f184165b4d32144ff0e326c" - }, - { - "members": [], - "class_hash": "0x28f9ddc0b8df7e2dd4ebaae28edc221d3755cb2e2172353364bd6b05f39209d", - "tag": "s1_eternum-Army", - "selector": "0x16cd0112383678968a6dcc0476cc193ce544a0f2cb27bbf911b519cc66cb2e1" - }, - { - "members": [], - "class_hash": "0xf99d18de1389cd897d7c2eaac1d9a23eef4f2ee40f6fb017adfa59a6c6fe55", - "tag": "s1_eternum-ArrivalTime", - "selector": "0x15839d06bf0dd2c3ae1fef464555f3016e153bd6bac0cf62c5c1de9926eadd" - }, - { - "members": [], - "class_hash": "0xd5d3a9a0f87f881bb0c62d6383e0c1914a3263dd2788a72641ce15eba55345", - "tag": "s1_eternum-Bank", - "selector": "0x46318cd2cff6337f8934ee9e3cbe3ecf1ccb5b1b57dd1711f3b1eb7d7327aab" - }, - { - "members": [], - "class_hash": "0x58484f4b87730ec90812b21b0071478121b549694230ccfc380fe5bc7ce04bc", - "tag": "s1_eternum-BankConfig", - "selector": "0x2a590ba3496e4ade5081de7b2de27ed15ecd709e8d88c89f1eeafca9c852079" - }, - { - "members": [], - "class_hash": "0x6108b6e1f6786a67f3864acec676ff7fe33772797a0c771878dd769aed59c0", - "tag": "s1_eternum-Battle", - "selector": "0x169c07a291ef2ba4cfb31ba5b81d45fc49f6a02169c766ac950f823879152fc" - }, - { - "members": [], - "class_hash": "0x722133bc4e72dec6f3ffb973622227b9f4d51001bf369832e44bca4cd90e414", - "tag": "s1_eternum-BattleConfig", - "selector": "0x506ef0f4b8e567ce2fd94517984758871ac3f9f965426073203aefdeec4fd21" - }, - { - "members": [], - "class_hash": "0x26132d9d528638aa4fdc6377b4f342982e15a796292ee9d8a7d9ff443f035b0", - "tag": "s1_eternum-Building", - "selector": "0x383bc83e69df10c0e58ce05aef021bb904346af8b28de6dd09ed16a497fae29" - }, - { - "members": [], - "class_hash": "0x369a5260d31d6edd5c3d19b487fa8a2c4bd293845e804cd794a7f00f1fcc35c", - "tag": "s1_eternum-BuildingCategoryPopConfig", - "selector": "0x2b847fd482c7e77364e1a29d18c690661dee59631db5538e063065cd28a9157" - }, - { - "members": [], - "class_hash": "0xbcb13c22c1c2e177c9a7953f6db153d0b1435baa293e2d7fdc7aa22f380f53", - "tag": "s1_eternum-BuildingConfig", - "selector": "0x10ab036ccd4d1e968f0b3b3333d59911fd7f96cbd0fe73c9d639b80aaf10ef4" - }, - { - "members": [], - "class_hash": "0xf34fedb8b8bea2b87c8e17c6db5f2b284e46513b186cdb115464aacf72994d", - "tag": "s1_eternum-BuildingGeneralConfig", - "selector": "0x32c22b1ba3f414eff9d3684771ddf9a576adf879fb9db155d153e04092f06d1" - }, - { - "members": [], - "class_hash": "0x6ad15a23139b6577c1adfc3d8d2ad5cf4f55230f17f2ed957cef9a70bdac286", - "tag": "s1_eternum-BuildingQuantityv2", - "selector": "0x7f0d990d9539f02e2536fb9077c112528c214d6250597813b5637fcdf4faea1" - }, - { - "members": [], - "class_hash": "0x5a650bc0e579da2efb53a5ff5d49ace7a4836831001fe05a66de94e8a200fe", - "tag": "s1_eternum-CapacityCategory", - "selector": "0x77c5b56819d589d4ccf66c86b519f61fea422fadc3011bce01b68b36312a931" - }, - { - "members": [], - "class_hash": "0xff54f724bb9d25b28e52c53402ff004324f9bf8551d21666569798e982537", - "tag": "s1_eternum-CapacityConfig", - "selector": "0x329d78ba810d64a65e56dc6d9648681b25cf5077b2b2a1b006b4280b4a46941" - }, - { - "members": [], - "class_hash": "0x10f6568d82fcf4a14aa2063fa811ceac7bd52923fe06e5c0c89d23d2959ba47", - "tag": "s1_eternum-Contribution", - "selector": "0x5610d7fde56cbda8d6714af14cb51989d77e24ffd867561e6f6ce36a5c8cda0" - }, - { - "members": [], - "class_hash": "0x4ca6ae3ddda2725df1d3f656b45d376bff55f2556fc63188f33436e54cad458", - "tag": "s1_eternum-DetachedResource", - "selector": "0x5fbe88f3b3abf51a9a1e58a0423a555786a2e557f480a7f804a6a89afee5b2c" - }, - { - "members": [], - "class_hash": "0x10c87458dd8a14eba7aa1771e8288f46be3b60a738d5dc0af7f45eb2ed4e326", - "tag": "s1_eternum-EntityName", - "selector": "0x4d2ad6e4875bb784306ee539c87d6ea84bd77cd3e7a6a98c7cb073003131c80" - }, - { - "members": [], - "class_hash": "0x3ae0ab3e0bc8e3ad2288634e6a286bfb08d466a91e9d6a2e37f025bf1d5749f", - "tag": "s1_eternum-EntityOwner", - "selector": "0x45cac7458f40ce855a5d63cf402a25425ad1a761fa4a2657c722d124e6aa540" - }, - { - "members": [], - "class_hash": "0x5ced63836e14228fb5398d583aa7e603f011951859784a767a0da67d5d1ee82", - "tag": "s1_eternum-Epoch", - "selector": "0x7538402a46c4b333f00ed41744e67a26bb14f26753fdbe032f0ff218f83ff6a" - }, - { - "members": [], - "class_hash": "0x5893d1ef16dd422bf83ed0622527c59e061c0e80431c2dd7bee08b4d1445071", - "tag": "s1_eternum-Guild", - "selector": "0x1005f12b60fb0b9955acaa3d2ef4e839a9d9ca0de11ba53c74c3a4b5d324142" - }, - { - "members": [], - "class_hash": "0x503feaac2cbb9b6e3568daa741bd89db2a9206d315fca008ea4cf44d87dce88", - "tag": "s1_eternum-GuildMember", - "selector": "0x4e1c4b07b2c1113f22a01d146dbe1224007cd027c7681007de3828761f92c1" - }, - { - "members": [], - "class_hash": "0x51e97f9e0e1b92c53d309c07a145d8786aaec64518b87c3bb970d4685759081", - "tag": "s1_eternum-GuildWhitelist", - "selector": "0x58ba641332348c46d0aad19ab754598e63a4d8736db7ef9654918c79d6ad071" - }, - { - "members": [], - "class_hash": "0x4eb153ffe6fce442cee9384e6a7e95159480a4aee2c563b74c7b1b50eff73d6", - "tag": "s1_eternum-Health", - "selector": "0x2f45d2395ab511a8e093bc7830fe25b18b387f360e515107021e75eaea474b5" - }, - { - "members": [], - "class_hash": "0x490bea09a254afb811b6a26d88507598193d366a05fe6e9d28455ca51930c9b", - "tag": "s1_eternum-Hyperstructure", - "selector": "0x5894102a0f9c53bf2298d3bdaf4b0f8a0f92777d57ff0d585ca3b5c5b25b7bc" - }, - { - "members": [], - "class_hash": "0x47718f195842c1e7de343f276874d6cbd4e3af43e46d91779219bb775f07b30", - "tag": "s1_eternum-HyperstructureConfig", - "selector": "0x555fffbe98ed821a2943490fa9ec2fd479940fb1a06434031a6ed49fce06413" - }, - { - "members": [], - "class_hash": "0x298c3a93889760e341ab90f7ec3432fb9f564ec90ab6dae8ca160cb477fd64b", - "tag": "s1_eternum-HyperstructureResourceConfig", - "selector": "0x344c119cf22cf69ac0954dadeb846930657d9d80e550aec607fe0d285e2d1b6" - }, - { - "members": [], - "class_hash": "0x328f1fff82bb8aeba6b1e75fc1edf15d815324486c97df194a8ad682bd419f6", - "tag": "s1_eternum-LaborConfig", - "selector": "0x6f056844c678da88f4b2829f7252b9264702448b0305224729f30026db3f644" - }, - { - "members": [], - "class_hash": "0x5f9e1048bc3fcab978c16ea514c906e08a6a908a551b01c9d8d56991eb3be12", - "tag": "s1_eternum-Leaderboard", - "selector": "0x2731a4b2cc1d25c3605cbd9f58fb010860aa57f2fd978b012309815622bad38" - }, - { - "members": [], - "class_hash": "0x6098e4bd9970a954a3a7581ae0c272d7b0e4134bd1b701f376480627678c260", - "tag": "s1_eternum-LeaderboardEntry", - "selector": "0x64d192ab245076ad4a8fc1065a8ed826370b3b9ac74e19e5ba62c4778afbd0e" - }, - { - "members": [], - "class_hash": "0x278cfb9c271d230ae30c965120df0ceb1772b42982abceb4c5696afc5a91d3c", - "tag": "s1_eternum-LeaderboardRegisterContribution", - "selector": "0x19570cd480372cee10d9c139bc552086c7b8222c1bc012113bbfd39b56a7e8" - }, - { - "members": [], - "class_hash": "0x6ea5e22c4403403c4ef68ce5789b68da3ff18607693fb048bae52293204ce9b", - "tag": "s1_eternum-LeaderboardRegisterShare", - "selector": "0x75ac5be2d09aae03d624ea55302b474702a77e282b53b6ae223e7e2f2fcf331" - }, - { - "members": [], - "class_hash": "0x94162e9c662781d890a9ab0dfba07a5ec2248410ef1b42d4913e1a4a489cc6", - "tag": "s1_eternum-LeaderboardRegistered", - "selector": "0x23cb90d19983cc3481c16b0daca97a2e9d61ccca2887ec43a37e8d0c8bc8a82" - }, - { - "members": [], - "class_hash": "0x50bdffa18201a51190d38b3a83d62dbc9314b5634b8543f92c6fa692fbed6be", - "tag": "s1_eternum-LeaderboardRewardClaimed", - "selector": "0x4a2604638f545e33a48aaa88165cdf7c14d2e3e90dc0ffef45efaafce0a7acb" - }, - { - "members": [], - "class_hash": "0xe08cd3f99dea6cb5ac7af83788cf444cc5961187685f2c54179b990d3a4ae7", - "tag": "s1_eternum-LevelingConfig", - "selector": "0x1ae8c072019c12fbf04cba6e1a71a0a645dffc7fff83847d97ef2229e3abb33" - }, - { - "members": [], - "class_hash": "0x41389837334c7959eddc48a3a3c0b3f8d77ea4f0be3d5b908087873323fc3f6", - "tag": "s1_eternum-Liquidity", - "selector": "0x4ba2cf13ce80401e973629d0ba586aad1cae4ac3cf68ed3140f3373d361659" - }, - { - "members": [], - "class_hash": "0x2e6bbce3307779bb4e22bfa12b254f648bda3e5667bb4aff23a189ee68a0ecb", - "tag": "s1_eternum-MapConfig", - "selector": "0xc723bc276585620edab428548e0c62b996567932757495abf2346153959bbd" - }, - { - "members": [], - "class_hash": "0x3e5a538297e5b4a973a580d26b347779d457a0813e552e71d56ac9347d143b0", - "tag": "s1_eternum-Market", - "selector": "0x1fcfb4aa02fa062c2f9fe4a658759a4cbe73fc5db42c595184e770c9076750a" - }, - { - "members": [], - "class_hash": "0x3eb553163a235623d1a4cd887565391f6183aef59993752b018fdcd99e7ec6e", - "tag": "s1_eternum-MercenariesConfig", - "selector": "0x76cec8905e7623b482bec7afebbbd87f2556ffa6068c887ff2fc9e8ef97373a" - }, - { - "members": [], - "class_hash": "0x4e9acf58624786c7d118f4d0a1eb23bd2dccb7b7ab1755b012a3b0412af70f9", - "tag": "s1_eternum-Message", - "selector": "0x3ce31878ad62fd485eb46bdbd403bbe7daf2e544c15d386dcc7ac519a10678a" - }, - { - "members": [], - "class_hash": "0x78bf5c45268df4bc02c367db341e1aa4331857c21304683feb2e65306204bf9", - "tag": "s1_eternum-Movable", - "selector": "0x2f6cc9ab06c7e016297339e078c3755e568fce8048462de2033e8d42e5d94e0" - }, - { - "members": [], - "class_hash": "0x4dff527f0c7b7b73e3ac91dab4ad66ae4dae4f3616cb6338dd4bad8c3246382", - "tag": "s1_eternum-Orders", - "selector": "0x3d92d333e580695c5676529fc9b81f0fdab316ad7385d7c362ea7074413b99a" - }, - { - "members": [], - "class_hash": "0x60330a73e8c079c062165120e11d002eafa7a8b4970d0b7dc3e73904e014544", - "tag": "s1_eternum-OwnedResourcesTracker", - "selector": "0x1a8f5317e84356a084dbf2555cdf3c429e285e6f161654a678eaf73c137e52b" - }, - { - "members": [], - "class_hash": "0x6619f0441ff7330f6291777da5a95a3121189f8c5b136cc5f3e85cc6f728f44", - "tag": "s1_eternum-Owner", - "selector": "0x35bfd77bc5bbf7f39cbe2c9ced8de632af641500a672e876dffbc89cc10441d" - }, - { - "members": [], - "class_hash": "0xf29140e158b9089a938917604b82d2ec14daa08f21f9d742a97cf17f30c18", - "tag": "s1_eternum-Population", - "selector": "0x6f2e4171b9907e7629eea2a19485a64d97f104121c4337452de122f897c0be8" - }, - { - "members": [], - "class_hash": "0x7e5024ab76ebcd616507b1998768d29b5372c54de3ac88bcd6fdfafcbf67720", - "tag": "s1_eternum-PopulationConfig", - "selector": "0x441576bc8f9ac5063b8ca88eeae1b33156078c75de8cbdf506139e8450b78cf" - }, - { - "members": [], - "class_hash": "0x2c8600cc8411484671075036b8dca8f03524e5b0503617e36ac306b95cf87fd", - "tag": "s1_eternum-Position", - "selector": "0xe340ea49c8540928b5c4010db9108cd13f719d89a5f7b18cb30902e01104ae" - }, - { - "members": [], - "class_hash": "0x4482f857b3d5e6d6d1fb9d5680663a1e0eda04699b105aa565490498e395d1e", - "tag": "s1_eternum-ProductionConfig", - "selector": "0x38bacafc2ceed54f95033f7529efa9559f877aea41db072b797235cee383a06" - }, - { - "members": [], - "class_hash": "0xef748f29f1ce62c69e4c0bfcaaca0cc20c90d69411fbbfabb5883e53444c94", - "tag": "s1_eternum-Progress", - "selector": "0x510024ae0ff452228a083d9fb3aba5e3521c107ab7a84246efcac7bcdfddcb5" - }, - { - "members": [], - "class_hash": "0x2eb9f6f9ea6824c466ded7da0b97f77d4b54be4e0b5180c0f0696ec7311c142", - "tag": "s1_eternum-Protectee", - "selector": "0x60fac544ae19c3bdb391a986108823d052d2d65891459589b6f3c698f206ce1" - }, - { - "members": [], - "class_hash": "0x756cbd91b86e9eb15a8454b066b7e593cbf9a121ee1aee4bcd34023d5076591", - "tag": "s1_eternum-Protector", - "selector": "0x7c858e96804191100397f8a4683ca93d81d7d341dc68d163c7cea59dc974ec4" - }, - { - "members": [], - "class_hash": "0xfd49d43ef8943b2e262ca7ce1d43c5187969b3cee4007f4d0e177b92981c03", - "tag": "s1_eternum-Quantity", - "selector": "0x8646cb000744430c5d95cf5616ce8ba4913401760158aa1ad6738475a36591" - }, - { - "members": [], - "class_hash": "0xdeb7bcee3ae613715225d0980526d7c9d4735829be2e7f080c914876bf5ff3", - "tag": "s1_eternum-QuantityTracker", - "selector": "0x5f336941c172ea1a837a1c82d98ff802817688e6e5f66a32ac3a9ff320cfb18" - }, - { - "members": [], - "class_hash": "0x1922623eed2f3eb9d7d770af2514efcd2d40e6773e9c2c1944bc2741e07b3b7", - "tag": "s1_eternum-Quest", - "selector": "0x5748c683cbda725287adb63a5b5c7c471d1d782f2779609d4f66efeda03ff68" - }, - { - "members": [], - "class_hash": "0x59846aef7554c61f02aa00ba350ed1001b00b5d7a26e3c66c95901bc7bfd797", - "tag": "s1_eternum-QuestRewardConfig", - "selector": "0x2f5fb5139fc5144da42495b348183b95708defe554ca9d6768498cccecb0066" - }, - { - "members": [], - "class_hash": "0x5ab6ce70c4041941408e527f5e677cf0e68b9ca4bbfcaaa3c7dcd6deba090b6", - "tag": "s1_eternum-Realm", - "selector": "0x6b15a2a9c9d60eefc6c82731f77ae2167b6abc68a909e06ed4f0a0c20a447ae" - }, - { - "members": [], - "class_hash": "0x271add51127069822688df385865088bb78d39040babb928223896e9cf90a60", - "tag": "s1_eternum-RealmLevelConfig", - "selector": "0x7a5266268ba6febaa9248d1ec5543f7731c07391553c9d9b089023790344d78" - }, - { - "members": [], - "class_hash": "0x56c6a40b5d709cd4c5669c7a92664b7220ab156e793b6d0df694baa0d29b99", - "tag": "s1_eternum-RealmMaxLevelConfig", - "selector": "0x23ce30f931b91b01eb8a34f92c50de018fa49e05b9ea5cd0b4350a4c94fa7a7" - }, - { - "members": [], - "class_hash": "0xc58be0c889a407b92a5b1df7f1221567a43ee5a3f5315464f3c598aafa1725", - "tag": "s1_eternum-Resource", - "selector": "0x6bd14dc16a7f05252fcf2fb66630b8f05d39d75b36f55013334a4b3bb8fec57" - }, - { - "members": [], - "class_hash": "0x32648f303c21fcdc338110b1b5a06b419832c5432787228d9bfe330ff65ebfd", - "tag": "s1_eternum-ResourceAllowance", - "selector": "0xf21a6f41bed8651cea6e86ea4d796e7c2be9e0e798b48b971b82f489e68a3d" - }, - { - "members": [], - "class_hash": "0x7d04749bc8b5042f74fd6cf08f00dd4b1a1af9da5db5f9d0e21da9eb574620a", - "tag": "s1_eternum-ResourceBridgeConfig", - "selector": "0x5b58fe2f01c7767c5885c18997654853caf0765fbd6e72d2f54b8d8163a2105" - }, - { - "members": [], - "class_hash": "0x369998561431ccfd4977aab82c53ae491bae58a867ee91ce77701c68c64d2bc", - "tag": "s1_eternum-ResourceBridgeFeeSplitConfig", - "selector": "0xda0261867f8d357360b3d3c651e6f26a72caaa5401021843d7515acf5a7300" - }, - { - "members": [], - "class_hash": "0x505f9ac2bcabc71c14489b2327e757a0c1d9b0721257c7cbaae10a5f4c90c6", - "tag": "s1_eternum-ResourceBridgeWhitelistConfig", - "selector": "0x3af6fef221ed38a459a75bf2c20c5534745e6e9fa3d6c9df899c43a6aee1eee" - }, - { - "members": [], - "class_hash": "0x6c52d4ea5109c6be197e8f64fda6ebf06f8a9fbfc9ae44c4fc479817bc46d33", - "tag": "s1_eternum-ResourceCost", - "selector": "0x5e5b5b182766e23d14ca1bde33304c8b6c2e348d037073fa87cb23adb3acd2d" - }, - { - "members": [], - "class_hash": "0x32512653d00dbf62a310e75a52a4c555c66dea91eae09adadb4a9c26ec6e065", - "tag": "s1_eternum-ResourceTransferLock", - "selector": "0xfb5fa4535e4bca521abeb02621675a6550ea74c791f4342f7e5a3a2d6c19b0" - }, - { - "members": [], - "class_hash": "0x5e33063c9c71448f97e418619192c0bb534cc1d6b130690675020b12c53abc1", - "tag": "s1_eternum-Season", - "selector": "0x7a6034c750e0dc9a1fad3776dd6e6c6697eb36993aed5228e7729206dd560ab" - }, - { - "members": [], - "class_hash": "0x440e7887f604b152a04b9de6fc119d9278259cec2ca4050133b951d28ac9897", - "tag": "s1_eternum-SeasonAddressesConfig", - "selector": "0xa98bd556a5b641497f413f155e4bdce557ba25a48080540ac1e827d0dae5b3" - }, - { - "members": [], - "class_hash": "0x488068b6a2aeab65ba68fc47404d00482be3e34473f557e5fa189a2ed916679", - "tag": "s1_eternum-SeasonBridgeConfig", - "selector": "0x53dcfaf952a8e333e8212bf13c39cfb7d02f26ca8cf47aba06e4a90282481e3" - }, - { - "members": [], - "class_hash": "0x59de73957bcca5ee7a6523eaf9e450d30e5a8d179b756d59a4ad76bd39fe31d", - "tag": "s1_eternum-SettlementConfig", - "selector": "0x4d38d3858af58aab284639984a674293c5689216c5e0b9f3574aef9f3a9dad0" - }, - { - "members": [], - "class_hash": "0x2b346ce8db28ee8e45ff1dd81535f00b044a3fdc5c8841f4de9106afbd22a16", - "tag": "s1_eternum-SpeedConfig", - "selector": "0x56c1e6bea9218e0afdd55a3cc2c5360d969a6a0ccf3f6d1078e4b200cce51cc" - }, - { - "members": [], - "class_hash": "0x234946625a5b48f2e490906ab36e28c0a24d6c5778276475c6bf8034b2ace8a", - "tag": "s1_eternum-Stamina", - "selector": "0x1b2f9a5ab3ea1bc2565fc5cc30f432b41848f7909b64fd3d97d76dcddacbd3d" - }, - { - "members": [], - "class_hash": "0x38bf80ee86dca16edc5ec0302d52efc5b5f01672c3ef09b49aee393d5de8fde", - "tag": "s1_eternum-StaminaConfig", - "selector": "0x1049adf44800338362f91c904678f82fa47fd0ea0828711bee3e36bee63b97e" - }, - { - "members": [], - "class_hash": "0x626911965fc08d9d620dba8722c90e677371f046248b06f3adcf4390622f287", - "tag": "s1_eternum-StaminaRefillConfig", - "selector": "0x7c6db9d03dc473ddec8a0bb2c50b5988a8af928935daea336bb6f0f766a3b41" - }, - { - "members": [], - "class_hash": "0x8184163f4573706c555f878a960da7dd6dd73e550759c26ddf31bb15b265dd", - "tag": "s1_eternum-Status", - "selector": "0x3ebd20c50f05e81810279f60088898425cb0ae9e35f5ac99359e8552292be24" - }, - { - "members": [], - "class_hash": "0x445850a334dc7395fb4b0773760908c704d6cd343acb309f787364e2d6f027b", - "tag": "s1_eternum-Structure", - "selector": "0x3b407b0e3490f7044ce3870614a93f2a0fcbec02710f0975bfdb6c28fdfbecc" - }, - { - "members": [], - "class_hash": "0x3c90dfd7d56f15d47d5fd20d2ac9eb956788c90c66c8d9c61cd2797114704e9", - "tag": "s1_eternum-StructureCount", - "selector": "0x23b5a2b877c85f0d71bc36b420ec53e12e5ef8369cf1aedffa0bc838eea2dc4" - }, - { - "members": [], - "class_hash": "0x78bcb719dc3c363d315c54e49acf539a6b206f8094a8df13905300c90c54e2c", - "tag": "s1_eternum-TickConfig", - "selector": "0x576d27d39e416d211c923deeebe1505c982fe3aaeb511c7bcb0ef063f566e66" - }, - { - "members": [], - "class_hash": "0x1571af1924102cd1a6b9796935ad85debfc12fd1057c7738f22ab6bf9d0a734", - "tag": "s1_eternum-Tile", - "selector": "0x66c306156fe0c5b2785192d61977ac8475e3cb3dbc5d68f5547ade25fe1f4f2" - }, - { - "members": [], - "class_hash": "0x3e187fcc088b7453ee843c1a4534139b7d1527860c64c609279afcb7bccba93", - "tag": "s1_eternum-Trade", - "selector": "0x6ddb8e334e9c33541fce1e72774d6c43c1057a1057a570f2eb12426f51291" - }, - { - "members": [], - "class_hash": "0x421846bd7dfaea423ad0b9d025d960a20172ddcf321d5e16665ed1c667ecd6a", - "tag": "s1_eternum-TravelFoodCostConfig", - "selector": "0x4201d15b950f8e080217e23d7ef911390c3eddb573f7dc857e56c5ddfc606ab" - }, - { - "members": [], - "class_hash": "0x3a3107b2bf45e26c59666750c41655385ce7ffd19d0c8ac59856b0363105d51", - "tag": "s1_eternum-TravelStaminaCostConfig", - "selector": "0x30011c19eca1b0f0f35a4c6bbdac1e437ae7db4670f3ae445d057ee5516ba6e" - }, - { - "members": [], - "class_hash": "0x2f06311d5311c9345f4675fedd74e2f840ffff25509020fd380426a512d7362", - "tag": "s1_eternum-TroopConfig", - "selector": "0x440013884df718dc78b23b652dc4495f0e74de6e3e26f29993cf97a26e96e37" - }, - { - "members": [], - "class_hash": "0x6212d501854ddd5fb4a76f0020b88166a6ace18c51829d9868bf00495c93c79", - "tag": "s1_eternum-VRFConfig", - "selector": "0x40efcfc7e03b7e498a48587f3e7e535a6ed12eff77adeb65553a8e8092786fa" - }, - { - "members": [], - "class_hash": "0x2441bc3e5725d8632d181e17e1a5997544523f35945c6e4c80e257fb9e4886a", - "tag": "s1_eternum-Weight", - "selector": "0x6a857f799cd0abc86c75a666d024ee52f6e81e856f74bb2137bf2f1a534e0e1" - }, - { - "members": [], - "class_hash": "0x3cf8b4b83c710368da4a168ed462b2049721ba5e20d63197a981321672adbdd", - "tag": "s1_eternum-WeightConfig", - "selector": "0x1198553c941fe946e251e66c8f4f3177f44e59e56ac455dbc269557b7ae4d81" - }, - { - "members": [], - "class_hash": "0x75d683bc6831ab3ed4172aa8e35997c47ee37963062e5fabae8729a2b15b475", - "tag": "s1_eternum-WorldConfig", - "selector": "0x6212a03a10506a6661b44a6685e9d2978709dfdfc8de36fe93d947b939f200a" - } - ], - "events": [ - { - "members": [], - "class_hash": "0x6ce0d1733305e5837a804a2fcaaadc4257b33fbbb9072adfa558552806baba7", - "tag": "s1_eternum-AcceptOrder", - "selector": "0x30b1df6433db61c4a92580a1630c9e5126b5c82be28123a06b62f808ecd522" - }, - { - "members": [], - "class_hash": "0x559dd281303289b1fcfc9e64083749dc41f21da90857b5d757e1850e936e1a8", - "tag": "s1_eternum-AcceptPartialOrder", - "selector": "0x10466b8a291c68b1392b0c839dff152f5884e63efecc6616ae39eaaa8dddb16" - }, - { - "members": [], - "class_hash": "0x934049a8b2170110cdd0038113cc44d28a44c9468d386842b6f0f4269930d8", - "tag": "s1_eternum-BattleClaimData", - "selector": "0x41680e7ebc53d924909df6da64cb9bf2f93e4c52c773a46c2d98d26130e4b04" - }, - { - "members": [], - "class_hash": "0x21e47bd56785fa3feb60d847cb8dd208c9a54d7485c3a717266a68cb12922b2", - "tag": "s1_eternum-BattleJoinData", - "selector": "0x52d813cd875f5ab136509292d799f8e50454d7a216d4b0f82011537da338e45" + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "revoke_owner", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "is_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "grant_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "revoke_writer", + "inputs": [ + { + "name": "resource", + "type": "core::felt252" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] }, { - "members": [], - "class_hash": "0x63fcfc6b83c0369df7577ea9ee1be924a91d3f56e751975135352f6d668e48f", - "tag": "s1_eternum-BattleLeaveData", - "selector": "0x2e2634c5a528ebe93bfdd4760906943ab27acda1780d8a0fe6e047daf59e3bb" + "type": "impl", + "name": "UpgradeableWorld", + "interface_name": "dojo::world::iworld::IUpgradeableWorld" }, { - "members": [], - "class_hash": "0x4c4c86484c191574bc777bd9f0a4f0fd42cea3723ebcce1262ae4a6206099a8", - "tag": "s1_eternum-BattlePillageData", - "selector": "0x20e12ccd908df9671ef87e056aeb9225412ed7710b218cf196c2069a36509ca" + "type": "interface", + "name": "dojo::world::iworld::IUpgradeableWorld", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] }, { - "members": [], - "class_hash": "0x7148e1c4747938842ac35ad3133ef7b03e2f890c578f7840a42bf7290fec96a", - "tag": "s1_eternum-BattleStartData", - "selector": "0x29d565ff98451bd6ac59f3a8d0b4d2ef14031a4a39ce4b4e8ee5dab0e02e1c9" + "type": "constructor", + "name": "constructor", + "inputs": [ + { + "name": "world_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ] }, { - "members": [], - "class_hash": "0x73a2e5508322468a7bcadbbb6d8d4ad14e5b7bc19500df530f904c0c2a0ef52", - "tag": "s1_eternum-BurnDonkey", - "selector": "0x4a1aac57c8cb6ec732bd40283fd1a892987d708a6b8a7d3a4dd65da6f0e7700" + "type": "event", + "name": "dojo::world::world_contract::world::WorldSpawned", + "kind": "struct", + "members": [ + { + "name": "creator", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0xb99ae4fd4c6ad7faddd8bc49b59116e8e6ea6900d55571ef6720c6c3e55bc", - "tag": "s1_eternum-CancelOrder", - "selector": "0x1a522313c76bbf3297f8527f95976169c4269831fe8b337f3d19ff0fccb8c87" + "type": "event", + "name": "dojo::world::world_contract::world::WorldUpgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x452f2d31f89ac1d6f689859282e4b8848db14035d14c64388240237f9c952af", - "tag": "s1_eternum-CreateGuild", - "selector": "0x45b5322475ee81006e7e7df176c2f31829e57224ae86ca261738a15ef8c88a7" + "type": "event", + "name": "dojo::world::world_contract::world::NamespaceRegistered", + "kind": "struct", + "members": [ + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "hash", + "type": "core::felt252", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x7ba3c37bfe133370931d979db6a74d2707a4922d56741b37fed2f3f9ffe2412", - "tag": "s1_eternum-CreateOrder", - "selector": "0x10edec58284a982448a15b0f37a3abc65944a16091efed6a39389b5064a6319" + "type": "event", + "name": "dojo::world::world_contract::world::ModelRegistered", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x33eed23e37ab8177b103e50d9fe7998079fb54ba97ed6d6174a18c16c3ce25", - "tag": "s1_eternum-FragmentMineDiscovered", - "selector": "0x6dd702d62f987ca281572763a9ebb8ed1937b7016d874f3c979ecb2b698012a" + "type": "event", + "name": "dojo::world::world_contract::world::EventRegistered", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x788ecb9baee1f026854cfa77c8b6e046731d044ed95aab1ee29d474e2c41385", - "tag": "s1_eternum-GameEnded", - "selector": "0x2146af1d5d48461a767ddc54400c751b49d4fc74619953f68aaf486dd447cfa" + "type": "event", + "name": "dojo::world::world_contract::world::ContractRegistered", + "kind": "struct", + "members": [ + { + "name": "name", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "namespace", + "type": "core::byte_array::ByteArray", + "kind": "key" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "salt", + "type": "core::felt252", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x261625f7f14957f14923385d1293a382a7198e1c2c4342fc274fda159c7bcbf", - "tag": "s1_eternum-HyperstructureCoOwnersChange", - "selector": "0x4dc6d1cc5a4a96d06bc7d47706082b809f07a72a7276f95d8e781cab476f579" + "type": "event", + "name": "dojo::world::world_contract::world::ModelUpgraded", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "prev_address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x751a5d1cd2cfc38b069298a54e665c644329906cb72c156a462400e4378007c", - "tag": "s1_eternum-HyperstructureContribution", - "selector": "0x554c3cb394ec5eb94799313ff57c04489f889918b97c883ec80fad3fb69142" + "type": "event", + "name": "dojo::world::world_contract::world::EventUpgraded", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + }, + { + "name": "address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "prev_address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x1a70f061a8b5ec44881ee4c8c1312704f8a74c852e15e39b0a50ccb6003fdc4", - "tag": "s1_eternum-HyperstructureFinished", - "selector": "0x1e7330fdbaa38d25a4192cae3a2f625a2474d21bea91894b61c78015e4c0a2f" + "type": "event", + "name": "dojo::world::world_contract::world::ContractUpgraded", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x578690752e499bd366110e7627cacf40b36346187aaa69adef84a61e79950ab", - "tag": "s1_eternum-HyperstructureStarted", - "selector": "0x576568f1e35d7395c3585e049cf835153b9337a7f605f0471ae460e79a801" + "type": "event", + "name": "dojo::world::world_contract::world::ContractInitialized", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "init_calldata", + "type": "core::array::Span::", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x63695bd49a77821a9d01ea9a5816eef76a851376cc4bc01a68c1a9e15287322", - "tag": "s1_eternum-JoinGuild", - "selector": "0x1341888a2238268a519a7c39af6c03489343fe2288ef7f66bea5c1f479cc1e4" + "type": "event", + "name": "dojo::world::world_contract::world::EventEmitted", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "system_address", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "key" + }, + { + "name": "keys", + "type": "core::array::Span::", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x4141ad0fcb145ce54bc2ed7cb12e8f3092b6fe60da8dfcaf036bed082232851", - "tag": "s1_eternum-LiquidityEvent", - "selector": "0x4e19f323259ff883daf1f685cfb94306159cde4c8cb46155a290a9b9c91df8c" + "type": "event", + "name": "dojo::world::world_contract::world::MetadataUpdate", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "uri", + "type": "core::byte_array::ByteArray", + "kind": "data" + }, + { + "name": "hash", + "type": "core::felt252", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x561ffdd2e934a6c5f65c58120faade578dafb4af7e61d8ea278bed9932efc41", - "tag": "s1_eternum-MapExplored", - "selector": "0x22543e5f3bd15c01417b0fff116311e6e742ce8f43072e1391fc366b3dc05ad" + "type": "event", + "name": "dojo::world::world_contract::world::StoreSetRecord", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "keys", + "type": "core::array::Span::", + "kind": "data" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x2bc2301835d38f55c1a061a363e6038ec6c9807443718f620ba7e412a543c53", - "tag": "s1_eternum-SettleRealmData", - "selector": "0x7eff418a618f1ecd46303c1e0560094940d883e7ec2edde98bcb002a6e1ccca" + "type": "event", + "name": "dojo::world::world_contract::world::StoreUpdateRecord", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x37bcec3363a81c4aa899552958b4e9c6fa3a97a4fc8a96c45740abe655ef95d", - "tag": "s1_eternum-SwapEvent", - "selector": "0x1f926fcf957ccc9852cfb520498d1eac5512f8e710ffd77db1b1fcad55bfbee" + "type": "event", + "name": "dojo::world::world_contract::world::StoreUpdateMember", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "member_selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "values", + "type": "core::array::Span::", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x6cc999fc86266f1dbc7aa840b708d01884985ad69bdc2b5638cc5911e076fd0", - "tag": "s1_eternum-Transfer", - "selector": "0x51c9cda93a0b9735874f08742333f5d601bee76457f1565f608075666678ee3" + "type": "event", + "name": "dojo::world::world_contract::world::StoreDelRecord", + "kind": "struct", + "members": [ + { + "name": "selector", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "entity_id", + "type": "core::felt252", + "kind": "key" + } + ] }, { - "members": [], - "class_hash": "0x749a49ac7ff5b1b45c2043b9fb682a7afb16508b1294460876dcdf3cfc5a619", - "tag": "s1_eternum-Travel", - "selector": "0x30e8e79033762c0f9e6738ae07398a015b0ffd2969f6d2c1fb09d5475902ae6" + "type": "event", + "name": "dojo::world::world_contract::world::WriterUpdated", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "key" + }, + { + "name": "value", + "type": "core::bool", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0x6b38999d987627835d4c20e7e571c73d32ddc856786d9790a131bdb3372a246", - "tag": "s1_eternum-TrophyCreation", - "selector": "0x730009ea3268cc71709a37a164c9ce9ca00430d63d571ad16b5b72c3f51bc9a" + "type": "event", + "name": "dojo::world::world_contract::world::OwnerUpdated", + "kind": "struct", + "members": [ + { + "name": "resource", + "type": "core::felt252", + "kind": "key" + }, + { + "name": "contract", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "key" + }, + { + "name": "value", + "type": "core::bool", + "kind": "data" + } + ] }, { - "members": [], - "class_hash": "0xf05f290a704ad2671544b391f0c33d50d6d43d468d52791282852a833a00c7", - "tag": "s1_eternum-TrophyProgression", - "selector": "0x198e5fb446b41882f55a08f8baaba4387f41637ca140b0084459ce5338f617d" + "type": "event", + "name": "dojo::world::world_contract::world::Event", + "kind": "enum", + "variants": [ + { + "name": "WorldSpawned", + "type": "dojo::world::world_contract::world::WorldSpawned", + "kind": "nested" + }, + { + "name": "WorldUpgraded", + "type": "dojo::world::world_contract::world::WorldUpgraded", + "kind": "nested" + }, + { + "name": "NamespaceRegistered", + "type": "dojo::world::world_contract::world::NamespaceRegistered", + "kind": "nested" + }, + { + "name": "ModelRegistered", + "type": "dojo::world::world_contract::world::ModelRegistered", + "kind": "nested" + }, + { + "name": "EventRegistered", + "type": "dojo::world::world_contract::world::EventRegistered", + "kind": "nested" + }, + { + "name": "ContractRegistered", + "type": "dojo::world::world_contract::world::ContractRegistered", + "kind": "nested" + }, + { + "name": "ModelUpgraded", + "type": "dojo::world::world_contract::world::ModelUpgraded", + "kind": "nested" + }, + { + "name": "EventUpgraded", + "type": "dojo::world::world_contract::world::EventUpgraded", + "kind": "nested" + }, + { + "name": "ContractUpgraded", + "type": "dojo::world::world_contract::world::ContractUpgraded", + "kind": "nested" + }, + { + "name": "ContractInitialized", + "type": "dojo::world::world_contract::world::ContractInitialized", + "kind": "nested" + }, + { + "name": "EventEmitted", + "type": "dojo::world::world_contract::world::EventEmitted", + "kind": "nested" + }, + { + "name": "MetadataUpdate", + "type": "dojo::world::world_contract::world::MetadataUpdate", + "kind": "nested" + }, + { + "name": "StoreSetRecord", + "type": "dojo::world::world_contract::world::StoreSetRecord", + "kind": "nested" + }, + { + "name": "StoreUpdateRecord", + "type": "dojo::world::world_contract::world::StoreUpdateRecord", + "kind": "nested" + }, + { + "name": "StoreUpdateMember", + "type": "dojo::world::world_contract::world::StoreUpdateMember", + "kind": "nested" + }, + { + "name": "StoreDelRecord", + "type": "dojo::world::world_contract::world::StoreDelRecord", + "kind": "nested" + }, + { + "name": "WriterUpdated", + "type": "dojo::world::world_contract::world::WriterUpdated", + "kind": "nested" + }, + { + "name": "OwnerUpdated", + "type": "dojo::world::world_contract::world::OwnerUpdated", + "kind": "nested" + } + ] } ] - } + }, + "contracts": [ + { + "address": "0x561b10faf4a0809ea306e266bb3c3c91022af032575483fcc633ed6b9d0c9ac", + "class_hash": "0x38b8eea12d619d5ef8dd3ce5fd038a6bef762b64d911a3e3947892f09ceaeab", + "abi": [ + { + "type": "impl", + "name": "bank_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "bank_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "BankSystemsImpl", + "interface_name": "s1_eternum::systems::bank::contracts::bank::IBankSystems" + }, + { + "type": "interface", + "name": "s1_eternum::systems::bank::contracts::bank::IBankSystems", + "items": [ + { + "type": "function", + "name": "change_owner_amm_fee", + "inputs": [ + { + "name": "bank_entity_id", + "type": "core::integer::u32" + }, + { + "name": "new_owner_fee_num", + "type": "core::integer::u128" + }, + { + "name": "new_owner_fee_denom", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "change_owner_bridge_fee", + "inputs": [ + { + "name": "bank_entity_id", + "type": "core::integer::u32" + }, + { + "name": "owner_bridge_fee_dpt_percent", + "type": "core::integer::u16" + }, + { + "name": "owner_bridge_fee_wtdr_percent", + "type": "core::integer::u16" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::bank::contracts::bank::bank_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-bank_systems", + "selector": "0x44475a775d79049bbe99567b7c00a1e4d8d582cade61a8aec07ca3bb234f6e6", + "systems": [ + "change_owner_amm_fee", + "change_owner_bridge_fee", + "upgrade" + ] + }, + { + "address": "0x4da090eae1bd76c455948aa43755ce1a322c4c717abb98ffd2992fd4d9fe5fe", + "class_hash": "0x205d037fb517aca51484f6d89dae7b11c6dceed1d55943c21ea1e70bc62cc", + "abi": [ + { + "type": "impl", + "name": "battle_pillage_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "battle_pillage_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "BattlePillageContractImpl", + "interface_name": "s1_eternum::systems::combat::contracts::battle_systems::IBattlePillageContract" + }, + { + "type": "interface", + "name": "s1_eternum::systems::combat::contracts::battle_systems::IBattlePillageContract", + "items": [ + { + "type": "function", + "name": "battle_pillage", + "inputs": [ + { + "name": "army_id", + "type": "core::integer::u32" + }, + { + "name": "structure_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::combat::contracts::battle_systems::battle_pillage_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-battle_pillage_systems", + "selector": "0x6e8963ce01de14fbf50434fd001ac86e45313c4d43e7a255192eb26dcb5d63d", + "systems": [ + "battle_pillage", + "upgrade" + ] + }, + { + "address": "0x29c169487fb01d1692f7d7eb3f8e1e0cb84956b4d202483c1673baeec878f49", + "class_hash": "0x6ec06498582ccec7dd073f767ddcee7350bfcb4211f9238316599bb28c9330f", + "abi": [ + { + "type": "impl", + "name": "battle_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "battle_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "BattleContractImpl", + "interface_name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleContract" + }, + { + "type": "enum", + "name": "s1_eternum::models::combat::BattleSide", + "variants": [ + { + "name": "None", + "type": "()" + }, + { + "name": "Attack", + "type": "()" + }, + { + "name": "Defence", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleContract", + "items": [ + { + "type": "function", + "name": "battle_start", + "inputs": [ + { + "name": "attacking_army_id", + "type": "core::integer::u32" + }, + { + "name": "defending_army_id", + "type": "core::integer::u32" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "battle_force_start", + "inputs": [ + { + "name": "battle_id", + "type": "core::integer::u32" + }, + { + "name": "defending_army_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "battle_join", + "inputs": [ + { + "name": "battle_id", + "type": "core::integer::u32" + }, + { + "name": "battle_side", + "type": "s1_eternum::models::combat::BattleSide" + }, + { + "name": "army_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "battle_leave", + "inputs": [ + { + "name": "battle_id", + "type": "core::integer::u32" + }, + { + "name": "army_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "battle_claim", + "inputs": [ + { + "name": "army_id", + "type": "core::integer::u32" + }, + { + "name": "structure_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "battle_resolve", + "inputs": [ + { + "name": "battle_id", + "type": "core::integer::u32" + }, + { + "name": "army_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::combat::contracts::battle_systems::battle_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-battle_systems", + "selector": "0x7bb97d7199b14973d6f05b84579bda637cef5714be078064da3cb80d273c79b", + "systems": [ + "battle_start", + "battle_force_start", + "battle_join", + "battle_leave", + "battle_claim", + "battle_resolve", + "upgrade" + ] + }, + { + "address": "0x32762adec37d1e60a05fcba2637ec7549f3c53ebf049fcb5d210cab0e1e5049", + "class_hash": "0x2ad3b3278498fafb701f93b6836fd9f9b9c5cd2e050d18c5ebb1caaecbef3c", + "abi": [ + { + "type": "impl", + "name": "battle_utils_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "battle_utils_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "BattleUtilsContractImpl", + "interface_name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleUtilsContract" + }, + { + "type": "struct", + "name": "s1_eternum::models::combat::Troops", + "members": [ + { + "name": "knight_count", + "type": "core::integer::u64" + }, + { + "name": "paladin_count", + "type": "core::integer::u64" + }, + { + "name": "crossbowman_count", + "type": "core::integer::u64" + } + ] + }, + { + "type": "enum", + "name": "s1_eternum::models::combat::BattleSide", + "variants": [ + { + "name": "None", + "type": "()" + }, + { + "name": "Attack", + "type": "()" + }, + { + "name": "Defence", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::combat::BattleArmy", + "members": [ + { + "name": "troops", + "type": "s1_eternum::models::combat::Troops" + }, + { + "name": "battle_id", + "type": "core::integer::u32" + }, + { + "name": "battle_side", + "type": "s1_eternum::models::combat::BattleSide" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::combat::BattleHealth", + "members": [ + { + "name": "current", + "type": "core::integer::u128" + }, + { + "name": "lifetime", + "type": "core::integer::u128" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::combat::Battle", + "members": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "attack_army", + "type": "s1_eternum::models::combat::BattleArmy" + }, + { + "name": "attack_army_lifetime", + "type": "s1_eternum::models::combat::BattleArmy" + }, + { + "name": "defence_army", + "type": "s1_eternum::models::combat::BattleArmy" + }, + { + "name": "defence_army_lifetime", + "type": "s1_eternum::models::combat::BattleArmy" + }, + { + "name": "attackers_resources_escrow_id", + "type": "core::integer::u32" + }, + { + "name": "defenders_resources_escrow_id", + "type": "core::integer::u32" + }, + { + "name": "attack_army_health", + "type": "s1_eternum::models::combat::BattleHealth" + }, + { + "name": "defence_army_health", + "type": "s1_eternum::models::combat::BattleHealth" + }, + { + "name": "attack_delta", + "type": "core::integer::u64" + }, + { + "name": "defence_delta", + "type": "core::integer::u64" + }, + { + "name": "last_updated", + "type": "core::integer::u64" + }, + { + "name": "duration_left", + "type": "core::integer::u64" + }, + { + "name": "start_at", + "type": "core::integer::u64" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::combat::Army", + "members": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "troops", + "type": "s1_eternum::models::combat::Troops" + }, + { + "name": "battle_id", + "type": "core::integer::u32" + }, + { + "name": "battle_side", + "type": "s1_eternum::models::combat::BattleSide" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::combat::contracts::battle_systems::IBattleUtilsContract", + "items": [ + { + "type": "function", + "name": "leave_battle", + "inputs": [ + { + "name": "battle", + "type": "s1_eternum::models::combat::Battle" + }, + { + "name": "army", + "type": "s1_eternum::models::combat::Army" + } + ], + "outputs": [ + { + "type": "(s1_eternum::models::combat::Battle, s1_eternum::models::combat::Army)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "leave_battle_if_ended", + "inputs": [ + { + "name": "battle", + "type": "s1_eternum::models::combat::Battle" + }, + { + "name": "army", + "type": "s1_eternum::models::combat::Army" + } + ], + "outputs": [ + { + "type": "(s1_eternum::models::combat::Battle, s1_eternum::models::combat::Army)" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::combat::contracts::battle_systems::battle_utils_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-battle_utils_systems", + "selector": "0x2b94e5432b691bad81584af7e9e97102aa0070f13aa91c6ff8c980e54d5ca33", + "systems": [ + "leave_battle", + "leave_battle_if_ended", + "upgrade" + ] + }, + { + "address": "0xb3d474aded507a7350baa69474463d33886be66ed6d1a0ae8d1a4f19d919a", + "class_hash": "0x747b7a6788796c5f9899d3b7db8931ba43475a5c3393eff28f156c8761a31c3", + "abi": [ + { + "type": "impl", + "name": "config_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "config_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IWorldConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IWorldConfig", + "items": [ + { + "type": "function", + "name": "set_world_config", + "inputs": [ + { + "name": "admin_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "realm_l2_contract", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "SeasonConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ISeasonConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ISeasonConfig", + "items": [ + { + "type": "function", + "name": "set_season_config", + "inputs": [ + { + "name": "season_pass_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "realms_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "lords_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "start_at", + "type": "core::integer::u64" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_season_bridge_config", + "inputs": [ + { + "name": "close_after_end_seconds", + "type": "core::integer::u64" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "VRFConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IVRFConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IVRFConfig", + "items": [ + { + "type": "function", + "name": "set_vrf_config", + "inputs": [ + { + "name": "vrf_provider_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "QuestConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IQuestConfig" + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IQuestConfig", + "items": [ + { + "type": "function", + "name": "set_quest_reward_config", + "inputs": [ + { + "name": "quest_id", + "type": "core::integer::u32" + }, + { + "name": "resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "MapConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IMapConfig" + }, + { + "type": "struct", + "name": "s1_eternum::models::config::MapConfig", + "members": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "reward_resource_amount", + "type": "core::integer::u128" + }, + { + "name": "shards_mines_fail_probability", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IMapConfig", + "items": [ + { + "type": "function", + "name": "set_map_config", + "inputs": [ + { + "name": "map_config", + "type": "s1_eternum::models::config::MapConfig" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "CapacityConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ICapacityConfig" + }, + { + "type": "enum", + "name": "s1_eternum::models::config::CapacityConfigCategory", + "variants": [ + { + "name": "None", + "type": "()" + }, + { + "name": "Structure", + "type": "()" + }, + { + "name": "Donkey", + "type": "()" + }, + { + "name": "Army", + "type": "()" + }, + { + "name": "Storehouse", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::config::CapacityConfig", + "members": [ + { + "name": "category", + "type": "s1_eternum::models::config::CapacityConfigCategory" + }, + { + "name": "weight_gram", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ICapacityConfig", + "items": [ + { + "type": "function", + "name": "set_capacity_config", + "inputs": [ + { + "name": "capacity_config", + "type": "s1_eternum::models::config::CapacityConfig" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "TravelStaminaCostConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ITravelStaminaCostConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ITravelStaminaCostConfig", + "items": [ + { + "type": "function", + "name": "set_travel_stamina_cost_config", + "inputs": [ + { + "name": "travel_type", + "type": "core::integer::u8" + }, + { + "name": "cost", + "type": "core::integer::u16" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "WeightConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IWeightConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IWeightConfig", + "items": [ + { + "type": "function", + "name": "set_weight_config", + "inputs": [ + { + "name": "entity_type", + "type": "core::integer::u32" + }, + { + "name": "weight_gram", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "BattleConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IBattleConfig" + }, + { + "type": "struct", + "name": "s1_eternum::models::config::BattleConfig", + "members": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "regular_immunity_ticks", + "type": "core::integer::u8" + }, + { + "name": "hyperstructure_immunity_ticks", + "type": "core::integer::u8" + }, + { + "name": "battle_delay_seconds", + "type": "core::integer::u64" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IBattleConfig", + "items": [ + { + "type": "function", + "name": "set_battle_config", + "inputs": [ + { + "name": "battle_config", + "type": "s1_eternum::models::config::BattleConfig" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "TickConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ITickConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ITickConfig", + "items": [ + { + "type": "function", + "name": "set_tick_config", + "inputs": [ + { + "name": "tick_id", + "type": "core::integer::u8" + }, + { + "name": "tick_interval_in_seconds", + "type": "core::integer::u64" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "StaminaConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IStaminaConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IStaminaConfig", + "items": [ + { + "type": "function", + "name": "set_stamina_config", + "inputs": [ + { + "name": "unit_type", + "type": "core::integer::u8" + }, + { + "name": "max_stamina", + "type": "core::integer::u16" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "TravelFoodCostConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ITravelFoodCostConfig" + }, + { + "type": "struct", + "name": "s1_eternum::models::config::TravelFoodCostConfig", + "members": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "unit_type", + "type": "core::integer::u8" + }, + { + "name": "explore_wheat_burn_amount", + "type": "core::integer::u128" + }, + { + "name": "explore_fish_burn_amount", + "type": "core::integer::u128" + }, + { + "name": "travel_wheat_burn_amount", + "type": "core::integer::u128" + }, + { + "name": "travel_fish_burn_amount", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ITravelFoodCostConfig", + "items": [ + { + "type": "function", + "name": "set_travel_food_cost_config", + "inputs": [ + { + "name": "travel_food_cost_config", + "type": "s1_eternum::models::config::TravelFoodCostConfig" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "StaminaRefillConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IStaminaRefillConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IStaminaRefillConfig", + "items": [ + { + "type": "function", + "name": "set_stamina_refill_config", + "inputs": [ + { + "name": "amount_per_tick", + "type": "core::integer::u16" + }, + { + "name": "start_boost_tick_count", + "type": "core::integer::u8" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "LevelingConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ILevelingConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ILevelingConfig", + "items": [ + { + "type": "function", + "name": "set_leveling_config", + "inputs": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "decay_interval", + "type": "core::integer::u64" + }, + { + "name": "max_level", + "type": "core::integer::u64" + }, + { + "name": "decay_scaled", + "type": "core::integer::u128" + }, + { + "name": "cost_percentage_scaled", + "type": "core::integer::u128" + }, + { + "name": "base_multiplier", + "type": "core::integer::u128" + }, + { + "name": "wheat_base_amount", + "type": "core::integer::u128" + }, + { + "name": "fish_base_amount", + "type": "core::integer::u128" + }, + { + "name": "resource_1_costs", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "resource_2_costs", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "resource_3_costs", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "ProductionConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IProductionConfig" + }, + { + "type": "struct", + "name": "s1_eternum::models::config::LaborBurnPrStrategy", + "members": [ + { + "name": "resource_rarity", + "type": "core::integer::u128" + }, + { + "name": "depreciation_percent_num", + "type": "core::integer::u16" + }, + { + "name": "depreciation_percent_denom", + "type": "core::integer::u16" + }, + { + "name": "wheat_burn_per_labor", + "type": "core::integer::u128" + }, + { + "name": "fish_burn_per_labor", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IProductionConfig", + "items": [ + { + "type": "function", + "name": "set_production_config", + "inputs": [ + { + "name": "resource_type", + "type": "core::integer::u8" + }, + { + "name": "amount_per_building_per_tick", + "type": "core::integer::u128" + }, + { + "name": "labor_burn_strategy", + "type": "s1_eternum::models::config::LaborBurnPrStrategy" + }, + { + "name": "predefined_resource_burn_cost", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "TransportConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ITransportConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ITransportConfig", + "items": [ + { + "type": "function", + "name": "set_speed_config", + "inputs": [ + { + "name": "entity_type", + "type": "core::integer::u32" + }, + { + "name": "sec_per_km", + "type": "core::integer::u16" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "HyperstructureConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IHyperstructureConfig" + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u8, core::integer::u128, core::integer::u128)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u8, core::integer::u128, core::integer::u128)>" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IHyperstructureConfig", + "items": [ + { + "type": "function", + "name": "set_hyperstructure_config", + "inputs": [ + { + "name": "resources_for_completion", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128, core::integer::u128)>" + }, + { + "name": "time_between_shares_change", + "type": "core::integer::u64" + }, + { + "name": "points_per_cycle", + "type": "core::integer::u128" + }, + { + "name": "points_for_win", + "type": "core::integer::u128" + }, + { + "name": "points_on_completion", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "BankConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IBankConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IBankConfig", + "items": [ + { + "type": "function", + "name": "set_bank_config", + "inputs": [ + { + "name": "lords_cost", + "type": "core::integer::u128" + }, + { + "name": "lp_fee_num", + "type": "core::integer::u128" + }, + { + "name": "lp_fee_denom", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "TroopConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::ITroopConfig" + }, + { + "type": "struct", + "name": "s1_eternum::models::config::TroopConfig", + "members": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "health", + "type": "core::integer::u32" + }, + { + "name": "knight_strength", + "type": "core::integer::u8" + }, + { + "name": "paladin_strength", + "type": "core::integer::u8" + }, + { + "name": "crossbowman_strength", + "type": "core::integer::u16" + }, + { + "name": "advantage_percent", + "type": "core::integer::u16" + }, + { + "name": "disadvantage_percent", + "type": "core::integer::u16" + }, + { + "name": "max_troop_count", + "type": "core::integer::u64" + }, + { + "name": "pillage_health_divisor", + "type": "core::integer::u8" + }, + { + "name": "army_free_per_structure", + "type": "core::integer::u8" + }, + { + "name": "army_extra_per_building", + "type": "core::integer::u8" + }, + { + "name": "army_max_per_structure", + "type": "core::integer::u8" + }, + { + "name": "battle_leave_slash_num", + "type": "core::integer::u8" + }, + { + "name": "battle_leave_slash_denom", + "type": "core::integer::u8" + }, + { + "name": "battle_time_scale", + "type": "core::integer::u16" + }, + { + "name": "battle_max_time_seconds", + "type": "core::integer::u64" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ITroopConfig", + "items": [ + { + "type": "function", + "name": "set_troop_config", + "inputs": [ + { + "name": "troop_config", + "type": "s1_eternum::models::config::TroopConfig" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "BuildingCategoryPopulationConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IBuildingCategoryPopConfig" + }, + { + "type": "enum", + "name": "s1_eternum::models::resource::production::building::BuildingCategory", + "variants": [ + { + "name": "None", + "type": "()" + }, + { + "name": "Castle", + "type": "()" + }, + { + "name": "Resource", + "type": "()" + }, + { + "name": "Farm", + "type": "()" + }, + { + "name": "FishingVillage", + "type": "()" + }, + { + "name": "Barracks", + "type": "()" + }, + { + "name": "Market", + "type": "()" + }, + { + "name": "ArcheryRange", + "type": "()" + }, + { + "name": "Stable", + "type": "()" + }, + { + "name": "TradingPost", + "type": "()" + }, + { + "name": "WorkersHut", + "type": "()" + }, + { + "name": "WatchTower", + "type": "()" + }, + { + "name": "Walls", + "type": "()" + }, + { + "name": "Storehouse", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IBuildingCategoryPopConfig", + "items": [ + { + "type": "function", + "name": "set_building_category_pop_config", + "inputs": [ + { + "name": "building_category", + "type": "s1_eternum::models::resource::production::building::BuildingCategory" + }, + { + "name": "population", + "type": "core::integer::u32" + }, + { + "name": "capacity", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "PopulationConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IPopulationConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IPopulationConfig", + "items": [ + { + "type": "function", + "name": "set_population_config", + "inputs": [ + { + "name": "base_population", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "BuildingConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IBuildingConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IBuildingConfig", + "items": [ + { + "type": "function", + "name": "set_building_general_config", + "inputs": [ + { + "name": "base_cost_percent_increase", + "type": "core::integer::u16" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_building_config", + "inputs": [ + { + "name": "building_category", + "type": "s1_eternum::models::resource::production::building::BuildingCategory" + }, + { + "name": "building_resource_type", + "type": "core::integer::u8" + }, + { + "name": "cost_of_building", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "IMercenariesConfig", + "interface_name": "s1_eternum::systems::config::contracts::IMercenariesConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IMercenariesConfig", + "items": [ + { + "type": "function", + "name": "set_mercenaries_config", + "inputs": [ + { + "name": "knights_lower_bound", + "type": "core::integer::u64" + }, + { + "name": "knights_upper_bound", + "type": "core::integer::u64" + }, + { + "name": "paladins_lower_bound", + "type": "core::integer::u64" + }, + { + "name": "paladins_upper_bound", + "type": "core::integer::u64" + }, + { + "name": "crossbowmen_lower_bound", + "type": "core::integer::u64" + }, + { + "name": "crossbowmen_upper_bound", + "type": "core::integer::u64" + }, + { + "name": "rewards", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "IResourceBridgeConfig", + "interface_name": "s1_eternum::systems::config::contracts::IResourceBridgeConfig" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::config::ResourceBridgeConfig", + "members": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "deposit_paused", + "type": "core::bool" + }, + { + "name": "withdraw_paused", + "type": "core::bool" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::config::ResourceBridgeFeeSplitConfig", + "members": [ + { + "name": "config_id", + "type": "core::integer::u32" + }, + { + "name": "velords_fee_on_dpt_percent", + "type": "core::integer::u16" + }, + { + "name": "velords_fee_on_wtdr_percent", + "type": "core::integer::u16" + }, + { + "name": "season_pool_fee_on_dpt_percent", + "type": "core::integer::u16" + }, + { + "name": "season_pool_fee_on_wtdr_percent", + "type": "core::integer::u16" + }, + { + "name": "client_fee_on_dpt_percent", + "type": "core::integer::u16" + }, + { + "name": "client_fee_on_wtdr_percent", + "type": "core::integer::u16" + }, + { + "name": "velords_fee_recipient", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "season_pool_fee_recipient", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "max_bank_fee_dpt_percent", + "type": "core::integer::u16" + }, + { + "name": "max_bank_fee_wtdr_percent", + "type": "core::integer::u16" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::config::ResourceBridgeWhitelistConfig", + "members": [ + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "resource_type", + "type": "core::integer::u8" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IResourceBridgeConfig", + "items": [ + { + "type": "function", + "name": "set_resource_bridge_config", + "inputs": [ + { + "name": "resource_bridge_config", + "type": "s1_eternum::models::config::ResourceBridgeConfig" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_resource_bridge_fee_split_config", + "inputs": [ + { + "name": "resource_bridge_fee_split_config", + "type": "s1_eternum::models::config::ResourceBridgeFeeSplitConfig" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_resource_bridge_whitelist_config", + "inputs": [ + { + "name": "resource_bridge_whitelist_config", + "type": "s1_eternum::models::config::ResourceBridgeWhitelistConfig" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "RealmLevelConfigImpl", + "interface_name": "s1_eternum::systems::config::contracts::IRealmLevelConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::IRealmLevelConfig", + "items": [ + { + "type": "function", + "name": "set_realm_max_level_config", + "inputs": [ + { + "name": "new_max_level", + "type": "core::integer::u8" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_realm_level_config", + "inputs": [ + { + "name": "level", + "type": "core::integer::u8" + }, + { + "name": "resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "ISettlementConfig", + "interface_name": "s1_eternum::systems::config::contracts::ISettlementConfig" + }, + { + "type": "interface", + "name": "s1_eternum::systems::config::contracts::ISettlementConfig", + "items": [ + { + "type": "function", + "name": "set_settlement_config", + "inputs": [ + { + "name": "center", + "type": "core::integer::u32" + }, + { + "name": "base_distance", + "type": "core::integer::u32" + }, + { + "name": "min_first_layer_distance", + "type": "core::integer::u32" + }, + { + "name": "points_placed", + "type": "core::integer::u32" + }, + { + "name": "current_layer", + "type": "core::integer::u32" + }, + { + "name": "current_side", + "type": "core::integer::u32" + }, + { + "name": "current_point_on_side", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "achievement::components::achievable::AchievableComponent::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::config::contracts::config_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + }, + { + "name": "AchievableEvent", + "type": "achievement::components::achievable::AchievableComponent::Event", + "kind": "flat" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-config_systems", + "selector": "0x1cb4608b18b40cb6420be7cf67ff21abe727a2bf599f2727d8eed5e36099fc2", + "systems": [ + "set_world_config", + "set_season_config", + "set_season_bridge_config", + "set_vrf_config", + "set_quest_reward_config", + "set_map_config", + "set_capacity_config", + "set_travel_stamina_cost_config", + "set_weight_config", + "set_battle_config", + "set_tick_config", + "set_stamina_config", + "set_travel_food_cost_config", + "set_stamina_refill_config", + "set_leveling_config", + "set_production_config", + "set_speed_config", + "set_hyperstructure_config", + "set_bank_config", + "set_troop_config", + "set_building_category_pop_config", + "set_population_config", + "set_building_general_config", + "set_building_config", + "set_mercenaries_config", + "set_resource_bridge_config", + "set_resource_bridge_fee_split_config", + "set_resource_bridge_whitelist_config", + "set_realm_max_level_config", + "set_realm_level_config", + "set_settlement_config", + "upgrade" + ] + }, + { + "address": "0x502c164cb455df87523c1dedd1bca31f84d2e606ddc65bcb269a498aa359ed", + "class_hash": "0x52cc13796077949a91149c8870679bff30e880faacc1696c444db1ffc2e03ba", + "abi": [ + { + "type": "impl", + "name": "dev_bank_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "dev_bank_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "BankSystemsImpl", + "interface_name": "s1_eternum::systems::dev::contracts::bank::IBankSystems" + }, + { + "type": "struct", + "name": "s1_eternum::models::position::Coord", + "members": [ + { + "name": "x", + "type": "core::integer::u32" + }, + { + "name": "y", + "type": "core::integer::u32" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::dev::contracts::bank::IBankSystems", + "items": [ + { + "type": "function", + "name": "create_admin_bank", + "inputs": [ + { + "name": "name", + "type": "core::felt252" + }, + { + "name": "coord", + "type": "s1_eternum::models::position::Coord" + }, + { + "name": "owner_fee_num", + "type": "core::integer::u128" + }, + { + "name": "owner_fee_denom", + "type": "core::integer::u128" + }, + { + "name": "owner_bridge_fee_dpt_percent", + "type": "core::integer::u16" + }, + { + "name": "owner_bridge_fee_wtdr_percent", + "type": "core::integer::u16" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::dev::contracts::bank::dev_bank_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-dev_bank_systems", + "selector": "0x653ceec4af5e357119149b66228aece89c47a9c85dbba76955cec24e809f191", + "systems": [ + "create_admin_bank", + "upgrade" + ] + }, + { + "address": "0x7f180ec4de002861bf8e86cdd9f41e19165c468ea7703ccc7c707702fa6909c", + "class_hash": "0x568e9e9963345b80ed1bfcf91d08d78dd12bcc96280ce9f85ec3a104f602594", + "abi": [ + { + "type": "impl", + "name": "dev_resource_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "dev_resource_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ResourceSystemsImpl", + "interface_name": "s1_eternum::systems::dev::contracts::resource::IResourceSystems" + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::dev::contracts::resource::IResourceSystems", + "items": [ + { + "type": "function", + "name": "mint", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::dev::contracts::resource::dev_resource_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-dev_resource_systems", + "selector": "0x4d5cfcb90997c42faaec636a440b73118f54d7e5321a8e6e134bdb0ac946333", + "systems": [ + "mint", + "upgrade" + ] + }, + { + "address": "0x7287d38e8142f45849f596515a72595b9f61d7eee866f12f5da6befec1ccd3e", + "class_hash": "0x41e1faef49fb72e1e20ffcf0c2c15e99f80cf95dc8ae3414b5c0e31ecce6b6f", + "abi": [ + { + "type": "impl", + "name": "donkey_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "donkey_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::transport::contracts::donkey_systems::donkey_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-donkey_systems", + "selector": "0x3d69880d4cc048ff9cbc100f9667649cb239b66e1245bf3cccb47119ea29a95", + "systems": [ + "upgrade" + ] + }, + { + "address": "0x654e2cfc842dd37395a4595dc8bb78f6546c2b377b5fa74ff2487a3ea8c25d6", + "class_hash": "0x6178332d6302e2ccebecc0cdf7ef676443384f9e3dcffbcbb1cb9056c05b11e", + "abi": [ + { + "type": "impl", + "name": "guild_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "guild_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "GuildSystemsImpl", + "interface_name": "s1_eternum::systems::guild::contracts::IGuildSystems" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::guild::contracts::IGuildSystems", + "items": [ + { + "type": "function", + "name": "create_guild", + "inputs": [ + { + "name": "is_public", + "type": "core::bool" + }, + { + "name": "guild_name", + "type": "core::felt252" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "join_guild", + "inputs": [ + { + "name": "guild_entity_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "whitelist_player", + "inputs": [ + { + "name": "player_address_to_whitelist", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "guild_entity_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "transfer_guild_ownership", + "inputs": [ + { + "name": "guild_entity_id", + "type": "core::integer::u32" + }, + { + "name": "to_player_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "remove_guild_member", + "inputs": [ + { + "name": "player_address_to_remove", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "remove_player_from_whitelist", + "inputs": [ + { + "name": "player_address_to_remove", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "guild_entity_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::guild::contracts::guild_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-guild_systems", + "selector": "0x15516acac71fbb80f953b9a8fac7d65ceff957f7f2d568fecbccba36bec6263", + "systems": [ + "create_guild", + "join_guild", + "whitelist_player", + "transfer_guild_ownership", + "remove_guild_member", + "remove_player_from_whitelist", + "upgrade" + ] + }, + { + "address": "0x1c148f3082414b1bf1320d421bad2a325675545f1f213af3219c3727f0de11e", + "class_hash": "0xa9133f3532a2a84bb5594c4cd32f77d1c8618954f3410c8b2068104fa39987", + "abi": [ + { + "type": "impl", + "name": "hyperstructure_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "hyperstructure_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "HyperstructureSystemsImpl", + "interface_name": "s1_eternum::systems::hyperstructure::contracts::IHyperstructureSystems" + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u32, core::integer::u16)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u32, core::integer::u16)>" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::position::Coord", + "members": [ + { + "name": "x", + "type": "core::integer::u32" + }, + { + "name": "y", + "type": "core::integer::u32" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::starknet::contract_address::ContractAddress, core::integer::u16)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::starknet::contract_address::ContractAddress, core::integer::u16)>" + } + ] + }, + { + "type": "enum", + "name": "s1_eternum::models::hyperstructure::Access", + "variants": [ + { + "name": "Public", + "type": "()" + }, + { + "name": "Private", + "type": "()" + }, + { + "name": "GuildOnly", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::hyperstructure::contracts::IHyperstructureSystems", + "items": [ + { + "type": "function", + "name": "get_points", + "inputs": [ + { + "name": "player_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "hyperstructures_contributed_to", + "type": "core::array::Span::" + }, + { + "name": "hyperstructure_shareholder_epochs", + "type": "core::array::Span::<(core::integer::u32, core::integer::u16)>" + } + ], + "outputs": [ + { + "type": "(core::integer::u128, core::integer::u128, core::integer::u128, core::integer::u128)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "create", + "inputs": [ + { + "name": "creator_entity_id", + "type": "core::integer::u32" + }, + { + "name": "coord", + "type": "s1_eternum::models::position::Coord" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "contribute_to_construction", + "inputs": [ + { + "name": "hyperstructure_entity_id", + "type": "core::integer::u32" + }, + { + "name": "contributor_entity_id", + "type": "core::integer::u32" + }, + { + "name": "contributions", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_co_owners", + "inputs": [ + { + "name": "hyperstructure_entity_id", + "type": "core::integer::u32" + }, + { + "name": "co_owners", + "type": "core::array::Span::<(core::starknet::contract_address::ContractAddress, core::integer::u16)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "end_game", + "inputs": [ + { + "name": "hyperstructures_contributed_to", + "type": "core::array::Span::" + }, + { + "name": "hyperstructure_shareholder_epochs", + "type": "core::array::Span::<(core::integer::u32, core::integer::u16)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_access", + "inputs": [ + { + "name": "hyperstructure_entity_id", + "type": "core::integer::u32" + }, + { + "name": "access", + "type": "s1_eternum::models::hyperstructure::Access" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::hyperstructure::contracts::hyperstructure_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-hyperstructure_systems", + "selector": "0x4bdd8bcbb935577aba3b974bd7e906698504fcb75e0c3aa34913c21342b4498", + "systems": [ + "get_points", + "create", + "contribute_to_construction", + "set_co_owners", + "end_game", + "set_access", + "upgrade" + ] + }, + { + "address": "0x171c6fae95acd58233dfa472e86184a53f42da7d9a4dd94ff4b2a2f3dd8e9de", + "class_hash": "0x49e8054a2fde6f49ce8b2563d677efd248bbeadf1f753e59a41ba7d3b9efe8f", + "abi": [ + { + "type": "impl", + "name": "liquidity_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "liquidity_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "LiquiditySystemsImpl", + "interface_name": "s1_eternum::systems::bank::contracts::liquidity::ILiquiditySystems" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "cubit::f128::types::fixed::Fixed", + "members": [ + { + "name": "mag", + "type": "core::integer::u128" + }, + { + "name": "sign", + "type": "core::bool" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::bank::contracts::liquidity::ILiquiditySystems", + "items": [ + { + "type": "function", + "name": "add", + "inputs": [ + { + "name": "bank_entity_id", + "type": "core::integer::u32" + }, + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "resource_type", + "type": "core::integer::u8" + }, + { + "name": "resource_amount", + "type": "core::integer::u128" + }, + { + "name": "lords_amount", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "remove", + "inputs": [ + { + "name": "bank_entity_id", + "type": "core::integer::u32" + }, + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "resource_type", + "type": "core::integer::u8" + }, + { + "name": "shares", + "type": "cubit::f128::types::fixed::Fixed" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::bank::contracts::liquidity::liquidity_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-liquidity_systems", + "selector": "0xf480ba1a0c3e5b85a74ba14244a1653f886654d67c71b4dd0804d9eecf1cd9", + "systems": [ + "add", + "remove", + "upgrade" + ] + }, + { + "address": "0x6f29997ad3fec03fa79e043d69260b39baf0690cc5198bdec510ba0d9d200af", + "class_hash": "0x43b25f249e159cfbe93bb91651c5833cc04dda10534c2b6a64eab6ec260cd63", + "abi": [ + { + "type": "impl", + "name": "map_generation_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "map_generation_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "MapGenerationSystemsImpl", + "interface_name": "s1_eternum::systems::map::map_generation::IMapGenerationSystems" + }, + { + "type": "struct", + "name": "s1_eternum::models::owner::EntityOwner", + "members": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "entity_owner_id", + "type": "core::integer::u32" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::position::Coord", + "members": [ + { + "name": "x", + "type": "core::integer::u32" + }, + { + "name": "y", + "type": "core::integer::u32" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::integer::u256", + "members": [ + { + "name": "low", + "type": "core::integer::u128" + }, + { + "name": "high", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::map::map_generation::IMapGenerationSystems", + "items": [ + { + "type": "function", + "name": "discover_shards_mine", + "inputs": [ + { + "name": "unit_entity_owner", + "type": "s1_eternum::models::owner::EntityOwner" + }, + { + "name": "coord", + "type": "s1_eternum::models::position::Coord" + } + ], + "outputs": [ + { + "type": "core::bool" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "add_mercenaries_to_structure", + "inputs": [ + { + "name": "randomness", + "type": "core::integer::u256" + }, + { + "name": "structure_entity_id", + "type": "core::integer::u32" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::map::map_generation::map_generation_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-map_generation_systems", + "selector": "0x6dbd060aee5437a68789ce311c098ad9e39dddab8447b335c10007afae949c6", + "systems": [ + "discover_shards_mine", + "add_mercenaries_to_structure", + "upgrade" + ] + }, + { + "address": "0x79300036c247389c377da6b3f01106509aa35c75e16a290d385ceec66857f98", + "class_hash": "0x6feebc73f723c38719ee76e2499d8dd53fc1a2c9a30027ef28eeb642944cb8d", + "abi": [ + { + "type": "impl", + "name": "map_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "map_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "MapSystemsImpl", + "interface_name": "s1_eternum::systems::map::contracts::IMapSystems" + }, + { + "type": "enum", + "name": "s1_eternum::models::position::Direction", + "variants": [ + { + "name": "East", + "type": "()" + }, + { + "name": "NorthEast", + "type": "()" + }, + { + "name": "NorthWest", + "type": "()" + }, + { + "name": "West", + "type": "()" + }, + { + "name": "SouthWest", + "type": "()" + }, + { + "name": "SouthEast", + "type": "()" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::map::contracts::IMapSystems", + "items": [ + { + "type": "function", + "name": "explore", + "inputs": [ + { + "name": "unit_id", + "type": "core::integer::u32" + }, + { + "name": "direction", + "type": "s1_eternum::models::position::Direction" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::map::contracts::map_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-map_systems", + "selector": "0x6ed75404dd23a9d2825f9459d23848133ae3e81050e63b85c0d37264695d998", + "systems": [ + "explore", + "upgrade" + ] + }, + { + "address": "0x34a8564ce24af9c57333fdf579945eba6a99a0624ca0d0a428905e074c2ada0", + "class_hash": "0x6a06d111761024260598c4cab0bad06ba15ec09331b176f9223e62ef2093508", + "abi": [ + { + "type": "impl", + "name": "name_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "name_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "NameSystemsImpl", + "interface_name": "s1_eternum::systems::name::contracts::INameSystems" + }, + { + "type": "interface", + "name": "s1_eternum::systems::name::contracts::INameSystems", + "items": [ + { + "type": "function", + "name": "set_address_name", + "inputs": [ + { + "name": "name", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_entity_name", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "name", + "type": "core::felt252" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::name::contracts::name_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-name_systems", + "selector": "0x45b86c7ee3f36393c4d14a0da3c58fdf406677137f1d840c53f01e8544e3b80", + "systems": [ + "set_address_name", + "set_entity_name", + "upgrade" + ] + }, + { + "address": "0x442687ef27c6fcb84177efac8b75ec80b8be87d40f9befe2780bf2ea98a8c08", + "class_hash": "0x57f36faf3ab21b910521f361bbc7bcd09758bc4ba46015f2bad0f15f6bf53ff", + "abi": [ + { + "type": "impl", + "name": "ownership_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "ownership_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "OwnershipSystemsImpl", + "interface_name": "s1_eternum::systems::ownership::contracts::IOwnershipSystems" + }, + { + "type": "interface", + "name": "s1_eternum::systems::ownership::contracts::IOwnershipSystems", + "items": [ + { + "type": "function", + "name": "transfer_ownership", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "new_owner", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::ownership::contracts::ownership_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-ownership_systems", + "selector": "0x5045fbdb3ad9b695ea6f218e57a3ca2ce575a2964f30e15f2e710f691aa0622", + "systems": [ + "transfer_ownership", + "upgrade" + ] + }, + { + "address": "0x56347b8808383046242a9240124ac42b4d8a718ba2925bb900ba6a3ac7c8454", + "class_hash": "0x478af3f93b1b73c3179a9a941fe47b783be21558428afeb128e0d745697832f", + "abi": [ + { + "type": "impl", + "name": "production_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "production_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ProductionContractImpl", + "interface_name": "s1_eternum::systems::production::contracts::IProductionContract" + }, + { + "type": "enum", + "name": "s1_eternum::models::position::Direction", + "variants": [ + { + "name": "East", + "type": "()" + }, + { + "name": "NorthEast", + "type": "()" + }, + { + "name": "NorthWest", + "type": "()" + }, + { + "name": "West", + "type": "()" + }, + { + "name": "SouthWest", + "type": "()" + }, + { + "name": "SouthEast", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "enum", + "name": "s1_eternum::models::resource::production::building::BuildingCategory", + "variants": [ + { + "name": "None", + "type": "()" + }, + { + "name": "Castle", + "type": "()" + }, + { + "name": "Resource", + "type": "()" + }, + { + "name": "Farm", + "type": "()" + }, + { + "name": "FishingVillage", + "type": "()" + }, + { + "name": "Barracks", + "type": "()" + }, + { + "name": "Market", + "type": "()" + }, + { + "name": "ArcheryRange", + "type": "()" + }, + { + "name": "Stable", + "type": "()" + }, + { + "name": "TradingPost", + "type": "()" + }, + { + "name": "WorkersHut", + "type": "()" + }, + { + "name": "WatchTower", + "type": "()" + }, + { + "name": "Walls", + "type": "()" + }, + { + "name": "Storehouse", + "type": "()" + } + ] + }, + { + "type": "enum", + "name": "core::option::Option::", + "variants": [ + { + "name": "Some", + "type": "core::integer::u8" + }, + { + "name": "None", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::position::Coord", + "members": [ + { + "name": "x", + "type": "core::integer::u32" + }, + { + "name": "y", + "type": "core::integer::u32" + } + ] + }, + { + "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": "interface", + "name": "s1_eternum::systems::production::contracts::IProductionContract", + "items": [ + { + "type": "function", + "name": "create_building", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "directions", + "type": "core::array::Span::" + }, + { + "name": "building_category", + "type": "s1_eternum::models::resource::production::building::BuildingCategory" + }, + { + "name": "produce_resource_type", + "type": "core::option::Option::" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "destroy_building", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "building_coord", + "type": "s1_eternum::models::position::Coord" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "pause_building_production", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "building_coord", + "type": "s1_eternum::models::position::Coord" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "resume_building_production", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "building_coord", + "type": "s1_eternum::models::position::Coord" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "burn_other_resources_for_labor_production", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "resource_types", + "type": "core::array::Span::" + }, + { + "name": "resource_amounts", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "burn_labor_resources_for_other_production", + "inputs": [ + { + "name": "from_entity_id", + "type": "core::integer::u32" + }, + { + "name": "labor_amounts", + "type": "core::array::Span::" + }, + { + "name": "produced_resource_types", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "burn_other_predefined_resources_for_resources", + "inputs": [ + { + "name": "from_entity_id", + "type": "core::integer::u32" + }, + { + "name": "produced_resource_types", + "type": "core::array::Span::" + }, + { + "name": "production_tick_counts", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::production::contracts::production_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-production_systems", + "selector": "0x6d70095d0a6ca6efc41633bafa4ac5202f1f83c75afbba78987b58f495a4c0", + "systems": [ + "create_building", + "destroy_building", + "pause_building_production", + "resume_building_production", + "burn_other_resources_for_labor_production", + "burn_labor_resources_for_other_production", + "burn_other_predefined_resources_for_resources", + "upgrade" + ] + }, + { + "address": "0x13f688b9e847a188d6e3306c57ad4cedc846207ec0d4214d3adb966f89abda6", + "class_hash": "0x624789ed60dbb1ffa7075f19b968fe21082b4a2e24649624450f6a032867404", + "abi": [ + { + "type": "impl", + "name": "realm_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "realm_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "RealmSystemsImpl", + "interface_name": "s1_eternum::systems::realm::contracts::IRealmSystems" + }, + { + "type": "interface", + "name": "s1_eternum::systems::realm::contracts::IRealmSystems", + "items": [ + { + "type": "function", + "name": "create", + "inputs": [ + { + "name": "owner", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "realm_id", + "type": "core::integer::u32" + }, + { + "name": "frontend", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "upgrade_level", + "inputs": [ + { + "name": "realm_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "quest_claim", + "inputs": [ + { + "name": "quest_id", + "type": "core::integer::u32" + }, + { + "name": "entity_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::realm::contracts::realm_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-realm_systems", + "selector": "0x3b4cc14cbb49692c85e1b132ac8536fe7d0d1361cd2fb5ba8df29f726ca02d2", + "systems": [ + "create", + "upgrade_level", + "quest_claim", + "upgrade" + ] + }, + { + "address": "0x3eb0f666216653f8bd1b27b4640e4730580f5899b73456c059fb157e1e1e9a", + "class_hash": "0x7361d220d222dce19ff7a7334da11cfe9b9ef8bdeb2ab068d6f0b435db0255a", + "abi": [ + { + "type": "impl", + "name": "resource_bridge_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "resource_bridge_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ResourceBridgeImpl", + "interface_name": "s1_eternum::systems::resources::contracts::resource_bridge_systems::IResourceBridgeSystems" + }, + { + "type": "struct", + "name": "core::integer::u256", + "members": [ + { + "name": "low", + "type": "core::integer::u128" + }, + { + "name": "high", + "type": "core::integer::u128" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::resources::contracts::resource_bridge_systems::IResourceBridgeSystems", + "items": [ + { + "type": "function", + "name": "deposit_initial", + "inputs": [ + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "recipient_realm_id", + "type": "core::integer::u32" + }, + { + "name": "amount", + "type": "core::integer::u256" + }, + { + "name": "client_fee_recipient", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "deposit", + "inputs": [ + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "through_bank_id", + "type": "core::integer::u32" + }, + { + "name": "recipient_realm_id", + "type": "core::integer::u32" + }, + { + "name": "amount", + "type": "core::integer::u256" + }, + { + "name": "client_fee_recipient", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "start_withdraw", + "inputs": [ + { + "name": "through_bank_id", + "type": "core::integer::u32" + }, + { + "name": "from_realm_id", + "type": "core::integer::u32" + }, + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "amount", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "finish_withdraw", + "inputs": [ + { + "name": "through_bank_id", + "type": "core::integer::u32" + }, + { + "name": "from_entity_id", + "type": "core::integer::u32" + }, + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "recipient_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "client_fee_recipient", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::resources::contracts::resource_bridge_systems::resource_bridge_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-resource_bridge_systems", + "selector": "0x4f94ba58902810acb653eeeb2a36e5f8f5a7096ceac7a2705c52732281e3cd2", + "systems": [ + "deposit_initial", + "deposit", + "start_withdraw", + "finish_withdraw", + "upgrade" + ] + }, + { + "address": "0x524a24ace42046b73845153567d5a31ca914aaabbf34fd4c4fe758da41e66df", + "class_hash": "0x26911f009cb5948dcbf27e3782f3572436f26d7e70bbe87957819015b67f20c", + "abi": [ + { + "type": "impl", + "name": "resource_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "resource_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ResourceSystemsImpl", + "interface_name": "s1_eternum::systems::resources::contracts::resource_systems::IResourceSystems" + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::resources::contracts::resource_systems::IResourceSystems", + "items": [ + { + "type": "function", + "name": "approve", + "inputs": [ + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "recipient_entity_id", + "type": "core::integer::u32" + }, + { + "name": "resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "send", + "inputs": [ + { + "name": "sender_entity_id", + "type": "core::integer::u32" + }, + { + "name": "recipient_entity_id", + "type": "core::integer::u32" + }, + { + "name": "resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "pickup", + "inputs": [ + { + "name": "recipient_entity_id", + "type": "core::integer::u32" + }, + { + "name": "owner_entity_id", + "type": "core::integer::u32" + }, + { + "name": "resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::resources::contracts::resource_systems::resource_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-resource_systems", + "selector": "0x626970a749fd6b8230875061236c1a9446ae65287beb6107d5b88e5ca078019", + "systems": [ + "approve", + "send", + "pickup", + "upgrade" + ] + }, + { + "address": "0x6f1ecad7e45043715d052ec7075910fe49379ccec56caa30773bffb1bd8ce42", + "class_hash": "0x59c55e3ca487de1ccb5b6cf174ac5c70d98b4af6db76b9987843dc08520cef3", + "abi": [ + { + "type": "impl", + "name": "season_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "season_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "SeasonSystemsImpl", + "interface_name": "s1_eternum::systems::season::contracts::ISeasonSystems" + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u32, core::integer::u16)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u32, core::integer::u16)>" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::season::contracts::ISeasonSystems", + "items": [ + { + "type": "function", + "name": "register_to_leaderboard", + "inputs": [ + { + "name": "hyperstructures_contributed_to", + "type": "core::array::Span::" + }, + { + "name": "hyperstructure_shareholder_epochs", + "type": "core::array::Span::<(core::integer::u32, core::integer::u16)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "claim_leaderboard_rewards", + "inputs": [ + { + "name": "token", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::season::contracts::season_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-season_systems", + "selector": "0x44e1edf9ca51b11a8c1d6ffc341d3248fdbeebc7e7d3ee6314fee33174860c4", + "systems": [ + "register_to_leaderboard", + "claim_leaderboard_rewards", + "upgrade" + ] + }, + { + "address": "0x3c4b44ff5b2dd18a8e388d38f453cfc4c5262d110b13f5f26a5c28e5ac40fd9", + "class_hash": "0x291d4795f52427b407b35a8b4d94e001b62d37dcd77faff84b41361e29a4f0d", + "abi": [ + { + "type": "impl", + "name": "swap_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "swap_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "SwapSystemsImpl", + "interface_name": "s1_eternum::systems::bank::contracts::swap::ISwapSystems" + }, + { + "type": "interface", + "name": "s1_eternum::systems::bank::contracts::swap::ISwapSystems", + "items": [ + { + "type": "function", + "name": "buy", + "inputs": [ + { + "name": "bank_entity_id", + "type": "core::integer::u32" + }, + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "resource_type", + "type": "core::integer::u8" + }, + { + "name": "amount", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "sell", + "inputs": [ + { + "name": "bank_entity_id", + "type": "core::integer::u32" + }, + { + "name": "entity_id", + "type": "core::integer::u32" + }, + { + "name": "resource_type", + "type": "core::integer::u8" + }, + { + "name": "amount", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::bank::contracts::swap::swap_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-swap_systems", + "selector": "0x187f170f62cb2f89334e291ddc0d0f388a855abcdd2b911425fed8304d3fdc3", + "systems": [ + "buy", + "sell", + "upgrade" + ] + }, + { + "address": "0x2dde744795e94a6c8934f224741da3e0408d82c07463858b7566664f7bb8633", + "class_hash": "0x357ca13c3a158d43bc1f5d7c902eefbeadad3a3b43c6228bb5727a78a310d6f", + "abi": [ + { + "type": "impl", + "name": "trade_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "trade_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "TradeSystemsImpl", + "interface_name": "s1_eternum::systems::trade::contracts::trade_systems::ITradeSystems" + }, + { + "type": "struct", + "name": "core::array::Span::<(core::integer::u8, core::integer::u128)>", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::<(core::integer::u8, core::integer::u128)>" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::trade::contracts::trade_systems::ITradeSystems", + "items": [ + { + "type": "function", + "name": "create_order", + "inputs": [ + { + "name": "maker_id", + "type": "core::integer::u32" + }, + { + "name": "maker_gives_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "taker_id", + "type": "core::integer::u32" + }, + { + "name": "taker_gives_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "expires_at", + "type": "core::integer::u64" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "accept_order", + "inputs": [ + { + "name": "taker_id", + "type": "core::integer::u32" + }, + { + "name": "trade_id", + "type": "core::integer::u32" + }, + { + "name": "maker_gives_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "taker_gives_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "accept_partial_order", + "inputs": [ + { + "name": "taker_id", + "type": "core::integer::u32" + }, + { + "name": "trade_id", + "type": "core::integer::u32" + }, + { + "name": "maker_gives_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "taker_gives_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + }, + { + "name": "taker_gives_actual_amount", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "cancel_order", + "inputs": [ + { + "name": "trade_id", + "type": "core::integer::u32" + }, + { + "name": "return_resources", + "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::trade::contracts::trade_systems::trade_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-trade_systems", + "selector": "0x25205919a9c1be9b6b4c75d8435d21e748b4144575e3ed50d453ebd586f1467", + "systems": [ + "create_order", + "accept_order", + "accept_partial_order", + "cancel_order", + "upgrade" + ] + }, + { + "address": "0x7d2fb638516c4a32858ef7bf09865389edc60c3cb9e6d4d0049c0ad7a214c6a", + "class_hash": "0x4dcd50d3a264279a3745d63f7b48d1753991091101ff4bd9b930de1f0d9fa16", + "abi": [ + { + "type": "impl", + "name": "travel_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "travel_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "TravelSystemsImpl", + "interface_name": "s1_eternum::systems::transport::contracts::travel_systems::ITravelSystems" + }, + { + "type": "enum", + "name": "s1_eternum::models::position::Direction", + "variants": [ + { + "name": "East", + "type": "()" + }, + { + "name": "NorthEast", + "type": "()" + }, + { + "name": "NorthWest", + "type": "()" + }, + { + "name": "West", + "type": "()" + }, + { + "name": "SouthWest", + "type": "()" + }, + { + "name": "SouthEast", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::transport::contracts::travel_systems::ITravelSystems", + "items": [ + { + "type": "function", + "name": "travel_hex", + "inputs": [ + { + "name": "travelling_entity_id", + "type": "core::integer::u32" + }, + { + "name": "directions", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::transport::contracts::travel_systems::travel_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-travel_systems", + "selector": "0x309ed1eaf532082015ddf768dfea6a2d7b6c78f61892005f9af6efe505f3317", + "systems": [ + "travel_hex", + "upgrade" + ] + }, + { + "address": "0x133660106d03c9811a9ce63fe2464e99f0816b83439c55003ebdde53f560655", + "class_hash": "0x24ad1ba7ad9d438f816ae4e8c1451c5db113e15dcac0fde483e3472b55ae715", + "abi": [ + { + "type": "impl", + "name": "troop_systems__ContractImpl", + "interface_name": "dojo::contract::interface::IContract" + }, + { + "type": "interface", + "name": "dojo::contract::interface::IContract", + "items": [] + }, + { + "type": "impl", + "name": "troop_systems__DeployedContractImpl", + "interface_name": "dojo::meta::interface::IDeployedResource" + }, + { + "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": "dojo::meta::interface::IDeployedResource", + "items": [ + { + "type": "function", + "name": "dojo_name", + "inputs": [], + "outputs": [ + { + "type": "core::byte_array::ByteArray" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "TroopContractImpl", + "interface_name": "s1_eternum::systems::combat::contracts::troop_systems::ITroopContract" + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "s1_eternum::models::combat::Troops", + "members": [ + { + "name": "knight_count", + "type": "core::integer::u64" + }, + { + "name": "paladin_count", + "type": "core::integer::u64" + }, + { + "name": "crossbowman_count", + "type": "core::integer::u64" + } + ] + }, + { + "type": "interface", + "name": "s1_eternum::systems::combat::contracts::troop_systems::ITroopContract", + "items": [ + { + "type": "function", + "name": "army_create", + "inputs": [ + { + "name": "army_owner_id", + "type": "core::integer::u32" + }, + { + "name": "is_defensive_army", + "type": "core::bool" + } + ], + "outputs": [ + { + "type": "core::integer::u32" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "army_delete", + "inputs": [ + { + "name": "army_id", + "type": "core::integer::u32" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "army_buy_troops", + "inputs": [ + { + "name": "army_id", + "type": "core::integer::u32" + }, + { + "name": "payer_id", + "type": "core::integer::u32" + }, + { + "name": "troops", + "type": "s1_eternum::models::combat::Troops" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "army_merge_troops", + "inputs": [ + { + "name": "from_army_id", + "type": "core::integer::u32" + }, + { + "name": "to_army_id", + "type": "core::integer::u32" + }, + { + "name": "troops", + "type": "s1_eternum::models::combat::Troops" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "function", + "name": "dojo_init", + "inputs": [], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "impl", + "name": "WorldProviderImpl", + "interface_name": "dojo::contract::components::world_provider::IWorldProvider" + }, + { + "type": "struct", + "name": "dojo::world::iworld::IWorldDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "dojo::contract::components::world_provider::IWorldProvider", + "items": [ + { + "type": "function", + "name": "world_dispatcher", + "inputs": [], + "outputs": [ + { + "type": "dojo::world::iworld::IWorldDispatcher" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "UpgradeableImpl", + "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "dojo::contract::components::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "upgrade", + "inputs": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "struct", + "members": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "enum", + "variants": [ + { + "name": "Upgraded", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "enum", + "variants": [] + }, + { + "type": "event", + "name": "s1_eternum::systems::combat::contracts::troop_systems::troop_systems::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", + "kind": "nested" + }, + { + "name": "WorldProviderEvent", + "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", + "kind": "nested" + } + ] + } + ], + "init_calldata": [], + "tag": "s1_eternum-troop_systems", + "selector": "0x36dc6a7aac90e16df98cc6cef8b971d3432a436339f92352921ab2d542363b0", + "systems": [ + "army_create", + "army_delete", + "army_buy_troops", + "army_merge_troops", + "upgrade" + ] + } + ], + "models": [ + { + "members": [], + "class_hash": "0x15f3f6904f0500d87d6c57ababf28b0dffaf929e7b74701be185cd09fcd82d3", + "tag": "s1_eternum-AddressName", + "selector": "0x42709c94217aac1ce5900d6bb822dc5e203071e9f184165b4d32144ff0e326c" + }, + { + "members": [], + "class_hash": "0x28f9ddc0b8df7e2dd4ebaae28edc221d3755cb2e2172353364bd6b05f39209d", + "tag": "s1_eternum-Army", + "selector": "0x16cd0112383678968a6dcc0476cc193ce544a0f2cb27bbf911b519cc66cb2e1" + }, + { + "members": [], + "class_hash": "0xf99d18de1389cd897d7c2eaac1d9a23eef4f2ee40f6fb017adfa59a6c6fe55", + "tag": "s1_eternum-ArrivalTime", + "selector": "0x15839d06bf0dd2c3ae1fef464555f3016e153bd6bac0cf62c5c1de9926eadd" + }, + { + "members": [], + "class_hash": "0xd5d3a9a0f87f881bb0c62d6383e0c1914a3263dd2788a72641ce15eba55345", + "tag": "s1_eternum-Bank", + "selector": "0x46318cd2cff6337f8934ee9e3cbe3ecf1ccb5b1b57dd1711f3b1eb7d7327aab" + }, + { + "members": [], + "class_hash": "0x58484f4b87730ec90812b21b0071478121b549694230ccfc380fe5bc7ce04bc", + "tag": "s1_eternum-BankConfig", + "selector": "0x2a590ba3496e4ade5081de7b2de27ed15ecd709e8d88c89f1eeafca9c852079" + }, + { + "members": [], + "class_hash": "0x6108b6e1f6786a67f3864acec676ff7fe33772797a0c771878dd769aed59c0", + "tag": "s1_eternum-Battle", + "selector": "0x169c07a291ef2ba4cfb31ba5b81d45fc49f6a02169c766ac950f823879152fc" + }, + { + "members": [], + "class_hash": "0x722133bc4e72dec6f3ffb973622227b9f4d51001bf369832e44bca4cd90e414", + "tag": "s1_eternum-BattleConfig", + "selector": "0x506ef0f4b8e567ce2fd94517984758871ac3f9f965426073203aefdeec4fd21" + }, + { + "members": [], + "class_hash": "0x26132d9d528638aa4fdc6377b4f342982e15a796292ee9d8a7d9ff443f035b0", + "tag": "s1_eternum-Building", + "selector": "0x383bc83e69df10c0e58ce05aef021bb904346af8b28de6dd09ed16a497fae29" + }, + { + "members": [], + "class_hash": "0x369a5260d31d6edd5c3d19b487fa8a2c4bd293845e804cd794a7f00f1fcc35c", + "tag": "s1_eternum-BuildingCategoryPopConfig", + "selector": "0x2b847fd482c7e77364e1a29d18c690661dee59631db5538e063065cd28a9157" + }, + { + "members": [], + "class_hash": "0xbcb13c22c1c2e177c9a7953f6db153d0b1435baa293e2d7fdc7aa22f380f53", + "tag": "s1_eternum-BuildingConfig", + "selector": "0x10ab036ccd4d1e968f0b3b3333d59911fd7f96cbd0fe73c9d639b80aaf10ef4" + }, + { + "members": [], + "class_hash": "0xf34fedb8b8bea2b87c8e17c6db5f2b284e46513b186cdb115464aacf72994d", + "tag": "s1_eternum-BuildingGeneralConfig", + "selector": "0x32c22b1ba3f414eff9d3684771ddf9a576adf879fb9db155d153e04092f06d1" + }, + { + "members": [], + "class_hash": "0x6ad15a23139b6577c1adfc3d8d2ad5cf4f55230f17f2ed957cef9a70bdac286", + "tag": "s1_eternum-BuildingQuantityv2", + "selector": "0x7f0d990d9539f02e2536fb9077c112528c214d6250597813b5637fcdf4faea1" + }, + { + "members": [], + "class_hash": "0x5a650bc0e579da2efb53a5ff5d49ace7a4836831001fe05a66de94e8a200fe", + "tag": "s1_eternum-CapacityCategory", + "selector": "0x77c5b56819d589d4ccf66c86b519f61fea422fadc3011bce01b68b36312a931" + }, + { + "members": [], + "class_hash": "0xff54f724bb9d25b28e52c53402ff004324f9bf8551d21666569798e982537", + "tag": "s1_eternum-CapacityConfig", + "selector": "0x329d78ba810d64a65e56dc6d9648681b25cf5077b2b2a1b006b4280b4a46941" + }, + { + "members": [], + "class_hash": "0x10f6568d82fcf4a14aa2063fa811ceac7bd52923fe06e5c0c89d23d2959ba47", + "tag": "s1_eternum-Contribution", + "selector": "0x5610d7fde56cbda8d6714af14cb51989d77e24ffd867561e6f6ce36a5c8cda0" + }, + { + "members": [], + "class_hash": "0x4ca6ae3ddda2725df1d3f656b45d376bff55f2556fc63188f33436e54cad458", + "tag": "s1_eternum-DetachedResource", + "selector": "0x5fbe88f3b3abf51a9a1e58a0423a555786a2e557f480a7f804a6a89afee5b2c" + }, + { + "members": [], + "class_hash": "0x10c87458dd8a14eba7aa1771e8288f46be3b60a738d5dc0af7f45eb2ed4e326", + "tag": "s1_eternum-EntityName", + "selector": "0x4d2ad6e4875bb784306ee539c87d6ea84bd77cd3e7a6a98c7cb073003131c80" + }, + { + "members": [], + "class_hash": "0x3ae0ab3e0bc8e3ad2288634e6a286bfb08d466a91e9d6a2e37f025bf1d5749f", + "tag": "s1_eternum-EntityOwner", + "selector": "0x45cac7458f40ce855a5d63cf402a25425ad1a761fa4a2657c722d124e6aa540" + }, + { + "members": [], + "class_hash": "0x5ced63836e14228fb5398d583aa7e603f011951859784a767a0da67d5d1ee82", + "tag": "s1_eternum-Epoch", + "selector": "0x7538402a46c4b333f00ed41744e67a26bb14f26753fdbe032f0ff218f83ff6a" + }, + { + "members": [], + "class_hash": "0x5893d1ef16dd422bf83ed0622527c59e061c0e80431c2dd7bee08b4d1445071", + "tag": "s1_eternum-Guild", + "selector": "0x1005f12b60fb0b9955acaa3d2ef4e839a9d9ca0de11ba53c74c3a4b5d324142" + }, + { + "members": [], + "class_hash": "0x503feaac2cbb9b6e3568daa741bd89db2a9206d315fca008ea4cf44d87dce88", + "tag": "s1_eternum-GuildMember", + "selector": "0x4e1c4b07b2c1113f22a01d146dbe1224007cd027c7681007de3828761f92c1" + }, + { + "members": [], + "class_hash": "0x51e97f9e0e1b92c53d309c07a145d8786aaec64518b87c3bb970d4685759081", + "tag": "s1_eternum-GuildWhitelist", + "selector": "0x58ba641332348c46d0aad19ab754598e63a4d8736db7ef9654918c79d6ad071" + }, + { + "members": [], + "class_hash": "0x4eb153ffe6fce442cee9384e6a7e95159480a4aee2c563b74c7b1b50eff73d6", + "tag": "s1_eternum-Health", + "selector": "0x2f45d2395ab511a8e093bc7830fe25b18b387f360e515107021e75eaea474b5" + }, + { + "members": [], + "class_hash": "0x490bea09a254afb811b6a26d88507598193d366a05fe6e9d28455ca51930c9b", + "tag": "s1_eternum-Hyperstructure", + "selector": "0x5894102a0f9c53bf2298d3bdaf4b0f8a0f92777d57ff0d585ca3b5c5b25b7bc" + }, + { + "members": [], + "class_hash": "0x47718f195842c1e7de343f276874d6cbd4e3af43e46d91779219bb775f07b30", + "tag": "s1_eternum-HyperstructureConfig", + "selector": "0x555fffbe98ed821a2943490fa9ec2fd479940fb1a06434031a6ed49fce06413" + }, + { + "members": [], + "class_hash": "0x298c3a93889760e341ab90f7ec3432fb9f564ec90ab6dae8ca160cb477fd64b", + "tag": "s1_eternum-HyperstructureResourceConfig", + "selector": "0x344c119cf22cf69ac0954dadeb846930657d9d80e550aec607fe0d285e2d1b6" + }, + { + "members": [], + "class_hash": "0x5f9e1048bc3fcab978c16ea514c906e08a6a908a551b01c9d8d56991eb3be12", + "tag": "s1_eternum-Leaderboard", + "selector": "0x2731a4b2cc1d25c3605cbd9f58fb010860aa57f2fd978b012309815622bad38" + }, + { + "members": [], + "class_hash": "0x6098e4bd9970a954a3a7581ae0c272d7b0e4134bd1b701f376480627678c260", + "tag": "s1_eternum-LeaderboardEntry", + "selector": "0x64d192ab245076ad4a8fc1065a8ed826370b3b9ac74e19e5ba62c4778afbd0e" + }, + { + "members": [], + "class_hash": "0x278cfb9c271d230ae30c965120df0ceb1772b42982abceb4c5696afc5a91d3c", + "tag": "s1_eternum-LeaderboardRegisterContribution", + "selector": "0x19570cd480372cee10d9c139bc552086c7b8222c1bc012113bbfd39b56a7e8" + }, + { + "members": [], + "class_hash": "0x6ea5e22c4403403c4ef68ce5789b68da3ff18607693fb048bae52293204ce9b", + "tag": "s1_eternum-LeaderboardRegisterShare", + "selector": "0x75ac5be2d09aae03d624ea55302b474702a77e282b53b6ae223e7e2f2fcf331" + }, + { + "members": [], + "class_hash": "0x94162e9c662781d890a9ab0dfba07a5ec2248410ef1b42d4913e1a4a489cc6", + "tag": "s1_eternum-LeaderboardRegistered", + "selector": "0x23cb90d19983cc3481c16b0daca97a2e9d61ccca2887ec43a37e8d0c8bc8a82" + }, + { + "members": [], + "class_hash": "0x50bdffa18201a51190d38b3a83d62dbc9314b5634b8543f92c6fa692fbed6be", + "tag": "s1_eternum-LeaderboardRewardClaimed", + "selector": "0x4a2604638f545e33a48aaa88165cdf7c14d2e3e90dc0ffef45efaafce0a7acb" + }, + { + "members": [], + "class_hash": "0xe08cd3f99dea6cb5ac7af83788cf444cc5961187685f2c54179b990d3a4ae7", + "tag": "s1_eternum-LevelingConfig", + "selector": "0x1ae8c072019c12fbf04cba6e1a71a0a645dffc7fff83847d97ef2229e3abb33" + }, + { + "members": [], + "class_hash": "0x41389837334c7959eddc48a3a3c0b3f8d77ea4f0be3d5b908087873323fc3f6", + "tag": "s1_eternum-Liquidity", + "selector": "0x4ba2cf13ce80401e973629d0ba586aad1cae4ac3cf68ed3140f3373d361659" + }, + { + "members": [], + "class_hash": "0x2e6bbce3307779bb4e22bfa12b254f648bda3e5667bb4aff23a189ee68a0ecb", + "tag": "s1_eternum-MapConfig", + "selector": "0xc723bc276585620edab428548e0c62b996567932757495abf2346153959bbd" + }, + { + "members": [], + "class_hash": "0x3e5a538297e5b4a973a580d26b347779d457a0813e552e71d56ac9347d143b0", + "tag": "s1_eternum-Market", + "selector": "0x1fcfb4aa02fa062c2f9fe4a658759a4cbe73fc5db42c595184e770c9076750a" + }, + { + "members": [], + "class_hash": "0x3eb553163a235623d1a4cd887565391f6183aef59993752b018fdcd99e7ec6e", + "tag": "s1_eternum-MercenariesConfig", + "selector": "0x76cec8905e7623b482bec7afebbbd87f2556ffa6068c887ff2fc9e8ef97373a" + }, + { + "members": [], + "class_hash": "0x4e9acf58624786c7d118f4d0a1eb23bd2dccb7b7ab1755b012a3b0412af70f9", + "tag": "s1_eternum-Message", + "selector": "0x3ce31878ad62fd485eb46bdbd403bbe7daf2e544c15d386dcc7ac519a10678a" + }, + { + "members": [], + "class_hash": "0x78bf5c45268df4bc02c367db341e1aa4331857c21304683feb2e65306204bf9", + "tag": "s1_eternum-Movable", + "selector": "0x2f6cc9ab06c7e016297339e078c3755e568fce8048462de2033e8d42e5d94e0" + }, + { + "members": [], + "class_hash": "0x4dff527f0c7b7b73e3ac91dab4ad66ae4dae4f3616cb6338dd4bad8c3246382", + "tag": "s1_eternum-Orders", + "selector": "0x3d92d333e580695c5676529fc9b81f0fdab316ad7385d7c362ea7074413b99a" + }, + { + "members": [], + "class_hash": "0x60330a73e8c079c062165120e11d002eafa7a8b4970d0b7dc3e73904e014544", + "tag": "s1_eternum-OwnedResourcesTracker", + "selector": "0x1a8f5317e84356a084dbf2555cdf3c429e285e6f161654a678eaf73c137e52b" + }, + { + "members": [], + "class_hash": "0x6619f0441ff7330f6291777da5a95a3121189f8c5b136cc5f3e85cc6f728f44", + "tag": "s1_eternum-Owner", + "selector": "0x35bfd77bc5bbf7f39cbe2c9ced8de632af641500a672e876dffbc89cc10441d" + }, + { + "members": [], + "class_hash": "0xf29140e158b9089a938917604b82d2ec14daa08f21f9d742a97cf17f30c18", + "tag": "s1_eternum-Population", + "selector": "0x6f2e4171b9907e7629eea2a19485a64d97f104121c4337452de122f897c0be8" + }, + { + "members": [], + "class_hash": "0x7e5024ab76ebcd616507b1998768d29b5372c54de3ac88bcd6fdfafcbf67720", + "tag": "s1_eternum-PopulationConfig", + "selector": "0x441576bc8f9ac5063b8ca88eeae1b33156078c75de8cbdf506139e8450b78cf" + }, + { + "members": [], + "class_hash": "0x2c8600cc8411484671075036b8dca8f03524e5b0503617e36ac306b95cf87fd", + "tag": "s1_eternum-Position", + "selector": "0xe340ea49c8540928b5c4010db9108cd13f719d89a5f7b18cb30902e01104ae" + }, + { + "members": [], + "class_hash": "0x1dbf495a2614ebff450da2c0b88a9ada07716e5c3546c7dab92691e40bcee21", + "tag": "s1_eternum-ProductionConfig", + "selector": "0x38bacafc2ceed54f95033f7529efa9559f877aea41db072b797235cee383a06" + }, + { + "members": [], + "class_hash": "0xef748f29f1ce62c69e4c0bfcaaca0cc20c90d69411fbbfabb5883e53444c94", + "tag": "s1_eternum-Progress", + "selector": "0x510024ae0ff452228a083d9fb3aba5e3521c107ab7a84246efcac7bcdfddcb5" + }, + { + "members": [], + "class_hash": "0x2eb9f6f9ea6824c466ded7da0b97f77d4b54be4e0b5180c0f0696ec7311c142", + "tag": "s1_eternum-Protectee", + "selector": "0x60fac544ae19c3bdb391a986108823d052d2d65891459589b6f3c698f206ce1" + }, + { + "members": [], + "class_hash": "0x756cbd91b86e9eb15a8454b066b7e593cbf9a121ee1aee4bcd34023d5076591", + "tag": "s1_eternum-Protector", + "selector": "0x7c858e96804191100397f8a4683ca93d81d7d341dc68d163c7cea59dc974ec4" + }, + { + "members": [], + "class_hash": "0xfd49d43ef8943b2e262ca7ce1d43c5187969b3cee4007f4d0e177b92981c03", + "tag": "s1_eternum-Quantity", + "selector": "0x8646cb000744430c5d95cf5616ce8ba4913401760158aa1ad6738475a36591" + }, + { + "members": [], + "class_hash": "0xdeb7bcee3ae613715225d0980526d7c9d4735829be2e7f080c914876bf5ff3", + "tag": "s1_eternum-QuantityTracker", + "selector": "0x5f336941c172ea1a837a1c82d98ff802817688e6e5f66a32ac3a9ff320cfb18" + }, + { + "members": [], + "class_hash": "0x1922623eed2f3eb9d7d770af2514efcd2d40e6773e9c2c1944bc2741e07b3b7", + "tag": "s1_eternum-Quest", + "selector": "0x5748c683cbda725287adb63a5b5c7c471d1d782f2779609d4f66efeda03ff68" + }, + { + "members": [], + "class_hash": "0x59846aef7554c61f02aa00ba350ed1001b00b5d7a26e3c66c95901bc7bfd797", + "tag": "s1_eternum-QuestRewardConfig", + "selector": "0x2f5fb5139fc5144da42495b348183b95708defe554ca9d6768498cccecb0066" + }, + { + "members": [], + "class_hash": "0x5ab6ce70c4041941408e527f5e677cf0e68b9ca4bbfcaaa3c7dcd6deba090b6", + "tag": "s1_eternum-Realm", + "selector": "0x6b15a2a9c9d60eefc6c82731f77ae2167b6abc68a909e06ed4f0a0c20a447ae" + }, + { + "members": [], + "class_hash": "0x271add51127069822688df385865088bb78d39040babb928223896e9cf90a60", + "tag": "s1_eternum-RealmLevelConfig", + "selector": "0x7a5266268ba6febaa9248d1ec5543f7731c07391553c9d9b089023790344d78" + }, + { + "members": [], + "class_hash": "0x56c6a40b5d709cd4c5669c7a92664b7220ab156e793b6d0df694baa0d29b99", + "tag": "s1_eternum-RealmMaxLevelConfig", + "selector": "0x23ce30f931b91b01eb8a34f92c50de018fa49e05b9ea5cd0b4350a4c94fa7a7" + }, + { + "members": [], + "class_hash": "0x295211961c83e77d8c315214c3ac2bff8890e822b3b9f7e244af4a905cfd53e", + "tag": "s1_eternum-Resource", + "selector": "0x6bd14dc16a7f05252fcf2fb66630b8f05d39d75b36f55013334a4b3bb8fec57" + }, + { + "members": [], + "class_hash": "0x32648f303c21fcdc338110b1b5a06b419832c5432787228d9bfe330ff65ebfd", + "tag": "s1_eternum-ResourceAllowance", + "selector": "0xf21a6f41bed8651cea6e86ea4d796e7c2be9e0e798b48b971b82f489e68a3d" + }, + { + "members": [], + "class_hash": "0x7d04749bc8b5042f74fd6cf08f00dd4b1a1af9da5db5f9d0e21da9eb574620a", + "tag": "s1_eternum-ResourceBridgeConfig", + "selector": "0x5b58fe2f01c7767c5885c18997654853caf0765fbd6e72d2f54b8d8163a2105" + }, + { + "members": [], + "class_hash": "0x369998561431ccfd4977aab82c53ae491bae58a867ee91ce77701c68c64d2bc", + "tag": "s1_eternum-ResourceBridgeFeeSplitConfig", + "selector": "0xda0261867f8d357360b3d3c651e6f26a72caaa5401021843d7515acf5a7300" + }, + { + "members": [], + "class_hash": "0x505f9ac2bcabc71c14489b2327e757a0c1d9b0721257c7cbaae10a5f4c90c6", + "tag": "s1_eternum-ResourceBridgeWhitelistConfig", + "selector": "0x3af6fef221ed38a459a75bf2c20c5534745e6e9fa3d6c9df899c43a6aee1eee" + }, + { + "members": [], + "class_hash": "0x6c52d4ea5109c6be197e8f64fda6ebf06f8a9fbfc9ae44c4fc479817bc46d33", + "tag": "s1_eternum-ResourceCost", + "selector": "0x5e5b5b182766e23d14ca1bde33304c8b6c2e348d037073fa87cb23adb3acd2d" + }, + { + "members": [], + "class_hash": "0x32512653d00dbf62a310e75a52a4c555c66dea91eae09adadb4a9c26ec6e065", + "tag": "s1_eternum-ResourceTransferLock", + "selector": "0xfb5fa4535e4bca521abeb02621675a6550ea74c791f4342f7e5a3a2d6c19b0" + }, + { + "members": [], + "class_hash": "0x5e33063c9c71448f97e418619192c0bb534cc1d6b130690675020b12c53abc1", + "tag": "s1_eternum-Season", + "selector": "0x7a6034c750e0dc9a1fad3776dd6e6c6697eb36993aed5228e7729206dd560ab" + }, + { + "members": [], + "class_hash": "0x440e7887f604b152a04b9de6fc119d9278259cec2ca4050133b951d28ac9897", + "tag": "s1_eternum-SeasonAddressesConfig", + "selector": "0xa98bd556a5b641497f413f155e4bdce557ba25a48080540ac1e827d0dae5b3" + }, + { + "members": [], + "class_hash": "0x488068b6a2aeab65ba68fc47404d00482be3e34473f557e5fa189a2ed916679", + "tag": "s1_eternum-SeasonBridgeConfig", + "selector": "0x53dcfaf952a8e333e8212bf13c39cfb7d02f26ca8cf47aba06e4a90282481e3" + }, + { + "members": [], + "class_hash": "0x59de73957bcca5ee7a6523eaf9e450d30e5a8d179b756d59a4ad76bd39fe31d", + "tag": "s1_eternum-SettlementConfig", + "selector": "0x4d38d3858af58aab284639984a674293c5689216c5e0b9f3574aef9f3a9dad0" + }, + { + "members": [], + "class_hash": "0x2b346ce8db28ee8e45ff1dd81535f00b044a3fdc5c8841f4de9106afbd22a16", + "tag": "s1_eternum-SpeedConfig", + "selector": "0x56c1e6bea9218e0afdd55a3cc2c5360d969a6a0ccf3f6d1078e4b200cce51cc" + }, + { + "members": [], + "class_hash": "0x234946625a5b48f2e490906ab36e28c0a24d6c5778276475c6bf8034b2ace8a", + "tag": "s1_eternum-Stamina", + "selector": "0x1b2f9a5ab3ea1bc2565fc5cc30f432b41848f7909b64fd3d97d76dcddacbd3d" + }, + { + "members": [], + "class_hash": "0x38bf80ee86dca16edc5ec0302d52efc5b5f01672c3ef09b49aee393d5de8fde", + "tag": "s1_eternum-StaminaConfig", + "selector": "0x1049adf44800338362f91c904678f82fa47fd0ea0828711bee3e36bee63b97e" + }, + { + "members": [], + "class_hash": "0x626911965fc08d9d620dba8722c90e677371f046248b06f3adcf4390622f287", + "tag": "s1_eternum-StaminaRefillConfig", + "selector": "0x7c6db9d03dc473ddec8a0bb2c50b5988a8af928935daea336bb6f0f766a3b41" + }, + { + "members": [], + "class_hash": "0x8184163f4573706c555f878a960da7dd6dd73e550759c26ddf31bb15b265dd", + "tag": "s1_eternum-Status", + "selector": "0x3ebd20c50f05e81810279f60088898425cb0ae9e35f5ac99359e8552292be24" + }, + { + "members": [], + "class_hash": "0x445850a334dc7395fb4b0773760908c704d6cd343acb309f787364e2d6f027b", + "tag": "s1_eternum-Structure", + "selector": "0x3b407b0e3490f7044ce3870614a93f2a0fcbec02710f0975bfdb6c28fdfbecc" + }, + { + "members": [], + "class_hash": "0x3c90dfd7d56f15d47d5fd20d2ac9eb956788c90c66c8d9c61cd2797114704e9", + "tag": "s1_eternum-StructureCount", + "selector": "0x23b5a2b877c85f0d71bc36b420ec53e12e5ef8369cf1aedffa0bc838eea2dc4" + }, + { + "members": [], + "class_hash": "0x78bcb719dc3c363d315c54e49acf539a6b206f8094a8df13905300c90c54e2c", + "tag": "s1_eternum-TickConfig", + "selector": "0x576d27d39e416d211c923deeebe1505c982fe3aaeb511c7bcb0ef063f566e66" + }, + { + "members": [], + "class_hash": "0x1571af1924102cd1a6b9796935ad85debfc12fd1057c7738f22ab6bf9d0a734", + "tag": "s1_eternum-Tile", + "selector": "0x66c306156fe0c5b2785192d61977ac8475e3cb3dbc5d68f5547ade25fe1f4f2" + }, + { + "members": [], + "class_hash": "0x3e187fcc088b7453ee843c1a4534139b7d1527860c64c609279afcb7bccba93", + "tag": "s1_eternum-Trade", + "selector": "0x6ddb8e334e9c33541fce1e72774d6c43c1057a1057a570f2eb12426f51291" + }, + { + "members": [], + "class_hash": "0x421846bd7dfaea423ad0b9d025d960a20172ddcf321d5e16665ed1c667ecd6a", + "tag": "s1_eternum-TravelFoodCostConfig", + "selector": "0x4201d15b950f8e080217e23d7ef911390c3eddb573f7dc857e56c5ddfc606ab" + }, + { + "members": [], + "class_hash": "0x3a3107b2bf45e26c59666750c41655385ce7ffd19d0c8ac59856b0363105d51", + "tag": "s1_eternum-TravelStaminaCostConfig", + "selector": "0x30011c19eca1b0f0f35a4c6bbdac1e437ae7db4670f3ae445d057ee5516ba6e" + }, + { + "members": [], + "class_hash": "0x2f06311d5311c9345f4675fedd74e2f840ffff25509020fd380426a512d7362", + "tag": "s1_eternum-TroopConfig", + "selector": "0x440013884df718dc78b23b652dc4495f0e74de6e3e26f29993cf97a26e96e37" + }, + { + "members": [], + "class_hash": "0x6212d501854ddd5fb4a76f0020b88166a6ace18c51829d9868bf00495c93c79", + "tag": "s1_eternum-VRFConfig", + "selector": "0x40efcfc7e03b7e498a48587f3e7e535a6ed12eff77adeb65553a8e8092786fa" + }, + { + "members": [], + "class_hash": "0x2441bc3e5725d8632d181e17e1a5997544523f35945c6e4c80e257fb9e4886a", + "tag": "s1_eternum-Weight", + "selector": "0x6a857f799cd0abc86c75a666d024ee52f6e81e856f74bb2137bf2f1a534e0e1" + }, + { + "members": [], + "class_hash": "0x3cf8b4b83c710368da4a168ed462b2049721ba5e20d63197a981321672adbdd", + "tag": "s1_eternum-WeightConfig", + "selector": "0x1198553c941fe946e251e66c8f4f3177f44e59e56ac455dbc269557b7ae4d81" + }, + { + "members": [], + "class_hash": "0x75d683bc6831ab3ed4172aa8e35997c47ee37963062e5fabae8729a2b15b475", + "tag": "s1_eternum-WorldConfig", + "selector": "0x6212a03a10506a6661b44a6685e9d2978709dfdfc8de36fe93d947b939f200a" + } + ], + "events": [ + { + "members": [], + "class_hash": "0x6ce0d1733305e5837a804a2fcaaadc4257b33fbbb9072adfa558552806baba7", + "tag": "s1_eternum-AcceptOrder", + "selector": "0x30b1df6433db61c4a92580a1630c9e5126b5c82be28123a06b62f808ecd522" + }, + { + "members": [], + "class_hash": "0x559dd281303289b1fcfc9e64083749dc41f21da90857b5d757e1850e936e1a8", + "tag": "s1_eternum-AcceptPartialOrder", + "selector": "0x10466b8a291c68b1392b0c839dff152f5884e63efecc6616ae39eaaa8dddb16" + }, + { + "members": [], + "class_hash": "0x934049a8b2170110cdd0038113cc44d28a44c9468d386842b6f0f4269930d8", + "tag": "s1_eternum-BattleClaimData", + "selector": "0x41680e7ebc53d924909df6da64cb9bf2f93e4c52c773a46c2d98d26130e4b04" + }, + { + "members": [], + "class_hash": "0x21e47bd56785fa3feb60d847cb8dd208c9a54d7485c3a717266a68cb12922b2", + "tag": "s1_eternum-BattleJoinData", + "selector": "0x52d813cd875f5ab136509292d799f8e50454d7a216d4b0f82011537da338e45" + }, + { + "members": [], + "class_hash": "0x63fcfc6b83c0369df7577ea9ee1be924a91d3f56e751975135352f6d668e48f", + "tag": "s1_eternum-BattleLeaveData", + "selector": "0x2e2634c5a528ebe93bfdd4760906943ab27acda1780d8a0fe6e047daf59e3bb" + }, + { + "members": [], + "class_hash": "0x4c4c86484c191574bc777bd9f0a4f0fd42cea3723ebcce1262ae4a6206099a8", + "tag": "s1_eternum-BattlePillageData", + "selector": "0x20e12ccd908df9671ef87e056aeb9225412ed7710b218cf196c2069a36509ca" + }, + { + "members": [], + "class_hash": "0x7148e1c4747938842ac35ad3133ef7b03e2f890c578f7840a42bf7290fec96a", + "tag": "s1_eternum-BattleStartData", + "selector": "0x29d565ff98451bd6ac59f3a8d0b4d2ef14031a4a39ce4b4e8ee5dab0e02e1c9" + }, + { + "members": [], + "class_hash": "0x73a2e5508322468a7bcadbbb6d8d4ad14e5b7bc19500df530f904c0c2a0ef52", + "tag": "s1_eternum-BurnDonkey", + "selector": "0x4a1aac57c8cb6ec732bd40283fd1a892987d708a6b8a7d3a4dd65da6f0e7700" + }, + { + "members": [], + "class_hash": "0xb99ae4fd4c6ad7faddd8bc49b59116e8e6ea6900d55571ef6720c6c3e55bc", + "tag": "s1_eternum-CancelOrder", + "selector": "0x1a522313c76bbf3297f8527f95976169c4269831fe8b337f3d19ff0fccb8c87" + }, + { + "members": [], + "class_hash": "0x452f2d31f89ac1d6f689859282e4b8848db14035d14c64388240237f9c952af", + "tag": "s1_eternum-CreateGuild", + "selector": "0x45b5322475ee81006e7e7df176c2f31829e57224ae86ca261738a15ef8c88a7" + }, + { + "members": [], + "class_hash": "0x7ba3c37bfe133370931d979db6a74d2707a4922d56741b37fed2f3f9ffe2412", + "tag": "s1_eternum-CreateOrder", + "selector": "0x10edec58284a982448a15b0f37a3abc65944a16091efed6a39389b5064a6319" + }, + { + "members": [], + "class_hash": "0x33eed23e37ab8177b103e50d9fe7998079fb54ba97ed6d6174a18c16c3ce25", + "tag": "s1_eternum-FragmentMineDiscovered", + "selector": "0x6dd702d62f987ca281572763a9ebb8ed1937b7016d874f3c979ecb2b698012a" + }, + { + "members": [], + "class_hash": "0x788ecb9baee1f026854cfa77c8b6e046731d044ed95aab1ee29d474e2c41385", + "tag": "s1_eternum-GameEnded", + "selector": "0x2146af1d5d48461a767ddc54400c751b49d4fc74619953f68aaf486dd447cfa" + }, + { + "members": [], + "class_hash": "0x261625f7f14957f14923385d1293a382a7198e1c2c4342fc274fda159c7bcbf", + "tag": "s1_eternum-HyperstructureCoOwnersChange", + "selector": "0x4dc6d1cc5a4a96d06bc7d47706082b809f07a72a7276f95d8e781cab476f579" + }, + { + "members": [], + "class_hash": "0x751a5d1cd2cfc38b069298a54e665c644329906cb72c156a462400e4378007c", + "tag": "s1_eternum-HyperstructureContribution", + "selector": "0x554c3cb394ec5eb94799313ff57c04489f889918b97c883ec80fad3fb69142" + }, + { + "members": [], + "class_hash": "0x1a70f061a8b5ec44881ee4c8c1312704f8a74c852e15e39b0a50ccb6003fdc4", + "tag": "s1_eternum-HyperstructureFinished", + "selector": "0x1e7330fdbaa38d25a4192cae3a2f625a2474d21bea91894b61c78015e4c0a2f" + }, + { + "members": [], + "class_hash": "0x578690752e499bd366110e7627cacf40b36346187aaa69adef84a61e79950ab", + "tag": "s1_eternum-HyperstructureStarted", + "selector": "0x576568f1e35d7395c3585e049cf835153b9337a7f605f0471ae460e79a801" + }, + { + "members": [], + "class_hash": "0x63695bd49a77821a9d01ea9a5816eef76a851376cc4bc01a68c1a9e15287322", + "tag": "s1_eternum-JoinGuild", + "selector": "0x1341888a2238268a519a7c39af6c03489343fe2288ef7f66bea5c1f479cc1e4" + }, + { + "members": [], + "class_hash": "0x4141ad0fcb145ce54bc2ed7cb12e8f3092b6fe60da8dfcaf036bed082232851", + "tag": "s1_eternum-LiquidityEvent", + "selector": "0x4e19f323259ff883daf1f685cfb94306159cde4c8cb46155a290a9b9c91df8c" + }, + { + "members": [], + "class_hash": "0x561ffdd2e934a6c5f65c58120faade578dafb4af7e61d8ea278bed9932efc41", + "tag": "s1_eternum-MapExplored", + "selector": "0x22543e5f3bd15c01417b0fff116311e6e742ce8f43072e1391fc366b3dc05ad" + }, + { + "members": [], + "class_hash": "0x2bc2301835d38f55c1a061a363e6038ec6c9807443718f620ba7e412a543c53", + "tag": "s1_eternum-SettleRealmData", + "selector": "0x7eff418a618f1ecd46303c1e0560094940d883e7ec2edde98bcb002a6e1ccca" + }, + { + "members": [], + "class_hash": "0x37bcec3363a81c4aa899552958b4e9c6fa3a97a4fc8a96c45740abe655ef95d", + "tag": "s1_eternum-SwapEvent", + "selector": "0x1f926fcf957ccc9852cfb520498d1eac5512f8e710ffd77db1b1fcad55bfbee" + }, + { + "members": [], + "class_hash": "0x6cc999fc86266f1dbc7aa840b708d01884985ad69bdc2b5638cc5911e076fd0", + "tag": "s1_eternum-Transfer", + "selector": "0x51c9cda93a0b9735874f08742333f5d601bee76457f1565f608075666678ee3" + }, + { + "members": [], + "class_hash": "0x749a49ac7ff5b1b45c2043b9fb682a7afb16508b1294460876dcdf3cfc5a619", + "tag": "s1_eternum-Travel", + "selector": "0x30e8e79033762c0f9e6738ae07398a015b0ffd2969f6d2c1fb09d5475902ae6" + }, + { + "members": [], + "class_hash": "0x6b38999d987627835d4c20e7e571c73d32ddc856786d9790a131bdb3372a246", + "tag": "s1_eternum-TrophyCreation", + "selector": "0x730009ea3268cc71709a37a164c9ce9ca00430d63d571ad16b5b72c3f51bc9a" + }, + { + "members": [], + "class_hash": "0xf05f290a704ad2671544b391f0c33d50d6d43d468d52791282852a833a00c7", + "tag": "s1_eternum-TrophyProgression", + "selector": "0x198e5fb446b41882f55a08f8baaba4387f41637ca140b0084459ce5338f617d" + } + ] } } } + } \ No newline at end of file diff --git a/config/environments/data/slot.json b/config/environments/data/slot.json index c71aa0c96..aff932cc6 100644 --- a/config/environments/data/slot.json +++ b/config/environments/data/slot.json @@ -11118,4 +11118,4 @@ } } } -} +} \ No newline at end of file diff --git a/config/environments/utils/building.ts b/config/environments/utils/building.ts index 77c86cb9f..3141e80f2 100644 --- a/config/environments/utils/building.ts +++ b/config/environments/utils/building.ts @@ -40,7 +40,7 @@ export const BUILDING_POPULATION: { [key in BuildingType]: number } = { export const BUILDING_RESOURCE_PRODUCED: { [key in BuildingType]: number } = { [BuildingType.None]: 0, - [BuildingType.Castle]: 0, + [BuildingType.Castle]: ResourcesIds.Labor, [BuildingType.Bank]: 0, [BuildingType.FragmentMine]: ResourcesIds.AncientFragment, [BuildingType.Resource]: 0, @@ -57,7 +57,7 @@ export const BUILDING_RESOURCE_PRODUCED: { [key in BuildingType]: number } = { [BuildingType.Storehouse]: 0, }; -export const NON_RESOURCE_BUILDING_COSTS: ResourceInputs = { +export const OTHER_BUILDING_COSTS: ResourceInputs = { [BuildingType.None]: [], [BuildingType.Castle]: [], [BuildingType.Bank]: [], @@ -111,6 +111,10 @@ export const NON_RESOURCE_BUILDING_COSTS: ResourceInputs = { ], }; +// Note: ensure that no resource associated with some other building +// is also associated with a resource building cost +// (e.g. dont add Labor resource here again because it is +// already associated with the Labor building) export const RESOURCE_BUILDING_COSTS: ResourceInputs = { [ResourcesIds.Wood]: [{ resource: ResourcesIds.Wheat, amount: 750_000 }], [ResourcesIds.Stone]: [{ resource: ResourcesIds.Fish, amount: 750_000 }], @@ -134,31 +138,4 @@ export const RESOURCE_BUILDING_COSTS: ResourceInputs = { [ResourcesIds.Adamantine]: [{ resource: ResourcesIds.Fish, amount: 750_000 }], [ResourcesIds.Mithral]: [{ resource: ResourcesIds.Wheat, amount: 750_000 }], [ResourcesIds.Dragonhide]: [{ resource: ResourcesIds.Fish, amount: 750_000 }], - [ResourcesIds.Donkey]: [{ resource: ResourcesIds.Wheat, amount: 750_000 }], - [ResourcesIds.Knight]: [{ resource: ResourcesIds.Fish, amount: 750_000 }], - [ResourcesIds.Crossbowman]: [{ resource: ResourcesIds.Wheat, amount: 750_000 }], - [ResourcesIds.Paladin]: [{ resource: ResourcesIds.Fish, amount: 750_000 }], - [ResourcesIds.Wheat]: [{ resource: ResourcesIds.Wheat, amount: 750_000 }], - [ResourcesIds.Fish]: [{ resource: ResourcesIds.Fish, amount: 750_000 }], - [ResourcesIds.Lords]: [{ resource: ResourcesIds.Wheat, amount: 750_000 }], - [ResourcesIds.AncientFragment]: [{ resource: ResourcesIds.Fish, amount: 750_000 }], -}; -// Approx creation of a building per Realm - -export const BUILDING_DELTA_USAGE: { [key: number]: number } = { - [BuildingType.Castle]: 1, - [BuildingType.Bank]: 0, - [BuildingType.FragmentMine]: 0, - [BuildingType.Resource]: 0, - [BuildingType.Farm]: 6, - [BuildingType.FishingVillage]: 6, - [BuildingType.Barracks]: 3, - [BuildingType.Market]: 3, - [BuildingType.ArcheryRange]: 3, - [BuildingType.Stable]: 3, - [BuildingType.TradingPost]: 0, - [BuildingType.WorkersHut]: 0, - [BuildingType.WatchTower]: 0, - [BuildingType.Walls]: 0, - [BuildingType.Storehouse]: 3, }; diff --git a/config/environments/utils/resource.ts b/config/environments/utils/resource.ts index 358d74770..033606b41 100644 --- a/config/environments/utils/resource.ts +++ b/config/environments/utils/resource.ts @@ -1,4 +1,9 @@ -import { ResourcesIds, type ResourceInputs, type ResourceOutputs } from "@bibliothecadao/eternum"; +import { + ResourcesIds, + type ProductionByLaborParams, + type ResourceInputs, + type ResourceOutputs, +} from "@bibliothecadao/eternum"; // weight in kg export const RESOURCES_WEIGHTS_GRAM: { [key in ResourcesIds]: number } = { @@ -24,6 +29,7 @@ export const RESOURCES_WEIGHTS_GRAM: { [key in ResourcesIds]: number } = { [ResourcesIds.Adamantine]: 1000, [ResourcesIds.Mithral]: 1000, [ResourcesIds.Dragonhide]: 1000, + [ResourcesIds.Labor]: 1000, [ResourcesIds.AncientFragment]: 1000, [ResourcesIds.Donkey]: 0, [ResourcesIds.Knight]: 5000, @@ -65,8 +71,228 @@ export const RESOURCE_PRODUCTION_OUTPUT_AMOUNTS: ResourceOutputs = { [ResourcesIds.Wheat]: 50, [ResourcesIds.Fish]: 50, [ResourcesIds.AncientFragment]: 1, + [ResourcesIds.Labor]: 30, }; +export const RESOURCE_PRODUCTION_THROUGH_LABOR: ProductionByLaborParams = { + [ResourcesIds.Wood]: { + resource_rarity: 1, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Stone]: { + resource_rarity: 1, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Coal]: { + resource_rarity: 1, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Copper]: { + resource_rarity: 2, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Obsidian]: { + resource_rarity: 2, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Silver]: { + resource_rarity: 3, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Ironwood]: { + resource_rarity: 4, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.ColdIron]: { + resource_rarity: 5, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Gold]: { + resource_rarity: 5, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Hartwood]: { + resource_rarity: 8, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Diamonds]: { + resource_rarity: 17, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Sapphire]: { + resource_rarity: 20, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Ruby]: { + resource_rarity: 21, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.DeepCrystal]: { + resource_rarity: 21, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Ignium]: { + resource_rarity: 29, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.EtherealSilica]: { + resource_rarity: 31, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.TrueIce]: { + resource_rarity: 36, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.TwilightQuartz]: { + resource_rarity: 45, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.AlchemicalSilver]: { + resource_rarity: 54, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Adamantine]: { + resource_rarity: 91, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Mithral]: { + resource_rarity: 136, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Dragonhide]: { + resource_rarity: 218, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.AncientFragment]: { + resource_rarity: 21, + depreciation_percent_num: 10, + depreciation_percent_denom: 100, + wheat_burn_per_labor: 25, + fish_burn_per_labor: 30, + }, + [ResourcesIds.Donkey]: { + resource_rarity: 0, + depreciation_percent_num: 0, + depreciation_percent_denom: 0, + wheat_burn_per_labor: 0, + fish_burn_per_labor: 0, + }, + [ResourcesIds.Knight]: { + resource_rarity: 0, + depreciation_percent_num: 0, + depreciation_percent_denom: 0, + wheat_burn_per_labor: 0, + fish_burn_per_labor: 0, + }, + [ResourcesIds.Crossbowman]: { + resource_rarity: 0, + depreciation_percent_num: 0, + depreciation_percent_denom: 0, + wheat_burn_per_labor: 0, + fish_burn_per_labor: 0, + }, + [ResourcesIds.Paladin]: { + resource_rarity: 0, + depreciation_percent_num: 0, + depreciation_percent_denom: 0, + wheat_burn_per_labor: 0, + fish_burn_per_labor: 0, + }, + [ResourcesIds.Wheat]: { + resource_rarity: 0, + depreciation_percent_num: 0, + depreciation_percent_denom: 0, + wheat_burn_per_labor: 0, + fish_burn_per_labor: 0, + }, + [ResourcesIds.Fish]: { + resource_rarity: 0, + depreciation_percent_num: 0, + depreciation_percent_denom: 0, + wheat_burn_per_labor: 0, + fish_burn_per_labor: 0, + }, + [ResourcesIds.Lords]: { + resource_rarity: 0, + depreciation_percent_num: 0, + depreciation_percent_denom: 0, + wheat_burn_per_labor: 0, + fish_burn_per_labor: 0, + }, + [ResourcesIds.Labor]: { + resource_rarity: 0, + depreciation_percent_num: 0, + depreciation_percent_denom: 0, + wheat_burn_per_labor: 0, + fish_burn_per_labor: 0, + }, +}; export const RESOURCE_PRODUCTION_INPUT_RESOURCES: ResourceInputs = { [ResourcesIds.Wood]: [ { resource: ResourcesIds.Stone, amount: 3 }, @@ -204,4 +430,5 @@ export const RESOURCE_PRODUCTION_INPUT_RESOURCES: ResourceInputs = { [ResourcesIds.Fish]: [], [ResourcesIds.Lords]: [], [ResourcesIds.AncientFragment]: [], + [ResourcesIds.Labor]: [], }; diff --git a/config/utils/utils.ts b/config/utils/utils.ts index 8b0db5f49..baa377f7a 100644 --- a/config/utils/utils.ts +++ b/config/utils/utils.ts @@ -27,11 +27,11 @@ export function getConfigFromNetwork(chain: Chain): Config { try { switch (chain) { case "sepolia": - return sepoliaConfig.configuration; + return sepoliaConfig.configuration as any; // as any to avoid type errors case "mainnet": - return mainnetConfig.configuration; + return mainnetConfig.configuration as any; case "slot": - return slotConfig.configuration; + return slotConfig.configuration as any; case "local": return localConfig.configuration; default: diff --git a/contracts/common/addresses/local.json b/contracts/common/addresses/local.json index bd52e8754..889655ec8 100644 --- a/contracts/common/addresses/local.json +++ b/contracts/common/addresses/local.json @@ -34,4 +34,4 @@ "FISH": [30, "0x2aeea125cf76145d164d61f4e350fdb39df473d5663ee3577052b4565395296"], "LORDS": [31, "0x3acbe76476cbf8997397878c52ce1acdf90ed1c295907f6505d3ff4c1646afa"] } -} +} \ No newline at end of file diff --git a/contracts/common/addresses/sepolia.json b/contracts/common/addresses/sepolia.json index 7863b8f5f..5d3f5f0d5 100644 --- a/contracts/common/addresses/sepolia.json +++ b/contracts/common/addresses/sepolia.json @@ -1,37 +1,37 @@ { - "seasonPass": "0xf13c0880fd96d4960be5042f564ce50921531c8cd9bae3a0c5b1687f053263", - "realms": "0x731af37beee9f49d1927b997cb5b1a2f6b2f0c341753d9bdfe23768ef65f53f", - "lords": "0x6bf1ddd27d699ddef8818e9d23a085b787798d9b557d79f22a6e155891506fb", + "seasonPass": "0x2b7c1780bb74754d8f2044d69bf6321c4de44e0a2670f4158948400a225044b", + "realms": "0x71a4862d6bc70347928c6719d032616332faf6bcc649d66a40b8329a2cb2a17", + "lords": "0x52eb09380ad9c74c0c12583815c435aa4c162f22a9e4e06acbc9744d301ebf3", "resources": { - "STONE": [1, "0x260c29baeb23e7b14faeb3b4b14718a3bd41710508c0514d506e471e49667d3"], - "COAL": [2, "0x5f45379a55ead3fb6ff7c070e003c5654d95c292e25ef62c8c03c01e03c8477"], - "WOOD": [3, "0x15c729641ffdd4602f8ac57fdd9f34a14bd0cf554210bc3c5fb827b6ae122bd"], - "COPPER": [4, "0x2634151f1f112e516ea712513fa5c0e690a909becd5fc58484ed78ff7f35794"], - "IRONWOOD": [5, "0x5cd06d0219846406301ad6df1870364b9b1ea98b014d01f1f117fafad9016f8"], - "OBSIDIAN": [6, "0x9f923859f45e7b35882a06688e7278506c9393aa2e098e2a2588c6acfb54c1"], - "GOLD": [7, "0x7c7efe0d57938f93b4f9ae878e0f2e53c5e2b5e06b01c63617d2228303182cf"], - "SILVER": [8, "0xc5e4ca351da04b74eb754d077fba0069b73c8cafa370f4647ff7a61fc0e652"], - "MITHRAL": [9, "0x98ff50534f661d96119b235e616158f9e451f11ac793af18ae7accdd5c3bf3"], - "ALCHEMICALSILVER": [10, "0x7de22f62aa87a35b619184d5d3bf113449da6b2758afd1d89dd49647ed8839e"], - "COLDIRON": [11, "0x4b0a20bc4f11ff34b218b5fe5fd824be8ad6a185caee75b2bf9280554b5ab22"], - "DEEPCRYSTAL": [12, "0x48ef28f3e8cb53d68421fd55857862d749a609f991b5e217b31451e0a7a8aef"], - "RUBY": [13, "0x36b690f1074614861b0ff5d95b1120b1233946eeca7a4216aeb274c553cf745"], - "DIAMONDS": [14, "0x1dc7dce0c3823dabd6ba388eab584b1325c36c99b4b52cc6a1e155bdee21182"], - "HARTWOOD": [15, "0x723e86fd8129a352768ce52d88a9da69b80ac1f217c5c65ea44883d984bedd4"], - "IGNIUM": [16, "0x75582e365229a72959fbaf97c49d36ea29cb5b4e6e35846c691be4065d604d2"], - "TWILIGHTQUARTZ": [17, "0x4953450ac18b6b949d73ed171628f7199e9ee142d2b80505e95162d0f8dfac3"], - "TRUEICE": [18, "0x65e7bf089b3f824336c30d1fc5c83d7bf43aed3d47cae1f10fe62cd7e603f55"], - "ADAMANTINE": [19, "0xb3f8efd4329baa12020c434e6ec40dfe5d723745fac3127a945562e6ce6044"], - "SAPPHIRE": [20, "0x65420977edd0497260cab8e1d6a4fc21e49039d6abadc4aa8ab4e4f96533314"], - "ETHEREALSILICA": [21, "0x34a57dc37d6734d27ad70883b808b562b1c7585c0c121c64d04d8ac541d06f0"], - "DRAGONHIDE": [22, "0x179a22a5c6f9b509beda8c004bde0d06446392be1d4b97a66b5a0ffb43e9d09"], - "ANCIENTFRAGMENT": [24, "0x7ce3f9322d6cfec3c5f90f6e13da21edb63c47f2ca38c54c77184c18cb56a07"], - "DONKEY": [25, "0x63baaece8c556f583d2f9448e467cb548e96efd950621bed3b0bbfaefde9db6"], - "KNIGHT": [26, "0x283615e4f4daa1e740381ea9b9a3d2bdb513e574f60e94a2185174ab1ac07dc"], - "CROSSBOWMAN": [27, "0x146291d7ad2159165368e3896ca5ab22d6785226cb6b6df8c3171456259a13"], - "PALADIN": [28, "0x6e92373426b165824e67653f0dd3445b49345644f970a2e60ae25025902fc0f"], - "WHEAT": [29, "0x70586522efa247ea88b51ed14b11abbe5f8132126e2cbd8ddacceb14bbb145b"], - "FISH": [30, "0x7a0f684fd06524c7fdc4093f84fdfe7437aa7a4c9767c7e437314931a3cb605"], - "LORDS": [31, "0x6bf1ddd27d699ddef8818e9d23a085b787798d9b557d79f22a6e155891506fb"] + "STONE": [1,"0x45b34981831a01ffd668ed249c9cc380e27228c11c52ee2d384108a912b27d9"], + "COAL": [2,"0x596dcd983bb9eff3f02bc6f03af5ba60ee2f9c46f5ff2dfe1ddb27f15bd9085"], + "WOOD": [3,"0x2c0362a0cada93e250277a96d926af7b6b7a6e555db826659c01c97ae2bae5a"], + "COPPER": [4,"0x72b81059f7d96d0bff85f9ec45851c86b7eb37dcff8d65db05f48686febc53f"], + "IRONWOOD": [5,"0xfab021b6e7ab05b5a50f91de4414417b902c16e63f8e9e1766eb4ba491506d"], + "OBSIDIAN": [6,"0x24883f9729e7375ae92cdbbb6220476cd7e3d4d6b3d5bc0aeda16478e0ae1c0"], + "GOLD": [7,"0x4804d38ef487dd918fe2937d0efe994e66ff6fab3127d47661805b980d42b70"], + "SILVER": [8,"0x6e34928d8fbfc1faf909ba4de08fc1096ca53ef7f2d62b5255f6ff9b991e94b"], + "MITHRAL": [9,"0x7e259200bce2848a1e32a3a8897223cb659c6a71c61931656698c39afb880da"], + "ALCHEMICALSILVER": [10,"0x41ef1d076afc5bbceb3761ce4f407f5ef33fa33589bf54950ce8c5ef678c2a8"], + "COLDIRON": [11,"0x20f03196a2ff20e3055bb90dac2d9427bf00ce28e896fb8ba26b071d0e3ff60"], + "DEEPCRYSTAL": [12,"0x21077360ee165d8804b0750a76ded9cbb897c63f80f66bde662a3475e163f80"], + "RUBY": [13,"0x48968cae832875f1c90e765421998ffd1b1bf4799d80f8ad36b9b1ab969e6c4"], + "DIAMONDS": [14,"0x66519a66ad7d416674652b18defd5dbe3b0d7bfa9f5de0730da7201fa152c34"], + "HARTWOOD": [15,"0x6194b646b82d138206b706b6ef7fc7ea861e94ab248c0775b710ed3242433e5"], + "IGNIUM": [16,"0x61762e249b73f4a400f1f4e910c0dfe89254a3f7522c4edff23332b272767a6"], + "TWILIGHTQUARTZ": [17,"0x69b94c8ee4d30bc81b552c677523aeea5ac729b7a5703af664d6635fdb5c940"], + "TRUEICE": [18,"0x20eeb8348e20820f08b2bc62083c62e3667ec0313ad6e2b749668f71c304c1c"], + "ADAMANTINE": [19,"0x6ce638e5a9129be5d9ed5c54a2e57ad1db04fa37f93f7e1f6d2cb0d31540f15"], + "SAPPHIRE": [20,"0x55cea70d4cac46ec777e23c57008ce8a042869e53d868294acca8cf6082073f"], + "ETHEREALSILICA": [21,"0xfc78ad78bc8d42ff9709f9621633916733e644fce4510be5d9ed7acc253a8b"], + "DRAGONHIDE": [22,"0x4be29fa0f1dea7daa0c0a316c2165eedf8ce0f1d03cbb073d12a2415842c83e"], + "ANCIENTFRAGMENT": [24,"0x7ac24b476cd9444d2ab0b07a7a47c89d6686a9abaf0b7114f5a6db6fcd3ca0c"], + "DONKEY": [25,"0x3ab297389ffadc70e9a0d40a98b6ac306623f00f98088eb9d21159208142d64"], + "KNIGHT": [26,"0x783fdc3c626b1ae3f72612a2405362a121f57a17b320a5a106ad74fc1b1c1bd"], + "CROSSBOWMAN": [27,"0x7fc9d4d214c0820a82ecbfb1359848ce7f32f12cf0532e805e362c01249ad5f"], + "PALADIN": [28,"0x1d031ece66bb35df9a5ccb18ed4f6cab5ec1ccaf32988c2491ebb6d640df2ad"], + "WHEAT": [29,"0x65d213cd2a8d21cadd978d6de1f3133087fb2abb769ba2bb4165627049f724f"], + "FISH": [30,"0x1ad78ab9e6a5076c902b489ba0bde42ec8eb3fc1e56a83ffcccaef94ae10655"], + "LORDS": [31,"0x52eb09380ad9c74c0c12583815c435aa4c162f22a9e4e06acbc9744d301ebf3"] } -} +} \ No newline at end of file diff --git a/contracts/game/dojo_sepolia.toml b/contracts/game/dojo_sepolia.toml index 5a42d24aa..9f67dce44 100644 --- a/contracts/game/dojo_sepolia.toml +++ b/contracts/game/dojo_sepolia.toml @@ -7,8 +7,8 @@ private_key = "0x075362a844768f31c8058ce31aec3dd7751686440b4f220f410ae0c9bf042e6 rpc_url = "https://api.cartridge.gg/x/starknet/sepolia" [world] -seed = "s1_eternum-11" -name = "Realms: Eternum" +seed = "eternum-sepolia-s1.1" +name = "Eternum Sepolia" description = "Rule the Hex" cover_uri = "file://assets/bg.webp" website = "https://eternum.realms.world/" diff --git a/contracts/game/manifest_local.json b/contracts/game/manifest_local.json index e140d9497..de705c2f1 100644 --- a/contracts/game/manifest_local.json +++ b/contracts/game/manifest_local.json @@ -1481,8 +1481,8 @@ ] }, { - "address": "0x352ce7d5737aaa6315bd01d85f0e03e6b52f533a3a4a89294f49cbb0b57bc07", - "class_hash": "0x2d35042bdc3fe8f799396ce2cf9c31deb666e63df2427688a4a8605e34d846", + "address": "0x3b81b30bbf30c2f91e6948449a778e748e2481df5dfac2cdd91d00ebb9d1ce9", + "class_hash": "0x205d037fb517aca51484f6d89dae7b11c6dceed1d55943c21ea1e70bc62cc", "abi": [ { "type": "impl", @@ -1685,8 +1685,8 @@ ] }, { - "address": "0x7cdc9a51cdeb4c7f1716345abc325fb8e7ebcd7cdceb1fa2083b97fe84716ea", - "class_hash": "0x1f9260c45aed95e060c98434c5922c5dfef7c82a62b47ae42496815c3dc6401", + "address": "0x2e31e58a51bb7d45c4713045161a1a83cc2532589c2fca44285de349f08dc5", + "class_hash": "0x6ec06498582ccec7dd073f767ddcee7350bfcb4211f9238316599bb28c9330f", "abi": [ { "type": "impl", @@ -2000,8 +2000,8 @@ ] }, { - "address": "0x6066a64d97dd37aed41748a86aa11524c7e29f20235011ef8d16c7a067b2664", - "class_hash": "0x688863adfa91d251a6d09d09c156264d2c6d1128e70c759bd2848abbbe11fc6", + "address": "0xe785ec9a3e5fbaec71ad24a55d724f2814a7ff8c6232f949da5b53f4e18cb3", + "class_hash": "0x2ad3b3278498fafb701f93b6836fd9f9b9c5cd2e050d18c5ebb1caaecbef3c", "abi": [ { "type": "impl", @@ -2381,8 +2381,8 @@ ] }, { - "address": "0x4db43369a7b0ab29f7356d5d0568c0d06cd6da5199daf06f9bec633d3e934ff", - "class_hash": "0x7fb2e9574aa693d81a15f3734dd0a8612ba8d64057b2aef692bd3117118a446", + "address": "0x7a9fc055d71b905595cc7f9d63331906ce3ea9fa9fa82b7ed9c5e8114fa3938", + "class_hash": "0x747b7a6788796c5f9899d3b7db8931ba43475a5c3393eff28f156c8761a31c3", "abi": [ { "type": "impl", @@ -2980,6 +2980,32 @@ "name": "ProductionConfigImpl", "interface_name": "s1_eternum::systems::config::contracts::IProductionConfig" }, + { + "type": "struct", + "name": "s1_eternum::models::config::LaborBurnPrStrategy", + "members": [ + { + "name": "resource_rarity", + "type": "core::integer::u128" + }, + { + "name": "depreciation_percent_num", + "type": "core::integer::u16" + }, + { + "name": "depreciation_percent_denom", + "type": "core::integer::u16" + }, + { + "name": "wheat_burn_per_labor", + "type": "core::integer::u128" + }, + { + "name": "fish_burn_per_labor", + "type": "core::integer::u128" + } + ] + }, { "type": "interface", "name": "s1_eternum::systems::config::contracts::IProductionConfig", @@ -2993,38 +3019,15 @@ "type": "core::integer::u8" }, { - "name": "produced_amount", + "name": "amount_per_building_per_tick", "type": "core::integer::u128" }, { - "name": "labor_amount", - "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "LaborConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ILaborConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ILaborConfig", - "items": [ - { - "type": "function", - "name": "set_labor_config", - "inputs": [ - { - "name": "resource_type", - "type": "core::integer::u8" + "name": "labor_burn_strategy", + "type": "s1_eternum::models::config::LaborBurnPrStrategy" }, { - "name": "cost", + "name": "predefined_resource_burn_cost", "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" } ], @@ -3807,7 +3810,6 @@ "set_stamina_refill_config", "set_leveling_config", "set_production_config", - "set_labor_config", "set_speed_config", "set_hyperstructure_config", "set_bank_config", @@ -4065,212 +4067,8 @@ ] }, { - "address": "0x69a706af0da6fc3d1b4b148069c467c68c4171694eea8f2012f3560c72ea9a6", - "class_hash": "0x5eade382aa35597f5cbbee1c9366af3e78caef7ba002534aabfe11c24487bce", - "abi": [ - { - "type": "impl", - "name": "dev_realm_systems__ContractImpl", - "interface_name": "dojo::contract::interface::IContract" - }, - { - "type": "interface", - "name": "dojo::contract::interface::IContract", - "items": [] - }, - { - "type": "impl", - "name": "dev_realm_systems__DeployedContractImpl", - "interface_name": "dojo::meta::interface::IDeployedResource" - }, - { - "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": "dojo::meta::interface::IDeployedResource", - "items": [ - { - "type": "function", - "name": "dojo_name", - "inputs": [], - "outputs": [ - { - "type": "core::byte_array::ByteArray" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "DevRealmSystemsImpl", - "interface_name": "s1_eternum::systems::dev::contracts::realm::IDevRealmSystems" - }, - { - "type": "interface", - "name": "s1_eternum::systems::dev::contracts::realm::IDevRealmSystems", - "items": [ - { - "type": "function", - "name": "create", - "inputs": [ - { - "name": "realm_id", - "type": "core::integer::u32" - }, - { - "name": "frontend", - "type": "core::starknet::contract_address::ContractAddress" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "function", - "name": "dojo_init", - "inputs": [], - "outputs": [], - "state_mutability": "view" - }, - { - "type": "impl", - "name": "WorldProviderImpl", - "interface_name": "dojo::contract::components::world_provider::IWorldProvider" - }, - { - "type": "struct", - "name": "dojo::world::iworld::IWorldDispatcher", - "members": [ - { - "name": "contract_address", - "type": "core::starknet::contract_address::ContractAddress" - } - ] - }, - { - "type": "interface", - "name": "dojo::contract::components::world_provider::IWorldProvider", - "items": [ - { - "type": "function", - "name": "world_dispatcher", - "inputs": [], - "outputs": [ - { - "type": "dojo::world::iworld::IWorldDispatcher" - } - ], - "state_mutability": "view" - } - ] - }, - { - "type": "impl", - "name": "UpgradeableImpl", - "interface_name": "dojo::contract::components::upgradeable::IUpgradeable" - }, - { - "type": "interface", - "name": "dojo::contract::components::upgradeable::IUpgradeable", - "items": [ - { - "type": "function", - "name": "upgrade", - "inputs": [ - { - "name": "new_class_hash", - "type": "core::starknet::class_hash::ClassHash" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "constructor", - "name": "constructor", - "inputs": [] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "struct", - "members": [ - { - "name": "class_hash", - "type": "core::starknet::class_hash::ClassHash", - "kind": "data" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "enum", - "variants": [ - { - "name": "Upgraded", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Upgraded", - "kind": "nested" - } - ] - }, - { - "type": "event", - "name": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "enum", - "variants": [] - }, - { - "type": "event", - "name": "s1_eternum::systems::dev::contracts::realm::dev_realm_systems::Event", - "kind": "enum", - "variants": [ - { - "name": "UpgradeableEvent", - "type": "dojo::contract::components::upgradeable::upgradeable_cpt::Event", - "kind": "nested" - }, - { - "name": "WorldProviderEvent", - "type": "dojo::contract::components::world_provider::world_provider_cpt::Event", - "kind": "nested" - } - ] - } - ], - "init_calldata": [], - "tag": "s1_eternum-dev_realm_systems", - "selector": "0x32279d1c73c6356f5f15ff0e59adc6bfc45ffcde796c785452f6944b9b36ef1", - "systems": [ - "create", - "upgrade" - ] - }, - { - "address": "0x3b574cdf884243f01296332ef73e4994f98b063773a056b0a46f5eebdc10f32", - "class_hash": "0x7d9a070d9ded75006a3b6ee02cee0601012901e7910978c390cb28a232a26cc", + "address": "0x7c4376f84b971e6e3aa1bdd9285c4450122cb02b59c8ce752d46abdf399029", + "class_hash": "0x568e9e9963345b80ed1bfcf91d08d78dd12bcc96280ce9f85ec3a104f602594", "abi": [ { "type": "impl", @@ -4958,8 +4756,8 @@ ] }, { - "address": "0x5d9b021d46b861f532b88e1a5b09e5ab7c46d1a11c7fcc11335e0cc459383d9", - "class_hash": "0x1af127b3e1737bc103072be80c6927cdc90616df78597a5e225f6ab981ad6e4", + "address": "0x58ab26e43a452dd752f9459e3cc51eddca4a19cab13f7b03b77f867430f3fb", + "class_hash": "0xa9133f3532a2a84bb5594c4cd32f77d1c8618954f3410c8b2068104fa39987", "abi": [ { "type": "impl", @@ -5335,8 +5133,8 @@ ] }, { - "address": "0x5c0ae11ece0f9b47429f496ae8aa44c990457fd45ab3f99cf17dde52ea9c58e", - "class_hash": "0x39da4b5a4c779a5961a30a6bd3be3002f7ac8ca7fcb261bae647262cb03f8df", + "address": "0x2a03b9e371cf24f708132c0e42361829360a7b628b0e20bcf9283755df72869", + "class_hash": "0x49e8054a2fde6f49ce8b2563d677efd248bbeadf1f753e59a41ba7d3b9efe8f", "abi": [ { "type": "impl", @@ -5608,8 +5406,8 @@ ] }, { - "address": "0x4c9426847f591ff00e3bc81e31ef317ed7aa3d3f967e83d3b5da5b96d0f6128", - "class_hash": "0x23550c76e27c75c2c2aab7aaca5bc20b9595837ff35fdb95cd538c3d3f2466c", + "address": "0x71ae361edf33ada5d5b6e946d1b5c68ea880f13557dccfbd5e199637d2abb73", + "class_hash": "0x43b25f249e159cfbe93bb91651c5833cc04dda10534c2b6a64eab6ec260cd63", "abi": [ { "type": "impl", @@ -5893,8 +5691,8 @@ ] }, { - "address": "0x4b18cc8d4d59032998a58dc2cd075c3ccc4784e8e4796da8e9812eeaf7f7321", - "class_hash": "0x3bb707045c5ff3766935a9bece0717a1adf395e9f109cf9e0f8d025bfeadc6d", + "address": "0x7a48ff67963712fed7b4577a994e74393423ec5c4f07738740dc82c994c9076", + "class_hash": "0x6feebc73f723c38719ee76e2499d8dd53fc1a2c9a30027ef28eeb642944cb8d", "abi": [ { "type": "impl", @@ -6548,8 +6346,8 @@ ] }, { - "address": "0xad55bb6ef5b58306f565c398d73dee2068d060a4a3e95a948b8badec4f6c3c", - "class_hash": "0x2d8e31a55fd8bf1e95262a07e57c0b97db4a1ae573f4e9d07b6b8fdb863cc43", + "address": "0x494564ed0fb05d3137060064c4fb6a7216bf31c8e45639ae313ff80db5b29c1", + "class_hash": "0x35557504fbd9f5c2e6a8f2aa174cff1ec997ce480b872464c120a345d4dfb40", "abi": [ { "type": "impl", @@ -6736,6 +6534,26 @@ } ] }, + { + "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": "interface", "name": "s1_eternum::systems::production::contracts::IProductionContract", @@ -6814,19 +6632,19 @@ }, { "type": "function", - "name": "make_production_labor", + "name": "burn_other_resources_for_labor_production", "inputs": [ { "name": "entity_id", "type": "core::integer::u32" }, { - "name": "resource_type", - "type": "core::integer::u8" + "name": "resource_types", + "type": "core::array::Span::" }, { - "name": "labor_amount", - "type": "core::integer::u128" + "name": "resource_amounts", + "type": "core::array::Span::" } ], "outputs": [], @@ -6834,19 +6652,39 @@ }, { "type": "function", - "name": "burn_production_labor", + "name": "burn_labor_resources_for_other_production", "inputs": [ { - "name": "entity_id", + "name": "from_entity_id", "type": "core::integer::u32" }, { - "name": "resource_type", - "type": "core::integer::u8" + "name": "labor_amounts", + "type": "core::array::Span::" }, { - "name": "labor_amount", - "type": "core::integer::u128" + "name": "produced_resource_types", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "burn_other_predefined_resources_for_resources", + "inputs": [ + { + "name": "from_entity_id", + "type": "core::integer::u32" + }, + { + "name": "produced_resource_types", + "type": "core::array::Span::" + }, + { + "name": "production_tick_counts", + "type": "core::array::Span::" } ], "outputs": [], @@ -6977,14 +6815,15 @@ "destroy_building", "pause_building_production", "resume_building_production", - "make_production_labor", - "burn_production_labor", + "burn_other_resources_for_labor_production", + "burn_labor_resources_for_other_production", + "burn_other_predefined_resources_for_resources", "upgrade" ] }, { - "address": "0x33e0343497e2d58aa089f11f9f00faf6e2a543d58ec3670f99507d5ad9d9312", - "class_hash": "0x567e142c27b39221110078e7ffc6f3d24ee35d07978b548cb799d777d81baba", + "address": "0x58b1609142c8f9e547124a7c628bd2b7b16d4fd75086b0fc2745f5531436bad", + "class_hash": "0x624789ed60dbb1ffa7075f19b968fe21082b4a2e24649624450f6a032867404", "abi": [ { "type": "impl", @@ -7225,8 +7064,8 @@ ] }, { - "address": "0x348b0b20565b8616b0e4a42c75ff9cf48ed94ca0265b4c13b959759de9ca747", - "class_hash": "0x50d051cf375ddb6427d781b0e7f5c7670f3a0c3cea45ed487154c6fe33cdacf", + "address": "0xdcc1e0050f98035c2c7f6471d72cbf0ec35a7479a621cee776a6c0adc50cd0", + "class_hash": "0x7361d220d222dce19ff7a7334da11cfe9b9ef8bdeb2ab068d6f0b435db0255a", "abi": [ { "type": "impl", @@ -7534,8 +7373,8 @@ ] }, { - "address": "0x2174d311dc76dda4d8c82402d3c9ab4e0c8a56600c681caa3e17308b3f58390", - "class_hash": "0x4e3a61a93c7703b04df217cf8e8b43698187f9a7434c457f29f3602f8ceb190", + "address": "0x60f8d9d7d458569be5df3bb56bb1b27cc77a30c1aab5f1a541380e6542e9668", + "class_hash": "0x26911f009cb5948dcbf27e3782f3572436f26d7e70bbe87957819015b67f20c", "abi": [ { "type": "impl", @@ -8031,8 +7870,8 @@ ] }, { - "address": "0x7a267e053addb92514d51fcbed967b274a71381b8e6a95b1103323a80d34993", - "class_hash": "0x6ecba556869f9af550c06eebf09953b9a9b5e021d1841e1fdba2893f6375787", + "address": "0x5d1adca62d336a5ed93380055103c0ff2de3f7103f932a8e35e290602cb7fce", + "class_hash": "0x291d4795f52427b407b35a8b4d94e001b62d37dcd77faff84b41361e29a4f0d", "abi": [ { "type": "impl", @@ -8276,8 +8115,8 @@ ] }, { - "address": "0x46b3c69414f2501d808b459b186ce20d12ecf6691953da7b2d15fb10d101e6d", - "class_hash": "0xc9da769a96f6e3aacd9c9329f89fc32c82a3318f82a92373cf4eaf3759f230", + "address": "0x808453a3b049bcaf1e43d932620977d4002d2005242ae38c36c92e0cbb1b8", + "class_hash": "0x357ca13c3a158d43bc1f5d7c902eefbeadad3a3b43c6228bb5727a78a310d6f", "abi": [ { "type": "impl", @@ -8577,8 +8416,8 @@ ] }, { - "address": "0x52b9c90b7e0037ccb1fe4377714e171886c78459a6dc288bb5c2ec9e656c0f4", - "class_hash": "0x1dea2c672934cc98154903b1e64e34287fbd24ffa3be05415371f9a21638484", + "address": "0x65571a65aaf94bcff7d57b3cfcfcffdc2478417c89f63d44da2fec052507887", + "class_hash": "0x4dcd50d3a264279a3745d63f7b48d1753991091101ff4bd9b930de1f0d9fa16", "abi": [ { "type": "impl", @@ -8821,8 +8660,8 @@ ] }, { - "address": "0x61396cdd9898842f7f4b61d5e1494c5ced4eb559e0494f20c2dd7e272c0e6b5", - "class_hash": "0x710a28a02d258fc3ac7b008f52d1bcb472249ac0948221d328858c01b08a889", + "address": "0x2aeef101d4a21b0153def740aa3aeea43d0be69bcab8052763800c297682306", + "class_hash": "0x24ad1ba7ad9d438f816ae4e8c1451c5db113e15dcac0fde483e3472b55ae715", "abi": [ { "type": "impl", @@ -9273,12 +9112,6 @@ "tag": "s1_eternum-HyperstructureResourceConfig", "selector": "0x344c119cf22cf69ac0954dadeb846930657d9d80e550aec607fe0d285e2d1b6" }, - { - "members": [], - "class_hash": "0x328f1fff82bb8aeba6b1e75fc1edf15d815324486c97df194a8ad682bd419f6", - "tag": "s1_eternum-LaborConfig", - "selector": "0x6f056844c678da88f4b2829f7252b9264702448b0305224729f30026db3f644" - }, { "members": [], "class_hash": "0x5f9e1048bc3fcab978c16ea514c906e08a6a908a551b01c9d8d56991eb3be12", @@ -9395,7 +9228,7 @@ }, { "members": [], - "class_hash": "0x4482f857b3d5e6d6d1fb9d5680663a1e0eda04699b105aa565490498e395d1e", + "class_hash": "0x1dbf495a2614ebff450da2c0b88a9ada07716e5c3546c7dab92691e40bcee21", "tag": "s1_eternum-ProductionConfig", "selector": "0x38bacafc2ceed54f95033f7529efa9559f877aea41db072b797235cee383a06" }, @@ -9461,7 +9294,7 @@ }, { "members": [], - "class_hash": "0xc58be0c889a407b92a5b1df7f1221567a43ee5a3f5315464f3c598aafa1725", + "class_hash": "0x295211961c83e77d8c315214c3ac2bff8890e822b3b9f7e244af4a905cfd53e", "tag": "s1_eternum-Resource", "selector": "0x6bd14dc16a7f05252fcf2fb66630b8f05d39d75b36f55013334a4b3bb8fec57" }, diff --git a/contracts/game/manifest_sepolia.json b/contracts/game/manifest_sepolia.json index cdb3dd06c..95d68ef24 100644 --- a/contracts/game/manifest_sepolia.json +++ b/contracts/game/manifest_sepolia.json @@ -1,9 +1,9 @@ { "world": { "class_hash": "0x45575a88cc5cef1e444c77ce60b7b4c9e73a01cbbe20926d5a4c72a94011410", - "address": "0x489ee246082cd1a1676dd03c334f85eb8b2960cb78701ae1b974c61a8373aaa", - "seed": "s1_eternum-11", - "name": "Realms: Eternum", + "address": "0x663558449893cb8d1052bedf2ba82d9840580b7a4c88778c6c43de06c72fdd4", + "seed": "eternum-sepolia-s1.1", + "name": "Eternum Sepolia", "entrypoints": [ "uuid", "set_metadata", @@ -1252,7 +1252,7 @@ }, "contracts": [ { - "address": "0x22fca458aa0869b4cacca2098ae8fe3cc462bc5cef9dd222a5a68055cb8906b", + "address": "0x561b10faf4a0809ea306e266bb3c3c91022af032575483fcc633ed6b9d0c9ac", "class_hash": "0x38b8eea12d619d5ef8dd3ce5fd038a6bef762b64d911a3e3947892f09ceaeab", "abi": [ { @@ -1481,8 +1481,8 @@ ] }, { - "address": "0x158114da9a538d75512dc29b3d1995ff551dfb61bee80996232abe54b8febc2", - "class_hash": "0x6020cd4dce4dce9b5a4a68a70daa898537b224b3a5a9e80f64bdbc6e80b897e", + "address": "0x4da090eae1bd76c455948aa43755ce1a322c4c717abb98ffd2992fd4d9fe5fe", + "class_hash": "0x205d037fb517aca51484f6d89dae7b11c6dceed1d55943c21ea1e70bc62cc", "abi": [ { "type": "impl", @@ -1685,8 +1685,8 @@ ] }, { - "address": "0x66bc2d8ef45ce10d3847cc901a41af6a05db34c0ea0ab87fc332ca8c9b2ccb0", - "class_hash": "0xfcba7b3b68a6c50b899999c57a97cc280044a6d3eb1853860714d1ca8b5f15", + "address": "0x29c169487fb01d1692f7d7eb3f8e1e0cb84956b4d202483c1673baeec878f49", + "class_hash": "0x6ec06498582ccec7dd073f767ddcee7350bfcb4211f9238316599bb28c9330f", "abi": [ { "type": "impl", @@ -2000,8 +2000,8 @@ ] }, { - "address": "0x73dff02735d7031496afb34d28f6fd935d8f8e2db14b0877aaf871b3d11f524", - "class_hash": "0x41d596efc4a6d03213daf7b9e4e8bedc5e92bc77e40ea66105f79989a1d2845", + "address": "0x32762adec37d1e60a05fcba2637ec7549f3c53ebf049fcb5d210cab0e1e5049", + "class_hash": "0x2ad3b3278498fafb701f93b6836fd9f9b9c5cd2e050d18c5ebb1caaecbef3c", "abi": [ { "type": "impl", @@ -2381,8 +2381,8 @@ ] }, { - "address": "0x5827e314ca954f7eb04127a2a321e5c1f8fa6d51546b8fa6d6b38830f2b6d18", - "class_hash": "0x37798122f6085a277eedb203c93fe5ee2fbc99afe7427e4508b79000301dc2c", + "address": "0xb3d474aded507a7350baa69474463d33886be66ed6d1a0ae8d1a4f19d919a", + "class_hash": "0x747b7a6788796c5f9899d3b7db8931ba43475a5c3393eff28f156c8761a31c3", "abi": [ { "type": "impl", @@ -2980,6 +2980,32 @@ "name": "ProductionConfigImpl", "interface_name": "s1_eternum::systems::config::contracts::IProductionConfig" }, + { + "type": "struct", + "name": "s1_eternum::models::config::LaborBurnPrStrategy", + "members": [ + { + "name": "resource_rarity", + "type": "core::integer::u128" + }, + { + "name": "depreciation_percent_num", + "type": "core::integer::u16" + }, + { + "name": "depreciation_percent_denom", + "type": "core::integer::u16" + }, + { + "name": "wheat_burn_per_labor", + "type": "core::integer::u128" + }, + { + "name": "fish_burn_per_labor", + "type": "core::integer::u128" + } + ] + }, { "type": "interface", "name": "s1_eternum::systems::config::contracts::IProductionConfig", @@ -2993,34 +3019,15 @@ "type": "core::integer::u8" }, { - "name": "produced_amount", + "name": "amount_per_building_per_tick", "type": "core::integer::u128" - } - ], - "outputs": [], - "state_mutability": "external" - } - ] - }, - { - "type": "impl", - "name": "LaborConfigImpl", - "interface_name": "s1_eternum::systems::config::contracts::ILaborConfig" - }, - { - "type": "interface", - "name": "s1_eternum::systems::config::contracts::ILaborConfig", - "items": [ - { - "type": "function", - "name": "set_labor_config", - "inputs": [ + }, { - "name": "resource_type", - "type": "core::integer::u8" + "name": "labor_burn_strategy", + "type": "s1_eternum::models::config::LaborBurnPrStrategy" }, { - "name": "cost", + "name": "predefined_resource_burn_cost", "type": "core::array::Span::<(core::integer::u8, core::integer::u128)>" } ], @@ -3803,7 +3810,6 @@ "set_stamina_refill_config", "set_leveling_config", "set_production_config", - "set_labor_config", "set_speed_config", "set_hyperstructure_config", "set_bank_config", @@ -3823,7 +3829,7 @@ ] }, { - "address": "0x6c0ae788bf4a46b49a57a67944bfb614c8da00b2b99c5d2917ec9bafb8ed460", + "address": "0x502c164cb455df87523c1dedd1bca31f84d2e606ddc65bcb269a498aa359ed", "class_hash": "0x52cc13796077949a91149c8870679bff30e880faacc1696c444db1ffc2e03ba", "abi": [ { @@ -4061,8 +4067,8 @@ ] }, { - "address": "0x1c8793d542cb6fb3cb140279ece63cdb8265868874e2aed3dce8a7b7cffd256", - "class_hash": "0x3f098fd71b6f1a1437772a724b7b3fa91389d3cc9cb946381ff049f4b4deafd", + "address": "0x7f180ec4de002861bf8e86cdd9f41e19165c468ea7703ccc7c707702fa6909c", + "class_hash": "0x568e9e9963345b80ed1bfcf91d08d78dd12bcc96280ce9f85ec3a104f602594", "abi": [ { "type": "impl", @@ -4275,7 +4281,7 @@ ] }, { - "address": "0x4204a54ee15c321687de3b19ca4ccc01a65a1dff5b034cb6799ff32f73f106f", + "address": "0x7287d38e8142f45849f596515a72595b9f61d7eee866f12f5da6befec1ccd3e", "class_hash": "0x41e1faef49fb72e1e20ffcf0c2c15e99f80cf95dc8ae3414b5c0e31ecce6b6f", "abi": [ { @@ -4451,7 +4457,7 @@ ] }, { - "address": "0x345779feb4e212431505dff8d8581c38de82201ad9cb6bc32d7bb547087f402", + "address": "0x654e2cfc842dd37395a4595dc8bb78f6546c2b377b5fa74ff2487a3ea8c25d6", "class_hash": "0x6178332d6302e2ccebecc0cdf7ef676443384f9e3dcffbcbb1cb9056c05b11e", "abi": [ { @@ -4750,8 +4756,8 @@ ] }, { - "address": "0xd4a3c274fbdc8ca6fc0c0a2e1bdb9f4ef78ec6efe253592e936bd2e5db712f", - "class_hash": "0x7e3fc4e262618f16424b6d0014737c31110891610b18fb44788169480b83113", + "address": "0x1c148f3082414b1bf1320d421bad2a325675545f1f213af3219c3727f0de11e", + "class_hash": "0xa9133f3532a2a84bb5594c4cd32f77d1c8618954f3410c8b2068104fa39987", "abi": [ { "type": "impl", @@ -5127,8 +5133,8 @@ ] }, { - "address": "0x12b32981130d1089c5642125fbe96cdb4da0562e904eb8da590a30ea4f0aa9d", - "class_hash": "0x56e732616b199de6b6f08b185d4a925ca611a466ac94263004af7d72f81084c", + "address": "0x171c6fae95acd58233dfa472e86184a53f42da7d9a4dd94ff4b2a2f3dd8e9de", + "class_hash": "0x49e8054a2fde6f49ce8b2563d677efd248bbeadf1f753e59a41ba7d3b9efe8f", "abi": [ { "type": "impl", @@ -5400,8 +5406,8 @@ ] }, { - "address": "0x43b2a3f4e47fa52ef2549162f89258dbcbd23bc62a51d0a331b80039a66bc9b", - "class_hash": "0x1829437a65fddf03e8f1322558035b38be8c06a5dd81f6a863a68569364b4cc", + "address": "0x6f29997ad3fec03fa79e043d69260b39baf0690cc5198bdec510ba0d9d200af", + "class_hash": "0x43b25f249e159cfbe93bb91651c5833cc04dda10534c2b6a64eab6ec260cd63", "abi": [ { "type": "impl", @@ -5685,8 +5691,8 @@ ] }, { - "address": "0x6e173c5aca48a948de710aea5492c1df18a3f477b666a9af82281e1024e7bd2", - "class_hash": "0x466e7ebd1333acd3f8d1280605da3d47f0defc727e4e14a55d41e088272f936", + "address": "0x79300036c247389c377da6b3f01106509aa35c75e16a290d385ceec66857f98", + "class_hash": "0x6feebc73f723c38719ee76e2499d8dd53fc1a2c9a30027ef28eeb642944cb8d", "abi": [ { "type": "impl", @@ -5919,7 +5925,7 @@ ] }, { - "address": "0x7ad2d6a7a566fece8c3cb08b96ca16c43f6981c77f7e1b2fa2112aac2976661", + "address": "0x34a8564ce24af9c57333fdf579945eba6a99a0624ca0d0a428905e074c2ada0", "class_hash": "0x6a06d111761024260598c4cab0bad06ba15ec09331b176f9223e62ef2093508", "abi": [ { @@ -6136,7 +6142,7 @@ ] }, { - "address": "0x5f20dfb2ac256e7b8394d2ac6bbd12288c2844c64143a87e27cb5bd3027ebc0", + "address": "0x442687ef27c6fcb84177efac8b75ec80b8be87d40f9befe2780bf2ea98a8c08", "class_hash": "0x57f36faf3ab21b910521f361bbc7bcd09758bc4ba46015f2bad0f15f6bf53ff", "abi": [ { @@ -6340,8 +6346,8 @@ ] }, { - "address": "0x47773b52867c0867b40b26408e3ff84fca0b1a9afe55c0cb0fe284c1a18c3d8", - "class_hash": "0x580ae58de580e41af4107e2b651ba52fa4ebeb5266568c6658cfa95fdecf48b", + "address": "0x56347b8808383046242a9240124ac42b4d8a718ba2925bb900ba6a3ac7c8454", + "class_hash": "0x57ccb39e09ebb4b3344d31fcda27a29738766869446911235aa8cce0fb31af5", "abi": [ { "type": "impl", @@ -6528,6 +6534,26 @@ } ] }, + { + "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": "interface", "name": "s1_eternum::systems::production::contracts::IProductionContract", @@ -6606,19 +6632,19 @@ }, { "type": "function", - "name": "make_production_labor", + "name": "burn_other_resources_for_labor_production", "inputs": [ { "name": "entity_id", "type": "core::integer::u32" }, { - "name": "resource_type", - "type": "core::integer::u8" + "name": "resource_types", + "type": "core::array::Span::" }, { - "name": "labor_amount", - "type": "core::integer::u128" + "name": "resource_amounts", + "type": "core::array::Span::" } ], "outputs": [], @@ -6626,19 +6652,39 @@ }, { "type": "function", - "name": "burn_production_labor", + "name": "burn_labor_resources_for_other_production", "inputs": [ { - "name": "entity_id", + "name": "from_entity_id", "type": "core::integer::u32" }, { - "name": "resource_type", - "type": "core::integer::u8" + "name": "labor_amounts", + "type": "core::array::Span::" }, { - "name": "labor_amount", - "type": "core::integer::u128" + "name": "produced_resource_types", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "burn_other_predefined_resources_for_resources", + "inputs": [ + { + "name": "from_entity_id", + "type": "core::integer::u32" + }, + { + "name": "produced_resource_types", + "type": "core::array::Span::" + }, + { + "name": "production_tick_counts", + "type": "core::array::Span::" } ], "outputs": [], @@ -6769,14 +6815,15 @@ "destroy_building", "pause_building_production", "resume_building_production", - "make_production_labor", - "burn_production_labor", + "burn_other_resources_for_labor_production", + "burn_labor_resources_for_other_production", + "burn_other_predefined_resources_for_resources", "upgrade" ] }, { - "address": "0x30b9c5bf6c05b8e950901079bba39766f4a4d23466f2df0258e1ecca3731e19", - "class_hash": "0x227365531efc583855affe2ccf2e38c08b13436e71228a003960a1f45d05ec3", + "address": "0x13f688b9e847a188d6e3306c57ad4cedc846207ec0d4214d3adb966f89abda6", + "class_hash": "0x624789ed60dbb1ffa7075f19b968fe21082b4a2e24649624450f6a032867404", "abi": [ { "type": "impl", @@ -7017,8 +7064,8 @@ ] }, { - "address": "0x1e859bd917c725f938d7ffecdd9f687e04af2b44cf534848895e7efa946378a", - "class_hash": "0x62d54b6b3e65921272e1fb14ea5388119d3910abc1856ea79db87c6ca1ae90e", + "address": "0x3eb0f666216653f8bd1b27b4640e4730580f5899b73456c059fb157e1e1e9a", + "class_hash": "0x7361d220d222dce19ff7a7334da11cfe9b9ef8bdeb2ab068d6f0b435db0255a", "abi": [ { "type": "impl", @@ -7326,8 +7373,8 @@ ] }, { - "address": "0x7e9f737c5c89d0f4e2c2b9f0ffda396da22b2c9fa14106f2d940dddae35497a", - "class_hash": "0x3565c033b9ab7fd56f044c9ba70e983b30354e3d35d6d0c65592a6e7a2e131d", + "address": "0x524a24ace42046b73845153567d5a31ca914aaabbf34fd4c4fe758da41e66df", + "class_hash": "0x26911f009cb5948dcbf27e3782f3572436f26d7e70bbe87957819015b67f20c", "abi": [ { "type": "impl", @@ -7586,7 +7633,7 @@ ] }, { - "address": "0x6f2ca7adc33ebf6cbe7d539cb50dff53cffcc701ac252b65eadc9454e12e247", + "address": "0x6f1ecad7e45043715d052ec7075910fe49379ccec56caa30773bffb1bd8ce42", "class_hash": "0x59c55e3ca487de1ccb5b6cf174ac5c70d98b4af6db76b9987843dc08520cef3", "abi": [ { @@ -7823,8 +7870,8 @@ ] }, { - "address": "0x67d9fbdbb222b30679aa4b6d4d15f0e16f984603996111c6ef8b425293d29c7", - "class_hash": "0x1ba743062d12d4e056335b18ad188f32ece928103d1c2fe57c4e57148de9d57", + "address": "0x3c4b44ff5b2dd18a8e388d38f453cfc4c5262d110b13f5f26a5c28e5ac40fd9", + "class_hash": "0x291d4795f52427b407b35a8b4d94e001b62d37dcd77faff84b41361e29a4f0d", "abi": [ { "type": "impl", @@ -8068,8 +8115,8 @@ ] }, { - "address": "0x4949075e31363f02ac3d4374bf1cb726873cd55a3f572dc85ddc9f8ef89c351", - "class_hash": "0xb00fb0d9ea7c7a27c1271c9de87d829f7d690e3f6966ebd69204743304fb3a", + "address": "0x2dde744795e94a6c8934f224741da3e0408d82c07463858b7566664f7bb8633", + "class_hash": "0x357ca13c3a158d43bc1f5d7c902eefbeadad3a3b43c6228bb5727a78a310d6f", "abi": [ { "type": "impl", @@ -8369,8 +8416,8 @@ ] }, { - "address": "0x5bb3ed403abb2ceeb6ce8911052a4f9c922f2d4777427454fcbea605192ddc9", - "class_hash": "0x49442e8242359125e36140e04d2acaa96e4d28397ae604a5793ece34587ba8b", + "address": "0x7d2fb638516c4a32858ef7bf09865389edc60c3cb9e6d4d0049c0ad7a214c6a", + "class_hash": "0x4dcd50d3a264279a3745d63f7b48d1753991091101ff4bd9b930de1f0d9fa16", "abi": [ { "type": "impl", @@ -8613,8 +8660,8 @@ ] }, { - "address": "0x4d6d43ec3fe5fb0d22398f9aee1846285e7c44bfa3900b7e490d18a9fb4eae4", - "class_hash": "0x2d6f05a2d585b43e9c6e30c686465d8e73413b059812129cfa372a9f7e6971b", + "address": "0x133660106d03c9811a9ce63fe2464e99f0816b83439c55003ebdde53f560655", + "class_hash": "0x24ad1ba7ad9d438f816ae4e8c1451c5db113e15dcac0fde483e3472b55ae715", "abi": [ { "type": "impl", @@ -9065,12 +9112,6 @@ "tag": "s1_eternum-HyperstructureResourceConfig", "selector": "0x344c119cf22cf69ac0954dadeb846930657d9d80e550aec607fe0d285e2d1b6" }, - { - "members": [], - "class_hash": "0x328f1fff82bb8aeba6b1e75fc1edf15d815324486c97df194a8ad682bd419f6", - "tag": "s1_eternum-LaborConfig", - "selector": "0x6f056844c678da88f4b2829f7252b9264702448b0305224729f30026db3f644" - }, { "members": [], "class_hash": "0x5f9e1048bc3fcab978c16ea514c906e08a6a908a551b01c9d8d56991eb3be12", @@ -9187,7 +9228,7 @@ }, { "members": [], - "class_hash": "0x4482f857b3d5e6d6d1fb9d5680663a1e0eda04699b105aa565490498e395d1e", + "class_hash": "0x1dbf495a2614ebff450da2c0b88a9ada07716e5c3546c7dab92691e40bcee21", "tag": "s1_eternum-ProductionConfig", "selector": "0x38bacafc2ceed54f95033f7529efa9559f877aea41db072b797235cee383a06" }, @@ -9253,7 +9294,7 @@ }, { "members": [], - "class_hash": "0xc58be0c889a407b92a5b1df7f1221567a43ee5a3f5315464f3c598aafa1725", + "class_hash": "0x295211961c83e77d8c315214c3ac2bff8890e822b3b9f7e244af4a905cfd53e", "tag": "s1_eternum-Resource", "selector": "0x6bd14dc16a7f05252fcf2fb66630b8f05d39d75b36f55013334a4b3bb8fec57" }, diff --git a/contracts/game/src/constants.cairo b/contracts/game/src/constants.cairo index a3dac4a2d..675471566 100644 --- a/contracts/game/src/constants.cairo +++ b/contracts/game/src/constants.cairo @@ -100,10 +100,10 @@ mod ResourceTypes { const ETHEREAL_SILICA: u8 = 21; const DRAGONHIDE: u8 = 22; - // THE RESOURCE IDS ABOVE MUST MATCH THE + // THE RESOURCE IDS ABOVE MUST MATCH THE // RESOURCE IDS IN THE SEASON PASS - const DEMONHIDE: u8 = 23; + const LABOR: u8 = 23; const EARTHEN_SHARD: u8 = 24; const DONKEY: u8 = 25; const KNIGHT: u8 = 26; @@ -112,16 +112,8 @@ mod ResourceTypes { const WHEAT: u8 = 29; const FISH: u8 = 30; const LORDS: u8 = 31; - // note: resource labor is max u8 - resource_type -// e.g Stone labor = 255 - 1 = 254 } -const FIRST_REGULAR_RESOURCE_ID: u8 = 1; -const LAST_REGULAR_RESOURCE_ID: u8 = 31; - - -const FIRST_LABOR_RESOURCE_ID: u8 = 255 - LAST_REGULAR_RESOURCE_ID; -const LAST_LABOR_RESOURCE_ID: u8 = 255 - FIRST_REGULAR_RESOURCE_ID; fn resource_type_name(resource_type: u8) -> ByteArray { if resource_type == 1 { @@ -169,7 +161,7 @@ fn resource_type_name(resource_type: u8) -> ByteArray { } else if resource_type == 22 { "DRAGONHIDE" } else if resource_type == 23 { - "DEMONHIDE" + "LABOR" } else if resource_type == 24 { "EARTHEN SHARD" } else if resource_type == 25 { @@ -184,71 +176,8 @@ fn resource_type_name(resource_type: u8) -> ByteArray { "WHEAT" } else if resource_type == 30 { "FISH" - } else if resource_type == LAST_REGULAR_RESOURCE_ID { + } else if resource_type == 31 { "LORDS" - // LABOR - } else if resource_type == 255 - 1 { - "STONE LABOR" - } else if resource_type == 255 - 2 { - "COAL LABOR" - } else if resource_type == 255 - 3 { - "WOOD LABOR" - } else if resource_type == 255 - 4 { - "COPPER LABOR" - } else if resource_type == 255 - 5 { - "IRONWOOD LABOR" - } else if resource_type == 255 - 6 { - "OBSIDIAN LABOR" - } else if resource_type == 255 - 7 { - "GOLD LABOR" - } else if resource_type == 255 - 8 { - "SILVER LABOR" - } else if resource_type == 255 - 9 { - "MITHRAL LABOR" - } else if resource_type == 255 - 10 { - "ALCHEMICAL SILVER LABOR" - } else if resource_type == 255 - 11 { - "COLD IRON LABOR" - } else if resource_type == 255 - 12 { - "DEEP CRYSTAL LABOR" - } else if resource_type == 255 - 13 { - "RUBY LABOR" - } else if resource_type == 255 - 14 { - "DIAMONDS LABOR" - } else if resource_type == 255 - 15 { - "HARTWOOD LABOR" - } else if resource_type == 255 - 16 { - "IGNIUM LABOR" - } else if resource_type == 255 - 17 { - "TWILIGHT QUARTZ LABOR" - } else if resource_type == 255 - 18 { - "TRUE ICE LABOR" - } else if resource_type == 255 - 19 { - "ADAMANTINE LABOR" - } else if resource_type == 255 - 20 { - "SAPPHIRE LABOR" - } else if resource_type == 255 - 21 { - "ETHEREAL SILICA LABOR" - } else if resource_type == 255 - 22 { - "DRAGONHIDE LABOR" - } else if resource_type == 255 - 23 { - "DEMONHIDE LABOR" - } else if resource_type == 255 - 24 { - "EARTHEN SHARD LABOR" - } else if resource_type == 255 - 25 { - "DONKEY LABOR" - } else if resource_type == 255 - 26 { - "KNIGHT LABOR" - } else if resource_type == 255 - 27 { - "CROSSBOWMAN LABOR" - } else if resource_type == 255 - 28 { - "PALADIN LABOR" - } else if resource_type == 255 - 29 { - "WHEAT LABOR" - } else if resource_type == 255 - 30 { - "FISH LABOR" - } else if resource_type == 255 - 31 { - "LORDS LABOR" } else { format!("{} (unknown resource name)", resource_type) } @@ -336,7 +265,7 @@ fn get_resources_without_earthenshards() -> Span { ResourceTypes::ADAMANTINE, ResourceTypes::MITHRAL, ResourceTypes::DRAGONHIDE, - ResourceTypes::DEMONHIDE, + ResourceTypes::LABOR, ResourceTypes::DONKEY, ResourceTypes::KNIGHT, ResourceTypes::CROSSBOWMAN, diff --git a/contracts/game/src/models.cairo b/contracts/game/src/models.cairo index 3912e23e0..e8bec1987 100644 --- a/contracts/game/src/models.cairo +++ b/contracts/game/src/models.cairo @@ -30,7 +30,6 @@ mod resource { mod resource; mod production { mod building; - mod labor; mod production; } } diff --git a/contracts/game/src/models/config.cairo b/contracts/game/src/models/config.cairo index 2e7dc5101..2e6772c7e 100644 --- a/contracts/game/src/models/config.cairo +++ b/contracts/game/src/models/config.cairo @@ -525,27 +525,102 @@ pub struct LevelingConfig { #[derive(IntrospectPacked, Copy, Drop, Serde)] #[dojo::model] +// rename to ResourceFactoryConfig pub struct ProductionConfig { #[key] resource_type: u8, - // production amount per tick - produced_amount: u128, - // todo: remove - labor_cost: u128, -} - + // production amount per building, per tick + amount_per_building_per_tick: u128, + // values needed for converting resources to labor and vice versa + labor_burn_strategy: LaborBurnPrStrategy, + // values needed for converting multiple resources to a single resource + multiple_resource_burn_strategy: MultipleResourceBurnPrStrategy, +} + +/// A strategy for converting resources using a labor-based intermediary system. +/// This system allows for resource conversion while maintaining economic balance +/// through resource rarity and depreciation mechanics. +/// +/// # Fields +/// * `resource_rarity` - Defines both the resource's relative value and its labor conversion rate +/// * `depreciation_percent_num` - Numerator of depreciation fraction (e.g., 2 for 20%) +/// * `depreciation_percent_denom` - Denominator of depreciation fraction (e.g., 10 for 20%) +/// +/// # Resource to Labor Conversion +/// When converting a resource to labor, the formula is: +/// ``` +/// labor_amount = resource_amount * resource_rarity +/// ``` +/// +/// # Labor to Resource Conversion +/// When converting labor to a resource, the formula includes depreciation: +/// ``` +/// resource_amount = labor_amount / target_resource_rarity * (1 - depreciation) +/// ``` +/// +/// # Example +/// Given the following configuration: +/// ``` +/// Resource Rarity Depreciation +/// Wood 100 20% (2/10) +/// Gold 1000 10% (1/10) +/// ``` +/// +/// ## Converting Wood to Gold +/// 1. Convert 3 wood to labor: +/// * Labor = 3 * 100 = 300 labor +/// 2. Convert labor to gold (with 10% depreciation): +/// * Gold = 300 / 1000 * (1 - 1/10) = 0.27 gold +/// +/// ## Converting Gold to Wood +/// 1. Convert 7 gold to labor: +/// * Labor = 7 * 1000 = 7000 labor +/// 2. Convert labor to wood (with 20% depreciation): +/// * Wood = 7000 / 100 * (1 - 2/10) = 56 wood +/// +/// # Note +/// The depreciation is always applied based on the target resource's depreciation rate, +/// creating an intentional loss in the conversion process +/// #[derive(IntrospectPacked, Copy, Drop, Serde)] -#[dojo::model] -pub struct LaborConfig { - #[key] - // e.g when configuring stone labor, resource_type = stone - resource_type: u8, - // uuid used to get the ResourceCost - input_id: ID, - // number of resources required to make labor - input_count: u8, +pub struct LaborBurnPrStrategy { + /// Represents the resource's rarity and determines labor conversion rate. + /// Higher values indicate rarer resources that yield more labor when converted. + resource_rarity: u128, + /// Numerator of the depreciation percentage fraction. + depreciation_percent_num: u16, + /// Denominator of the depreciation percentage fraction. + depreciation_percent_denom: u16, + /// Amount of wheat to burn per labor + wheat_burn_per_labor: u128, + /// Amount of fish to burn per labor + fish_burn_per_labor: u128, +} + +/// A simple production strategy that requires burning multiple resources to produce output. +/// +/// # Fields +/// * `required_resources_id` - ID referencing the list of required input resources +/// * `required_resources_count` - Number of different resources needed for production +/// +/// # Example +/// If crafting stone requires: +/// - 2 coal +/// - 1 wood +/// - 1 coldiron +/// Then: +/// - required_resources_id would point to the id of ResourceCost +/// - required_resources_count would be 3 +/// +#[derive(IntrospectPacked, Copy, Drop, Serde)] +pub struct MultipleResourceBurnPrStrategy { + /// ID referencing the list of required input resources + required_resources_id: ID, + /// Number of different resource types needed + required_resources_count: u8, } + // vrf #[derive(IntrospectPacked, Copy, Drop, Serde)] #[dojo::model] @@ -728,7 +803,6 @@ impl HyperstructureResourceConfigImpl of HyperstructureResourceConfigTrait { } - #[derive(IntrospectPacked, Copy, Drop, Serde)] #[dojo::model] pub struct QuestRewardConfig { diff --git a/contracts/game/src/models/quest.cairo b/contracts/game/src/models/quest.cairo index bd14b4cbf..19ff9d07b 100644 --- a/contracts/game/src/models/quest.cairo +++ b/contracts/game/src/models/quest.cairo @@ -8,4 +8,4 @@ pub struct Quest { #[key] config_id: ID, completed: bool, -} \ No newline at end of file +} diff --git a/contracts/game/src/models/resource/production/building.cairo b/contracts/game/src/models/resource/production/building.cairo index 27e55b6e4..772ea1ce3 100644 --- a/contracts/game/src/models/resource/production/building.cairo +++ b/contracts/game/src/models/resource/production/building.cairo @@ -103,7 +103,7 @@ impl BuildingProductionImpl of BuildingProductionTrait { fn produced_resource(self: Building) -> u8 { match self.category { BuildingCategory::None => 0, - BuildingCategory::Castle => 0, + BuildingCategory::Castle => ResourceTypes::LABOR, BuildingCategory::Resource => self.produced_resource_type, BuildingCategory::Farm => ResourceTypes::WHEAT, BuildingCategory::FishingVillage => ResourceTypes::FISH, @@ -181,7 +181,6 @@ impl BuildingProductionImpl of BuildingProductionTrait { // save production produced_resource.production = production; world.write_model(@produced_resource); - // todo add event here } @@ -218,10 +217,10 @@ impl BuildingProductionImpl of BuildingProductionTrait { let produced_resource_type = (*self).produced_resource(); let production_config: ProductionConfig = world.read_model(produced_resource_type); - let bonus_amount: u128 = (production_config.produced_amount * (*self.bonus_percent).into()) + let bonus_amount: u128 = (production_config.amount_per_building_per_tick * (*self.bonus_percent).into()) / PercentageValueImpl::_100().into(); - production_config.produced_amount + bonus_amount + production_config.amount_per_building_per_tick + bonus_amount } @@ -288,9 +287,8 @@ impl BuildingProductionImpl of BuildingProductionTrait { // first so that we can recalculate and add the new production rate let recipient_building_resource_production_amount: u128 = recipient_building.production_amount(ref world); let mut recipient_building_resource_production: Production = recipient_building_resource.production; - recipient_building_resource_production.decrease_production_rate( - recipient_building_resource_production_amount - ); + recipient_building_resource_production + .decrease_production_rate(recipient_building_resource_production_amount); // update the recipient building's bonus percent if delete { @@ -301,9 +299,8 @@ impl BuildingProductionImpl of BuildingProductionTrait { world.write_model(@recipient_building); // update the global resource production to reflect the new production rate - recipient_building_resource_production.increase_production_rate( - recipient_building.production_amount(ref world) - ); + recipient_building_resource_production + .increase_production_rate(recipient_building.production_amount(ref world)); recipient_building_resource.production = recipient_building_resource_production; world.write_model(@recipient_building_resource); } diff --git a/contracts/game/src/models/resource/production/labor.cairo b/contracts/game/src/models/resource/production/labor.cairo deleted file mode 100644 index 4c4f8b9e9..000000000 --- a/contracts/game/src/models/resource/production/labor.cairo +++ /dev/null @@ -1,80 +0,0 @@ -use dojo::model::ModelStorage; -use dojo::world::WorldStorage; -use s1_eternum::alias::ID; -use s1_eternum::constants::{FIRST_LABOR_RESOURCE_ID, LAST_LABOR_RESOURCE_ID}; -use s1_eternum::models::config::{LaborConfig, ProductionConfig}; -use s1_eternum::models::resource::production::production::{Production, ProductionImpl}; -use s1_eternum::models::resource::resource::{Resource, ResourceImpl, ResourceCost}; -use s1_eternum::models::structure::{Structure, StructureImpl}; - - -#[generate_trait] -impl LaborImpl of LaborTrait { - fn labor_resource_from_regular(resource_type: u8) -> u8 { - return 255 - resource_type; - } - - fn resource_from_labor(labor_type: u8) -> u8 { - return 255 - labor_type; - } - - fn is_labor(resource_type: u8) -> bool { - return (resource_type >= FIRST_LABOR_RESOURCE_ID && resource_type <= LAST_LABOR_RESOURCE_ID); - } - - fn mould_labor(ref world: WorldStorage, entity_id: ID, resource_type: u8, labor_amount: u128) { - assert!(resource_type.is_non_zero(), "wrong labor resource type"); - assert!(labor_amount.is_non_zero(), "zero labor amount"); - assert!(entity_id.is_non_zero(), "zero entity id"); - - // ensure there is a config for this labor resource - let labor_config: LaborConfig = world.read_model(resource_type); - let input_count = labor_config.input_count; - assert!(input_count.is_non_zero(), "can't make labor for specified resource"); - - for i in 0 - ..input_count { - let resource_cost: ResourceCost = world.read_model((labor_config.input_id, i)); - let input_resource_type = resource_cost.resource_type; - let input_resource_amount = resource_cost.amount; - assert!(input_resource_amount.is_non_zero(), "labor resource cost is 0"); - - // make payment for labor - let mut input_resource = ResourceImpl::get(ref world, (entity_id, input_resource_type)); - input_resource.burn(input_resource_amount * labor_amount); - input_resource.save(ref world); - }; - - // make labor resource - let labor_resource_type = Self::labor_resource_from_regular(resource_type); - let mut labor_resource = ResourceImpl::get(ref world, (entity_id, labor_resource_type)); - labor_resource.add(labor_amount); - labor_resource.save(ref world); - // todo add event here - } - - // burn labor for resource production - fn burn_labor(ref world: WorldStorage, entity_id: ID, resource_type: u8, labor_amount: u128) { - assert!(resource_type.is_non_zero(), "wrong labor resource type"); - assert!(labor_amount.is_non_zero(), "zero labor amount"); - assert!(entity_id.is_non_zero(), "zero entity id"); - - // ensure entity is a structure - let entity_structure: Structure = world.read_model(entity_id); - assert!(entity_structure.is_structure(), "entity is not a structure"); - - // ** ADD LABOR AMOUNT TO PRODUCTION ** // - - let mut resource = ResourceImpl::get(ref world, (entity_id, resource_type)); - let resource_production_config: ProductionConfig = world.read_model(resource_type); - resource.production.spend_labor_resource(@resource_production_config, labor_amount); - world.write_model(@resource); - - // ** BURN LABOR AMOUNT FROM LABOR RESOURCE ** // - let labor_resource_type = Self::labor_resource_from_regular(resource_type); - let mut labor_resource = ResourceImpl::get(ref world, (entity_id, labor_resource_type)); - labor_resource.burn(labor_amount); - labor_resource.save(ref world); - // todo add event here - } -} diff --git a/contracts/game/src/models/resource/production/production.cairo b/contracts/game/src/models/resource/production/production.cairo index fc91e2c0a..fc06d15c0 100644 --- a/contracts/game/src/models/resource/production/production.cairo +++ b/contracts/game/src/models/resource/production/production.cairo @@ -5,9 +5,13 @@ use core::option::OptionTrait; use dojo::model::ModelStorage; use dojo::world::WorldStorage; use s1_eternum::alias::ID; -use s1_eternum::models::config::{ProductionConfig}; +use s1_eternum::models::config::{ProductionConfig, LaborBurnPrStrategy, MultipleResourceBurnPrStrategy}; use s1_eternum::models::config::{TickConfig, TickImpl, TickTrait}; -use s1_eternum::models::resource::resource::{Resource, RESOURCE_PRECISION, ResourceImpl, ResourceTypes, ResourceFoodImpl}; +use s1_eternum::models::resource::resource::{ + Resource, RESOURCE_PRECISION, ResourceImpl, ResourceTypes, ResourceFoodImpl, ResourceCost +}; +use s1_eternum::models::structure::{Structure, StructureTrait, StructureImpl, StructureCategory}; +use s1_eternum::utils::math::{min}; use starknet::get_block_timestamp; #[derive(IntrospectPacked, Copy, Drop, Serde)] @@ -16,14 +20,12 @@ pub struct Production { building_count: u8, // production rate per tick production_rate: u128, - // labor units left for production - labor_units_left: u64, - // last tick updated + // output amount left to be produced + output_amount_left: u128, + // last time this struct was updated last_updated_tick: u32, } -// We could make this a nice JS Class with a constructor and everything -// Then maintaining logic in client will be easy #[generate_trait] impl ProductionImpl of ProductionTrait { fn has_building(self: @Production) -> bool { @@ -49,22 +51,15 @@ impl ProductionImpl of ProductionTrait { self.production_rate -= production_rate; } - fn spend_labor_resource(ref self: Production, production_config: @ProductionConfig, labor_amount: u128) { - assert!(labor_amount.is_non_zero(), "zero labor amount"); - assert!( - labor_amount % RESOURCE_PRECISION == 0, "labor amount not exactly divisible by resource precision" - ); - self.increase_labor_units(labor_amount.try_into().unwrap()); - } #[inline(always)] - fn increase_labor_units(ref self: Production, labor_units: u64) { - self.labor_units_left += labor_units; + fn increase_output_amout_left(ref self: Production, amount: u128) { + self.output_amount_left += amount; } #[inline(always)] - fn decrease_labor_units(ref self: Production, labor_units: u64) { - self.labor_units_left -= labor_units; + fn decrease_output_amout_left(ref self: Production, amount: u128) { + self.output_amount_left -= amount; } #[inline(always)] @@ -82,7 +77,6 @@ impl ProductionImpl of ProductionTrait { fn harvest( ref self: Production, ref resource: Resource, tick: @TickConfig, production_config: @ProductionConfig ) -> bool { - // get start tick before updating last updated tick let start_tick = self.last_updated_tick; @@ -98,24 +92,17 @@ impl ProductionImpl of ProductionTrait { if !self.has_building() { return false; } - - // total units produced by all buildings - let mut labor_units_burned: u128 - = (current_tick.into() - start_tick.into()) - * self.building_count.into(); - - // limit units produced by labor units left + + // total amount of time resources were produced for + let num_ticks_produced: u128 = current_tick.into() - start_tick.into(); + let mut total_produced_amount = num_ticks_produced * self.production_rate; + + // limit amount of resources produced by the output_amount_left if !Self::is_free_production(resource.resource_type) { - if labor_units_burned > self.labor_units_left.into() { - labor_units_burned = self.labor_units_left.into(); - } - // update labor cycles left - self.decrease_labor_units(labor_units_burned.try_into().unwrap()); + total_produced_amount = min(total_produced_amount, self.output_amount_left); + self.decrease_output_amout_left(total_produced_amount); } - // get total produced amount - let total_produced_amount: u128 = labor_units_burned * self.production_rate; - // update resource balance resource.add(total_produced_amount); @@ -123,3 +110,136 @@ impl ProductionImpl of ProductionTrait { return total_produced_amount.is_non_zero(); } } + + +#[generate_trait] +impl ProductionStrategyImpl of ProductionStrategyTrait { + // burn other resource for production of labor + fn burn_other_resource_for_labor_production( + ref world: WorldStorage, from_entity_id: ID, from_resource_type: u8, from_resource_amount: u128 + ) { + assert!(from_resource_type.is_non_zero(), "wrong resource type"); + assert!(from_resource_amount.is_non_zero(), "zero resource amount"); + assert!(from_entity_id.is_non_zero(), "zero entity id"); + + // ensure rarity has been set for resource + let from_resource_production_config: ProductionConfig = world.read_model(from_resource_type); + let from_resource_labor_burn_strategy: LaborBurnPrStrategy = from_resource_production_config + .labor_burn_strategy; + assert!( + from_resource_labor_burn_strategy.resource_rarity.is_non_zero(), "resource can't be converted to labor" + ); + + // remove the resource amount from from_resource balance + let mut from_resource = ResourceImpl::get(ref world, (from_entity_id, from_resource_type)); + from_resource.burn(from_resource_amount); + from_resource.save(ref world); + + // increase labor balance of the entity + let produced_labor_amount: u128 = from_resource_amount * from_resource_labor_burn_strategy.resource_rarity; + let mut labor_resource = ResourceImpl::get(ref world, (from_entity_id, ResourceTypes::LABOR)); + let mut labor_resource_production = labor_resource.production; + labor_resource_production.increase_output_amout_left(produced_labor_amount); + labor_resource.production = labor_resource_production; + labor_resource.save(ref world); + // todo add event here + } + + // burn labor for production of some other resource + fn burn_labor_resource_for_other_production( + ref world: WorldStorage, from_entity_id: ID, labor_amount: u128, produced_resource_type: u8 + ) { + assert!(labor_amount % RESOURCE_PRECISION == 0, "labor amount must be exactly divisible by RESOURCE_PRECISION"); + assert!(labor_amount.is_non_zero(), "zero labor amount"); + assert!(from_entity_id.is_non_zero(), "zero entity id"); + + // burn labor from balance + let mut labor_resource = ResourceImpl::get(ref world, (from_entity_id, ResourceTypes::LABOR)); + labor_resource.burn(labor_amount); + labor_resource.save(ref world); + + // ensure rarity has been set for resource + let produced_resource_production_config: ProductionConfig = world.read_model(produced_resource_type); + let produced_resource_labor_burn_strategy: LaborBurnPrStrategy = produced_resource_production_config + .labor_burn_strategy; + assert!( + produced_resource_labor_burn_strategy.resource_rarity.is_non_zero(), + "can't convert labor to specified resource" + ); + + // burn wheat and fish + let wheat_burn_amount: u128 = labor_amount + / RESOURCE_PRECISION + * produced_resource_labor_burn_strategy.wheat_burn_per_labor; + let fish_burn_amount: u128 = labor_amount + / RESOURCE_PRECISION + * produced_resource_labor_burn_strategy.fish_burn_per_labor; + ResourceFoodImpl::pay(ref world, from_entity_id, wheat_burn_amount, fish_burn_amount); + + // get the amount of produced resource the specified labor can create + let produced_resource_rarity: u128 = produced_resource_labor_burn_strategy.resource_rarity; + let produced_resource_depreciation_num: u128 = produced_resource_labor_burn_strategy + .depreciation_percent_num + .into(); + let produced_resource_depreciation_denom: u128 = produced_resource_labor_burn_strategy + .depreciation_percent_denom + .into(); + let produced_resource_depreciation_diff: u128 = (produced_resource_depreciation_denom + - produced_resource_depreciation_num); + let produced_resource_amount: u128 = (labor_amount + * produced_resource_depreciation_diff + / produced_resource_rarity + / produced_resource_depreciation_denom); + + // add produced resource amount to factory + let mut produced_resource = ResourceImpl::get(ref world, (from_entity_id, produced_resource_type)); + let mut produced_resource_production = produced_resource.production; + produced_resource_production.increase_output_amout_left(produced_resource_amount); + produced_resource.production = produced_resource_production; + produced_resource.save(ref world); + // todo add event here + } + + + // burn multiple other predefined resources for production of one resource + // e.g burn stone, coal and copper for production of gold + fn burn_other_predefined_resources_for_resource( + ref world: WorldStorage, from_entity_id: ID, produced_resource_type: u8, production_tick_count: u128 + ) { + assert!(produced_resource_type.is_non_zero(), "wrong resource type"); + assert!(production_tick_count.is_non_zero(), "zero production tick count"); + assert!(from_entity_id.is_non_zero(), "zero entity id"); + + // ensure there is a config for this labor resource + let produced_resource_production_config: ProductionConfig = world.read_model(produced_resource_type); + let produced_resource_multiple_resource_burn_strategy: MultipleResourceBurnPrStrategy = + produced_resource_production_config + .multiple_resource_burn_strategy; + let other_resources_count = produced_resource_multiple_resource_burn_strategy.required_resources_count; + let other_resources_id = produced_resource_multiple_resource_burn_strategy.required_resources_id; + assert!(other_resources_count.is_non_zero(), "specified resource can't be produced from other resources"); + + for i in 0 + ..other_resources_count { + let other_resource_cost: ResourceCost = world.read_model((other_resources_id, i)); + let other_resource_type = other_resource_cost.resource_type; + let other_resource_amount = other_resource_cost.amount; + assert!(other_resource_amount.is_non_zero(), "specified resource cost is 0"); + + // make payment for produced resource + let mut other_resource = ResourceImpl::get(ref world, (from_entity_id, other_resource_type)); + other_resource.burn(other_resource_amount * production_tick_count); + other_resource.save(ref world); + }; + + // add produced resource amount to factory + let mut produced_resource = ResourceImpl::get(ref world, (from_entity_id, produced_resource_type)); + let mut produced_resource_production = produced_resource.production; + let amount_per_tick = produced_resource_production_config.amount_per_building_per_tick; + produced_resource_production.increase_output_amout_left(production_tick_count * amount_per_tick); + produced_resource.production = produced_resource_production; + produced_resource.save(ref world); + + // todo add event here + } +} diff --git a/contracts/game/src/models/resource/resource.cairo b/contracts/game/src/models/resource/resource.cairo index 8bc9d2734..21aa902a1 100644 --- a/contracts/game/src/models/resource/resource.cairo +++ b/contracts/game/src/models/resource/resource.cairo @@ -5,8 +5,7 @@ use dojo::model::ModelStorage; use dojo::world::WorldStorage; use s1_eternum::alias::ID; use s1_eternum::constants::{ - LAST_REGULAR_RESOURCE_ID, FIRST_LABOR_RESOURCE_ID, get_resource_probabilities, RESOURCE_PRECISION, GRAMS_PER_KG, - ResourceTypes, resource_type_name, WORLD_CONFIG_ID + get_resource_probabilities, RESOURCE_PRECISION, GRAMS_PER_KG, ResourceTypes, resource_type_name, WORLD_CONFIG_ID }; use s1_eternum::models::config::{ ProductionConfig, TickConfig, TickImpl, TickTrait, CapacityConfig, CapacityConfigCategory, CapacityConfigTrait @@ -14,7 +13,6 @@ use s1_eternum::models::config::{ use s1_eternum::models::config::{WeightConfigImpl, WeightConfig}; use s1_eternum::models::realm::Realm; use s1_eternum::models::resource::production::building::{Building, BuildingTrait, BuildingCategory, BuildingQuantityv2}; -use s1_eternum::models::resource::production::labor::{LaborImpl, LaborTrait}; use s1_eternum::models::resource::production::production::{Production, ProductionTrait}; use s1_eternum::models::structure::StructureTrait; @@ -87,7 +85,7 @@ pub struct DetachedResource { pub struct OwnedResourcesTracker { #[key] entity_id: ID, - // todo: use felt252 instead + // todo: use felt252 instead resource_types: u256 } @@ -176,14 +174,7 @@ impl ResourceImpl of ResourceTrait { fn get(ref world: WorldStorage, key: (ID, u8)) -> Resource { let mut resource: Resource = world.read_model(key); assert!(resource.entity_id.is_non_zero(), "entity id not found"); - assert!( - resource.resource_type != 0 && resource.resource_type != Bounded::MAX, "invalid resource specified (1)" - ); - assert!( - resource.resource_type <= LAST_REGULAR_RESOURCE_ID // regular resources - || resource.resource_type >= FIRST_LABOR_RESOURCE_ID, // labor resources - "invalid resource specified (2)" - ); + assert!(resource.resource_type.is_non_zero(), "invalid resource specified"); let entity_structure: Structure = world.read_model(resource.entity_id); let entity_is_structure = entity_structure.is_structure(); @@ -281,18 +272,17 @@ impl ResourceImpl of ResourceTrait { if production.last_updated_tick != current_tick { // harvest the production let production_config: ProductionConfig = world.read_model(self.resource_type); - let non_zero_harvest : bool = production.harvest(ref self, @tick, @production_config); + let non_zero_harvest: bool = production.harvest(ref self, @tick, @production_config); // limit balance by storehouse capacity if non_zero_harvest { self.limit_balance_by_storehouse_capacity(ref world); } - // update the resource production + // update the resource production self.production = production; // save the updated resource model world.write_model(@self); - // todo add event here to show amount burnt } } diff --git a/contracts/game/src/systems/config/contracts.cairo b/contracts/game/src/systems/config/contracts.cairo index d11795999..0ab934c9d 100644 --- a/contracts/game/src/systems/config/contracts.cairo +++ b/contracts/game/src/systems/config/contracts.cairo @@ -3,7 +3,8 @@ use s1_eternum::alias::ID; use s1_eternum::models::combat::{Troops}; use s1_eternum::models::config::{ TroopConfig, MapConfig, BattleConfig, MercenariesConfig, CapacityConfig, ResourceBridgeConfig, - ResourceBridgeFeeSplitConfig, ResourceBridgeWhitelistConfig, TravelFoodCostConfig, SeasonAddressesConfig + ResourceBridgeFeeSplitConfig, ResourceBridgeWhitelistConfig, TravelFoodCostConfig, SeasonAddressesConfig, + MultipleResourceBurnPrStrategy, LaborBurnPrStrategy }; use s1_eternum::models::position::Coord; use s1_eternum::models::resource::production::building::BuildingCategory; @@ -131,13 +132,15 @@ trait IMapConfig { #[starknet::interface] trait IProductionConfig { - fn set_production_config(ref self: T, resource_type: u8, produced_amount: u128); + fn set_production_config( + ref self: T, + resource_type: u8, + amount_per_building_per_tick: u128, + labor_burn_strategy: LaborBurnPrStrategy, + predefined_resource_burn_cost: Span<(u8, u128)> + ); } -#[starknet::interface] -trait ILaborConfig { - fn set_labor_config(ref self: T, resource_type: u8, cost: Span<(u8, u128)>); -} #[starknet::interface] trait ITravelStaminaCostConfig { @@ -228,12 +231,13 @@ mod config_systems { use s1_eternum::models::combat::{Troops}; use s1_eternum::models::config::{ - CapacityConfig, SpeedConfig, WeightConfig, WorldConfig, LevelingConfig, QuestRewardConfig, - MapConfig, TickConfig, ProductionConfig, BankConfig, TroopConfig, BuildingConfig, BuildingCategoryPopConfig, + CapacityConfig, SpeedConfig, WeightConfig, WorldConfig, LevelingConfig, QuestRewardConfig, MapConfig, + TickConfig, ProductionConfig, BankConfig, TroopConfig, BuildingConfig, BuildingCategoryPopConfig, PopulationConfig, HyperstructureResourceConfig, HyperstructureConfig, StaminaConfig, StaminaRefillConfig, ResourceBridgeConfig, ResourceBridgeFeeSplitConfig, ResourceBridgeWhitelistConfig, BuildingGeneralConfig, MercenariesConfig, BattleConfig, TravelStaminaCostConfig, SettlementConfig, RealmLevelConfig, - RealmMaxLevelConfig, TravelFoodCostConfig, SeasonAddressesConfig, VRFConfig, SeasonBridgeConfig, LaborConfig + RealmMaxLevelConfig, TravelFoodCostConfig, SeasonAddressesConfig, VRFConfig, SeasonBridgeConfig, + MultipleResourceBurnPrStrategy, LaborBurnPrStrategy }; use s1_eternum::models::position::{Position, PositionTrait, Coord}; @@ -364,7 +368,6 @@ mod config_systems { #[abi(embed_v0)] impl QuestConfigImpl of super::IQuestConfig { - fn set_quest_reward_config(ref self: ContractState, quest_id: ID, resources: Span<(u8, u128)>) { let mut world: WorldStorage = self.world(DEFAULT_NS()); assert_caller_is_admin(world); @@ -601,58 +604,46 @@ mod config_systems { #[abi(embed_v0)] impl ProductionConfigImpl of super::IProductionConfig { fn set_production_config( - ref self: ContractState, resource_type: u8, produced_amount: u128 + ref self: ContractState, + resource_type: u8, + amount_per_building_per_tick: u128, + labor_burn_strategy: LaborBurnPrStrategy, + predefined_resource_burn_cost: Span<(u8, u128)> ) { let mut world: WorldStorage = self.world(DEFAULT_NS()); assert_caller_is_admin(world); - let mut resource_production_config: ProductionConfig = world.read_model(resource_type); - resource_production_config.produced_amount = produced_amount; - world.write_model(@resource_production_config); - } - } - - - #[abi(embed_v0)] - impl LaborConfigImpl of super::ILaborConfig { - fn set_labor_config(ref self: ContractState, resource_type: u8, cost: Span<(u8, u128)>) { - let mut world: WorldStorage = self.world(DEFAULT_NS()); - assert_caller_is_admin(world); - - let resource_cost_id = world.dispatcher.uuid(); + // save multiple resource burn cost + let predefined_resource_burn_cost_id = world.dispatcher.uuid(); for i in 0 - ..cost + ..predefined_resource_burn_cost .len() { - let (resource_type, resource_amount) = *cost.at(i); + let (resource_type, resource_amount) = *predefined_resource_burn_cost.at(i); world .write_model( @ResourceCost { - entity_id: resource_cost_id, index: i, resource_type, amount: resource_amount + entity_id: predefined_resource_burn_cost_id, + index: i, + resource_type, + amount: resource_amount } ); }; - world - .write_model( - @LaborConfig { - resource_type, input_id: resource_cost_id, input_count: cost.len().try_into().unwrap() - } - ); + // save production config + let mut resource_production_config: ProductionConfig = world.read_model(resource_type); + resource_production_config.amount_per_building_per_tick = amount_per_building_per_tick; + resource_production_config.labor_burn_strategy = labor_burn_strategy; + resource_production_config + .multiple_resource_burn_strategy = + MultipleResourceBurnPrStrategy { + required_resources_id: predefined_resource_burn_cost_id, + required_resources_count: predefined_resource_burn_cost.len().try_into().unwrap() + }; + world.write_model(@resource_production_config); } } - // #[derive(IntrospectPacked, Copy, Drop, Serde)] - // #[dojo::model] - // pub struct LaborConfig { - // #[key] - // // e.g when configuring stone labor, resource_type = stone - // resource_type: u8, - // // uuid used to get the ResourceCost - // input_id: ID, - // // number of resources required to make labor - // input_count: u8, - // } - #[abi(embed_v0)] impl TransportConfigImpl of super::ITransportConfig { fn set_speed_config(ref self: ContractState, entity_type: ID, sec_per_km: u16) { diff --git a/contracts/game/src/systems/map/map_generation.cairo b/contracts/game/src/systems/map/map_generation.cairo index 71f183c60..712749ad3 100644 --- a/contracts/game/src/systems/map/map_generation.cairo +++ b/contracts/game/src/systems/map/map_generation.cairo @@ -37,7 +37,7 @@ mod map_generation_systems { use s1_eternum::models::quantity::Quantity; use s1_eternum::models::realm::{Realm}; use s1_eternum::models::resource::production::building::{BuildingCategory, Building, BuildingImpl}; - use s1_eternum::models::resource::production::labor::{LaborImpl}; + use s1_eternum::models::resource::production::production::{Production, ProductionTrait}; use s1_eternum::models::resource::resource::{ Resource, ResourceImpl, ResourceCost, ResourceTrait, ResourceFoodImpl, ResourceTransferLock, RESOURCE_PRECISION }; @@ -163,9 +163,8 @@ mod map_generation_systems { )[0]; let min_production_amount: u128 = 100_000 * RESOURCE_PRECISION; let actual_production_amount: u128 = min_production_amount * random_multiplier; - let mut labor_amount_required: u128 = actual_production_amount; - labor_amount_required + return actual_production_amount; } @@ -194,20 +193,16 @@ mod map_generation_systems { ref world, 0, mine_structure_entity_id, mercenaries_config.rewards, 0, false, false ); - let labor_amount_required = Self::get_shards_reward(ref world, vrf_seed, mine_structure_entity_id); + let shards_reward_amount = Self::get_shards_reward(ref world, vrf_seed, mine_structure_entity_id); // add earthenshard labor to mine balance - let shards_labor_resource_type = LaborImpl::labor_resource_from_regular(ResourceTypes::EARTHEN_SHARD); - let mut shards_labor_resource = ResourceImpl::get( - ref world, (mine_structure_entity_id, shards_labor_resource_type) - ); - shards_labor_resource.add(labor_amount_required); - shards_labor_resource.save(ref world); - - // add labor to production machine - LaborImpl::burn_labor( - ref world, mine_structure_entity_id, ResourceTypes::EARTHEN_SHARD, labor_amount_required + let mut shards_resource = ResourceImpl::get( + ref world, (mine_structure_entity_id, ResourceTypes::EARTHEN_SHARD) ); + let mut shards_resource_production = shards_resource.production; + shards_resource_production.increase_output_amout_left(shards_reward_amount); + shards_resource.production = shards_resource_production; + shards_resource.save(ref world); // create shards production building BuildingImpl::create( diff --git a/contracts/game/src/systems/production/contracts.cairo b/contracts/game/src/systems/production/contracts.cairo index f6e018bf5..f2e83f4a4 100644 --- a/contracts/game/src/systems/production/contracts.cairo +++ b/contracts/game/src/systems/production/contracts.cairo @@ -1,6 +1,7 @@ use s1_eternum::alias::ID; use s1_eternum::models::position::{Coord, Direction}; use s1_eternum::models::resource::production::building::BuildingCategory; +use s1_eternum::models::resource::production::production::{ProductionStrategyImpl}; #[starknet::interface] trait IProductionContract { @@ -18,11 +19,20 @@ trait IProductionContract { fn pause_building_production(ref self: TContractState, entity_id: ID, building_coord: Coord); fn resume_building_production(ref self: TContractState, entity_id: ID, building_coord: Coord); - /// Make Production Labor from Input Resources - fn make_production_labor(ref self: TContractState, entity_id: ID, resource_type: u8, labor_amount: u128); + fn burn_other_resources_for_labor_production( + ref self: TContractState, entity_id: ID, resource_types: Span, resource_amounts: Span + ); + + fn burn_labor_resources_for_other_production( + ref self: TContractState, from_entity_id: ID, labor_amounts: Span, produced_resource_types: Span, + ); - /// Burn Labor from balance and add to production - fn burn_production_labor(ref self: TContractState, entity_id: ID, resource_type: u8, labor_amount: u128); + fn burn_other_predefined_resources_for_resources( + ref self: TContractState, + from_entity_id: ID, + produced_resource_types: Span, + production_tick_counts: Span + ); } #[dojo::contract] @@ -34,11 +44,12 @@ mod production_systems { use s1_eternum::alias::ID; use s1_eternum::constants::DEFAULT_NS; use s1_eternum::models::season::SeasonImpl; + use s1_eternum::models::structure::{Structure, StructureTrait, StructureImpl, StructureCategory}; use s1_eternum::models::{ - resource::resource::{Resource, ResourceCost}, owner::{EntityOwner, EntityOwnerTrait}, order::Orders, + owner::{EntityOwner, EntityOwnerTrait}, resource::resource::{Resource, ResourceCost}, position::{Coord, CoordTrait, Position, PositionTrait, Direction}, resource::production::building::{BuildingCategory, Building, BuildingImpl}, - resource::production::production::{Production, ProductionTrait}, resource::production::labor::{LaborImpl}, + resource::production::production::{Production, ProductionTrait, ProductionStrategyImpl}, realm::{Realm, RealmImpl, RealmResourcesTrait} }; @@ -115,26 +126,91 @@ mod production_systems { BuildingImpl::resume_production(ref world, entity_id, building_coord); } - /// Make production labor resource from input resources - fn make_production_labor(ref self: ContractState, entity_id: ID, resource_type: u8, labor_amount: u128) { + /// Burn other resource for production of labor + fn burn_other_resources_for_labor_production( + ref self: ContractState, entity_id: ID, resource_types: Span, resource_amounts: Span, + ) { let mut world: WorldStorage = self.world(DEFAULT_NS()); SeasonImpl::assert_season_is_not_over(world); let entity_owner: EntityOwner = world.read_model(entity_id); entity_owner.assert_caller_owner(world); - LaborImpl::mould_labor(ref world, entity_id, resource_type, labor_amount); + // ensure entity is a structure + let entity_structure: Structure = world.read_model(entity_id); + assert!(entity_structure.category == StructureCategory::Realm, "structure is not a realm"); + + assert!( + resource_types.len() == resource_amounts.len(), + "resource types and resource amounts must be the same length" + ); + + for i in 0 + ..resource_types + .len() { + ProductionStrategyImpl::burn_other_resource_for_labor_production( + ref world, entity_id, *resource_types.at(i), *resource_amounts.at(i) + ); + } } // Burn production labor resource and add to production - fn burn_production_labor(ref self: ContractState, entity_id: ID, resource_type: u8, labor_amount: u128) { + fn burn_labor_resources_for_other_production( + ref self: ContractState, from_entity_id: ID, labor_amounts: Span, produced_resource_types: Span, + ) { let mut world: WorldStorage = self.world(DEFAULT_NS()); SeasonImpl::assert_season_is_not_over(world); - let entity_owner: EntityOwner = world.read_model(entity_id); + let entity_owner: EntityOwner = world.read_model(from_entity_id); entity_owner.assert_caller_owner(world); - LaborImpl::burn_labor(ref world, entity_id, resource_type, labor_amount); + let entity_structure: Structure = world.read_model(from_entity_id); + assert!(entity_structure.category == StructureCategory::Realm, "structure is not a realm"); + + assert!( + labor_amounts.len() == produced_resource_types.len(), + "labor and produced resource types must be the same length" + ); + + for i in 0 + ..labor_amounts + .len() { + ProductionStrategyImpl::burn_labor_resource_for_other_production( + ref world, from_entity_id, *labor_amounts.at(i), *produced_resource_types.at(i) + ); + } + } + + + // Burn other predefined resources for resource + // e.g. Wood, Stone, Coal for Gold + fn burn_other_predefined_resources_for_resources( + ref self: ContractState, + from_entity_id: ID, + produced_resource_types: Span, + production_tick_counts: Span + ) { + let mut world: WorldStorage = self.world(DEFAULT_NS()); + SeasonImpl::assert_season_is_not_over(world); + + let entity_owner: EntityOwner = world.read_model(from_entity_id); + entity_owner.assert_caller_owner(world); + + let entity_structure: Structure = world.read_model(from_entity_id); + assert!(entity_structure.category == StructureCategory::Realm, "structure is not a realm"); + + assert!( + produced_resource_types.len() == production_tick_counts.len(), + "produced resource types and production tick counts must be the same length" + ); + + for i in 0 + ..produced_resource_types + .len() { + ProductionStrategyImpl::burn_other_predefined_resources_for_resource( + ref world, from_entity_id, *produced_resource_types.at(i), *production_tick_counts.at(i) + ); + } } } } diff --git a/contracts/game/src/systems/realm/contracts.cairo b/contracts/game/src/systems/realm/contracts.cairo index e3d1ab662..e23897b6c 100644 --- a/contracts/game/src/systems/realm/contracts.cairo +++ b/contracts/game/src/systems/realm/contracts.cairo @@ -48,11 +48,10 @@ mod realm_systems { Realm, RealmTrait, RealmImpl, RealmResourcesTrait, RealmResourcesImpl, RealmNameAndAttrsDecodingTrait, RealmNameAndAttrsDecodingImpl, RealmReferenceImpl }; - use s1_eternum::models::resource::production::labor::{LaborImpl}; + use s1_eternum::models::resource::production::building::{BuildingCategory, Building, BuildingImpl}; use s1_eternum::models::resource::resource::{ DetachedResource, Resource, ResourceImpl, ResourceTrait, ResourceFoodImpl, ResourceFoodTrait }; - use s1_eternum::models::season::SeasonImpl; use s1_eternum::models::structure::{Structure, StructureCategory, StructureCount, StructureCountTrait}; use s1_eternum::systems::map::contracts::map_systems::InternalMapSystemsImpl; @@ -293,6 +292,9 @@ mod realm_systems { InternalMapSystemsImpl::explore(ref world, entity_id.into(), coord, array![(1, 0)].span()); } + // place castle building + BuildingImpl::create(ref world, entity_id, BuildingCategory::Castle, Option::None, BuildingImpl::center(),); + (entity_id, realm_produced_resources_packed) } diff --git a/contracts/game/torii-sepolia.toml b/contracts/game/torii-sepolia.toml index d585b544b..56a759532 100644 --- a/contracts/game/torii-sepolia.toml +++ b/contracts/game/torii-sepolia.toml @@ -8,9 +8,9 @@ polling_interval = 500 # Polling interval in milliseconds max_concurrent_tasks = 100 # Maximum concurrent indexing tasks index_transactions = true contracts = [ - "erc721:0xf13c0880fd96d4960be5042f564ce50921531c8cd9bae3a0c5b1687f053263", - "erc721:0x731af37beee9f49d1927b997cb5b1a2f6b2f0c341753d9bdfe23768ef65f53f", - "erc20:0x6bf1ddd27d699ddef8818e9d23a085b787798d9b557d79f22a6e155891506fb", + "erc721:0x2b7c1780bb74754d8f2044d69bf6321c4de44e0a2670f4158948400a225044b", + "erc721:0x71a4862d6bc70347928c6719d032616332faf6bcc649d66a40b8329a2cb2a17", + "erc20:0x52eb09380ad9c74c0c12583815c435aa4c162f22a9e4e06acbc9744d301ebf3", ] [events] diff --git a/contracts/world/dojo_sepolia.toml b/contracts/world/dojo_sepolia.toml index 656c86038..833b51efb 100644 --- a/contracts/world/dojo_sepolia.toml +++ b/contracts/world/dojo_sepolia.toml @@ -8,8 +8,8 @@ rpc_url = "https://api.cartridge.gg/x/starknet/mainnet" world_address = "0x0009dd5e66cfa83f893c2a70b9ea5221e2df18aaf52a111fe9003264f948c7aa" [world] -seed = "s1_eternum" -name = "Realms World" +seed = "eternum-sepolia" +name = "Eternum Sepolia" description = "The world of Realms" cover_uri = "file://assets/bg.webp" website = "https://realms.world/" diff --git a/packages/core/src/constants/index.ts b/packages/core/src/constants/index.ts index 5356bbf55..703c43be4 100644 --- a/packages/core/src/constants/index.ts +++ b/packages/core/src/constants/index.ts @@ -34,7 +34,7 @@ export enum ResourcesIds { Sapphire = 20, EtherealSilica = 21, Dragonhide = 22, - // Demonhide = 23, + Labor = 23, AncientFragment = 24, Donkey = 25, Knight = 26, diff --git a/packages/core/src/constants/resources.ts b/packages/core/src/constants/resources.ts index bc713219a..61665af2e 100644 --- a/packages/core/src/constants/resources.ts +++ b/packages/core/src/constants/resources.ts @@ -215,7 +215,7 @@ export const resources: Array = [ }, { trait: "Dragonhide", - value: 23, + value: 22, colour: "#ec4899", id: 22, description: @@ -224,14 +224,13 @@ export const resources: Array = [ ticker: "$DRGNHD", }, { - trait: "Demonhide", + trait: "Labor", value: 23, colour: "#ec4899", id: 23, - description: - "Demonhide are the hidden guardians of our reality. No mortal can witness their work, lest they be purged by dragonfire. If you find one of these scales, flee. Only death can be found in their presence or by the forces they fight in secret.", + description: "Labor", img: "https://github.com/BibliothecaDAO/eternum/blob/main/client/public/images/resources/23.png?raw=true", - ticker: "$DEMONHD", + ticker: "$LABOR", }, { trait: "Ancient Fragment", @@ -422,6 +421,7 @@ export const GET_RESOURCE_TIER = (resource: ResourcesIds): ResourceTier => { export const RESOURCE_TIERS = { lords: [ResourcesIds.Lords, ResourcesIds.AncientFragment], + labor: [ResourcesIds.Labor], military: [ResourcesIds.Knight, ResourcesIds.Crossbowman, ResourcesIds.Paladin], transport: [ResourcesIds.Donkey], food: [ResourcesIds.Fish, ResourcesIds.Wheat], diff --git a/packages/core/src/constants/structures.ts b/packages/core/src/constants/structures.ts index 6e8729600..1b2626160 100644 --- a/packages/core/src/constants/structures.ts +++ b/packages/core/src/constants/structures.ts @@ -27,7 +27,6 @@ export enum BuildingType { WorkersHut = 10, // unused WatchTower = 11, - // unused Walls = 12, Storehouse = 13, Bank = 14, diff --git a/packages/core/src/constants/utils.ts b/packages/core/src/constants/utils.ts index 5007b3a98..e5f63bac6 100644 --- a/packages/core/src/constants/utils.ts +++ b/packages/core/src/constants/utils.ts @@ -10,8 +10,8 @@ export const findResourceIdByTrait = (trait: string) => { }; // if it's labor, then remove 28 to get the icon resource id -export const getIconResourceId = (resourceId: number, isLabor: boolean) => { - return isLabor ? resourceId - 28 : resourceId; +export const getIconResourceId = (resourceId: number) => { + return resourceId; }; export const RESOURCE_PRECISION = 1_000_000_000; diff --git a/packages/core/src/dojo/contract-components.ts b/packages/core/src/dojo/contract-components.ts index c41776b92..b65b84830 100644 --- a/packages/core/src/dojo/contract-components.ts +++ b/packages/core/src/dojo/contract-components.ts @@ -871,33 +871,25 @@ export function defineContractComponents(world: World) { world, { resource_type: RecsType.Number, - produced_amount: RecsType.BigInt, - labor_cost: RecsType.BigInt, - }, - { - metadata: { - namespace: "s1_eternum", - name: "ProductionConfig", - types: ["u8", "u128", "u128"], - customTypes: [], + amount_per_building_per_tick: RecsType.BigInt, + labor_burn_strategy: { + resource_rarity: RecsType.BigInt, + depreciation_percent_num: RecsType.Number, + depreciation_percent_denom: RecsType.Number, + wheat_burn_per_labor: RecsType.BigInt, + fish_burn_per_labor: RecsType.BigInt, + }, + multiple_resource_burn_strategy: { + required_resources_id: RecsType.Number, + required_resources_count: RecsType.Number, }, - }, - ); - })(), - LaborConfig: (() => { - return defineComponent( - world, - { - resource_type: RecsType.Number, - input_id: RecsType.Number, - input_count: RecsType.Number, }, { metadata: { namespace: "s1_eternum", - name: "LaborConfig", - types: ["u8", "u32", "u8"], - customTypes: [], + name: "ProductionConfig", + types: ["u8", "u128", "u128", "u16", "u16", "u128", "u128", "u32", "u8"], + customTypes: ["LaborBurnPrStrategy", "MultipleResourceBurnPrStrategy"], }, }, ); @@ -1059,7 +1051,7 @@ export function defineContractComponents(world: World) { production: { building_count: RecsType.Number, production_rate: RecsType.BigInt, - labor_units_left: RecsType.BigInt, + output_amount_left: RecsType.BigInt, last_updated_tick: RecsType.Number, }, }, @@ -1067,7 +1059,7 @@ export function defineContractComponents(world: World) { metadata: { namespace: "s1_eternum", name: "Resource", - types: ["u32", "u8", "u128", "u8", "u128", "u64", "u32"], + types: ["u32", "u8", "u128", "u8", "u128", "u128", "u32"], customTypes: [], }, }, diff --git a/packages/core/src/dojo/create-system-calls.ts b/packages/core/src/dojo/create-system-calls.ts index aaac60ee4..468b3cff7 100644 --- a/packages/core/src/dojo/create-system-calls.ts +++ b/packages/core/src/dojo/create-system-calls.ts @@ -299,6 +299,24 @@ export function createSystemCalls({ } }; + const burn_other_resources_for_labor_production = async ( + props: SystemProps.BurnOtherResourcesForLaborProductionProps, + ) => { + await provider.burn_other_resources_for_labor_production(props); + }; + + const burn_labor_resources_for_other_production = async ( + props: SystemProps.BurnLaborResourcesForOtherProductionProps, + ) => { + await provider.burn_labor_resources_for_other_production(props); + }; + + const burn_other_predefined_resources_for_resources = async ( + props: SystemProps.BurnOtherPredefinedResourcesForResourcesProps, + ) => { + await provider.burn_other_predefined_resources_for_resources(props); + }; + const systemCalls = { send_resources: withAuth(send_resources), send_resources_multiple: withAuth(send_resources_multiple), @@ -371,6 +389,10 @@ export function createSystemCalls({ bridge_resources_into_realm: withAuth(bridge_resources_into_realm), bridge_start_withdraw_from_realm: withAuth(bridge_start_withdraw_from_realm), bridge_finish_withdraw_from_realm: withAuth(bridge_finish_withdraw_from_realm), + + burn_other_resources_for_labor_production: withAuth(burn_other_resources_for_labor_production), + burn_labor_resources_for_other_production: withAuth(burn_labor_resources_for_other_production), + burn_other_predefined_resources_for_resources: withAuth(burn_other_predefined_resources_for_resources), }; return systemCalls; diff --git a/packages/core/src/managers/config-manager.ts b/packages/core/src/managers/config-manager.ts index d2a869cdd..0408b591a 100644 --- a/packages/core/src/managers/config-manager.ts +++ b/packages/core/src/managers/config-manager.ts @@ -23,6 +23,16 @@ export class ClientConfigManager { private config!: Config; resourceInputs: Record = {}; resourceOutput: Record = {}; + resourceLaborOutput: Record< + number, + { + resource_rarity: number; + depreciation_percent_num: number; + depreciation_percent_denom: number; + wheat_burn_per_labor: number; + fish_burn_per_labor: number; + } + > = {}; hyperstructureTotalCosts: Record = {}; realmUpgradeCosts: Record = {}; buildingCosts: Record = {}; @@ -35,6 +45,7 @@ export class ClientConfigManager { this.initializeResourceInputs(); this.initializeResourceOutput(); + this.initializeResourceLaborOutput(); this.initializeHyperstructureTotalCosts(); this.initializeRealmUpgradeCosts(); this.initializeResourceBuildingCosts(); @@ -100,22 +111,28 @@ export class ClientConfigManager { ); } + // todo: need to get directly from chain private initializeResourceOutput() { if (!this.components) return; for (const resourceType of Object.values(ResourcesIds).filter(Number.isInteger)) { - const productionConfig = getComponentValue( - this.components.ProductionConfig, - getEntityIdFromKeys([BigInt(resourceType)]), - ); + const resourceOutput = this.config.resources.resourceOutputs[Number(resourceType)]; this.resourceOutput[Number(resourceType)] = { resource: Number(resourceType) as ResourcesIds, - amount: this.divideByPrecision(Number(productionConfig?.produced_amount)), + amount: resourceOutput, }; } } + private initializeResourceLaborOutput() { + this.resourceLaborOutput = Object.fromEntries( + Object.entries(this.config.resources.resourceProductionByLaborParams) + .filter(([key, value]) => value.resource_rarity > 0) + .map(([key, value]) => [Number(key), value]), + ); + } + private initializeHyperstructureTotalCosts() { const hyperstructureTotalCosts: { resource: ResourceTier; min_amount: number; max_amount: number }[] = []; @@ -136,33 +153,6 @@ export class ClientConfigManager { } private initializeRealmUpgradeCosts() { - // const realmMaxLevel = - // getComponentValue(this.components.RealmMaxLevelConfig, getEntityIdFromKeys([WORLD_CONFIG_ID]))?.max_level ?? 0; - - // for (let index = 1; index <= realmMaxLevel; index++) { - // const realmLevelConfig = getComponentValue( - // this.components.RealmLevelConfig, - // getEntityIdFromKeys([BigInt(index)]), - // ); - - // const resourcesCount = realmLevelConfig?.required_resource_count ?? 0; - // const detachedResourceId = realmLevelConfig?.required_resources_id ?? 0; - - // const resources: { resource: ResourcesIds; amount: number }[] = []; - - // for (let index = 0; index < resourcesCount; index++) { - // const resource = getComponentValue( - // this.components.DetachedResource, - // getEntityIdFromKeys([BigInt(detachedResourceId), BigInt(index)]), - // ); - // if (resource) { - // const resourceId = resource.resource_type; - // const amount = this.divideByPrecision(Number(resource.resource_amount)); - // resources.push({ resource: resourceId, amount }); - // } - // } - // this.realmUpgradeCosts[index] = resources; - // } this.realmUpgradeCosts = Object.fromEntries( Object.entries(this.config.realmUpgradeCosts).map(([key, costs]) => [ key, @@ -172,35 +162,8 @@ export class ClientConfigManager { } private initializeResourceBuildingCosts() { - // for (const resourceId of Object.values(ResourcesIds).filter(Number.isInteger)) { - // const buildingConfig = getComponentValue( - // this.components.BuildingConfig, - // getEntityIdFromKeys([WORLD_CONFIG_ID, BigInt(BuildingType.Resource), BigInt(resourceId)]), - // ); - - // const resourceCostCount = buildingConfig?.resource_cost_count || 0; - // const resourceCostId = buildingConfig?.resource_cost_id || 0; - - // const resourceCosts: { resource: ResourcesIds; amount: number }[] = []; - // for (let index = 0; index < resourceCostCount; index++) { - // const resourceCost = getComponentValue( - // this.components.ResourceCost, - // getEntityIdFromKeys([BigInt(resourceCostId), BigInt(index)]), - // ); - // if (!resourceCost) { - // continue; - // } - - // const resourceType = resourceCost.resource_type; - // const amount = Number(resourceCost.amount) / RESOURCE_PRECISION; - - // resourceCosts.push({ resource: resourceType, amount }); - // } - // this.resourceBuildingCosts[Number(resourceId)] = resourceCosts; - - // } this.resourceBuildingCosts = Object.fromEntries( - Object.entries(this.config.resources.resourceBuildingCosts).map(([key, costs]) => [ + Object.entries(this.config.buildings.resourceBuildingCosts).map(([key, costs]) => [ key, costs.map((cost: any) => ({ ...cost, amount: cost.amount })), ]), @@ -208,36 +171,8 @@ export class ClientConfigManager { } private initializeBuildingCosts() { - // for (const buildingType of Object.values(BuildingType).filter(Number.isInteger)) { - // const resourceType = this.getResourceBuildingProduced(Number(buildingType)); - - // const buildingConfig = getComponentValue( - // this.components.BuildingConfig, - // getEntityIdFromKeys([WORLD_CONFIG_ID, BigInt(buildingType), BigInt(resourceType)]), - // ); - - // const resourceCostCount = buildingConfig?.resource_cost_count || 0; - // const resourceCostId = buildingConfig?.resource_cost_id || 0; - - // const resourceCosts: { resource: ResourcesIds; amount: number }[] = []; - // for (let index = 0; index < resourceCostCount; index++) { - // const resourceCost = getComponentValue( - // this.components.ResourceCost, - // getEntityIdFromKeys([BigInt(resourceCostId), BigInt(index)]), - // ); - // if (!resourceCost) { - // continue; - // } - - // const resourceType = resourceCost.resource_type; - // const amount = Number(resourceCost.amount) / this.getResourcePrecision(); - - // resourceCosts.push({ resource: resourceType, amount }); - // } - // this.buildingCosts[Number(buildingType)] = resourceCosts; - // } this.buildingCosts = Object.fromEntries( - Object.entries(this.config.buildings.buildingCosts).map(([key, costs]) => [ + Object.entries(this.config.buildings.otherBuildingCosts).map(([key, costs]) => [ key, costs.map((cost: any) => ({ ...cost, amount: cost.amount })), ]), @@ -581,7 +516,7 @@ export class ClientConfigManager { getEntityIdFromKeys([BigInt(resourceType)]), ); - return Number(productionConfig?.produced_amount ?? 0); + return Number(productionConfig?.amount_per_building_per_tick ?? 0); }, 0); } diff --git a/packages/core/src/managers/resource-manager.ts b/packages/core/src/managers/resource-manager.ts index 88be39a73..0f3cf2e1a 100644 --- a/packages/core/src/managers/resource-manager.ts +++ b/packages/core/src/managers/resource-manager.ts @@ -34,7 +34,11 @@ export class ResourceManager { public isActive(): boolean { const production = this.getProduction(); - return production !== undefined && production.building_count > 0; + if (!production) return false; + if (this.isFood()) { + return production.production_rate !== 0n; + } + return production.building_count > 0 && production.production_rate !== 0n && production.output_amount_left !== 0n; } public balance(currentTick: number): number { @@ -53,19 +57,43 @@ export class ResourceManager { }); }; - public timeUntilValueReached(currentTick: number, value: number): number { + public timeUntilValueReached(currentTick: number): number { const production = this.getProduction(); - if (!production || production.production_rate === 0n) return 0; + if (!production || production.building_count === 0) return 0; + + // Get production details + const lastUpdatedTick = production.last_updated_tick; + const productionRate = production.production_rate; + const outputAmountLeft = production.output_amount_left; + + // If no production rate or no output left, return 0 + if (productionRate === 0n || outputAmountLeft === 0n) return 0; + + // Calculate ticks since last update + const ticksSinceLastUpdate = currentTick - lastUpdatedTick; - const balance = this.balance(currentTick); - if (value <= Number(balance)) return 0; + // Calculate remaining ticks based on output amount left and production rate + const remainingTicks = Number(outputAmountLeft) / Number(productionRate); - return (value - Number(balance)) / Number(production.production_rate); + // Return remaining ticks, accounting for ticks that have already passed + return Math.max(0, remainingTicks - ticksSinceLastUpdate); } public getProductionEndsAt(): number { - const productionEndsAt = this._productionEndsAt(); - return Number(productionEndsAt); + const production = this.getProduction(); + if (!production || production.building_count === 0) return 0; + + // If no production rate or no output left, return current tick + if (production.production_rate === 0n || production.output_amount_left === 0n) return production.last_updated_tick; + + // For food resources, production never ends + if (this.isFood()) { + return Number.MAX_SAFE_INTEGER; + } + + // Calculate when production will end based on remaining output and rate + const remainingTicks = Number(production.output_amount_left) / Number(production.production_rate); + return production.last_updated_tick + Math.ceil(remainingTicks); } public getStoreCapacity(): number { @@ -96,34 +124,17 @@ export class ResourceManager { if (!resource) return 0n; const production = resource.production!; - let laborUnitsBurned = this._laborUnitsBurned(resource, currentTick); - let totalProducedAmount = laborUnitsBurned * production.production_rate; - return totalProducedAmount; - } + if (!production || production.building_count === 0) return 0n; + if (production.production_rate === 0n || production.output_amount_left === 0n) return 0n; - private _laborUnitsBurned(resource: any, currentTick: number): bigint { - const production = resource?.production; - if (!production) return 0n; - let laborUnitsBurned = BigInt(currentTick - production.last_updated_tick) * BigInt(production.building_count); - if (!this.isFood() && laborUnitsBurned > production.labor_units_left) { - laborUnitsBurned = production.labor_units_left; - } + const ticksSinceLastUpdate = currentTick - production.last_updated_tick; + let totalAmountProduced = BigInt(ticksSinceLastUpdate) * production.production_rate; - return laborUnitsBurned; - } - - private _productionEndsAt(): number { - const resource = this._getResource(); - const production = resource?.production; - if (!production) return 0; - if (production.building_count === 0) return 0; - - let productionTicksLeft = BigInt(production.labor_units_left) / BigInt(production.building_count); - if (this.isFood()) { - productionTicksLeft = BigInt(1) << BigInt(64); + if (!this.isFood() && totalAmountProduced > production.output_amount_left) { + totalAmountProduced = production.output_amount_left; } - return production.last_updated_tick + Number(productionTicksLeft); + return totalAmountProduced; } private _balance(currentTick: number): bigint { diff --git a/packages/core/src/provider/index.ts b/packages/core/src/provider/index.ts index 124bf504a..f450961aa 100644 --- a/packages/core/src/provider/index.ts +++ b/packages/core/src/provider/index.ts @@ -1917,23 +1917,21 @@ export class EternumProvider extends EnhancedDojoProvider { return { contractAddress: getContractByName(this.manifest, `${NAMESPACE}-config_systems`), entrypoint: "set_production_config", - calldata: [call.resource_type, call.amount], - }; - }); - - const laborCalldataArray = calls.map((call) => { - return { - contractAddress: getContractByName(this.manifest, `${NAMESPACE}-config_systems`), - entrypoint: "set_labor_config", calldata: [ call.resource_type, - call.cost.length, - ...call.cost.flatMap(({ resource, amount }) => [resource, amount]), + call.amount_per_building_per_tick, + call.labor_burn_strategy.resource_rarity, + call.labor_burn_strategy.depreciation_percent_num, + call.labor_burn_strategy.depreciation_percent_denom, + call.labor_burn_strategy.wheat_burn_per_labor, + call.labor_burn_strategy.fish_burn_per_labor, + call.predefined_resource_burn_cost.length, + ...call.predefined_resource_burn_cost.flatMap(({ resource, amount }) => [resource, amount]), ], }; }); - const calldataArray = [...productionCalldataArray, ...laborCalldataArray]; - return await this.executeAndCheckTransaction(signer, calldataArray); + + return await this.executeAndCheckTransaction(signer, productionCalldataArray); } public async set_bank_config(props: SystemProps.SetBankConfigProps) { @@ -2354,4 +2352,117 @@ export class EternumProvider extends EnhancedDojoProvider { calldata: [uint256.bnToUint256(token_id), uint256.bnToUint256(amount)], }); } + + /** + * Burn other resources to produce labor + * + * @param props - Properties for burning resources for labor + * @param props.entity_id - ID of the realm entity + * @param props.resource_types - Array of resource types to burn + * @param props.resource_amounts - Array of resource amounts to burn + * @param props.signer - Account executing the transaction + * @returns Transaction receipt + * + * @example + * ```typescript + * // Burn 100 wood and 50 stone to produce labor + * { + * entity_id: 123, + * resource_types: [1, 2], // wood and stone + * resource_amounts: [100, 50], + * signer: account + * } + * ``` + */ + public async burn_other_resources_for_labor_production(props: SystemProps.BurnOtherResourcesForLaborProductionProps) { + const { entity_id, resource_types, resource_amounts, signer } = props; + + const call = this.createProviderCall(signer, { + contractAddress: getContractByName(this.manifest, `${NAMESPACE}-production_systems`), + entrypoint: "burn_other_resources_for_labor_production", + calldata: [entity_id, resource_types.length, ...resource_types, resource_amounts.length, ...resource_amounts], + }); + + return await this.promiseQueue.enqueue(call); + } + + /** + * Burn labor resources to produce other resources + * + * @param props - Properties for burning labor for resources + * @param props.from_entity_id - ID of the realm entity + * @param props.labor_amounts - Array of labor amounts to burn + * @param props.produced_resource_types - Array of resource types to produce + * @param props.signer - Account executing the transaction + * @returns Transaction receipt + * + * @example + * ```typescript + * // Burn 200 labor to produce wood and stone + * { + * from_entity_id: 123, + * labor_amounts: [100, 100], + * produced_resource_types: [1, 2], // wood and stone + * signer: account + * } + * ``` + */ + public async burn_labor_resources_for_other_production(props: SystemProps.BurnLaborResourcesForOtherProductionProps) { + const { from_entity_id, labor_amounts, produced_resource_types, signer } = props; + + const call = this.createProviderCall(signer, { + contractAddress: getContractByName(this.manifest, `${NAMESPACE}-production_systems`), + entrypoint: "burn_labor_resources_for_other_production", + calldata: [ + from_entity_id, + labor_amounts.length, + ...labor_amounts, + produced_resource_types.length, + ...produced_resource_types, + ], + }); + + return await this.promiseQueue.enqueue(call); + } + + /** + * Burn predefined resources to produce other resources + * + * @param props - Properties for burning predefined resources + * @param props.from_entity_id - ID of the realm entity + * @param props.produced_resource_types - Array of resource types to produce + * @param props.production_tick_counts - Array of production tick counts + * @param props.signer - Account executing the transaction + * @returns Transaction receipt + * + * @example + * ```typescript + * // Burn predefined resources to produce gold for 2 ticks + * { + * from_entity_id: 123, + * produced_resource_types: [5], // gold + * production_tick_counts: [2], + * signer: account + * } + * ``` + */ + public async burn_other_predefined_resources_for_resources( + props: SystemProps.BurnOtherPredefinedResourcesForResourcesProps, + ) { + const { from_entity_id, produced_resource_types, production_tick_counts, signer } = props; + + const call = this.createProviderCall(signer, { + contractAddress: getContractByName(this.manifest, `${NAMESPACE}-production_systems`), + entrypoint: "burn_other_predefined_resources_for_resources", + calldata: [ + from_entity_id, + produced_resource_types.length, + ...produced_resource_types, + production_tick_counts.length, + ...production_tick_counts, + ], + }); + + return await this.promiseQueue.enqueue(call); + } } diff --git a/packages/core/src/types/common.ts b/packages/core/src/types/common.ts index 912c2f1ad..ce5f91357 100644 --- a/packages/core/src/types/common.ts +++ b/packages/core/src/types/common.ts @@ -88,6 +88,7 @@ export type RealmWithPosition = ComponentValue; name: string; owner: ComponentValue; + resources: ResourcesIds[]; }; export interface Prize { id: QuestType; @@ -412,6 +413,16 @@ export interface ResourceOutputs { [key: number]: number; } +export interface ProductionByLaborParams { + [key: number]: { + resource_rarity: number; + depreciation_percent_num: number; + depreciation_percent_denom: number; + wheat_burn_per_labor: number; + fish_burn_per_labor: number; + }; +} + export interface Config { stamina: { travelCost: number; @@ -427,7 +438,7 @@ export interface Config { resourceInputs: ResourceInputs; resourceOutputs: ResourceOutputs; resourceWeightsGrams: { [key in ResourcesIds]: number }; - resourceBuildingCosts: ResourceInputs; + resourceProductionByLaborParams: ProductionByLaborParams; resourceRarity: { [key in ResourcesIds]?: number }; }; banks: { @@ -539,7 +550,8 @@ export interface Config { buildingCapacity: Partial<{ [key in BuildingType]: number }>; buildingPopulation: Partial<{ [key in BuildingType]: number }>; buildingResourceProduced: Partial<{ [key in BuildingType]: number }>; - buildingCosts: ResourceInputs; + otherBuildingCosts: ResourceInputs; + resourceBuildingCosts: ResourceInputs; buildingFixedCostScalePercent: number; }; @@ -568,7 +580,7 @@ export interface RealmInfo { realmId: ID; entityId: ID; name: string; - resourceTypesPacked: bigint; + resources: ResourcesIds[]; order: number; position: ComponentValue; population?: number | undefined; @@ -578,6 +590,10 @@ export interface RealmInfo { ownerName: string; hasWonder: boolean; level: number; + storehouses: { + capacityKg: number; + quantity: number; + }; } export interface PlayerInfo { diff --git a/packages/core/src/types/provider.ts b/packages/core/src/types/provider.ts index 48b3ce999..525f4d583 100644 --- a/packages/core/src/types/provider.ts +++ b/packages/core/src/types/provider.ts @@ -466,11 +466,20 @@ export interface SetTickConfigProps extends SystemSigner { export interface SetProductionConfigProps extends SystemSigner { calls: { resource_type: num.BigNumberish; - amount: num.BigNumberish; - cost: ResourceCosts[]; + amount_per_building_per_tick: num.BigNumberish; + labor_burn_strategy: LaborBurnProductionStrategy; + predefined_resource_burn_cost: ResourceCosts[]; }[]; } +interface LaborBurnProductionStrategy { + resource_rarity: num.BigNumberish; + depreciation_percent_num: num.BigNumberish; + depreciation_percent_denom: num.BigNumberish; + wheat_burn_per_labor: num.BigNumberish; + fish_burn_per_labor: num.BigNumberish; +} + export interface SetBankConfigProps extends SystemSigner { lords_cost: num.BigNumberish; lp_fee_num: num.BigNumberish; @@ -689,3 +698,45 @@ export interface DetachLordsProps extends SystemSigner { export interface MintTestLordsProps extends SystemSigner { lords_address: num.BigNumberish; } + +/** + * Props for burning resources to produce labor + */ +export interface BurnOtherResourcesForLaborProductionProps { + /** ID of the realm entity */ + entity_id: number; + /** Array of resource types to burn */ + resource_types: number[]; + /** Array of resource amounts to burn */ + resource_amounts: number[]; + /** Account executing the transaction */ + signer: Account | AccountInterface; +} + +/** + * Props for burning labor to produce other resources + */ +export interface BurnLaborResourcesForOtherProductionProps { + /** ID of the realm entity */ + from_entity_id: number; + /** Array of labor amounts to burn */ + labor_amounts: number[]; + /** Array of resource types to produce */ + produced_resource_types: number[]; + /** Account executing the transaction */ + signer: Account | AccountInterface; +} + +/** + * Props for burning predefined resources to produce other resources + */ +export interface BurnOtherPredefinedResourcesForResourcesProps { + /** ID of the realm entity */ + from_entity_id: number; + /** Array of resource types to produce */ + produced_resource_types: number[]; + /** Array of production tick counts */ + production_tick_counts: number[]; + /** Account executing the transaction */ + signer: Account | AccountInterface; +} diff --git a/packages/core/src/utils/realm.ts b/packages/core/src/utils/realm.ts index b0fa6fd84..4920b59f7 100644 --- a/packages/core/src/utils/realm.ts +++ b/packages/core/src/utils/realm.ts @@ -1,16 +1,15 @@ import { Entity, getComponentValue } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; import { shortString } from "starknet"; -import { configManager } from ".."; -import { findResourceIdByTrait, orders } from "../constants"; +import { configManager, gramToKg } from ".."; +import { BuildingType, CapacityConfigCategory, findResourceIdByTrait, orders } from "../constants"; import realmsJson from "../data/realms.json"; import { ClientComponents } from "../dojo"; import { ID, RealmInfo, RealmInterface, RealmWithPosition } from "../types"; -import { packResources } from "./packed-data"; +import { packResources, unpackResources } from "./packed-data"; -export const getRealmWithPosition = (entityId: ID, components: ClientComponents) => { +export const getRealmWithPosition = (entity: Entity, components: ClientComponents) => { const { Realm, Owner, Position } = components; - const entity = getEntityIdFromKeys([BigInt(entityId)]); const realm = getComponentValue(Realm, entity); if (!realm) return undefined; @@ -19,6 +18,7 @@ export const getRealmWithPosition = (entityId: ID, components: ClientComponents) return { ...realm, + resources: unpackResources(BigInt(realm.produced_resources)), position, name: getRealmNameById(realm.realm_id), owner, @@ -67,19 +67,32 @@ export function getRealmInfo(entity: Entity, components: ClientComponents): Real const position = getComponentValue(components.Position, entity); const population = getComponentValue(components.Population, entity); + const storehouses = (() => { + const quantity = + getComponentValue( + components.BuildingQuantityv2, + getEntityIdFromKeys([BigInt(realm?.entity_id || 0), BigInt(BuildingType.Storehouse)]), + )?.value || 0; + const storehouseCapacity = configManager.getCapacityConfig(CapacityConfigCategory.Storehouse); + return { capacityKg: (quantity + 1) * gramToKg(storehouseCapacity), quantity }; + })(); + if (realm && owner && position) { const { realm_id, entity_id, produced_resources, order, level } = realm; const name = getRealmNameById(realm_id); + const resources = unpackResources(BigInt(produced_resources)); + const { address } = owner; return { realmId: realm_id, entityId: entity_id, + storehouses, name, level, - resourceTypesPacked: produced_resources, + resources, order, position, ...population, diff --git a/packages/core/src/utils/resources.ts b/packages/core/src/utils/resources.ts index 59ef6f874..77c39373c 100644 --- a/packages/core/src/utils/resources.ts +++ b/packages/core/src/utils/resources.ts @@ -4,7 +4,7 @@ import { BuildingType, RESOURCE_PRECISION, resources, ResourcesIds } from "../co import { ClientComponents } from "../dojo"; import { ResourceManager } from "../managers"; import { configManager } from "../managers/config-manager"; -import { ID, Resource, ResourceCostMinMax, ResourceInputs, ResourceOutputs } from "../types"; +import { ID, ProductionByLaborParams, Resource, ResourceCostMinMax, ResourceInputs, ResourceOutputs } from "../types"; import { unpackResources } from "./packed-data"; // used for entities that don't have any production @@ -167,3 +167,16 @@ export const scaleResourceOutputs = (resourceOutputs: ResourceOutputs, multiplie } return multipliedCosts; }; + +export const scaleResourceProductionByLaborParams = (config: ProductionByLaborParams, multiplier: number) => { + let multipliedValues: ProductionByLaborParams = {}; + + for (let buildingType in config) { + multipliedValues[buildingType] = { + ...config[buildingType], + wheat_burn_per_labor: config[buildingType].wheat_burn_per_labor * multiplier, + fish_burn_per_labor: config[buildingType].fish_burn_per_labor * multiplier, + }; + } + return multipliedValues; +}; diff --git a/packages/react/src/hooks/helpers/use-battles.ts b/packages/react/src/hooks/helpers/use-battles.ts index ac7156a70..5747dc180 100644 --- a/packages/react/src/hooks/helpers/use-battles.ts +++ b/packages/react/src/hooks/helpers/use-battles.ts @@ -1,10 +1,10 @@ -import { BattleManager, ContractAddress, ID, Position } from "@bibliothecadao/eternum"; +import { BattleManager, ID, Position } from "@bibliothecadao/eternum"; import { useComponentValue, useEntityQuery } from "@dojoengine/react"; import { Has, HasValue, NotValue, getComponentValue, runQuery } from "@dojoengine/recs"; import { getEntityIdFromKeys } from "@dojoengine/utils"; import { useMemo } from "react"; import { useDojo } from "../context/dojo-context"; -import { usePlayerRealms } from "./use-entities"; +import { usePlayerOwnedRealms } from "./use-realm"; export const useBattleManager = (battleEntityId: ID) => { const dojo = useDojo(); @@ -40,13 +40,12 @@ export const useBattlesAtPosition = ({ x, y }: Position) => { export const usePlayerBattles = () => { const { - account: { account }, setup: { components: { Army, EntityOwner }, }, } = useDojo(); - const realms = usePlayerRealms(ContractAddress(account.address)); + const realms = usePlayerOwnedRealms(); const battleEntityIds = useMemo(() => { // Get all armies in battle owned by player's realms @@ -55,7 +54,7 @@ export const usePlayerBattles = () => { runQuery([ Has(Army), NotValue(Army, { battle_id: 0 }), - HasValue(EntityOwner, { entity_owner_id: realm.entity_id }), + HasValue(EntityOwner, { entity_owner_id: realm.entityId }), ]), ), ); diff --git a/packages/react/src/hooks/helpers/use-entities.ts b/packages/react/src/hooks/helpers/use-entities.ts index de492b753..cdc5c9f85 100644 --- a/packages/react/src/hooks/helpers/use-entities.ts +++ b/packages/react/src/hooks/helpers/use-entities.ts @@ -1,36 +1,9 @@ -import { - ContractAddress, - getRealmWithPosition, - getStructure, - RealmWithPosition, - Structure, -} from "@bibliothecadao/eternum"; +import { ContractAddress, getStructure, Structure } from "@bibliothecadao/eternum"; import { useEntityQuery } from "@dojoengine/react"; import { Has, HasValue } from "@dojoengine/recs"; import { useMemo } from "react"; import { useDojo } from "../context"; -export const usePlayerRealms = (playerAddress?: ContractAddress) => { - const { - account: { account }, - setup: { components }, - } = useDojo(); - - const entities = useEntityQuery([ - Has(components.Realm), - HasValue(components.Owner, { address: playerAddress || ContractAddress(account.address) }), - ]); - - const playerRealms = useMemo(() => { - return entities - .map((id) => getRealmWithPosition(Number(id), components)) - .filter((realm): realm is RealmWithPosition => realm !== undefined) - .sort((a, b) => a.name.localeCompare(b.name)); - }, [entities]); - - return playerRealms; -}; - export const usePlayerStructures = (playerAddress?: ContractAddress) => { const { account: { account }, diff --git a/packages/react/src/hooks/helpers/use-resources.ts b/packages/react/src/hooks/helpers/use-resources.ts index 666d819a4..678ba3bc0 100644 --- a/packages/react/src/hooks/helpers/use-resources.ts +++ b/packages/react/src/hooks/helpers/use-resources.ts @@ -6,15 +6,21 @@ import { ResourceManager, ResourcesIds, } from "@bibliothecadao/eternum"; +import { useEntityQuery } from "@dojoengine/react"; +import { HasValue } from "@dojoengine/recs"; import { useMemo } from "react"; import { useDojo } from "../context"; export const useResourceManager = (entityId: ID, resourceId: ResourcesIds) => { const dojo = useDojo(); + const resource = useEntityQuery([ + HasValue(dojo.setup.components.Resource, { entity_id: entityId, resource_type: resourceId }), + ]); + const resourceManager = useMemo(() => { return new ResourceManager(dojo.setup.components, entityId, resourceId); - }, [dojo.setup, entityId, resourceId]); + }, [entityId, resourceId, resource]); return resourceManager; }; diff --git a/packages/react/src/hooks/helpers/use-trade.ts b/packages/react/src/hooks/helpers/use-trade.ts index 9fb3a05d1..5d1ab9a46 100644 --- a/packages/react/src/hooks/helpers/use-trade.ts +++ b/packages/react/src/hooks/helpers/use-trade.ts @@ -1,16 +1,15 @@ -import { computeTrades, ContractAddress, ResourcesIds } from "@bibliothecadao/eternum"; +import { computeTrades, ResourcesIds } from "@bibliothecadao/eternum"; import { useEntityQuery } from "@dojoengine/react"; import { HasValue } from "@dojoengine/recs"; import { useMemo } from "react"; -import { useDojo, usePlayerRealms } from "../"; +import { useDojo, usePlayerOwnedRealms } from "../"; export function useMarket(currentBlockTimestamp: number) { const { - account: { account }, setup: { components }, } = useDojo(); - const playerRealms = usePlayerRealms(ContractAddress(account.address)); + const playerRealms = usePlayerOwnedRealms(); const allMarket = useEntityQuery([ HasValue(components.Status, { value: 0n }), @@ -21,7 +20,7 @@ export function useMarket(currentBlockTimestamp: number) { }, [allMarket]); const userTrades = useMemo(() => { - return allTrades.filter((trade) => playerRealms.map((realm) => realm.entity_id).includes(trade.makerId)); + return allTrades.filter((trade) => playerRealms.map((realm) => realm.entityId).includes(trade.makerId)); }, [allTrades]); const bidOffers = useMemo(() => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b1dd428c..ceb174b10 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,16 +10,16 @@ importers: dependencies: '@cartridge/connector': specifier: ^0.6.x - version: 0.6.0(@starknet-react/core@3.7.2(get-starknet-core@3.3.4(starknet@6.23.1(encoding@0.1.13)))(react@19.0.0)(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3))(starknet@6.23.1(encoding@0.1.13)) + version: 0.6.0(@starknet-react/core@3.7.2(get-starknet-core@3.3.5(starknet@6.23.1(encoding@0.1.13)))(react@18.3.1)(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3))(starknet@6.23.1(encoding@0.1.13)) '@cartridge/controller': specifier: ^0.6.x version: 0.6.0(starknet@6.23.1(encoding@0.1.13)) '@dojoengine/create-burner': specifier: 1.0.4-alpha.3.1.0 - version: 1.0.4-alpha.3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3) + version: 1.0.4-alpha.3.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3) '@dojoengine/react': specifier: 1.0.4-alpha.3.1.0 - version: 1.0.4-alpha.3.1.0(@types/node@20.17.17)(@types/react@18.3.18)(react@19.0.0)(starknet@6.23.1(encoding@0.1.13))(terser@5.38.1)(type-fest@2.19.0)(typescript@5.7.3)(zod@3.24.1) + version: 1.0.4-alpha.3.1.0(@types/node@20.17.17)(@types/react@18.3.18)(react@18.3.1)(starknet@6.23.1(encoding@0.1.13))(terser@5.38.1)(type-fest@2.19.0)(typescript@5.7.3)(zod@3.24.1) '@dojoengine/recs': specifier: ^2.0.13 version: 2.0.13(typescript@5.7.3)(zod@3.24.1) @@ -52,7 +52,7 @@ importers: version: 2.22.23(typescript@5.7.3)(zod@3.24.1) vocs: specifier: latest - version: 1.0.0-alpha.62(@types/node@20.17.17)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(acorn@8.14.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.34.5)(terser@5.38.1)(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3))(typescript@5.7.3) + version: 1.0.0-alpha.62(@types/node@20.17.17)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.34.6)(terser@5.38.1)(typescript@5.7.3) devDependencies: '@bibliothecadao/eternum': specifier: workspace:^ @@ -77,7 +77,7 @@ importers: version: 10.4.20(postcss@8.5.1) eslint: specifier: ^9.9.0 - version: 9.19.0(jiti@2.4.2) + version: 9.20.0(jiti@2.4.2) postcss: specifier: ^8.4.35 version: 8.5.1 @@ -119,7 +119,7 @@ importers: version: 3.7.2(get-starknet-core@4.0.0)(react@18.3.1)(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3) '@tailwindcss/typography': specifier: ^0.5.13 - version: 0.5.16(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3))) + version: 0.5.16(tailwindcss@3.4.17) class-variance-authority: specifier: ^0.7.0 version: 0.7.1 @@ -128,7 +128,7 @@ importers: version: 1.2.1 framer-motion: specifier: ^11.0.24 - version: 11.18.2(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lucide-react: specifier: ^0.365.0 version: 0.365.0(react@18.3.1) @@ -149,10 +149,10 @@ importers: version: 2.6.0 tailwindcss: specifier: ^3.4.1 - version: 3.4.17(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3)) + version: 3.4.17 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3))) + version: 1.0.7(tailwindcss@3.4.17) viem: specifier: ^2.21.45 version: 2.22.23(typescript@5.7.3)(zod@3.24.1) @@ -162,7 +162,7 @@ importers: devDependencies: '@svgr/rollup': specifier: ^8.1.0 - version: 8.1.0(rollup@4.34.5)(typescript@5.7.3) + version: 8.1.0(rollup@4.34.6)(typescript@5.7.3) '@types/node': specifier: ^20.11.10 version: 20.17.17 @@ -186,10 +186,10 @@ importers: version: 1.17.6(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) vite-plugin-svgr: specifier: ^4.2.0 - version: 4.3.0(rollup@4.34.5)(typescript@5.7.3)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) + version: 4.3.0(rollup@4.34.6)(typescript@5.7.3)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) vite-plugin-top-level-await: specifier: ^1.4.1 - version: 1.4.4(@swc/helpers@0.5.15)(rollup@4.34.5)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) + version: 1.4.4(@swc/helpers@0.5.15)(rollup@4.34.6)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) vite-plugin-wasm: specifier: ^3.3.0 version: 3.4.1(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) @@ -198,20 +198,20 @@ importers: dependencies: '@tanstack/react-table': specifier: ^8.20.5 - version: 8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 8.20.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@eslint/js': specifier: ^9.9.0 - version: 9.19.0 + version: 9.20.0 eslint-plugin-react-hooks: specifier: ^5.1.0-rc.0 - version: 5.1.0(eslint@9.19.0(jiti@2.4.2)) + version: 5.1.0(eslint@9.20.0(jiti@2.4.2)) eslint-plugin-react-refresh: specifier: ^0.4.9 - version: 0.4.18(eslint@9.19.0(jiti@2.4.2)) + version: 0.4.18(eslint@9.20.0(jiti@2.4.2)) typescript-eslint: specifier: ^8.0.1 - version: 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + version: 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) client/apps/game: dependencies: @@ -220,7 +220,7 @@ importers: version: 2.2.19 '@vercel/analytics': specifier: ^1.2.2 - version: 1.4.1(react@19.0.0) + version: 1.4.1(react@18.3.1) buffer: specifier: ^6.0.3 version: 6.0.3 @@ -241,10 +241,10 @@ importers: version: 6.36.7(three@0.166.1) react-draggable: specifier: ^4.4.6 - version: 4.4.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-shepherd: specifier: ^6.1.6 - version: 6.1.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + version: 6.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3) shepherd.js: specifier: ^14.3.0 version: 14.4.0 @@ -259,16 +259,16 @@ importers: version: 2.35.13(three@0.166.1) use-sound: specifier: ^4.0.1 - version: 4.0.3(react@19.0.0) + version: 4.0.3(react@18.3.1) vite-plugin-pwa: specifier: ^0.20.5 version: 0.20.5(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0) wouter: specifier: ^2.12.1 - version: 2.12.1(react@19.0.0) + version: 2.12.1(react@18.3.1) zustand: specifier: ^4.5.2 - version: 4.5.6(@types/react@19.0.8)(react@19.0.0) + version: 4.5.6(@types/react@18.3.18)(react@18.3.1) devDependencies: '@types/lodash': specifier: ^4.14.202 @@ -281,7 +281,7 @@ importers: version: 0.163.0 '@typescript-eslint/eslint-plugin': specifier: ^7.5.0 - version: 7.18.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + version: 7.18.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@vitest/coverage-v8': specifier: ^2.0.5 version: 2.1.9(vitest@2.1.9(@types/node@20.17.17)(@vitest/ui@2.1.9)(terser@5.38.1)) @@ -290,7 +290,7 @@ importers: version: 2.1.9(vitest@2.1.9) eslint-config-love: specifier: ^114.0.0 - version: 114.0.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + version: 114.0.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) workbox-window: specifier: ^7.3.0 version: 7.3.0 @@ -316,40 +316,40 @@ importers: version: 2.5.1 '@radix-ui/react-checkbox': specifier: ^1.1.2 - version: 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-collapsible': specifier: ^1.1.1 - version: 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dialog': specifier: ^1.1.2 - version: 1.1.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dropdown-menu': specifier: ^2.1.2 - version: 2.1.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-label': specifier: ^2.1.0 - version: 2.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-popover': specifier: ^1.1.2 - version: 1.1.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-separator': specifier: ^1.1.0 - version: 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': specifier: ^1.1.0 - version: 1.1.2(@types/react@19.0.8)(react@18.3.1) + version: 1.1.2(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-tooltip': specifier: ^1.1.3 - version: 1.1.8(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.8(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-query': specifier: ^5.59.15 version: 5.66.0(react@18.3.1) '@tanstack/react-router': specifier: ^1.74.0 - version: 1.99.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.99.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) cmdk: specifier: 1.0.0 - version: 1.0.0(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.0.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) graphql: specifier: ^16.9.0 version: 16.10.0 @@ -358,7 +358,7 @@ importers: version: 2.12.6(graphql@16.10.0) jotai: specifier: ^2.10.1 - version: 2.11.3(@types/react@19.0.8)(react@18.3.1) + version: 2.11.3(@types/react@18.3.18)(react@18.3.1) nuqs: specifier: ^2.0.4 version: 2.3.2(react-router-dom@6.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-router@6.29.0(react@18.3.1))(react@18.3.1) @@ -367,7 +367,7 @@ importers: version: 8.5.3(prettier@3.4.2) vite-plugin-vercel: specifier: ^9.0.3 - version: 9.0.4(encoding@0.1.13)(rollup@4.34.5)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) + version: 9.0.4(encoding@0.1.13)(rollup@4.34.6)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) devDependencies: '@0no-co/graphqlsp': specifier: ^1.12.16 @@ -389,7 +389,7 @@ importers: version: 6.1.0(encoding@0.1.13)(graphql@16.10.0) '@storybook/addon-essentials': specifier: ^8.3.2 - version: 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) + version: 8.5.3(@types/react@18.3.18)(storybook@8.5.3(prettier@3.4.2)) '@storybook/addon-interactions': specifier: ^8.3.2 version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) @@ -410,179 +410,16 @@ importers: version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) '@storybook/react-vite': specifier: ^8.3.2 - version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.34.5)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) + version: 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.34.6)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) '@storybook/test': specifier: ^8.3.2 version: 8.5.3(storybook@8.5.3(prettier@3.4.2)) '@tanstack/router-devtools': specifier: ^1.74.0 - version: 1.99.9(@tanstack/react-router@1.99.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.99.13(@tanstack/react-router@1.99.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/router-plugin': specifier: ^1.73.1 - version: 1.99.12(@tanstack/react-router@1.99.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1))(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))(esbuild@0.24.2)) - - client/apps/torii-launcher: - dependencies: - '@electron-forge/shared-types': - specifier: ^7.6.0 - version: 7.6.1 - electron-squirrel-startup: - specifier: ^1.0.1 - version: 1.0.1 - escape-it: - specifier: ^0.3.0 - version: 0.3.0 - react: - specifier: ^19.0.0 - version: 19.0.0 - react-dom: - specifier: ^19.0.0 - version: 19.0.0(react@19.0.0) - shell-escape: - specifier: ^0.2.0 - version: 0.2.0 - sonner: - specifier: ^1.7.2 - version: 1.7.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - starknet: - specifier: ^6.11.0 - version: 6.23.1(encoding@0.1.13) - styled-components: - specifier: ^6.1.14 - version: 6.1.15(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - tar-fs: - specifier: ^3.0.8 - version: 3.0.8 - tslib: - specifier: ^2.8.1 - version: 2.8.1 - update-electron-app: - specifier: ^3.1.0 - version: 3.1.1 - vite-plugin-svgr: - specifier: ^4.3.0 - version: 4.3.0(rollup@4.34.5)(typescript@4.5.5)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) - devDependencies: - '@babel/core': - specifier: ^7.26.0 - version: 7.26.7 - '@babel/preset-react': - specifier: ^7.26.3 - version: 7.26.3(@babel/core@7.26.7) - '@electron-forge/cli': - specifier: ^7.4.0 - version: 7.6.1(encoding@0.1.13) - '@electron-forge/maker-deb': - specifier: ^7.4.0 - version: 7.6.1 - '@electron-forge/maker-dmg': - specifier: ^7.6.0 - version: 7.6.1 - '@electron-forge/maker-rpm': - specifier: ^7.4.0 - version: 7.6.1 - '@electron-forge/maker-squirrel': - specifier: ^7.4.0 - version: 7.6.1 - '@electron-forge/maker-zip': - specifier: ^7.4.0 - version: 7.6.1 - '@electron-forge/plugin-auto-unpack-natives': - specifier: ^7.4.0 - version: 7.6.1 - '@electron-forge/plugin-fuses': - specifier: ^7.4.0 - version: 7.6.1(@electron/fuses@1.8.0) - '@electron-forge/plugin-vite': - specifier: ^7.4.0 - version: 7.6.1 - '@electron-forge/plugin-webpack': - specifier: ^7.4.0 - version: 7.6.1(@swc/core@1.10.14(@swc/helpers@0.5.15)) - '@electron-forge/publisher-s3': - specifier: ^7.6.1 - version: 7.6.1 - '@electron/fuses': - specifier: ^1.8.0 - version: 1.8.0 - '@types/electron-squirrel-startup': - specifier: ^1.0.2 - version: 1.0.2 - '@types/hasbin': - specifier: ^1.2.2 - version: 1.2.2 - '@types/react': - specifier: ^19.0.7 - version: 19.0.8 - '@types/react-dom': - specifier: ^19.0.3 - version: 19.0.3(@types/react@19.0.8) - '@types/shell-escape': - specifier: ^0.2.3 - version: 0.2.3 - '@types/tar': - specifier: ^6.1.13 - version: 6.1.13 - '@typescript-eslint/eslint-plugin': - specifier: ^5.62.0 - version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.5.5))(eslint@8.57.1)(typescript@4.5.5) - '@typescript-eslint/parser': - specifier: ^5.62.0 - version: 5.62.0(eslint@8.57.1)(typescript@4.5.5) - '@vercel/webpack-asset-relocator-loader': - specifier: ^1.7.3 - version: 1.7.4 - autoprefixer: - specifier: ^10.4.20 - version: 10.4.20(postcss@8.5.1) - babel-loader: - specifier: ^9.2.1 - version: 9.2.1(@babel/core@7.26.7)(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))) - css-loader: - specifier: ^6.11.0 - version: 6.11.0(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))) - electron: - specifier: 34.0.0 - version: 34.0.0 - eslint: - specifier: ^8.57.1 - version: 8.57.1 - eslint-plugin-import: - specifier: ^2.31.0 - version: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.5.5))(eslint@8.57.1) - fork-ts-checker-webpack-plugin: - specifier: ^7.3.0 - version: 7.3.0(typescript@4.5.5)(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))) - hasbin: - specifier: ^1.2.3 - version: 1.2.3 - node-loader: - specifier: ^2.1.0 - version: 2.1.0(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))) - postcss-loader: - specifier: ^8.1.1 - version: 8.1.1(postcss@8.5.1)(typescript@4.5.5)(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))) - prettier: - specifier: ^3.4.2 - version: 3.4.2 - style-loader: - specifier: ^3.3.4 - version: 3.3.4(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))) - tailwindcss: - specifier: ^3.4.17 - version: 3.4.17(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@4.5.5)) - ts-loader: - specifier: ^9.5.2 - version: 9.5.2(typescript@4.5.5)(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))) - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@4.5.5) - typescript: - specifier: ~4.5.4 - version: 4.5.5 - vite: - specifier: ^5.4.14 - version: 5.4.14(@types/node@20.17.17)(terser@5.38.1) + version: 1.99.14(@tanstack/react-router@1.99.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) config: dependencies: @@ -626,7 +463,7 @@ importers: version: 20.17.17 tsup: specifier: ^8.0.2 - version: 8.3.6(@swc/core@1.10.14(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) + version: 8.3.6(@swc/core@1.10.15(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) typedoc: specifier: ^0.26.11 version: 0.26.11(typescript@5.7.3) @@ -666,13 +503,13 @@ importers: version: 18.3.18 tsup: specifier: ^8 - version: 8.3.6(@swc/core@1.10.14(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) + version: 8.3.6(@swc/core@1.10.15(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) typescript: specifier: ^5 version: 5.7.3 vite-plugin-top-level-await: specifier: ^1.4.1 - version: 1.4.4(@swc/helpers@0.5.15)(rollup@4.34.5)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) + version: 1.4.4(@swc/helpers@0.5.15)(rollup@4.34.6)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) vite-plugin-wasm: specifier: ^3.3.0 version: 3.4.1(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) @@ -740,169 +577,12 @@ packages: '@ark-project/react@2.0.0-beta.2': resolution: {integrity: sha512-QmnL2Y5ondgYpMWaIcm8nva7/7HPKonHg7QrAXIsVU2N63pwbCbK6sNrksPoZ4PKUFgPUBRbF7/kOwKvwG/uKA==} - '@aws-crypto/crc32@5.2.0': - resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} - engines: {node: '>=16.0.0'} - - '@aws-crypto/crc32c@5.2.0': - resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} - - '@aws-crypto/sha1-browser@5.2.0': - resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} - - '@aws-crypto/sha256-browser@5.2.0': - resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} - - '@aws-crypto/sha256-js@5.2.0': - resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} - engines: {node: '>=16.0.0'} - - '@aws-crypto/supports-web-crypto@5.2.0': - resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} - - '@aws-crypto/util@5.2.0': - resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - - '@aws-sdk/client-s3@3.743.0': - resolution: {integrity: sha512-zfHfxjr41m3vYCmaCf0P55lJhOYj9EPKoaftBMZni5OQkA98AI7jVeIAT5nisGPrp3eDXEdV00GhFlSyUHkl7A==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/client-sso@3.743.0': - resolution: {integrity: sha512-zzIukqTlBJ/GUxVhQUqBZNMfxK2m8J2AfWN/xdXh8uqj+yqGLFl7E9wftmDxzyj6oHOerv4s1SlE36BGavtHGA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/core@3.734.0': - resolution: {integrity: sha512-SxnDqf3vobdm50OLyAKfqZetv6zzwnSqwIwd3jrbopxxHKqNIM/I0xcYjD6Tn+mPig+u7iRKb9q3QnEooFTlmg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-env@3.734.0': - resolution: {integrity: sha512-gtRkzYTGafnm1FPpiNO8VBmJrYMoxhDlGPYDVcijzx3DlF8dhWnowuSBCxLSi+MJMx5hvwrX2A+e/q0QAeHqmw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-http@3.734.0': - resolution: {integrity: sha512-JFSL6xhONsq+hKM8xroIPhM5/FOhiQ1cov0lZxhzZWj6Ai3UAjucy3zyIFDr9MgP1KfCYNdvyaUq9/o+HWvEDg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-ini@3.743.0': - resolution: {integrity: sha512-mzIgzX9//kmx9BW/vICnLVgwu0KF2nOUfFLYF4ybBuqw13nspMavgJiZ11NwJ4aeCempgiJNnH+d/Kj4hq49nQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-node@3.743.0': - resolution: {integrity: sha512-Tm5HUfjWhI6nTcqBKvTYRYd4Y8xsLB3AvpCGqBYhItUDRIDIDsubgQfXnxaYrs4SRMzWSIpOvxu2YfqB8Z5BDQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-process@3.734.0': - resolution: {integrity: sha512-zvjsUo+bkYn2vjT+EtLWu3eD6me+uun+Hws1IyWej/fKFAqiBPwyeyCgU7qjkiPQSXqk1U9+/HG9IQ6Iiz+eBw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-sso@3.743.0': - resolution: {integrity: sha512-Qbwx1wMa2L/JPVZcDzn2vBEWoEzKBIeIu0PUN4EHhzY08KRbpe6Jd15znW6ZplpgrW9qkYc6RommJpmD8J8YpQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-web-identity@3.743.0': - resolution: {integrity: sha512-FviWKReYdEnt/dvNWddtIY+WrucZWmV2JT54jwAlhYgvFp0HjI2ldsQswvCynOg2Rp18tPVih6rFo/8NeerS8A==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/lib-storage@3.743.0': - resolution: {integrity: sha512-Rf/5sljlEJRVtB5C4UjLCOIcK2ODZet9rQsRtsn0bIc2byURbpOdqIGvfEcKWPayoXCS4dC/5bdjhL1zhZ0TMg==} - engines: {node: '>=18.0.0'} - peerDependencies: - '@aws-sdk/client-s3': ^3.743.0 - - '@aws-sdk/middleware-bucket-endpoint@3.734.0': - resolution: {integrity: sha512-etC7G18aF7KdZguW27GE/wpbrNmYLVT755EsFc8kXpZj8D6AFKxc7OuveinJmiy0bYXAMspJUWsF6CrGpOw6CQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-expect-continue@3.734.0': - resolution: {integrity: sha512-P38/v1l6HjuB2aFUewt7ueAW5IvKkFcv5dalPtbMGRhLeyivBOHwbCyuRKgVs7z7ClTpu9EaViEGki2jEQqEsQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-flexible-checksums@3.735.0': - resolution: {integrity: sha512-Tx7lYTPwQFRe/wQEHMR6Drh/S+X0ToAEq1Ava9QyxV1riwtepzRLojpNDELFb3YQVVYbX7FEiBMCJLMkmIIY+A==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-host-header@3.734.0': - resolution: {integrity: sha512-LW7RRgSOHHBzWZnigNsDIzu3AiwtjeI2X66v+Wn1P1u+eXssy1+up4ZY/h+t2sU4LU36UvEf+jrZti9c6vRnFw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-location-constraint@3.734.0': - resolution: {integrity: sha512-EJEIXwCQhto/cBfHdm3ZOeLxd2NlJD+X2F+ZTOxzokuhBtY0IONfC/91hOo5tWQweerojwshSMHRCKzRv1tlwg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-logger@3.734.0': - resolution: {integrity: sha512-mUMFITpJUW3LcKvFok176eI5zXAUomVtahb9IQBwLzkqFYOrMJvWAvoV4yuxrJ8TlQBG8gyEnkb9SnhZvjg67w==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-recursion-detection@3.734.0': - resolution: {integrity: sha512-CUat2d9ITsFc2XsmeiRQO96iWpxSKYFjxvj27Hc7vo87YUHRnfMfnc8jw1EpxEwMcvBD7LsRa6vDNky6AjcrFA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-sdk-s3@3.740.0': - resolution: {integrity: sha512-VML9TzNoQdAs5lSPQSEgZiPgMUSz2H7SltaLb9g4tHwKK5xQoTq5WcDd6V1d2aPxSN5Q2Q63aiVUBby6MdUN/Q==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-ssec@3.734.0': - resolution: {integrity: sha512-d4yd1RrPW/sspEXizq2NSOUivnheac6LPeLSLnaeTbBG9g1KqIqvCzP1TfXEqv2CrWfHEsWtJpX7oyjySSPvDQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-user-agent@3.743.0': - resolution: {integrity: sha512-bpAhfmsOc6PR3JTOYbJtdD4lw1hSUBCJMlOIrwVUJS4Jiuscxn8+HOSjkSNXB/BaleYOVQ+xlR62Qlnjn4o8rw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/nested-clients@3.743.0': - resolution: {integrity: sha512-nq0lLbo8OY07tUxNPzA8ShhOXu9u5Q6MkI1POEuhl8nhyyci8JR98D7cEg3YLOxRmrxvs3mlvOa3wZux0ah5UA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/region-config-resolver@3.734.0': - resolution: {integrity: sha512-Lvj1kPRC5IuJBr9DyJ9T9/plkh+EfKLy+12s/mykOy1JaKHDpvj+XGy2YO6YgYVOb8JFtaqloid+5COtje4JTQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/signature-v4-multi-region@3.740.0': - resolution: {integrity: sha512-w+psidN3i+kl51nQEV3V+fKjKUqcEbqUA1GtubruDBvBqrl5El/fU2NF3Lo53y8CfI9wCdf3V7KOEpHIqxHNng==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/token-providers@3.743.0': - resolution: {integrity: sha512-t60WqBM37KnUiD5CE5BhqO6RCgGm5pnPD22UGCTB+Rlbc1L5HRXrzrXoITtqsJ40d7sPo9QxNAmzLmhVHvig5g==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/types@3.734.0': - resolution: {integrity: sha512-o11tSPTT70nAkGV1fN9wm/hAIiLPyWX6SuGf+9JyTp7S/rC2cFWhR26MvA69nplcjNaXVzB0f+QFrLXXjOqCrg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/util-arn-parser@3.723.0': - resolution: {integrity: sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/util-endpoints@3.743.0': - resolution: {integrity: sha512-sN1l559zrixeh5x+pttrnd0A3+r34r0tmPkJ/eaaMaAzXqsmKU/xYre9K3FNnsSS1J1k4PEfk/nHDTVUgFYjnw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/util-locate-window@3.723.0': - resolution: {integrity: sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/util-user-agent-browser@3.734.0': - resolution: {integrity: sha512-xQTCus6Q9LwUuALW+S76OL0jcWtMOVu14q+GoLnWPUM7QeUw963oQcLhF7oq0CtaLLKyl4GOUfcwc773Zmwwng==} - - '@aws-sdk/util-user-agent-node@3.743.0': - resolution: {integrity: sha512-YQ2vFYw6UIIgkRQnlU3w/ZZlTHQZL+Ln3EwjKyfsdvUkzlMYS6pRtSXRh42S7BF7TWaO1l9wBYSsF57PB3LR7A==} - engines: {node: '>=18.0.0'} - peerDependencies: - aws-crt: '>=1.0.0' - peerDependenciesMeta: - aws-crt: - optional: true - - '@aws-sdk/xml-builder@3.734.0': - resolution: {integrity: sha512-Zrjxi5qwGEcUsJ0ru7fRtW74WcTS0rbLcehoFB+rN1GRi2hbLcFaYs4PwVA5diLeAJH0gszv3x4Hr/S87MfbKQ==} - engines: {node: '>=18.0.0'} - '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.5': - resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==} + '@babel/compat-data@7.26.8': + resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} engines: {node: '>=6.9.0'} '@babel/core@7.26.7': @@ -996,8 +676,8 @@ packages: resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.7': - resolution: {integrity: sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==} + '@babel/parser@7.26.8': + resolution: {integrity: sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==} engines: {node: '>=6.0.0'} hasBin: true @@ -1409,8 +1089,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.25.9': - resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==} + '@babel/plugin-transform-template-literals@7.26.8': + resolution: {integrity: sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1421,8 +1101,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.26.7': - resolution: {integrity: sha512-5cJurntg+AT+cgelGP9Bt788DKiAw9gIMSMU2NJrLAilnj0m8WZWUNZPSLOmadYsujHutpgElO+50foX+ib/Wg==} + '@babel/plugin-transform-typescript@7.26.8': + resolution: {integrity: sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1486,8 +1166,8 @@ packages: resolution: {integrity: sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.7': - resolution: {integrity: sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==} + '@babel/types@7.26.8': + resolution: {integrity: sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -1554,10 +1234,6 @@ packages: bundledDependencies: - is-unicode-supported - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - '@dojoengine/core@1.0.0-alpha.24': resolution: {integrity: sha512-ABxUtqQOsrTm8HYvR8pICfQ+MX99ZRSW1QkOyjRy4PbB+8A9heq2bMBqVrFhgMYFdEti9Z8aXNbt+uJ985SSqg==} hasBin: true @@ -1626,172 +1302,9 @@ packages: peerDependencies: starknet: 6.11.0 - '@electron-forge/cli@7.6.1': - resolution: {integrity: sha512-Z9OwK5cAVDOj7MWWt9Gw0/4OJO/db+rshLSXg0I+ySv4xrJmZK1w6QEeOrm7eHjuAqKA+gzIaHsRsT0klCL2lg==} - engines: {node: '>= 16.4.0'} - hasBin: true - - '@electron-forge/core-utils@7.6.1': - resolution: {integrity: sha512-RGA3azq0r5bGk8DDmVDP1EML071JEa44hpZEgSsv9zmdC86aTh0cANyDE6sVarAwLx4LQ+zrFE3KSb63j1HD5w==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/core@7.6.1': - resolution: {integrity: sha512-gODx2GcBl6Y6ls1DeBidhKC0nmI2/xfx89WcSEDa5M3NKm/bBQo1EPjpwG6F+2r4e8KDkY/KrRbIli+wL1zQ7w==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/maker-base@7.6.1': - resolution: {integrity: sha512-kA6k0z4fFbqfjV++bbYVC46TckiqyqIo/gTW/QexsT6xlutXUbnNevhoRPVfGigftSAjE6T26DwTogC9hNDkwg==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/maker-deb@7.6.1': - resolution: {integrity: sha512-8pqwxwlMPddH6anfNL8vYE5v2mlPia+z9YcpnLlMbMjWo9ksRcxmrg2t3El9jvk1TkiPoqVcQzCNaQqYQaMoiw==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/maker-dmg@7.6.1': - resolution: {integrity: sha512-D7cJRE6CGeovLZhu2dRqUm3w/AlkTURYJYgFuUsgwpBuviQKgJd8quZar6IeZ/l83y4Z1dghKb8D3aAj+bRvNQ==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/maker-rpm@7.6.1': - resolution: {integrity: sha512-BShfmto+XTSA01pkZp10r2ktyruVfI24sGC+y4az1vbqkmX2qN9j0Xr+G/ZMHsm76XHju0N/e1Y2pqqu2JM8/A==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/maker-squirrel@7.6.1': - resolution: {integrity: sha512-7EMLcl0QM5GfdY+enfauEqV6ZW14A1S6Eqoev812FXGTm88G8Ik0tPRw6SsIaI8R++YqxsbdCGTQjzdJWY0bJA==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/maker-zip@7.6.1': - resolution: {integrity: sha512-omoBwoY99DpsgabVIu6Qva+r8kwCY04zDV+P60WN6x+JX/MF+Bk3zI271aH6raZaB+YSbvaed/LDG1QmEM9cTA==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/plugin-auto-unpack-natives@7.6.1': - resolution: {integrity: sha512-sPFSVhlJBvEA70e0QNbYno5AYc8nvmKCgs4YqTwc24ONhIX0TwGAzjuJ7AZBOj88rhhY9+9Rkl9cONVa5GGZvA==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/plugin-base@7.6.1': - resolution: {integrity: sha512-RWt+a8At55dVwEgr8BnnmBN05QzZq+DbOHNPeSJEM2d4ZyLUZXTkkwSF+ZMVk5mQCfIf75l+6BEzkXOcVvti2Q==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/plugin-fuses@7.6.1': - resolution: {integrity: sha512-M37qQ3/fhvs50Cu5Q0APw7AAWmaS8zGWhbBCAGAeDt1jK0/d8vT6TVb3Qa91tqnIoAhz9DhdTemYrtieBSAF3Q==} - engines: {node: '>= 16.4.0'} - peerDependencies: - '@electron/fuses': '>=1.0.0' - - '@electron-forge/plugin-vite@7.6.1': - resolution: {integrity: sha512-+F9wMQRYwr104Jz4HPxBFzg0Tt76LiRF5XIz5d1SoCQ/wUM2oC0zxurQ/DqFcbf6pzeM/WZ1mpFx24bJRSVmJw==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/plugin-webpack@7.6.1': - resolution: {integrity: sha512-dUB1zHpltPUwigzKxulM+OcqauexbCrku/coUw+O/33iTo7UfkvPhqR3QBdAF6JpjFGnnURodtuL1tol7E7j4A==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/publisher-base@7.6.1': - resolution: {integrity: sha512-VE0DJJYcMRGMxEbeC20q+ynCpra9oqkM6oXd8O1jRyTit9F+PZlscT/p5vLANrTW5vGrV6CXLyyloPxWxOf8DA==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/publisher-s3@7.6.1': - resolution: {integrity: sha512-XchvwkGdn485rLZs2Hy0XzgPy6Ib46RUUndIzLqDpMGBv14UQsInExamfprwiRXfJoI4gI5y/vYItP3iPyNS8A==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/publisher-static@7.6.1': - resolution: {integrity: sha512-kn/JqKspN/V5B+J4+wGq1icoVHP/Sm1ZoWiT6zqrm7QQvK08wO3k9aCrkhP4zRJI9RW0VxkyPm/ycxCW+/Fu2g==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/shared-types@7.6.1': - resolution: {integrity: sha512-i6VdZGG8SYEBirpk+FP7bEMYtCNf9wBkK81IcPco8LP0KbsvgR8y7aUSVxG8DLoVwYB5yr0N9MYXOfNp1gkQ7A==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/template-base@7.6.1': - resolution: {integrity: sha512-Pk65CIe6jYJa/hv25o0ueyuAOrRTi3qz92g5cYnj+YZzndNmrem1sNQvNKkavw0w0TKEUC5Y0EZ4ejLSYhVIQA==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/template-vite-typescript@7.6.1': - resolution: {integrity: sha512-7aMq7/woR2xUNbCYCRa/dwinnjoYKuamn17hYBwmyRNJ+YKV9btVK6lq+WR4sJmFM5Fv3qOJlUwrNyxH+HoUCQ==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/template-vite@7.6.1': - resolution: {integrity: sha512-DxRBCXgnpFQHueG3M6yDN1x2pTYDycHXIddLExUydA9bsrxVwlu8Oo7Mm5XOEltebITD/bZ0iQniOVkzUov37g==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/template-webpack-typescript@7.6.1': - resolution: {integrity: sha512-ECEd70QOAi7r2ZibIU2U9rh0CVND7oJP5BnKRCP20uUCxdQdO7RTMRDXesm41VTRa1uZ+64pRdOQTDFHB6xitA==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/template-webpack@7.6.1': - resolution: {integrity: sha512-8HXJ7eh5mjphC2tBfBOroEfM71DsWt3yrkEQMGzW6Lc5u2itkCQrEAINm3nuLscWrqLRk4ZsfT1f1VzdwAraXg==} - engines: {node: '>= 16.4.0'} - - '@electron-forge/tracer@7.6.1': - resolution: {integrity: sha512-nZzVzXT4xdueWYoSbgStS5LfcifW/e/WJj9VOt6xYpFxYOsQHpLkkCAc6nH0gxn+60kiU4FMU0p2kSQ2eQhWuA==} - engines: {node: '>= 14.17.5'} - - '@electron-forge/web-multi-logger@7.6.1': - resolution: {integrity: sha512-UdSZXDVUBQ4kVXFt8mChGz6wg6d+RDstP5EiPhy94lxskQeAielC0qStBl4QOzXhf3k104ZfOitW3TQBS59HKA==} - engines: {node: '>= 16.4.0'} - - '@electron/asar@3.2.18': - resolution: {integrity: sha512-2XyvMe3N3Nrs8cV39IKELRHTYUWFKrmqqSY1U+GMlc0jvqjIVnoxhNd2H4JolWQncbJi1DCvb5TNxZuI2fEjWg==} - engines: {node: '>=10.12.0'} - hasBin: true - - '@electron/fuses@1.8.0': - resolution: {integrity: sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw==} - hasBin: true - - '@electron/get@2.0.3': - resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} - engines: {node: '>=12'} - - '@electron/get@3.1.0': - resolution: {integrity: sha512-F+nKc0xW+kVbBRhFzaMgPy3KwmuNTYX1fx6+FxxoSnNgwYX6LD7AKBTWkU0MQ6IBoe7dz069CNkR673sPAgkCQ==} - engines: {node: '>=14'} - - '@electron/node-gyp@https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2': - resolution: {tarball: https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2} - version: 10.2.0-electron.1 - engines: {node: '>=12.13.0'} - hasBin: true - - '@electron/notarize@2.5.0': - resolution: {integrity: sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==} - engines: {node: '>= 10.0.0'} - - '@electron/osx-sign@1.3.2': - resolution: {integrity: sha512-KqVlm9WMWq19lBpCXQoThC/Koaiji2zotUDYwZDaZlZZym+FXY9mQW8wN6sUQ93nkVc42f3TQ1S/XN9S1kjM5Q==} - engines: {node: '>=12.0.0'} - hasBin: true - - '@electron/packager@18.3.6': - resolution: {integrity: sha512-1eXHB5t+SQKvUiDpWGpvr90ZSSbXj+isrh3YbjCTjKT4bE4SQrKSBfukEAaBvp67+GXHFtCHjQgN9qSTFIge+Q==} - engines: {node: '>= 16.13.0'} - hasBin: true - - '@electron/rebuild@3.7.1': - resolution: {integrity: sha512-sKGD+xav4Gh25+LcLY0rjIwcCFTw+f/HU1pB48UVbwxXXRGaXEqIH0AaYKN46dgd/7+6kuiDXzoyAEvx1zCsdw==} - engines: {node: '>=12.13.0'} - hasBin: true - - '@electron/universal@2.0.1': - resolution: {integrity: sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==} - engines: {node: '>=16.4'} - - '@electron/windows-sign@1.2.0': - resolution: {integrity: sha512-5zfLHfD6kGgsXzuYlKwlWWO8w6dboKy4dhd7rGnR4rQYumuDgPAF2TYjEa8LUi89KdHxtDy2btq02KvbjhK9Iw==} - engines: {node: '>=14.14'} - hasBin: true - '@emotion/hash@0.9.2': resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - '@emotion/is-prop-valid@1.2.2': - resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} - - '@emotion/memoize@0.8.1': - resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} - - '@emotion/unitless@0.8.1': - resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} - '@envelop/core@5.0.3': resolution: {integrity: sha512-SE3JxL7odst8igN6x77QWyPpXKXz/Hs5o5Y27r+9Br6WHIhkW90lYYVITWIJQ/qYgn5PkpbaVgeFY9rgqQaZ/A==} engines: {node: '>=18.0.0'} @@ -2388,20 +1901,16 @@ packages: resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/core@0.11.0': + resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.2.0': resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@9.19.0': - resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} + '@eslint/js@9.20.0': + resolution: {integrity: sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -2445,9 +1954,6 @@ packages: '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} - '@gar/promisify@1.1.3': - resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@gql.tada/internal@1.0.8': resolution: {integrity: sha512-XYdxJhtHC5WtZfdDqtKjcQ4d7R1s0d1rnlSs3OcBEUbYiPoJJfZU7tWsVXuv047Z6msvmr4ompJ7eLSK5Km57g==} peerDependencies: @@ -2750,19 +2256,10 @@ packages: resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} engines: {node: '>=18.18.0'} - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - '@humanwhocodes/retry@0.3.1': resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} @@ -2817,9 +2314,6 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@kamilkisiela/fast-url-parser@1.1.4': resolution: {integrity: sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==} @@ -2832,17 +2326,6 @@ packages: '@latticexyz/utils@2.2.19': resolution: {integrity: sha512-s1ngJ1lKlVTqqicjDnMh1QfiEcr0yajgJ2XwKUbn9gVNTuiB/7Gy43AVSY8EFTYcZZBTd6pjsHQ69jn+bcKAzA==} - '@leichtgewicht/ip-codec@2.0.5': - resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} - - '@malept/cross-spawn-promise@1.1.1': - resolution: {integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==} - engines: {node: '>= 10'} - - '@malept/cross-spawn-promise@2.0.0': - resolution: {integrity: sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==} - engines: {node: '>= 12.13.0'} - '@manypkg/find-root@2.2.3': resolution: {integrity: sha512-jtEZKczWTueJYHjGpxU3KJQ08Gsrf4r6Q2GjmPp/RGk5leeYAA1eyDADSAF+KVCsQ6EwZd/FMcOFCoMhtqdCtQ==} engines: {node: '>=14.18.0'} @@ -2925,15 +2408,6 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@npmcli/fs@2.1.2': - resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - '@npmcli/move-file@2.0.1': - resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - deprecated: This functionality has been moved to @npmcli/fs - '@octokit/auth-token@4.0.0': resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} engines: {node: '>= 18'} @@ -3886,98 +3360,98 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.34.5': - resolution: {integrity: sha512-JXmmQcKQtpf3Z6lvA8akkrHDZ5AEfgc2hLMix1/X5BhQbezBQ0AP5GYLdU8jsQRme8qr2sscCe3wizp7UT0L9g==} + '@rollup/rollup-android-arm-eabi@4.34.6': + resolution: {integrity: sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.34.5': - resolution: {integrity: sha512-9/A8/ZBOprUjkrJoP9BBEq2vdSud6BPd3LChw09bJQiEZH5oN4kWIkHu90cA0Cj0cSF5cIaD76+0lA+d5KHmpQ==} + '@rollup/rollup-android-arm64@4.34.6': + resolution: {integrity: sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.34.5': - resolution: {integrity: sha512-b9oCfgHKfc1AJEQ5sEpE8Kf6s7aeygj5bZAsl1hTpZc1V9cfZASFSXzzNj7o/BQNPbjmVkVxpCCLRhBfLXhJ5g==} + '@rollup/rollup-darwin-arm64@4.34.6': + resolution: {integrity: sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.34.5': - resolution: {integrity: sha512-Gz42gKBQPoFdMYdsVqkcpttYOO/0aP7f+1CgMaeZEz0gss7dop1TsO3hT77Iroz/TV7PdPUG/RYlj9EA39L4dw==} + '@rollup/rollup-darwin-x64@4.34.6': + resolution: {integrity: sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.34.5': - resolution: {integrity: sha512-JPkafjkOFaupd8VQYsXfGFKC2pfMr7hwSYGkVGNwhbW0k0lHHyIdhCSNBendJ4O7YlT4yRyKXoms1TL7saO7SQ==} + '@rollup/rollup-freebsd-arm64@4.34.6': + resolution: {integrity: sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.34.5': - resolution: {integrity: sha512-j6Q8VFqyI8hZM33h1JC6DZK2w8ejkXqEMozTrtIEGfRVMpVZL3GrLOOYEUkAgUSpJ9sb2w+FEpjGj7IHRcQfdw==} + '@rollup/rollup-freebsd-x64@4.34.6': + resolution: {integrity: sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.34.5': - resolution: {integrity: sha512-6jyiXKF9Xq6x9yQjct5xrRT0VghJk5VzAfed3o0hgncwacZkzOdR0TXLRNjexsEXWN8tG7jWWwsVk7WeFi//gw==} + '@rollup/rollup-linux-arm-gnueabihf@4.34.6': + resolution: {integrity: sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.34.5': - resolution: {integrity: sha512-cOTYe5tLcGAvGztRLIqx87LE7j/qjaAqFrrHsPFlnuhhhFO5LSr2AzvdQYuxomJMzMBrXkMRNl9bQEpDZ5bjLQ==} + '@rollup/rollup-linux-arm-musleabihf@4.34.6': + resolution: {integrity: sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.34.5': - resolution: {integrity: sha512-KHlrd+YqmS7rriW+LBb1kQNYmd5w1sAIG3z7HEpnQOrg/skeYYv9DAcclGL9gpFdpnzmiAEkzsTT74kZWUtChQ==} + '@rollup/rollup-linux-arm64-gnu@4.34.6': + resolution: {integrity: sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.34.5': - resolution: {integrity: sha512-uOb6hzDqym4Sw+qw3+svS3SmwQGVUhyTdPKyHDdlYg1Z0aHjdNmjwRY7zw/90/UfBe/yD7Mv2mYKhQpOfy4RYA==} + '@rollup/rollup-linux-arm64-musl@4.34.6': + resolution: {integrity: sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.34.5': - resolution: {integrity: sha512-pARu8ZKANZH4wINLdHLKG69EPwJswM6A+Ox1a9LpiclRQoyjacFFTtXN3akKQ2ufJXDasO/pWvxKN9ZfCgEoFA==} + '@rollup/rollup-linux-loongarch64-gnu@4.34.6': + resolution: {integrity: sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.34.5': - resolution: {integrity: sha512-crUWn12NRmCdao2YwS1GvlPCVypMBMJlexTaantaP2+dAMd2eZBErFcKG8hZYEHjSbbk2UoH1aTlyeA4iKLqSA==} + '@rollup/rollup-linux-powerpc64le-gnu@4.34.6': + resolution: {integrity: sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.34.5': - resolution: {integrity: sha512-XtD/oMhCdixi3x8rCNyDRMUsLo1Z+1UQcK+oR7AsjglGov9ETiT3TNFhUPzaGC1jH+uaMtPhxrVRUub+pnAKTg==} + '@rollup/rollup-linux-riscv64-gnu@4.34.6': + resolution: {integrity: sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.34.5': - resolution: {integrity: sha512-V3+BvgyHb21aF7lw0sc78Tv0+xLp4lm2OM7CKFVrBuppsMvtl/9O5y2OX4tdDT0EhIsDP/ObJPqDuEg1ZoTwSQ==} + '@rollup/rollup-linux-s390x-gnu@4.34.6': + resolution: {integrity: sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.34.5': - resolution: {integrity: sha512-SkCIXLGk42yldTcH8UXh++m0snVxp9DLf4meb1mWm0lC8jzxjFBwSLGtUSeLgQDsC05iBaIhyjNX46DlByrApQ==} + '@rollup/rollup-linux-x64-gnu@4.34.6': + resolution: {integrity: sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.34.5': - resolution: {integrity: sha512-iUcH3FBtBN2/Ce0rI84suRhD0+bB5BVEffqOwsGaX5py5TuYLOQa7S7oVBP0NKtB5rub3i9IvZtMXiD96l5v0A==} + '@rollup/rollup-linux-x64-musl@4.34.6': + resolution: {integrity: sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.34.5': - resolution: {integrity: sha512-PUbWd+h/h6rUowalDYIdc9S9LJXbQDMcJe0BjABl3oT3efYRgZ8aUe8ZZDSie7y+fz6Z+rueNfdorIbkWv5Eqg==} + '@rollup/rollup-win32-arm64-msvc@4.34.6': + resolution: {integrity: sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.34.5': - resolution: {integrity: sha512-3vncGhOJiAUR85fnAXJyvSp2GaDWYByIQmW68ZAr+e8kIxgvJ1VaZbfHD5BO5X6hwRQdY6Um/XfA3l5c2lV+OQ==} + '@rollup/rollup-win32-ia32-msvc@4.34.6': + resolution: {integrity: sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.34.5': - resolution: {integrity: sha512-Mi8yVUlQOoeBpY72n75VLATptPGvj2lHa47rQdK9kZ4MoG5Ve86aVIU+PO3tBklTCBtILtdRfXS0EvIbXgmCAg==} + '@rollup/rollup-win32-x64-msvc@4.34.6': + resolution: {integrity: sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==} cpu: [x64] os: [win32] @@ -4047,300 +3521,84 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - - '@smithy/abort-controller@4.0.1': - resolution: {integrity: sha512-fiUIYgIgRjMWznk6iLJz35K2YxSLHzLBA/RC6lBrKfQ8fHbPfvk7Pk9UvpKoHgJjI18MnbPuEju53zcVy6KF1g==} - engines: {node: '>=18.0.0'} + '@starknet-io/types-js@0.7.10': + resolution: {integrity: sha512-1VtCqX4AHWJlRRSYGSn+4X1mqolI1Tdq62IwzoU2vUuEE72S1OlEeGhpvd6XsdqXcfHmVzYfj8k1XtKBQqwo9w==} - '@smithy/chunked-blob-reader-native@4.0.0': - resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==} - engines: {node: '>=18.0.0'} + '@starknet-react/chains@0.1.7': + resolution: {integrity: sha512-UNh97I1SvuJKaAhKOmpEk8JcWuZWMlPG/ba2HcvFYL9x/47BKndJ+Da9V+iJFtkHUjreVnajT1snsaz1XMG+UQ==} - '@smithy/chunked-blob-reader@5.0.0': - resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} - engines: {node: '>=18.0.0'} + '@starknet-react/chains@3.1.2': + resolution: {integrity: sha512-/Oldb4AVYdvHXzlBRxu01s0WwdOjqL2Q47BAmiv07/aBRU7mSZl6r/6l+bYKNrChSZl7WVnlpb+ojfwhRpbGcw==} - '@smithy/config-resolver@4.0.1': - resolution: {integrity: sha512-Igfg8lKu3dRVkTSEm98QpZUvKEOa71jDX4vKRcvJVyRc3UgN3j7vFMf0s7xLQhYmKa8kyJGQgUJDOV5V3neVlQ==} - engines: {node: '>=18.0.0'} + '@starknet-react/core@2.3.0': + resolution: {integrity: sha512-8g9d0Gs811gJnQJHVMxQoXYhv+y5/qug7NQ0lnJ51uytdBhr/Zz5wgeTHW4ZQ5Igljyvf+ks+yhp4P1iSvnSqA==} + peerDependencies: + get-starknet-core: ^3.2.0 + react: ^18.0 + starknet: ^5.25.0 - '@smithy/core@3.1.2': - resolution: {integrity: sha512-htwQXkbdF13uwwDevz9BEzL5ABK+1sJpVQXywwGSH973AVOvisHNfpcB8A8761G6XgHoS2kHPqc9DqHJ2gp+/Q==} - engines: {node: '>=18.0.0'} + '@starknet-react/core@2.9.0': + resolution: {integrity: sha512-UdRo454/g2lb0YsNAUJohJ2w21LlahcEXQlkWrddoKFubRY6Q0b39hec0eZOCqfU0Z1Sh7kF1XYvI5t9xL4yTQ==} + peerDependencies: + get-starknet-core: ^3.2.0 + react: ^18.0 + starknet: ^5.25.0 - '@smithy/credential-provider-imds@4.0.1': - resolution: {integrity: sha512-l/qdInaDq1Zpznpmev/+52QomsJNZ3JkTl5yrTl02V6NBgJOQ4LY0SFw/8zsMwj3tLe8vqiIuwF6nxaEwgf6mg==} - engines: {node: '>=18.0.0'} + '@starknet-react/core@3.7.2': + resolution: {integrity: sha512-5l6IlXqYzbnInVPwL2VdSwmIiaNnTjm4iYnEGSSVUUPyklHr3bdXaZoILJWcIQ0NaF2ebhNhoKYL8GDHiSKTPw==} + peerDependencies: + get-starknet-core: ^4.0.0 + react: ^18.0 + starknet: ^6.11.0 - '@smithy/eventstream-codec@4.0.1': - resolution: {integrity: sha512-Q2bCAAR6zXNVtJgifsU16ZjKGqdw/DyecKNgIgi7dlqw04fqDu0mnq+JmGphqheypVc64CYq3azSuCpAdFk2+A==} - engines: {node: '>=18.0.0'} + '@stitches/react@1.2.8': + resolution: {integrity: sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==} + peerDependencies: + react: '>= 16.3.0' - '@smithy/eventstream-serde-browser@4.0.1': - resolution: {integrity: sha512-HbIybmz5rhNg+zxKiyVAnvdM3vkzjE6ccrJ620iPL8IXcJEntd3hnBl+ktMwIy12Te/kyrSbUb8UCdnUT4QEdA==} - engines: {node: '>=18.0.0'} + '@storybook/addon-actions@8.5.3': + resolution: {integrity: sha512-7a+SD4EZdZocm+NG1Kx4yV6Aw7+YUlRIyGvKcxsGtYMOLaqrUewApqveXF83+FbYWMoezXcoZCLQFROtS/Z6Fw==} + peerDependencies: + storybook: ^8.5.3 - '@smithy/eventstream-serde-config-resolver@4.0.1': - resolution: {integrity: sha512-lSipaiq3rmHguHa3QFF4YcCM3VJOrY9oq2sow3qlhFY+nBSTF/nrO82MUQRPrxHQXA58J5G1UnU2WuJfi465BA==} - engines: {node: '>=18.0.0'} + '@storybook/addon-backgrounds@8.5.3': + resolution: {integrity: sha512-sZcw8/C/HIIgbRBY+0ZYTBc5Py8xvw3bt6lzSVQEXA2aygfJpO/jiQJlmOXTmK3g5F5pjFKaaCodfXT7V/9mzw==} + peerDependencies: + storybook: ^8.5.3 - '@smithy/eventstream-serde-node@4.0.1': - resolution: {integrity: sha512-o4CoOI6oYGYJ4zXo34U8X9szDe3oGjmHgsMGiZM0j4vtNoT+h80TLnkUcrLZR3+E6HIxqW+G+9WHAVfl0GXK0Q==} - engines: {node: '>=18.0.0'} + '@storybook/addon-controls@8.5.3': + resolution: {integrity: sha512-A4UVQhPyC7FvV+fM50xvEZO26/2uE41Ns0TN0qq7U5EH0Dlj43Salgay6qT8fve6XAI4SgVjkujPVCSbLg/yVQ==} + peerDependencies: + storybook: ^8.5.3 - '@smithy/eventstream-serde-universal@4.0.1': - resolution: {integrity: sha512-Z94uZp0tGJuxds3iEAZBqGU2QiaBHP4YytLUjwZWx+oUeohCsLyUm33yp4MMBmhkuPqSbQCXq5hDet6JGUgHWA==} - engines: {node: '>=18.0.0'} + '@storybook/addon-docs@8.5.3': + resolution: {integrity: sha512-XVcQlHX963nuoeRkb7qQg89t/9CThdT46UV7jX3FFn08NEMhmDEa+4iVA4l+4xNgJ+Av6uX+u6yRGnM/910mLg==} + peerDependencies: + storybook: ^8.5.3 - '@smithy/fetch-http-handler@5.0.1': - resolution: {integrity: sha512-3aS+fP28urrMW2KTjb6z9iFow6jO8n3MFfineGbndvzGZit3taZhKWtTorf+Gp5RpFDDafeHlhfsGlDCXvUnJA==} - engines: {node: '>=18.0.0'} + '@storybook/addon-essentials@8.5.3': + resolution: {integrity: sha512-0zbEWQQZCiYRUxMo6FrfwQER/vi+B8mCLLivdjbSVSvZsjmlpcaBA5uBjbsXfIRcedHlou4QiJXn+nR8thDlKA==} + peerDependencies: + storybook: ^8.5.3 - '@smithy/hash-blob-browser@4.0.1': - resolution: {integrity: sha512-rkFIrQOKZGS6i1D3gKJ8skJ0RlXqDvb1IyAphksaFOMzkn3v3I1eJ8m7OkLj0jf1McP63rcCEoLlkAn/HjcTRw==} - engines: {node: '>=18.0.0'} + '@storybook/addon-highlight@8.5.3': + resolution: {integrity: sha512-xhsr3W6KTvlOIIe+8JE9/sEOAgkW0yjMZzs47A+bWcxKwcFhAUgVLbAgEzjJ0u248rjGKlCJ2pswWefO+ZKJeg==} + peerDependencies: + storybook: ^8.5.3 - '@smithy/hash-node@4.0.1': - resolution: {integrity: sha512-TJ6oZS+3r2Xu4emVse1YPB3Dq3d8RkZDKcPr71Nj/lJsdAP1c7oFzYqEn1IBc915TsgLl2xIJNuxCz+gLbLE0w==} - engines: {node: '>=18.0.0'} + '@storybook/addon-interactions@8.5.3': + resolution: {integrity: sha512-nQuP65iFGgqfVp/O8NxNDUwLTWmQBW4bofUFaT4wzYn7Jk9zobOZYtgQvdqBZtNzBDYmLrfrCutEBj5jVPRyuQ==} + peerDependencies: + storybook: ^8.5.3 - '@smithy/hash-stream-node@4.0.1': - resolution: {integrity: sha512-U1rAE1fxmReCIr6D2o/4ROqAQX+GffZpyMt3d7njtGDr2pUNmAKRWa49gsNVhCh2vVAuf3wXzWwNr2YN8PAXIw==} - engines: {node: '>=18.0.0'} - - '@smithy/invalid-dependency@4.0.1': - resolution: {integrity: sha512-gdudFPf4QRQ5pzj7HEnu6FhKRi61BfH/Gk5Yf6O0KiSbr1LlVhgjThcvjdu658VE6Nve8vaIWB8/fodmS1rBPQ==} - engines: {node: '>=18.0.0'} - - '@smithy/is-array-buffer@2.2.0': - resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} - engines: {node: '>=14.0.0'} - - '@smithy/is-array-buffer@4.0.0': - resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} - engines: {node: '>=18.0.0'} - - '@smithy/md5-js@4.0.1': - resolution: {integrity: sha512-HLZ647L27APi6zXkZlzSFZIjpo8po45YiyjMGJZM3gyDY8n7dPGdmxIIljLm4gPt/7rRvutLTTkYJpZVfG5r+A==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-content-length@4.0.1': - resolution: {integrity: sha512-OGXo7w5EkB5pPiac7KNzVtfCW2vKBTZNuCctn++TTSOMpe6RZO/n6WEC1AxJINn3+vWLKW49uad3lo/u0WJ9oQ==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-endpoint@4.0.3': - resolution: {integrity: sha512-YdbmWhQF5kIxZjWqPIgboVfi8i5XgiYMM7GGKFMTvBei4XjNQfNv8sukT50ITvgnWKKKpOtp0C0h7qixLgb77Q==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-retry@4.0.4': - resolution: {integrity: sha512-wmxyUBGHaYUqul0wZiset4M39SMtDBOtUr2KpDuftKNN74Do9Y36Go6Eqzj9tL0mIPpr31ulB5UUtxcsCeGXsQ==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-serde@4.0.2': - resolution: {integrity: sha512-Sdr5lOagCn5tt+zKsaW+U2/iwr6bI9p08wOkCp6/eL6iMbgdtc2R5Ety66rf87PeohR0ExI84Txz9GYv5ou3iQ==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-stack@4.0.1': - resolution: {integrity: sha512-dHwDmrtR/ln8UTHpaIavRSzeIk5+YZTBtLnKwDW3G2t6nAupCiQUvNzNoHBpik63fwUaJPtlnMzXbQrNFWssIA==} - engines: {node: '>=18.0.0'} - - '@smithy/node-config-provider@4.0.1': - resolution: {integrity: sha512-8mRTjvCtVET8+rxvmzRNRR0hH2JjV0DFOmwXPrISmTIJEfnCBugpYYGAsCj8t41qd+RB5gbheSQ/6aKZCQvFLQ==} - engines: {node: '>=18.0.0'} - - '@smithy/node-http-handler@4.0.2': - resolution: {integrity: sha512-X66H9aah9hisLLSnGuzRYba6vckuFtGE+a5DcHLliI/YlqKrGoxhisD5XbX44KyoeRzoNlGr94eTsMVHFAzPOw==} - engines: {node: '>=18.0.0'} - - '@smithy/property-provider@4.0.1': - resolution: {integrity: sha512-o+VRiwC2cgmk/WFV0jaETGOtX16VNPp2bSQEzu0whbReqE1BMqsP2ami2Vi3cbGVdKu1kq9gQkDAGKbt0WOHAQ==} - engines: {node: '>=18.0.0'} - - '@smithy/protocol-http@5.0.1': - resolution: {integrity: sha512-TE4cpj49jJNB/oHyh/cRVEgNZaoPaxd4vteJNB0yGidOCVR0jCw/hjPVsT8Q8FRmj8Bd3bFZt8Dh7xGCT+xMBQ==} - engines: {node: '>=18.0.0'} - - '@smithy/querystring-builder@4.0.1': - resolution: {integrity: sha512-wU87iWZoCbcqrwszsOewEIuq+SU2mSoBE2CcsLwE0I19m0B2gOJr1MVjxWcDQYOzHbR1xCk7AcOBbGFUYOKvdg==} - engines: {node: '>=18.0.0'} - - '@smithy/querystring-parser@4.0.1': - resolution: {integrity: sha512-Ma2XC7VS9aV77+clSFylVUnPZRindhB7BbmYiNOdr+CHt/kZNJoPP0cd3QxCnCFyPXC4eybmyE98phEHkqZ5Jw==} - engines: {node: '>=18.0.0'} - - '@smithy/service-error-classification@4.0.1': - resolution: {integrity: sha512-3JNjBfOWpj/mYfjXJHB4Txc/7E4LVq32bwzE7m28GN79+M1f76XHflUaSUkhOriprPDzev9cX/M+dEB80DNDKA==} - engines: {node: '>=18.0.0'} - - '@smithy/shared-ini-file-loader@4.0.1': - resolution: {integrity: sha512-hC8F6qTBbuHRI/uqDgqqi6J0R4GtEZcgrZPhFQnMhfJs3MnUTGSnR1NSJCJs5VWlMydu0kJz15M640fJlRsIOw==} - engines: {node: '>=18.0.0'} - - '@smithy/signature-v4@5.0.1': - resolution: {integrity: sha512-nCe6fQ+ppm1bQuw5iKoeJ0MJfz2os7Ic3GBjOkLOPtavbD1ONoyE3ygjBfz2ythFWm4YnRm6OxW+8p/m9uCoIA==} - engines: {node: '>=18.0.0'} - - '@smithy/smithy-client@4.1.3': - resolution: {integrity: sha512-A2Hz85pu8BJJaYFdX8yb1yocqigyqBzn+OVaVgm+Kwi/DkN8vhN2kbDVEfADo6jXf5hPKquMLGA3UINA64UZ7A==} - engines: {node: '>=18.0.0'} - - '@smithy/types@4.1.0': - resolution: {integrity: sha512-enhjdwp4D7CXmwLtD6zbcDMbo6/T6WtuuKCY49Xxc6OMOmUWlBEBDREsxxgV2LIdeQPW756+f97GzcgAwp3iLw==} - engines: {node: '>=18.0.0'} - - '@smithy/url-parser@4.0.1': - resolution: {integrity: sha512-gPXcIEUtw7VlK8f/QcruNXm7q+T5hhvGu9tl63LsJPZ27exB6dtNwvh2HIi0v7JcXJ5emBxB+CJxwaLEdJfA+g==} - engines: {node: '>=18.0.0'} - - '@smithy/util-base64@4.0.0': - resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} - engines: {node: '>=18.0.0'} - - '@smithy/util-body-length-browser@4.0.0': - resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} - engines: {node: '>=18.0.0'} - - '@smithy/util-body-length-node@4.0.0': - resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} - engines: {node: '>=18.0.0'} - - '@smithy/util-buffer-from@2.2.0': - resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} - engines: {node: '>=14.0.0'} - - '@smithy/util-buffer-from@4.0.0': - resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} - engines: {node: '>=18.0.0'} - - '@smithy/util-config-provider@4.0.0': - resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} - engines: {node: '>=18.0.0'} - - '@smithy/util-defaults-mode-browser@4.0.4': - resolution: {integrity: sha512-Ej1bV5sbrIfH++KnWxjjzFNq9nyP3RIUq2c9Iqq7SmMO/idUR24sqvKH2LUQFTSPy/K7G4sB2m8n7YYlEAfZaw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-defaults-mode-node@4.0.4': - resolution: {integrity: sha512-HE1I7gxa6yP7ZgXPCFfZSDmVmMtY7SHqzFF55gM/GPegzZKaQWZZ+nYn9C2Cc3JltCMyWe63VPR3tSFDEvuGjw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-endpoints@3.0.1': - resolution: {integrity: sha512-zVdUENQpdtn9jbpD9SCFK4+aSiavRb9BxEtw9ZGUR1TYo6bBHbIoi7VkrFQ0/RwZlzx0wRBaRmPclj8iAoJCLA==} - engines: {node: '>=18.0.0'} - - '@smithy/util-hex-encoding@4.0.0': - resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-middleware@4.0.1': - resolution: {integrity: sha512-HiLAvlcqhbzhuiOa0Lyct5IIlyIz0PQO5dnMlmQ/ubYM46dPInB+3yQGkfxsk6Q24Y0n3/JmcA1v5iEhmOF5mA==} - engines: {node: '>=18.0.0'} - - '@smithy/util-retry@4.0.1': - resolution: {integrity: sha512-WmRHqNVwn3kI3rKk1LsKcVgPBG6iLTBGC1iYOV3GQegwJ3E8yjzHytPt26VNzOWr1qu0xE03nK0Ug8S7T7oufw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-stream@4.0.2': - resolution: {integrity: sha512-0eZ4G5fRzIoewtHtwaYyl8g2C+osYOT4KClXgfdNEDAgkbe2TYPqcnw4GAWabqkZCax2ihRGPe9LZnsPdIUIHA==} - engines: {node: '>=18.0.0'} - - '@smithy/util-uri-escape@4.0.0': - resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} - engines: {node: '>=18.0.0'} - - '@smithy/util-utf8@2.3.0': - resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} - engines: {node: '>=14.0.0'} - - '@smithy/util-utf8@4.0.0': - resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} - engines: {node: '>=18.0.0'} - - '@smithy/util-waiter@4.0.2': - resolution: {integrity: sha512-piUTHyp2Axx3p/kc2CIJkYSv0BAaheBQmbACZgQSSfWUumWNW+R1lL+H9PDBxKJkvOeEX+hKYEFiwO8xagL8AQ==} - engines: {node: '>=18.0.0'} - - '@starknet-io/types-js@0.7.10': - resolution: {integrity: sha512-1VtCqX4AHWJlRRSYGSn+4X1mqolI1Tdq62IwzoU2vUuEE72S1OlEeGhpvd6XsdqXcfHmVzYfj8k1XtKBQqwo9w==} - - '@starknet-react/chains@0.1.7': - resolution: {integrity: sha512-UNh97I1SvuJKaAhKOmpEk8JcWuZWMlPG/ba2HcvFYL9x/47BKndJ+Da9V+iJFtkHUjreVnajT1snsaz1XMG+UQ==} - - '@starknet-react/chains@3.1.2': - resolution: {integrity: sha512-/Oldb4AVYdvHXzlBRxu01s0WwdOjqL2Q47BAmiv07/aBRU7mSZl6r/6l+bYKNrChSZl7WVnlpb+ojfwhRpbGcw==} - - '@starknet-react/core@2.3.0': - resolution: {integrity: sha512-8g9d0Gs811gJnQJHVMxQoXYhv+y5/qug7NQ0lnJ51uytdBhr/Zz5wgeTHW4ZQ5Igljyvf+ks+yhp4P1iSvnSqA==} - peerDependencies: - get-starknet-core: ^3.2.0 - react: ^18.0 - starknet: ^5.25.0 - - '@starknet-react/core@2.9.0': - resolution: {integrity: sha512-UdRo454/g2lb0YsNAUJohJ2w21LlahcEXQlkWrddoKFubRY6Q0b39hec0eZOCqfU0Z1Sh7kF1XYvI5t9xL4yTQ==} - peerDependencies: - get-starknet-core: ^3.2.0 - react: ^18.0 - starknet: ^5.25.0 - - '@starknet-react/core@3.7.2': - resolution: {integrity: sha512-5l6IlXqYzbnInVPwL2VdSwmIiaNnTjm4iYnEGSSVUUPyklHr3bdXaZoILJWcIQ0NaF2ebhNhoKYL8GDHiSKTPw==} - peerDependencies: - get-starknet-core: ^4.0.0 - react: ^18.0 - starknet: ^6.11.0 - - '@stitches/react@1.2.8': - resolution: {integrity: sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==} - peerDependencies: - react: '>= 16.3.0' - - '@storybook/addon-actions@8.5.3': - resolution: {integrity: sha512-7a+SD4EZdZocm+NG1Kx4yV6Aw7+YUlRIyGvKcxsGtYMOLaqrUewApqveXF83+FbYWMoezXcoZCLQFROtS/Z6Fw==} - peerDependencies: - storybook: ^8.5.3 - - '@storybook/addon-backgrounds@8.5.3': - resolution: {integrity: sha512-sZcw8/C/HIIgbRBY+0ZYTBc5Py8xvw3bt6lzSVQEXA2aygfJpO/jiQJlmOXTmK3g5F5pjFKaaCodfXT7V/9mzw==} - peerDependencies: - storybook: ^8.5.3 - - '@storybook/addon-controls@8.5.3': - resolution: {integrity: sha512-A4UVQhPyC7FvV+fM50xvEZO26/2uE41Ns0TN0qq7U5EH0Dlj43Salgay6qT8fve6XAI4SgVjkujPVCSbLg/yVQ==} - peerDependencies: - storybook: ^8.5.3 - - '@storybook/addon-docs@8.5.3': - resolution: {integrity: sha512-XVcQlHX963nuoeRkb7qQg89t/9CThdT46UV7jX3FFn08NEMhmDEa+4iVA4l+4xNgJ+Av6uX+u6yRGnM/910mLg==} - peerDependencies: - storybook: ^8.5.3 - - '@storybook/addon-essentials@8.5.3': - resolution: {integrity: sha512-0zbEWQQZCiYRUxMo6FrfwQER/vi+B8mCLLivdjbSVSvZsjmlpcaBA5uBjbsXfIRcedHlou4QiJXn+nR8thDlKA==} - peerDependencies: - storybook: ^8.5.3 - - '@storybook/addon-highlight@8.5.3': - resolution: {integrity: sha512-xhsr3W6KTvlOIIe+8JE9/sEOAgkW0yjMZzs47A+bWcxKwcFhAUgVLbAgEzjJ0u248rjGKlCJ2pswWefO+ZKJeg==} - peerDependencies: - storybook: ^8.5.3 - - '@storybook/addon-interactions@8.5.3': - resolution: {integrity: sha512-nQuP65iFGgqfVp/O8NxNDUwLTWmQBW4bofUFaT4wzYn7Jk9zobOZYtgQvdqBZtNzBDYmLrfrCutEBj5jVPRyuQ==} - peerDependencies: - storybook: ^8.5.3 - - '@storybook/addon-links@8.5.3': - resolution: {integrity: sha512-MRhIif4tCoIucLgGX14dI7yptF9bYH2UaJasyywshzQZKAEjOfX19Aw5fwp2zJt6kukAF6mUxMtWKcQMH2XOmw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.5.3 - peerDependenciesMeta: - react: - optional: true + '@storybook/addon-links@8.5.3': + resolution: {integrity: sha512-MRhIif4tCoIucLgGX14dI7yptF9bYH2UaJasyywshzQZKAEjOfX19Aw5fwp2zJt6kukAF6mUxMtWKcQMH2XOmw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.5.3 + peerDependenciesMeta: + react: + optional: true '@storybook/addon-measure@8.5.3': resolution: {integrity: sha512-unb0bRsnISXWiCBBECxNUUdM12hHpV+1uJUu5OJHtKb26YpiQvewDFLTLjuZJ3NIAfw+F5232Q7K88AWJV6weg==} @@ -4557,68 +3815,68 @@ packages: resolution: {integrity: sha512-0XR1poYvPQoPpmfDYLEqUGu5ePAQ4pdgN3VFsZBNAeze7qubVpsIY1o1R6PZpKep/DKu33GSm2NhwpCLkMs2Cw==} engines: {node: '>=14'} - '@swc/core-darwin-arm64@1.10.14': - resolution: {integrity: sha512-Dh4VyrhDDb05tdRmqJ/MucOPMTnrB4pRJol18HVyLlqu1HOT5EzonUniNTCdQbUXjgdv5UVJSTE1lYTzrp+myA==} + '@swc/core-darwin-arm64@1.10.15': + resolution: {integrity: sha512-zFdZ6/yHqMCPk7OhLFqHy/MQ1EqJhcZMpNHd1gXYT7VRU3FaqvvKETrUlG3VYl65McPC7AhMRfXPyJ0JO/jARQ==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.10.14': - resolution: {integrity: sha512-KpzotL/I0O12RE3tF8NmQErINv0cQe/0mnN/Q50ESFzB5kU6bLgp2HMnnwDTm/XEZZRJCNe0oc9WJ5rKbAJFRQ==} + '@swc/core-darwin-x64@1.10.15': + resolution: {integrity: sha512-8g4yiQwbr8fxOOjKXdot0dEkE5zgE8uNZudLy/ZyAhiwiZ8pbJ8/wVrDOu6dqbX7FBXAoDnvZ7fwN1jk4C8jdA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.10.14': - resolution: {integrity: sha512-20yRXZjMJVz1wp1TcscKiGTVXistG+saIaxOmxSNQia1Qun3hSWLL+u6+5kXbfYGr7R2N6kqSwtZbIfJI25r9Q==} + '@swc/core-linux-arm-gnueabihf@1.10.15': + resolution: {integrity: sha512-rl+eVOltl2+7WXOnvmWBpMgh6aO13G5x0U0g8hjwlmD6ku3Y9iRcThpOhm7IytMEarUp5pQxItNoPq+VUGjVHg==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.10.14': - resolution: {integrity: sha512-Gy7cGrNkiMfPxQyLGxdgXPwyWzNzbHuWycJFcoKBihxZKZIW8hkPBttkGivuLC+0qOgsV2/U+S7tlvAju7FtmQ==} + '@swc/core-linux-arm64-gnu@1.10.15': + resolution: {integrity: sha512-qxWEQeyAJMWJqjaN4hi58WMpPdt3Tn0biSK9CYRegQtvZWCbewr6v2agtSu5AZ2rudeH6OfCWAMDQQeSgn6PJQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.10.14': - resolution: {integrity: sha512-+oYVqJvFw62InZ8PIy1rBACJPC2WTe4vbVb9kM1jJj2D7dKLm9acnnYIVIDsM5Wo7Uab8RvPHXVbs19IBurzuw==} + '@swc/core-linux-arm64-musl@1.10.15': + resolution: {integrity: sha512-QcELd9/+HjZx0WCxRrKcyKGWTiQ0485kFb5w8waxcSNd0d9Lgk4EFfWWVyvIb5gIHpDQmhrgzI/yRaWQX4YSZQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.10.14': - resolution: {integrity: sha512-OmEbVEKQFLQVHwo4EJl9osmlulURy46k232Opfpn/1ji0t2KcNCci3POsnfMuoZjLkGJv8vGNJdPQxX+CP+wSA==} + '@swc/core-linux-x64-gnu@1.10.15': + resolution: {integrity: sha512-S1+ZEEn3+a/MiMeQqQypbwTGoBG8/sPoCvpNbk+uValyygT+jSn3U0xVr45FbukpmMB+NhBMqfedMLqKA0QnJA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.10.14': - resolution: {integrity: sha512-OZW+Icm8DMPqHbhdxplkuG8qrNnPk5i7xJOZWYi1y5bTjgGFI4nEzrsmmeHKMdQTaWwsFrm3uK1rlyQ48MmXmg==} + '@swc/core-linux-x64-musl@1.10.15': + resolution: {integrity: sha512-qW+H9g/2zTJ4jP7NDw4VAALY0ZlNEKzYsEoSj/HKi7k3tYEHjMzsxjfsY9I8WZCft23bBdV3RTCPoxCshaj1CQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.10.14': - resolution: {integrity: sha512-sTvc+xrDQXy3HXZFtTEClY35Efvuc3D+busYm0+rb1+Thau4HLRY9WP+sOKeGwH9/16rzfzYEqD7Ds8A9ykrHw==} + '@swc/core-win32-arm64-msvc@1.10.15': + resolution: {integrity: sha512-AhRB11aA6LxjIqut+mg7qsu/7soQDmbK6MKR9nP3hgBszpqtXbRba58lr24xIbBCMr+dpo6kgEapWt+t5Po6Zg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.10.14': - resolution: {integrity: sha512-j2iQ4y9GWTKtES5eMU0sDsFdYni7IxME7ejFej25Tv3Fq4B+U9tgtYWlJwh1858nIWDXelHiKcSh/UICAyVMdQ==} + '@swc/core-win32-ia32-msvc@1.10.15': + resolution: {integrity: sha512-UGdh430TQwbDn6KjgvRTg1fO022sbQ4yCCHUev0+5B8uoBwi9a89qAz3emy2m56C8TXxUoihW9Y9OMfaRwPXUw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.10.14': - resolution: {integrity: sha512-TYtWkUSMkjs0jGPeWdtWbex4B+DlQZmN/ySVLiPI+EltYCLEXsFMkVFq6aWn48dqFHggFK0UYfvDrJUR2c3Qxg==} + '@swc/core-win32-x64-msvc@1.10.15': + resolution: {integrity: sha512-XJzBCqO1m929qbJsOG7FZXQWX26TnEoMctS3QjuCoyBmkHxxQmZsy78KjMes1aomTcKHCyFYgrRGWgVmk7tT4Q==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.10.14': - resolution: {integrity: sha512-WSrnE6JRnH20ZYjOOgSS4aOaPv9gxlkI2KRkN24kagbZnPZMnN8bZZyzw1rrLvwgpuRGv17Uz+hflosbR+SP6w==} + '@swc/core@1.10.15': + resolution: {integrity: sha512-/iFeQuNaGdK7mfJbQcObhAhsMqLT7qgMYl7jX2GEIO+VDTejESpzAyKwaMeYXExN8D6e5BRHBCe7M5YlsuzjDA==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -4635,17 +3893,13 @@ packages: '@swc/types@0.1.17': resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==} - '@szmarczak/http-timer@4.0.6': - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} - '@tailwindcss/typography@0.5.16': resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==} peerDependencies: tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' - '@tanstack/history@1.99.0': - resolution: {integrity: sha512-MQS1Lg8D+1vpasEJKf4zs1sxhxbXcoejmVCZDbo0bq2wq+xVK+kRixj5Pae2kb2APzdXYga4u236GBbgCKTcnQ==} + '@tanstack/history@1.99.13': + resolution: {integrity: sha512-JMd7USmnp8zV8BRGIjALqzPxazvKtQ7PGXQC7n39HpbqdsmfV2ePCzieO84IvN+mwsTrXErpbjI4BfKCa+ZNCg==} engines: {node: '>=12'} '@tanstack/query-core@5.66.0': @@ -4656,8 +3910,8 @@ packages: peerDependencies: react: ^18 || ^19 - '@tanstack/react-router@1.99.9': - resolution: {integrity: sha512-x+L48xT+HnlW5aoD69pr12YqM/iwThotUXIiEbBEoqOAPPp70qgCNPhQmzI7glqyFHt8KfuW29Bk1kRw0h5BEw==} + '@tanstack/react-router@1.99.13': + resolution: {integrity: sha512-6go58LlToIJl4pSj7RSLTfRdNtve9DtEvPdnBsMhju6j2hu5rh44wfWI35Jz2tA91k9bnOb/IKM48h13rjl4/w==} engines: {node: '>=12'} peerDependencies: react: '>=18.0.0 || >=19.0.0' @@ -4682,33 +3936,33 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/router-core@1.99.6': - resolution: {integrity: sha512-tEfMLeONfyoyI1e/ygUeGFtTWeWQu0GR3OT8OR75EOeNXRmUEtI6H4ThrXcV8nwBd6B88wmp9LhSPLl9H2VwSA==} + '@tanstack/router-core@1.99.13': + resolution: {integrity: sha512-fdAw8V0EziCviM5Riq4bddvu1beKDTKvxi4bYSB+hr2AIQfRuk5br+vQpfeHk+l+KFmS0GS/AOR/wjijTISA5g==} engines: {node: '>=12'} - '@tanstack/router-devtools@1.99.9': - resolution: {integrity: sha512-dpx2iBgr/82dERnr69r4iDPV+OFfxOvNGJ2f8KFyVF9AyiUwxifIxG78Yp+6reNwdkaeMcH86Ioy1B6BPU3gFg==} + '@tanstack/router-devtools@1.99.13': + resolution: {integrity: sha512-MixnzGf4qF+tEU+wpyqRkJgfAYM2jSke/smpTQ/exPv6GGf95YEs2HEZzcXRA4Xo4w3EjZGHDJamr+kwxKrV5w==} engines: {node: '>=12'} peerDependencies: - '@tanstack/react-router': ^1.99.9 + '@tanstack/react-router': ^1.99.13 react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/router-generator@1.99.9': - resolution: {integrity: sha512-UghFQveDscFOWz3NQ9KrtWAntFjRUcpEiNDPdmFOtrWRcrDuHkPWgvST7zkSAwb9roMRNl4Czypp2bsf2B9DQQ==} + '@tanstack/router-generator@1.99.14': + resolution: {integrity: sha512-Eost4FmBUy/FXzmUfz9QvZeJ6LwIR618PfC/Ib3uMogEJwyeN1YizOhwIJsUxR3sW+kITiljp+7qzZQ2nPJ8PA==} engines: {node: '>=12'} peerDependencies: - '@tanstack/react-router': ^1.99.9 + '@tanstack/react-router': ^1.99.13 peerDependenciesMeta: '@tanstack/react-router': optional: true - '@tanstack/router-plugin@1.99.12': - resolution: {integrity: sha512-dSJS/PWe8lSoI2+7RnLF6VYLiCcHEPqjUTogNe8TeNCVZrw5U00DlEamaZJfVrEeQ/TfJPzeirLqkINJwfXjiw==} + '@tanstack/router-plugin@1.99.14': + resolution: {integrity: sha512-bbsO3yzhMrKhxKEHK8NHJ0qUqp7MK9Bk7byT+HbIjVD+lTJ4EuQM3E2bmkw9i+q5+x+cLYX+kEy6MDK/w/I5bw==} engines: {node: '>=12'} peerDependencies: '@rsbuild/core': '>=1.0.2' - '@tanstack/react-router': ^1.99.9 + '@tanstack/react-router': ^1.99.13 vite: '>=5.0.0 || >=6.0.0' webpack: '>=5.92.0' peerDependenciesMeta: @@ -4774,35 +4028,16 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@tweenjs/tween.js@23.1.3': resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==} '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} - '@types/appdmg@0.5.5': - resolution: {integrity: sha512-G+n6DgZTZFOteITE30LnWj+HRVIGr7wMlAiLWOO02uJFWVEitaPU9JVXm9wJokkgshBawb2O1OykdcsmkkZfgg==} - '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -4818,24 +4053,9 @@ packages: '@types/babel__traverse@7.20.6': resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - - '@types/bonjour@3.5.13': - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} - '@types/bun@1.2.2': resolution: {integrity: sha512-tr74gdku+AEDN5ergNiBnplr7hpDp3V1h7fqI2GcR/rsUaM39jpSeKH0TFibRvU0KwniRx5POgaYnaXbk0hU+w==} - '@types/cacheable-request@6.0.3': - resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} - - '@types/connect-history-api-fallback@1.5.4': - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -4845,15 +4065,6 @@ packages: '@types/draco3d@1.4.10': resolution: {integrity: sha512-AX22jp8Y7wwaBgAixaSvkoG4M/+PlAcm3Qs4OW8yT9DM4xUpWKeFhLueTAyZF39pviAdcDdeJoACapiAceqNcw==} - '@types/electron-squirrel-startup@1.0.2': - resolution: {integrity: sha512-AzxnvBzNh8K/0SmxMmZtpJf1/IWoGXLP+pQDuUaVkPyotI8ryvAtBSqgxR/qOSvxWHYWrxkeNsJ+Ca5xOuUxJQ==} - - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -4863,36 +4074,9 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/express-serve-static-core@4.19.6': - resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} - - '@types/express-serve-static-core@5.0.6': - resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==} - - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - - '@types/fs-extra@9.0.13': - resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} - - '@types/hasbin@1.2.2': - resolution: {integrity: sha512-+WjYdtDVxfzvyIkVrLmBikOuChFvTE1jEuz51cTqk7dhemLw1A4DYaJjBwsemNhzS9oDiVWr+bqx/Ld9pUVO5Q==} - '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@types/html-minifier-terser@6.1.0': - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - - '@types/http-proxy@1.17.16': - resolution: {integrity: sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==} - '@types/js-yaml@4.0.9': resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} @@ -4902,9 +4086,6 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/keyv@3.1.4': - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - '@types/lodash@4.17.15': resolution: {integrity: sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==} @@ -4914,88 +4095,35 @@ packages: '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - '@types/node@20.17.17': resolution: {integrity: sha512-/WndGO4kIfMicEQLTi/mDANUu/iVUhT7KboZPdEqqHQ4aTS+3qT3U5gIqWDFV+XouorjfgGqvKILJeHhuQgFYg==} '@types/offscreencanvas@2019.7.3': resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==} - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - '@types/prop-types@15.7.14': resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - '@types/qs@6.9.18': - resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@18.3.5': resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} peerDependencies: '@types/react': ^18.0.0 - '@types/react-dom@19.0.3': - resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} - peerDependencies: - '@types/react': ^19.0.0 - '@types/react@18.3.18': resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} - '@types/react@19.0.8': - resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} - '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} - '@types/responselike@1.0.3': - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - - '@types/serve-index@1.9.4': - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} - - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - - '@types/shell-escape@0.2.3': - resolution: {integrity: sha512-xZWkMuQkn1I20gEzhYRa4/t1pwZ8XiIkqGA1Iee1D2IgAUIRLr57nrgJgF2QmHEfkfVzOM59gi/4xp6V+Aq+4A==} - - '@types/sockjs@0.3.36': - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} - '@types/stats.js@0.17.3': resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} - '@types/stylis@4.2.5': - resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} - - '@types/tar@6.1.13': - resolution: {integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==} - '@types/three@0.163.0': resolution: {integrity: sha512-uIdDhsXRpQiBUkflBS/i1l3JX14fW6Ot9csed60nfbZNXHDTRsnV2xnTVwXcgbvTiboAR4IW+t+lTL5f1rqIqA==} @@ -5017,20 +4145,6 @@ packages: '@types/ws@8.5.14': resolution: {integrity: sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==} - '@types/yauzl@2.10.3': - resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - - '@typescript-eslint/eslint-plugin@5.62.0': - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/eslint-plugin@7.18.0': resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} engines: {node: ^18.18.0 || >=20.0.0} @@ -5050,16 +4164,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@5.62.0': - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/parser@8.23.0': resolution: {integrity: sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5067,10 +4171,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@5.62.0': - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/scope-manager@7.18.0': resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -5079,16 +4179,6 @@ packages: resolution: {integrity: sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@5.62.0': - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/type-utils@7.18.0': resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -5106,10 +4196,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@5.62.0': - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/types@7.18.0': resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} @@ -5118,15 +4204,6 @@ packages: resolution: {integrity: sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@5.62.0': - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/typescript-estree@7.18.0': resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -5142,12 +4219,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@5.62.0': - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@7.18.0': resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} engines: {node: ^18.18.0 || >=20.0.0} @@ -5161,10 +4232,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@5.62.0': - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/visitor-keys@7.18.0': resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} @@ -5246,9 +4313,6 @@ packages: '@vercel/routing-utils@3.1.0': resolution: {integrity: sha512-Ci5xTjVTJY/JLZXpCXpLehMft97i9fH34nu9PGav6DtwkVUF6TOPX86U0W0niQjMZ5n6/ZP0BwcJK2LOozKaGw==} - '@vercel/webpack-asset-relocator-loader@1.7.4': - resolution: {integrity: sha512-RFFite6v51Qhj/eERru3qwUNCLybnceSChI5yiu9bhLpTemWbKPORAOExOgpO2W7IE/0UEh3aX6wTSHgDE/fdQ==} - '@vitejs/plugin-react@4.3.1': resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5331,51 +4395,6 @@ packages: '@vitest/utils@2.1.9': resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} - '@webassemblyjs/ast@1.14.1': - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - - '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - - '@webassemblyjs/helper-api-error@1.13.2': - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - - '@webassemblyjs/helper-buffer@1.14.1': - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - - '@webassemblyjs/helper-numbers@1.13.2': - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - - '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - - '@webassemblyjs/ieee754@1.13.2': - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - - '@webassemblyjs/leb128@1.13.2': - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - - '@webassemblyjs/utf8@1.13.2': - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - - '@webassemblyjs/wasm-edit@1.14.1': - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - - '@webassemblyjs/wasm-gen@1.14.1': - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - - '@webassemblyjs/wasm-opt@1.14.1': - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - - '@webassemblyjs/wasm-parser@1.14.1': - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - - '@webassemblyjs/wast-printer@1.14.1': - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - '@whatwg-node/disposablestack@0.0.5': resolution: {integrity: sha512-9lXugdknoIequO4OYvIjhygvfSEgnO8oASLqLelnDhkRjgBZhc39shC3QSlZuyDO9bgYSIVa2cHAiN+St3ty4w==} engines: {node: '>=18.0.0'} @@ -5396,19 +4415,6 @@ packages: resolution: {integrity: sha512-Pbv72nbu3AgL9ZaAwdzYcqoMhYGhSBxo49CC+Nt+tlhdDuMZXcf3+41qGghsGJykkxhgfgFcPLwtt2HPEjk57w==} engines: {node: '>=18.0.0'} - '@xmldom/xmldom@0.8.10': - resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} - engines: {node: '>=10.0.0'} - - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - abbrev@3.0.0: resolution: {integrity: sha512-+/kfrslGQ7TNV2ecmQwMJj/B65g5KVq1/L3SGVZ3tCYGqlzFuFCGBZJtMP99wH3NpEUyAjn0zPdPUg0D+DwrOA==} engines: {node: ^18.17.0 || >=20.5.0} @@ -5439,10 +4445,6 @@ packages: zod: optional: true - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - acorn-import-attributes@1.9.5: resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -5462,40 +4464,14 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} - agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} - aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -5506,15 +4482,6 @@ packages: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} - ansi-escapes@5.0.0: - resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} - engines: {node: '>=12'} - - ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true - ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -5549,15 +4516,6 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - appdmg@0.6.6: - resolution: {integrity: sha512-GRmFKlCG+PWbcYF4LUNonTYmy0GjguDy6Jh9WP8mpd0T6j80XIJyXBiWlD0U+MLNhqV9Nhx49Gl9GpVToulpLg==} - engines: {node: '>=8.5'} - os: [darwin] - hasBin: true - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -5579,9 +4537,6 @@ packages: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-includes@3.1.8: resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} @@ -5639,9 +4594,6 @@ packages: async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} - async@1.5.2: - resolution: {integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==} - async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} @@ -5656,10 +4608,6 @@ packages: resolution: {integrity: sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==} engines: {node: '>=4'} - author-regex@1.0.0: - resolution: {integrity: sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g==} - engines: {node: '>=0.8'} - auto-bind@4.0.0: resolution: {integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==} engines: {node: '>=8'} @@ -5678,19 +4626,9 @@ packages: axios@1.7.9: resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} - b4a@1.6.7: - resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} - babel-dead-code-elimination@1.0.8: resolution: {integrity: sha512-og6HQERk0Cmm+nTT4Od2wbPtgABXFMPaHACjbKLulZIFMkYyXZLkUGuAxdgpMJBrxyt/XFpSz++lNzjbcMnPkQ==} - babel-loader@9.2.1: - resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@babel/core': ^7.12.0 - webpack: '>=5' - babel-plugin-polyfill-corejs2@0.4.12: resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} peerDependencies: @@ -5720,34 +4658,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.5.4: - resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} - - bare-fs@4.0.1: - resolution: {integrity: sha512-ilQs4fm/l9eMfWY2dY0WCIUplSUp7U0CT1vrqMg1MUdeZl4fypu5UP0XcDBK5WBQPJAKP1b7XEodISmekH/CEg==} - engines: {bare: '>=1.7.0'} - - bare-os@3.4.0: - resolution: {integrity: sha512-9Ous7UlnKbe3fMi7Y+qh0DwAup6A1JkYgPnjvMDNOlmnxNRQvQ/7Nst+OnUQKzk0iAT0m9BisbDVp9gCv8+ETA==} - engines: {bare: '>=1.6.0'} - - bare-path@3.0.0: - resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} - - bare-stream@2.6.5: - resolution: {integrity: sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==} - peerDependencies: - bare-buffer: '*' - bare-events: '*' - peerDependenciesMeta: - bare-buffer: - optional: true - bare-events: - optional: true - - base32-encode@1.2.0: - resolution: {integrity: sha512-cHFU8XeRyx0GgmoWi5qHMCVRiqU6J3MHWxVgun7jggCBUpVzm1Ir7M9dYr2whjSNc3tFeXfQ/oZjQu/4u55h9A==} - base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -5755,9 +4665,6 @@ packages: resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==} engines: {node: '>=6.0.0'} - batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - bcp-47-match@2.0.3: resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} @@ -5768,9 +4675,6 @@ packages: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} - big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -5784,29 +4688,9 @@ packages: bl@5.1.0: resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} - bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - - body-parser@1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - bonjour-service@1.3.0: - resolution: {integrity: sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==} - boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - boolean@3.2.0: - resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - - bowser@2.11.0: - resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} - - bplist-creator@0.0.8: - resolution: {integrity: sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==} - brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -5828,15 +4712,9 @@ packages: bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer@5.6.0: - resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==} - buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} @@ -5864,18 +4742,6 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - cacache@16.1.3: - resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} - - cacheable-request@7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} - engines: {node: '>=8'} - call-bind-apply-helpers@1.0.1: resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} engines: {node: '>= 0.4'} @@ -5907,9 +4773,6 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - camelize@1.0.1: - resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001698: resolution: {integrity: sha512-xJ3km2oiG/MbNU8G6zIq6XRZ6HtAOVXsbOrP/blGazi52kc5Yy7b6sDA5O+FbROzRrV7BSTllLHuNvmawYUJjw==} @@ -5989,10 +4852,6 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -6012,17 +4871,9 @@ packages: '@chromatic-com/playwright': optional: true - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} - class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} - clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} - engines: {node: '>= 10.0'} - clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -6043,10 +4894,6 @@ packages: resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} engines: {node: '>=8'} - cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - cli-width@3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} @@ -6054,20 +4901,10 @@ packages: cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} - - clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} @@ -6089,9 +4926,6 @@ packages: collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - color-convert@0.5.3: - resolution: {integrity: sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -6123,33 +4957,14 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} - commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - - commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - - common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} - compare-version@0.1.2: - resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==} - engines: {node: '>=0.10.0'} - complex.js@2.4.2: resolution: {integrity: sha512-qtx7HRhPGSCBtGiST4/WGHuW+zeaND/6Ld+db6PbrulIB1i2Ev/2UPiqcmpQNPSyfBKraC0EOvOKCB5dGZKt3g==} @@ -6167,10 +4982,6 @@ packages: confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} - consola@3.4.0: resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} engines: {node: ^14.18.0 || >=16.10.0} @@ -6178,34 +4989,12 @@ packages: constant-case@3.0.4: resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie@0.7.1: - resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} - engines: {node: '>= 0.6'} - core-js-compat@3.40.0: resolution: {integrity: sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==} - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - cosmiconfig@8.3.6: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} @@ -6215,25 +5004,10 @@ packages: typescript: optional: true - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - create-vocs@1.0.0-alpha.5: resolution: {integrity: sha512-/Nr9taHX1SxL5t72DLFPYujqD8d5PDk0T8bJ9Fb/m7ck1lP20PBxHzF5IYnHI0BeTpIuGk/MQoLfT6JKpY6xnw==} hasBin: true - cross-dirname@0.1.0: - resolution: {integrity: sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==} - cross-fetch@3.2.0: resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} @@ -6241,50 +5015,20 @@ packages: resolution: {integrity: sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==} engines: {node: '>=16.0.0'} - cross-spawn@6.0.6: - resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} - engines: {node: '>=4.8'} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - cross-zip@4.0.1: - resolution: {integrity: sha512-n63i0lZ0rvQ6FXiGQ+/JFCKAUyPFhLQYJIqKaa+tSJtfKeULF/IDNDAbdnSIxgS4NTuw2b0+lj8LzfITuq+ZxQ==} - engines: {node: '>=12.10'} - crypto-random-string@2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} - css-color-keywords@1.0.0: - resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} - engines: {node: '>=4'} - - css-loader@6.11.0: - resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} - engines: {node: '>= 12.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} css-selector-parser@3.0.5: resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==} - css-to-react-native@3.2.0: - resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} - css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -6373,10 +5117,6 @@ packages: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - dedent@1.5.3: resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} peerDependencies: @@ -6407,17 +5147,9 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} - defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -6434,10 +5166,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -6473,9 +5201,6 @@ packages: detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - detect-package-manager@3.0.2: resolution: {integrity: sha512-8JFjJHutStYrfWwzfretQoyNGoZVW1Fsrp4JO9spa7h/fBfwgTMEIy4/LBzRDGsxwVPHU0q+T9YvwLDJoOApLQ==} engines: {node: '>=12'} @@ -6490,17 +5215,10 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - diff@7.0.0: resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} engines: {node: '>=0.3.1'} - dir-compare@4.2.0: - resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==} - dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -6512,10 +5230,6 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} - doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -6530,29 +5244,16 @@ packages: dom-accessibility-api@0.6.3: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} - dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} - - dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - domhandler@5.0.3: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -6566,9 +5267,6 @@ packages: draco3d@1.5.7: resolution: {integrity: sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==} - ds-store@0.1.6: - resolution: {integrity: sha512-kY21M6Lz+76OS3bnCzjdsJSF7LBpLYGCVfavW8TgQD2XkcqIZ86W0y9qUDZu6fp7SIZzqosMDW2zi7zVFfv4hw==} - dset@3.1.4: resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} @@ -6588,42 +5286,9 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-installer-common@0.10.4: - resolution: {integrity: sha512-8gMNPXfAqUE5CfXg8RL0vXpLE9HAaPkgLXVoHE3BMUzogMWenf4LmwQ27BdCUrEhkjrKl+igs2IHJibclR3z3Q==} - engines: {node: '>= 10.0.0'} - - electron-installer-debian@3.2.0: - resolution: {integrity: sha512-58ZrlJ1HQY80VucsEIG9tQ//HrTlG6sfofA3nRGr6TmkX661uJyu4cMPPh6kXW+aHdq/7+q25KyQhDrXvRL7jw==} - engines: {node: '>= 10.0.0'} - os: [darwin, linux] - hasBin: true - - electron-installer-dmg@5.0.1: - resolution: {integrity: sha512-qOa1aAQdX57C+vzhDk3549dd/PRlNL4F8y736MTD1a43qptD+PvHY97Bo9gSf+OZ8iUWE7BrYSpk/FgLUe40EA==} - engines: {node: '>= 16'} - hasBin: true - - electron-installer-redhat@3.4.0: - resolution: {integrity: sha512-gEISr3U32Sgtj+fjxUAlSDo3wyGGq6OBx7rF5UdpIgbnpUvMN4W5uYb0ThpnAZ42VEJh/3aODQXHbFS4f5J3Iw==} - engines: {node: '>= 10.0.0'} - os: [darwin, linux] - hasBin: true - - electron-squirrel-startup@1.0.1: - resolution: {integrity: sha512-sTfFIHGku+7PsHLJ7v0dRcZNkALrV+YEozINTW8X1nM//e5O3L+rfYuvSW00lmGHnYmUjARZulD8F2V8ISI9RA==} - electron-to-chromium@1.5.96: resolution: {integrity: sha512-8AJUW6dh75Fm/ny8+kZKJzI1pgoE8bKLZlzDU2W1ENd+DXKJrx7I7l9hb8UWR4ojlnb5OlixMt00QWiYJoVw1w==} - electron-winstaller@5.4.0: - resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} - engines: {node: '>=8.0.0'} - - electron@34.0.0: - resolution: {integrity: sha512-fpaPb0lifoUJ6UJa4Lk8/0B2Ku/xDZWdc1Gkj67jbygTCrvSon0qquju6Ltx1Kz23GRqqlIHXiy9EvrjpY7/Wg==} - engines: {node: '>= 12.20.55'} - hasBin: true - emoji-regex-xs@1.0.0: resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} @@ -6636,13 +5301,6 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - - encode-utf8@1.0.3: - resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} - encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -6654,27 +5312,14 @@ packages: encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - enhanced-resolve@5.18.1: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} - entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - - err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -6708,9 +5353,6 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - es6-error@4.1.1: - resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} - esast-util-from-estree@2.0.0: resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} @@ -6749,9 +5391,6 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-it@0.3.0: - resolution: {integrity: sha512-LgPtY7WCP1wcIgL591yG+01YzstxxZaHS1ZjTnQLFGWG+ZF/cjBIGh1C7uf2xlRlq1FFY2hffFwOLy0pNOxaPg==} - escape-latex@1.2.0: resolution: {integrity: sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==} @@ -6848,14 +5487,6 @@ packages: peerDependencies: eslint: '>=8.40' - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-scope@8.2.0: resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6868,14 +5499,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - - eslint@9.19.0: - resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} + eslint@9.20.0: + resolution: {integrity: sha512-aL4F8167Hg4IvsW89ejnpTwx+B/UQRzJPGgbIOl+4XqffWsahVVsLEWoZvnrVuwpWmnRd7XeXmQI1zlKcFDteA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -6888,10 +5513,6 @@ packages: resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -6905,10 +5526,6 @@ packages: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -6955,20 +5572,9 @@ packages: resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} engines: {node: '>= 0.8'} - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - execa@1.0.0: - resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} - engines: {node: '>=6'} - execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -6977,27 +5583,10 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - expand-tilde@2.0.2: - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} - engines: {node: '>=0.10.0'} - expect-type@1.1.0: resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} engines: {node: '>=12.0.0'} - exponential-backoff@3.1.2: - resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} - - express-ws@5.0.2: - resolution: {integrity: sha512-0uvmuk61O9HXgLhGl3QhNSEtRsQevtmbL94/eILaliEADZBHZOQUAiHFrGPrgsjikohyrmSG5g+sCfASTt0lkQ==} - engines: {node: '>=4.5.0'} - peerDependencies: - express: ^4.0.0 || ^5.0.0-alpha.1 - - express@4.21.2: - resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} - engines: {node: '>= 0.10.0'} - extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -7017,20 +5606,12 @@ packages: resolution: {integrity: sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==} engines: {node: ^12.20 || >= 14.13} - extract-zip@2.0.1: - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} - engines: {node: '>= 10.17.0'} - hasBin: true - fast-decode-uri-component@1.0.1: resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -7047,20 +5628,12 @@ packages: fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - fast-xml-parser@4.4.1: - resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} - hasBin: true - fastq@1.19.0: resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} - faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} - fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} @@ -7070,9 +5643,6 @@ packages: fbjs@3.0.5: resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} - fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - fdir@6.4.3: resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} peerDependencies: @@ -7098,10 +5668,6 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -7116,14 +5682,6 @@ packages: filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - filename-reserved-regex@2.0.0: - resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} - engines: {node: '>=4'} - - filenamify@4.3.0: - resolution: {integrity: sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==} - engines: {node: '>=8'} - filesize@10.1.6: resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==} engines: {node: '>= 10.4.0'} @@ -7136,18 +5694,6 @@ packages: resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} engines: {node: '>=0.10.0'} - finalhandler@1.3.1: - resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} - engines: {node: '>= 0.8'} - - find-cache-dir@4.0.0: - resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} - engines: {node: '>=14.16'} - - find-up@2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} - find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -7156,32 +5702,13 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - flatted@3.3.2: resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} - flora-colossus@2.0.0: - resolution: {integrity: sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==} - engines: {node: '>= 12'} - - fmix@0.1.0: - resolution: {integrity: sha512-Y6hyofImk9JdzU8k5INtTXX1cu8LDlePWDFU5sftm9H+zKCr5SGrVjdhkvsim646cw5zD0nADj8oHyXMZmCZ9w==} - follow-redirects@1.15.9: resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} @@ -7203,17 +5730,6 @@ packages: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} - fork-ts-checker-webpack-plugin@7.3.0: - resolution: {integrity: sha512-IN+XTzusCjR5VgntYFgxbxVx3WraPRnKehBFrf00cMSrtUuW9MsG9dhL6MWpY6MkjC3wVwoujfCDgZZCQwbswA==} - engines: {node: '>=12.13.0', yarn: '>=1.0.0'} - peerDependencies: - typescript: '>3.6.0' - vue-template-compiler: '*' - webpack: ^5.11.0 - peerDependenciesMeta: - vue-template-compiler: - optional: true - form-data@4.0.1: resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} @@ -7226,10 +5742,6 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - fraction.js@4.3.4: resolution: {integrity: sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q==} @@ -7262,33 +5774,10 @@ packages: resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} engines: {node: '>=14.14'} - fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - - fs-monkey@1.0.6: - resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} - - fs-temp@1.2.1: - resolution: {integrity: sha512-okTwLB7/Qsq82G6iN5zZJFsOfZtx2/pqrA7Hk/9fvy+c+eJS9CvgGXT2uNxwnI14BDY9L/jQPkaBgSvlKfSW9w==} - - fs-xattr@0.3.1: - resolution: {integrity: sha512-UVqkrEW0GfDabw4C3HOrFlxKfx0eeigfRne69FxSBdHIP8Qt5Sq6Pu3RM9KmMlkygtC4pPKkj5CiPO5USnj2GA==} - engines: {node: '>=8.6.0'} - os: ['!win32'] - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -7307,20 +5796,6 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - galactus@1.0.0: - resolution: {integrity: sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ==} - engines: {node: '>= 12'} - - gar@1.0.4: - resolution: {integrity: sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - - generate-function@2.3.1: - resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} - - generate-object-property@1.2.0: - resolution: {integrity: sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ==} - gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -7329,16 +5804,9 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-folder-size@2.0.1: - resolution: {integrity: sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==} - hasBin: true - get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - get-installed-path@2.1.1: - resolution: {integrity: sha512-Qkn9eq6tW5/q9BDVdMpB8tOHljX9OSP0jRC5TRNVA4qRc839t4g8KQaR8t0Uv0EFVL0MlyG7m/ofjEgAROtYsA==} - get-intrinsic@1.2.7: resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} @@ -7350,30 +5818,18 @@ packages: get-own-enumerable-property-symbols@3.0.2: resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - get-package-info@1.0.0: - resolution: {integrity: sha512-SCbprXGAPdIhKAXiG+Mk6yeoFH61JlYunqdFQFHDtLjJlDjFf6x07dsS8acO+xWt52jpdVo49AlVDnUVK1sDNw==} - engines: {node: '>= 4.0'} - get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} - get-starknet-core@3.3.4: - resolution: {integrity: sha512-KEnzAMr4f7z7dMh4g5lWDZ+eXtOEl++VPN5Flmmj8HiPmRrPOINEIwwNL/dN+Ey1kBxQOtOMQwCxJ9qlkRIgFw==} + get-starknet-core@3.3.5: + resolution: {integrity: sha512-EiXfbVp1ZIKc4jjGA5hEyNsy9rnkH4ALpiMCD+4G2jtqo/Gq4TrcVzh//mJclLA8yHRh3576H1vbAeH5zA1CiQ==} peerDependencies: starknet: ^5.18.0 get-starknet-core@4.0.0: resolution: {integrity: sha512-6pLmidQZkC3wZsrHY99grQHoGpuuXqkbSP65F8ov1/JsEI8DDLkhsAuLCKFzNOK56cJp+f1bWWfTJ57e9r5eqQ==} - get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -7396,9 +5852,6 @@ packages: github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - github-url-to-object@4.0.6: - resolution: {integrity: sha512-NaqbYHMUAlPcmWFdrAB7bcxrNIiiJWJe8s/2+iOc9vlcHlwHqSGrPk+Yi3nu6ebTwgsZEa7igz+NH2vEq3gYwQ==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -7407,9 +5860,6 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true @@ -7418,31 +5868,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported - - global-agent@3.0.0: - resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} - engines: {node: '>=10.0'} - - global-modules@1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} - - global-prefix@1.0.2: - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} - engines: {node: '>=0.10.0'} - globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -7472,10 +5901,6 @@ packages: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} - got@11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} - engines: {node: '>=10.19.0'} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -7521,9 +5946,6 @@ packages: gsap@3.12.7: resolution: {integrity: sha512-V4GsyVamhmKefvcAKaoy0h6si0xX7ogwBoBSs2CTJwt7luW0oZzC0LhdkyuKV8PJAXr7Yaj8pMjCKD4GJ+eEMg==} - handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} @@ -7547,10 +5969,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - hasbin@1.2.3: - resolution: {integrity: sha512-CCd8e/w2w28G8DyZvKgiHnQJ/5XXDz6qiUHnthvtag/6T5acUeN5lqq+HMoBqcmgWueWDhiCplrw0Kb1zDACRg==} - engines: {node: '>=0.10'} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -7591,105 +6009,30 @@ packages: hastscript@8.0.0: resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - header-case@2.0.4: resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} - homedir-polyfill@1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} - hono@3.12.12: resolution: {integrity: sha512-5IAMJOXfpA5nT+K0MNjClchzz0IhBHs2Szl7WFAhrFOsbtQsYmNynFyJRg/a3IPsmCfxcrf8txUGiNShXpK5Rg==} engines: {node: '>=16.0.0'} - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - howler@2.2.4: resolution: {integrity: sha512-iARIBPgcQrwtEr+tALF+rapJ8qSc+Set2GJQl7xT1MQzWaVkFebdJhR3alVlSiUf5U7nAANKuj3aWpwerocD5w==} - hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} - - html-entities@2.5.2: - resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} - html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true - html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - html-webpack-plugin@5.6.3: - resolution: {integrity: sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==} - engines: {node: '>=10.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - - http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - - http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} - http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} - http-parser-js@0.5.9: - resolution: {integrity: sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==} - - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - http-proxy-middleware@2.0.7: - resolution: {integrity: sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true - - http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} - - http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} - - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} @@ -7702,9 +6045,6 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -7713,12 +6053,6 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - idb@7.1.1: resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} @@ -7729,11 +6063,6 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - image-size@0.7.5: - resolution: {integrity: sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==} - engines: {node: '>=6.9.0'} - hasBin: true - immutable@3.7.6: resolution: {integrity: sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==} engines: {node: '>=0.8.0'} @@ -7749,10 +6078,6 @@ packages: resolution: {integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==} engines: {node: '>=12.2'} - imul@1.0.1: - resolution: {integrity: sha512-WFAgfwPLAjU66EKt6vRdTlKj4nAgIDQzh29JonLa4Bqtl6D8JrIMvWjCnx7xEjVNmP3U0fM5o8ZObk7d0f62bA==} - engines: {node: '>=0.10.0'} - imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -7761,22 +6086,13 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - infer-owner@1.0.4: - resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} @@ -7788,25 +6104,9 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} - invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - ip-address@9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} - engines: {node: '>= 12'} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - ipaddr.js@2.2.0: - resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} - engines: {node: '>= 10'} - is-absolute@1.0.0: resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} engines: {node: '>=0.10.0'} @@ -7892,10 +6192,6 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - is-generator-function@1.1.0: resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} @@ -7915,9 +6211,6 @@ packages: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} - is-lambda@1.0.1: - resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-lower-case@2.0.2: resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==} @@ -7928,12 +6221,6 @@ packages: is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - is-my-ip-valid@1.0.1: - resolution: {integrity: sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg==} - - is-my-json-valid@2.20.6: - resolution: {integrity: sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==} - is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} @@ -7946,14 +6233,6 @@ packages: resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} engines: {node: '>=0.10.0'} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} - is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -7962,9 +6241,6 @@ packages: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} - is-property@1.0.2: - resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} - is-regex@1.2.1: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} @@ -7985,10 +6261,6 @@ packages: resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} - is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} - is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -8024,9 +6296,6 @@ packages: is-upper-case@2.0.2: resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==} - is-url@1.2.4: - resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} - is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -8047,16 +6316,9 @@ packages: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isbinaryfile@4.0.10: - resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} - engines: {node: '>= 8.0.0'} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -8112,10 +6374,6 @@ packages: javascript-stringify@2.1.0: resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - jiti@1.21.7: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true @@ -8160,9 +6418,6 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsdoc-type-pratt-parser@4.1.0: resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} @@ -8195,9 +6450,6 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - json-to-pretty-yaml@1.2.2: resolution: {integrity: sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==} engines: {node: '>= 0.2.0'} @@ -8211,9 +6463,6 @@ packages: engines: {node: '>=6'} hasBin: true - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} @@ -8221,20 +6470,9 @@ packages: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} - junk@3.1.0: - resolution: {integrity: sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==} - engines: {node: '>=8'} - keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - launch-editor@2.9.1: - resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==} - leva@0.9.36: resolution: {integrity: sha512-mzzxZzpPdN1bugl6LXCLgK5PS4rU1NdRX7CWnXjVelK49OP8bdoMHhDDweo/uWIk4UHgwpO1sj9CD5Dai+Pvrg==} peerDependencies: @@ -8271,34 +6509,14 @@ packages: enquirer: optional: true - listr2@7.0.2: - resolution: {integrity: sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==} - engines: {node: '>=16.0.0'} - - load-json-file@2.0.0: - resolution: {integrity: sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==} - engines: {node: '>=4'} - load-tsconfig@0.2.5: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - - loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} - engines: {node: '>=8.9.0'} - local-pkg@0.5.1: resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} engines: {node: '>=14'} - locate-path@2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -8307,20 +6525,12 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lodash.castarray@4.4.0: resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. - lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} @@ -8345,10 +6555,6 @@ packages: resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} engines: {node: '>=10'} - log-update@5.0.1: - resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -8371,20 +6577,12 @@ packages: lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - lucide-react@0.365.0: resolution: {integrity: sha512-sJYpPyyzGHI4B3pys+XSFnE4qtSWc68rFnDLxbNNKjkLST5XSx9DNn5+1Z3eFgFiw39PphNRiVBSVb+AL3oKwA==} peerDependencies: @@ -8397,10 +6595,6 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - macos-alias@0.2.12: - resolution: {integrity: sha512-yiLHa7cfJcGRFq4FrR4tMlpNHb4Vy4mWnpajlSSIFM5k4Lv8/7BbbDLzCAVogWNl0LlLhizRp1drXv0hK9h0Yw==} - os: [darwin] - magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} @@ -8418,17 +6612,6 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - make-fetch-happen@10.2.1: - resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - map-age-cleaner@0.1.3: - resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} - engines: {node: '>=6'} - map-cache@0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} engines: {node: '>=0.10.0'} @@ -8450,10 +6633,6 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - matcher@3.0.0: - resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} - engines: {node: '>=10'} - math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -8529,24 +6708,9 @@ packages: media-query-parser@2.0.2: resolution: {integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==} - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - mem@4.3.0: - resolution: {integrity: sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==} - engines: {node: '>=6'} - - memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} - memoizerific@1.11.3: resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} - merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -8570,10 +6734,6 @@ packages: meshoptimizer@0.18.1: resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==} - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - micro-starknet@0.2.3: resolution: {integrity: sha512-6XBcC+GerlwJSR4iA0VaeXtS2wrayWFcA4PEzrJPMuFmWCaUtuGIq5K/DB5F/XgnL54/zl2Bxo690Lj7mYVA8A==} @@ -8717,21 +6877,10 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -8746,38 +6895,6 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} - - minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} - - minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} - - minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} - - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -8785,10 +6902,6 @@ packages: minisearch@6.3.0: resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==} - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - minizlib@3.0.1: resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} engines: {node: '>= 18'} @@ -8800,15 +6913,6 @@ packages: resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} engines: {node: '>=0.10.0'} - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - mkdirp@3.0.1: resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} engines: {node: '>=10'} @@ -8839,69 +6943,36 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true - - murmur-32@0.2.0: - resolution: {integrity: sha512-ZkcWZudylwF+ir3Ld1n7gL6bI2mQAzXvSobPwVtu8aYi2sbXeipeSkdcanRLzIofLcM5F53lGaKm2dk7orBi7Q==} - mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nan@2.22.0: - resolution: {integrity: sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==} - nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - negotiator@0.6.4: resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} engines: {node: '>= 0.6'} - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - next-themes@0.4.4: resolution: {integrity: sha512-LDQ2qIOJF0VnuVrrMSMLrWGjRMkq+0mpgl6e0juCLqdJ+oo8Q84JRWT6Wh11VDQKkMMe+dVzDKLWs5n87T+PkQ==} peerDependencies: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} - no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-abi@3.74.0: - resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==} - engines: {node: '>=10'} - - node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-api-version@0.2.0: - resolution: {integrity: sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg==} - node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -8919,10 +6990,6 @@ packages: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - node-gyp-build-optional-packages@5.1.1: resolution: {integrity: sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==} hasBin: true @@ -8934,28 +7001,14 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-loader@2.1.0: - resolution: {integrity: sha512-OwjPkyh8+7jW8DMd/iq71uU1Sspufr/C2+c3t0p08J3CrM9ApZ4U53xuisNrDXOHyGi5OYHgtfmmh+aK9zJA6g==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^5.0.0 - node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - nopt@6.0.0: - resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true - nopt@8.1.0: resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - normalize-path@2.1.1: resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} engines: {node: '>=0.10.0'} @@ -8968,14 +7021,6 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} - normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - - npm-run-path@2.0.2: - resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} - engines: {node: '>=4'} - npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -9040,9 +7085,6 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} - obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -9100,26 +7142,6 @@ packages: typescript: optional: true - p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} - - p-defer@1.0.0: - resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} - engines: {node: '>=4'} - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - p-is-promise@2.1.0: - resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==} - engines: {node: '>=6'} - - p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -9128,18 +7150,10 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-limit@5.0.0: resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} engines: {node: '>=18'} - p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} - p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -9148,22 +7162,10 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} - p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} - - p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -9181,13 +7183,6 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-author@2.0.0: - resolution: {integrity: sha512-yx5DfvkN8JsHL2xk2Os9oTia467qnvRgey4ahSm2X8epehBLx/gWLcy5KI+Y36ful5DzGbCS6RazqZGgy1gHNw==} - engines: {node: '>=0.10.0'} - - parse-color@1.0.0: - resolution: {integrity: sha512-fuDHYgFHJGbpGMgw9skY/bj3HL/Jrn4l/5rSspy00DoT4RyLnDcRvPxdZ+r6OFwIsgAuhDh4I09tAId4mI12bw==} - parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} @@ -9195,18 +7190,10 @@ packages: resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} engines: {node: '>=0.8'} - parse-json@2.2.0: - resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} - engines: {node: '>=0.10.0'} - parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-passwd@1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} - parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -9217,26 +7204,14 @@ packages: path-case@3.0.4: resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -9260,16 +7235,9 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} - path-to-regexp@6.1.0: resolution: {integrity: sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==} - path-type@2.0.0: - resolution: {integrity: sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==} - engines: {node: '>=4'} - path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -9287,13 +7255,6 @@ packages: resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} engines: {node: '>= 14.16'} - pe-library@1.0.1: - resolution: {integrity: sha512-nh39Mo1eGWmZS7y+mK/dQIqg7S1lp38DpRxkyoHf0ZcUs/HDc+yyTjuOtTvSMZHmfSLuSQaX945u05Y2Q6UWZg==} - engines: {node: '>=14', npm: '>=7'} - - pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -9313,17 +7274,9 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - pkg-dir@7.0.0: - resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} - engines: {node: '>=14.16'} - pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - plist@3.1.0: - resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} - engines: {node: '>=10.4.0'} - polished@4.3.1: resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} @@ -9374,43 +7327,6 @@ packages: yaml: optional: true - postcss-loader@8.1.1: - resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-local-by-default@4.2.0: - resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@3.2.1: - resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - postcss-nested@6.2.0: resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} @@ -9425,26 +7341,13 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - postcss-selector-parser@7.1.0: - resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} - engines: {node: '>=4'} - postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.49: - resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.5.1: resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} engines: {node: ^10 || ^12 || >=14} - postject@1.0.0-alpha.6: - resolution: {integrity: sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==} - engines: {node: '>=14.0.0'} - hasBin: true - postprocessing@6.36.7: resolution: {integrity: sha512-X6B3xt9dy4Osv19kqnVGqV01I2Tm7VwV6rLegRIZkZJPH3ozKLypHSBK1xKx7P/Ols++OkXe6L8dBGTaDUL5aw==} peerDependencies: @@ -9470,9 +7373,6 @@ packages: resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} - pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} - pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -9481,33 +7381,10 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - proc-log@2.0.1: - resolution: {integrity: sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} - progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - - promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - - promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} - promise@7.3.1: resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} @@ -9517,10 +7394,6 @@ packages: property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - proxy-deep@3.1.1: resolution: {integrity: sha512-kppbvLUNJ4IOMZds9/4gz/rtT5OFiesy3XosLsgMKlF3vb6GA5Y3ptyDlzKLcOcUBW+zaY+RiMINTsgE+O6e+Q==} @@ -9530,9 +7403,6 @@ packages: psl@1.15.0: resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} - pump@3.0.2: - resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} - punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} @@ -9541,10 +7411,6 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} - engines: {node: '>=0.6'} - query-string@7.1.3: resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} engines: {node: '>=6'} @@ -9555,13 +7421,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - - random-path@0.1.2: - resolution: {integrity: sha512-4jY0yoEaQ5v9StCl5kZbNIQlg1QheIDBrdkDn53EynpPb9FgO6//p3X/tgMnrC45XN6QZCzU1Xz/+pSSsJBpRw==} - randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -9569,10 +7428,6 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - react-colorful@5.6.1: resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} peerDependencies: @@ -9599,11 +7454,6 @@ packages: peerDependencies: react: ^18.3.1 - react-dom@19.0.0: - resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} - peerDependencies: - react: ^19.0.0 - react-draggable@4.4.6: resolution: {integrity: sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==} peerDependencies: @@ -9715,28 +7565,9 @@ packages: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} - react@19.0.0: - resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} - engines: {node: '>=0.10.0'} - - read-binary-file-arch@1.0.6: - resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==} - hasBin: true - read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - read-pkg-up@2.0.0: - resolution: {integrity: sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==} - engines: {node: '>=4'} - - read-pkg@2.0.0: - resolution: {integrity: sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==} - engines: {node: '>=4'} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -9753,10 +7584,6 @@ packages: resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} engines: {node: '>= 4'} - rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} - recma-build-jsx@1.0.0: resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} @@ -9829,10 +7656,6 @@ packages: rehype-slug@6.0.0: resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} - relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} - relay-runtime@12.0.0: resolution: {integrity: sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==} @@ -9869,13 +7692,6 @@ packages: remove-trailing-spaces@1.0.8: resolution: {integrity: sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==} - renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} - - repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -9893,29 +7709,14 @@ packages: requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - resedit@2.0.3: - resolution: {integrity: sha512-oTeemxwoMuxxTYxXUwjkrOPfngTQehlv0/HoYFNkB4uzsP1Un1A9nI8JQKGOFkxpqkC7qkMs0lUsGrvUlbLNUA==} - engines: {node: '>=14', npm: '>=7'} - - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - - resolve-dir@1.0.1: - resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} - engines: {node: '>=0.10.0'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - resolve-package@1.0.1: - resolution: {integrity: sha512-rzB7NnQpOkPHBWFPP3prUMqOP6yg3HkRGgcvR+lDyvyHoY3fZLFLYDkPXh78SPVBAE6VTCk/V+j8we4djg6o4g==} - engines: {node: '>=4', npm: '>=2'} - resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -9924,9 +7725,6 @@ packages: engines: {node: '>= 0.4'} hasBin: true - responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} - restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -9935,14 +7733,6 @@ packages: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -9950,31 +7740,17 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rimraf@2.6.3: - resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@5.0.10: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true - roarr@2.15.4: - resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} - engines: {node: '>=8.0'} - rollup@2.79.2: resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} engines: {node: '>=10.0.0'} hasBin: true - rollup@4.34.5: - resolution: {integrity: sha512-GyVCmpo9z/HYqFD8QWoBUnz1Q9xC22t8tPAZm/AvAcUg2U2/+DkboEvSioMwv042zE4I9N3FEhx7fiCT2YHzKQ==} + rollup@4.34.6: + resolution: {integrity: sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -9995,9 +7771,6 @@ packages: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -10015,37 +7788,12 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - scheduler@0.25.0: - resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - schema-utils@4.3.0: - resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} - engines: {node: '>= 10.13.0'} - scuid@1.1.0: resolution: {integrity: sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==} seedrandom@3.0.5: resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} - select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - - selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} - - semver-compare@1.0.0: - resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -10062,17 +7810,9 @@ packages: sentence-case@3.0.4: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} - serialize-error@7.0.1: - resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} - engines: {node: '>=10'} - serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} - serve-static@1.16.2: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} @@ -10102,38 +7842,17 @@ packages: setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - - shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - - shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} - shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-escape@0.2.0: - resolution: {integrity: sha512-uRRBT2MfEOyxuECseCZd28jC1AJ8hmqqneWQ4VWUTgCAFvb3wKU1jLqj6egC4Exrr88ogg3dp+zroH4wJuaXzw==} - shell-quote@1.8.2: resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} engines: {node: '>= 0.4'} @@ -10197,31 +7916,12 @@ packages: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} - slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} - - smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - smob@1.5.0: resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - - socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} - - socks@2.8.3: - resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - sonner@1.7.4: resolution: {integrity: sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw==} peerDependencies: @@ -10254,25 +7954,6 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.21: - resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} - - spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} - - spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} - split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} @@ -10284,23 +7965,12 @@ packages: sponge-case@1.0.1: resolution: {integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==} - sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - - ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} starknet@6.23.1: resolution: {integrity: sha512-vQV9luXpmwZZs9RVZaRwm2iD8T0PYx1AzgZeQsCvD89tR0HwUF0paty27ZzuJrdPe0CmAs/ipAYFCE55jbj0RQ==} - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -10321,20 +7991,10 @@ packages: prettier: optional: true - stream-browserify@3.0.0: - resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} - - stream-buffers@2.2.0: - resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==} - engines: {node: '>= 0.10.0'} - streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - streamx@2.22.0: - resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} - strict-uri-encode@2.0.0: resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} engines: {node: '>=4'} @@ -10370,9 +8030,6 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -10399,10 +8056,6 @@ packages: resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} engines: {node: '>=10'} - strip-eof@1.0.0: - resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} - engines: {node: '>=0.10.0'} - strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -10426,53 +8079,18 @@ packages: strip-literal@2.1.1: resolution: {integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==} - strip-outer@1.0.1: - resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} - engines: {node: '>=0.10.0'} - - strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - - style-loader@3.3.4: - resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} - styled-components@6.1.15: - resolution: {integrity: sha512-PpOTEztW87Ua2xbmLa7yssjNyUF9vE7wdldRfn1I2E6RTkqknkBYpj771OxM/xrvRGinLy2oysa7GOd7NcZZIA==} - engines: {node: '>= 16'} - peerDependencies: - react: '>= 16.8.0' - react-dom: '>= 16.8.0' - - stylis@4.3.2: - resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} - sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true - sudo-prompt@9.2.1: - resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - - sumchecker@3.0.1: - resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} - engines: {node: '>= 8.0'} - supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -10512,16 +8130,6 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - tar-fs@3.0.8: - resolution: {integrity: sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==} - - tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - tar@7.4.3: resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} engines: {node: '>=18'} @@ -10530,30 +8138,10 @@ packages: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} - temp@0.9.4: - resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} - engines: {node: '>=6.0.0'} - tempy@0.6.0: resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} engines: {node: '>=10'} - terser-webpack-plugin@5.3.11: - resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - terser@5.38.1: resolution: {integrity: sha512-GWANVlPM/ZfYzuPHjq0nxT+EbOEDDN3Jwhwdg1D8TU8oSkktp8w64Uq4auuGLxFSoNTRDncTq2hQHX1Ld9KHkA==} engines: {node: '>=10'} @@ -10563,12 +8151,6 @@ packages: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} - text-decoder@1.2.3: - resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -10587,16 +8169,10 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - timeout-signal@2.0.0: resolution: {integrity: sha512-YBGpG4bWsHoPvofT6y/5iqulfXIiIErl5B0LdtHT1mGXDFTAhhRrbUpTvBgYbovr+3cKblya2WAOcpoy90XguA==} engines: {node: '>=16'} - tiny-each-async@2.0.3: - resolution: {integrity: sha512-5ROII7nElnAirvFn8g7H7MtpfV1daMcyfTGQwsn/x2VtyV+VPiO5CjReCJtWLvoKTDEDmZocf3cNPraiMnBXLA==} - tiny-emitter@2.1.0: resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} @@ -10639,24 +8215,10 @@ packages: title-case@3.0.3: resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} - tmp-promise@3.0.3: - resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} - tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} - tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} - engines: {node: '>=14.14'} - - tn1150@0.1.0: - resolution: {integrity: sha512-DbplOfQFkqG5IHcDyyrs/lkvSr3mPUVsFf/RbDppOshs22yTPnSJWEe6FkYd1txAwU/zcnR905ar2fi4kwF29w==} - engines: {node: '>=0.12'} - - to-data-view@1.1.0: - resolution: {integrity: sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ==} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -10689,10 +8251,6 @@ packages: trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - trim-repeated@1.0.0: - resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} - engines: {node: '>=0.10.0'} - trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} @@ -10715,33 +8273,12 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-loader@9.5.2: - resolution: {integrity: sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==} - engines: {node: '>=12.0.0'} - peerDependencies: - typescript: '*' - webpack: ^5.0.0 - ts-log@2.2.7: resolution: {integrity: sha512-320x5Ggei84AxzlXp91QkIGSw5wgaLT6GeAH0KsqDmRZdVWW2OiSeVvElVoatk3f7nicwXlElXsoFkARiGE2yg==} ts-mixer@6.0.4: resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} @@ -10749,15 +8286,9 @@ packages: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.4.1: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} @@ -10783,12 +8314,6 @@ packages: typescript: optional: true - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - tsx@4.19.2: resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} engines: {node: '>=18.0.0'} @@ -10813,34 +8338,18 @@ packages: resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} engines: {node: '>=4'} - type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} - type-fest@0.16.0: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} engines: {node: '>=10'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} @@ -10881,11 +8390,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - typescript@4.5.5: - resolution: {integrity: sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==} - engines: {node: '>=4.2.0'} - hasBin: true - typescript@5.7.3: resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} engines: {node: '>=14.17'} @@ -10934,14 +8438,6 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unique-filename@2.0.1: - resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - unique-slug@3.0.0: - resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -10970,10 +8466,6 @@ packages: universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -10986,14 +8478,6 @@ packages: resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==} engines: {node: '>=0.10.0'} - unorm@1.6.0: - resolution: {integrity: sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==} - engines: {node: '>= 0.4.0'} - - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - unplugin@1.16.1: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} @@ -11012,9 +8496,6 @@ packages: peerDependencies: browserslist: '>= 4.21.0' - update-electron-app@3.1.1: - resolution: {integrity: sha512-7duRr6sYn014tifhKgT/5i8N+6xLzmJVJ8hVtNrHXlIDNP6QbRe6VxZ1hSi2UH5oJPzhor/PH7yKU9em5xjRzQ==} - upper-case-first@2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} @@ -11069,44 +8550,23 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - username@5.1.0: - resolution: {integrity: sha512-PCKbdWw85JsYMvmCv5GH3kXmM66rCd9m1hBEDutPNv94b/pqCMT4NtcKyeWYvLFiE8b+ha1Jdl8XAaUdPn5QTg==} - engines: {node: '>=8'} - util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} util@0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - uuid@10.0.0: resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} hasBin: true - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - v8n@1.5.1: resolution: {integrity: sha512-LdabyT4OffkyXFCe9UT+uMkxNBs5rcTVuZClvxQr08D5TUgo1OFKkoT65qYRCsiKBl/usHjpXvP4hHMzzDRj3A==} - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - value-or-promise@1.0.12: resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} engines: {node: '>=12'} @@ -11286,13 +8746,6 @@ packages: react: ^18.2.0 react-dom: ^18.2.0 - watchpack@2.4.2: - resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} - engines: {node: '>=10.13.0'} - - wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} - wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -11306,54 +8759,9 @@ packages: webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - webpack-dev-middleware@5.3.4: - resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - webpack-dev-server@4.15.2: - resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} - engines: {node: '>= 12.13.0'} - hasBin: true - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - - webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} - - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.97.1: - resolution: {integrity: sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} - - websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - whatwg-fetch@3.6.20: resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} @@ -11386,10 +8794,6 @@ packages: resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} engines: {node: '>= 0.4'} - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -11400,9 +8804,6 @@ packages: engines: {node: '>=8'} hasBin: true - wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -11476,18 +8877,6 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@7.5.10: - resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@8.13.0: resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} engines: {node: '>=10.0.0'} @@ -11512,30 +8901,6 @@ packages: utf-8-validate: optional: true - xmlbuilder@15.1.1: - resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} - engines: {node: '>=8.0'} - - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - - xterm-addon-fit@0.5.0: - resolution: {integrity: sha512-DsS9fqhXHacEmsPxBJZvfj2la30Iz9xk+UKjhQgnYNkrUIN5CYLbw7WEfz117c7+S86S/tpHPfvNxJsF5/G8wQ==} - deprecated: This package is now deprecated. Move to @xterm/addon-fit instead. - peerDependencies: - xterm: ^4.0.0 - - xterm-addon-search@0.8.2: - resolution: {integrity: sha512-I1863mjn8P6uVrqm/X+btalVsqjAKLhnhpbP7SavAOpEkI1jJhbHU2UTp7NjeRtcKTks6UWk/ycgds5snDSejg==} - deprecated: This package is now deprecated. Move to @xterm/addon-search instead. - peerDependencies: - xterm: ^4.0.0 - - xterm@4.19.0: - resolution: {integrity: sha512-c3Cp4eOVsYY5Q839dR5IejghRPpxciGmLWWaP9g+ppfMeBChMeLa1DCA+pmX/jyDZ+zxFOmlJL/82qVdayVoGQ==} - deprecated: This package is now deprecated. Move to @xterm/xterm instead. - y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -11546,9 +8911,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yallist@5.0.0: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} @@ -11556,10 +8918,6 @@ packages: yaml-ast-parser@0.0.43: resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - yaml@2.7.0: resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} @@ -11569,10 +8927,6 @@ packages: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -11581,21 +8935,10 @@ packages: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} - yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -11670,10 +9013,10 @@ snapshots: dependencies: '@babel/core': 7.26.7 '@babel/generator': 7.26.5 - '@babel/parser': 7.26.7 + '@babel/parser': 7.26.8 '@babel/runtime': 7.26.7 '@babel/traverse': 7.26.7 - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 babel-preset-fbjs: 3.4.0(@babel/core@7.26.7) chalk: 4.1.2 fb-watchman: 2.0.2 @@ -11693,7 +9036,7 @@ snapshots: '@ardatan/relay-compiler@12.0.1(@babel/core@7.26.7)(encoding@0.1.13)(graphql@16.10.0)': dependencies: '@babel/generator': 7.26.5 - '@babel/parser': 7.26.7 + '@babel/parser': 7.26.8 '@babel/runtime': 7.26.7 babel-preset-fbjs: 3.4.0(@babel/core@7.26.7) chalk: 4.1.2 @@ -11724,9 +9067,9 @@ snapshots: dependencies: '@ark-project/core': 3.0.0-beta.1(encoding@0.1.13)(typescript@5.7.3)(viem@2.22.23(typescript@5.7.3)(zod@3.24.1)) '@starknet-react/chains': 0.1.7 - '@starknet-react/core': 2.9.0(get-starknet-core@3.3.4(starknet@6.23.1(encoding@0.1.13)))(react@18.3.1)(starknet@6.23.1(encoding@0.1.13)) + '@starknet-react/core': 2.9.0(get-starknet-core@3.3.5(starknet@6.23.1(encoding@0.1.13)))(react@18.3.1)(starknet@6.23.1(encoding@0.1.13)) '@tanstack/react-query': 5.66.0(react@18.3.1) - get-starknet-core: 3.3.4(starknet@6.23.1(encoding@0.1.13)) + get-starknet-core: 3.3.5(starknet@6.23.1(encoding@0.1.13)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) starknet: 6.23.1(encoding@0.1.13) @@ -11735,535 +9078,66 @@ snapshots: - typescript - viem - '@aws-crypto/crc32@5.2.0': + '@babel/code-frame@7.26.2': dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.734.0 - tslib: 2.8.1 + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 - '@aws-crypto/crc32c@5.2.0': - dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.734.0 - tslib: 2.8.1 + '@babel/compat-data@7.26.8': {} - '@aws-crypto/sha1-browser@5.2.0': + '@babel/core@7.26.7': dependencies: - '@aws-crypto/supports-web-crypto': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-locate-window': 3.723.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.5 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) + '@babel/helpers': 7.26.7 + '@babel/parser': 7.26.8 + '@babel/template': 7.25.9 + '@babel/traverse': 7.26.7 + '@babel/types': 7.26.8 + convert-source-map: 2.0.0 + debug: 4.4.0 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color - '@aws-crypto/sha256-browser@5.2.0': + '@babel/generator@7.26.5': dependencies: - '@aws-crypto/sha256-js': 5.2.0 - '@aws-crypto/supports-web-crypto': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-locate-window': 3.723.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 - '@aws-crypto/sha256-js@5.2.0': + '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.734.0 - tslib: 2.8.1 + '@babel/types': 7.26.8 - '@aws-crypto/supports-web-crypto@5.2.0': + '@babel/helper-compilation-targets@7.26.5': dependencies: - tslib: 2.8.1 + '@babel/compat-data': 7.26.8 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 - '@aws-crypto/util@5.2.0': + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.7)': dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 - - '@aws-sdk/client-s3@3.743.0': - dependencies: - '@aws-crypto/sha1-browser': 5.2.0 - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.734.0 - '@aws-sdk/credential-provider-node': 3.743.0 - '@aws-sdk/middleware-bucket-endpoint': 3.734.0 - '@aws-sdk/middleware-expect-continue': 3.734.0 - '@aws-sdk/middleware-flexible-checksums': 3.735.0 - '@aws-sdk/middleware-host-header': 3.734.0 - '@aws-sdk/middleware-location-constraint': 3.734.0 - '@aws-sdk/middleware-logger': 3.734.0 - '@aws-sdk/middleware-recursion-detection': 3.734.0 - '@aws-sdk/middleware-sdk-s3': 3.740.0 - '@aws-sdk/middleware-ssec': 3.734.0 - '@aws-sdk/middleware-user-agent': 3.743.0 - '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/signature-v4-multi-region': 3.740.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.743.0 - '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.743.0 - '@aws-sdk/xml-builder': 3.734.0 - '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.2 - '@smithy/eventstream-serde-browser': 4.0.1 - '@smithy/eventstream-serde-config-resolver': 4.0.1 - '@smithy/eventstream-serde-node': 4.0.1 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/hash-blob-browser': 4.0.1 - '@smithy/hash-node': 4.0.1 - '@smithy/hash-stream-node': 4.0.1 - '@smithy/invalid-dependency': 4.0.1 - '@smithy/md5-js': 4.0.1 - '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.3 - '@smithy/middleware-retry': 4.0.4 - '@smithy/middleware-serde': 4.0.2 - '@smithy/middleware-stack': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.2 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.4 - '@smithy/util-defaults-mode-node': 4.0.4 - '@smithy/util-endpoints': 3.0.1 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 - '@smithy/util-stream': 4.0.2 - '@smithy/util-utf8': 4.0.0 - '@smithy/util-waiter': 4.0.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/client-sso@3.743.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.734.0 - '@aws-sdk/middleware-host-header': 3.734.0 - '@aws-sdk/middleware-logger': 3.734.0 - '@aws-sdk/middleware-recursion-detection': 3.734.0 - '@aws-sdk/middleware-user-agent': 3.743.0 - '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.743.0 - '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.743.0 - '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.2 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/hash-node': 4.0.1 - '@smithy/invalid-dependency': 4.0.1 - '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.3 - '@smithy/middleware-retry': 4.0.4 - '@smithy/middleware-serde': 4.0.2 - '@smithy/middleware-stack': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.2 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.4 - '@smithy/util-defaults-mode-node': 4.0.4 - '@smithy/util-endpoints': 3.0.1 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 + '@babel/core': 7.26.7 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.26.7 + semver: 6.3.1 transitivePeerDependencies: - - aws-crt - - '@aws-sdk/core@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/core': 3.1.2 - '@smithy/node-config-provider': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/signature-v4': 5.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - '@smithy/util-middleware': 4.0.1 - fast-xml-parser: 4.4.1 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-env@3.734.0': - dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-http@3.734.0': - dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/node-http-handler': 4.0.2 - '@smithy/property-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - '@smithy/util-stream': 4.0.2 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-ini@3.743.0': - dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/credential-provider-env': 3.734.0 - '@aws-sdk/credential-provider-http': 3.734.0 - '@aws-sdk/credential-provider-process': 3.734.0 - '@aws-sdk/credential-provider-sso': 3.743.0 - '@aws-sdk/credential-provider-web-identity': 3.743.0 - '@aws-sdk/nested-clients': 3.743.0 - '@aws-sdk/types': 3.734.0 - '@smithy/credential-provider-imds': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-node@3.743.0': - dependencies: - '@aws-sdk/credential-provider-env': 3.734.0 - '@aws-sdk/credential-provider-http': 3.734.0 - '@aws-sdk/credential-provider-ini': 3.743.0 - '@aws-sdk/credential-provider-process': 3.734.0 - '@aws-sdk/credential-provider-sso': 3.743.0 - '@aws-sdk/credential-provider-web-identity': 3.743.0 - '@aws-sdk/types': 3.734.0 - '@smithy/credential-provider-imds': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-process@3.734.0': - dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-sso@3.743.0': - dependencies: - '@aws-sdk/client-sso': 3.743.0 - '@aws-sdk/core': 3.734.0 - '@aws-sdk/token-providers': 3.743.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-web-identity@3.743.0': - dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/nested-clients': 3.743.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/lib-storage@3.743.0(@aws-sdk/client-s3@3.743.0)': - dependencies: - '@aws-sdk/client-s3': 3.743.0 - '@smithy/abort-controller': 4.0.1 - '@smithy/middleware-endpoint': 4.0.3 - '@smithy/smithy-client': 4.1.3 - buffer: 5.6.0 - events: 3.3.0 - stream-browserify: 3.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-bucket-endpoint@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-arn-parser': 3.723.0 - '@smithy/node-config-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-config-provider': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-expect-continue@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-flexible-checksums@3.735.0': - dependencies: - '@aws-crypto/crc32': 5.2.0 - '@aws-crypto/crc32c': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@smithy/is-array-buffer': 4.0.0 - '@smithy/node-config-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-stream': 4.0.2 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-host-header@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-location-constraint@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-logger@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-recursion-detection@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-sdk-s3@3.740.0': - dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-arn-parser': 3.723.0 - '@smithy/core': 3.1.2 - '@smithy/node-config-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/signature-v4': 5.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-stream': 4.0.2 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-ssec@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-user-agent@3.743.0': - dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.743.0 - '@smithy/core': 3.1.2 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@aws-sdk/nested-clients@3.743.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.734.0 - '@aws-sdk/middleware-host-header': 3.734.0 - '@aws-sdk/middleware-logger': 3.734.0 - '@aws-sdk/middleware-recursion-detection': 3.734.0 - '@aws-sdk/middleware-user-agent': 3.743.0 - '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.743.0 - '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.743.0 - '@smithy/config-resolver': 4.0.1 - '@smithy/core': 3.1.2 - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/hash-node': 4.0.1 - '@smithy/invalid-dependency': 4.0.1 - '@smithy/middleware-content-length': 4.0.1 - '@smithy/middleware-endpoint': 4.0.3 - '@smithy/middleware-retry': 4.0.4 - '@smithy/middleware-serde': 4.0.2 - '@smithy/middleware-stack': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/node-http-handler': 4.0.2 - '@smithy/protocol-http': 5.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.4 - '@smithy/util-defaults-mode-node': 4.0.4 - '@smithy/util-endpoints': 3.0.1 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/region-config-resolver@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/node-config-provider': 4.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.1 - tslib: 2.8.1 - - '@aws-sdk/signature-v4-multi-region@3.740.0': - dependencies: - '@aws-sdk/middleware-sdk-s3': 3.740.0 - '@aws-sdk/types': 3.734.0 - '@smithy/protocol-http': 5.0.1 - '@smithy/signature-v4': 5.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@aws-sdk/token-providers@3.743.0': - dependencies: - '@aws-sdk/nested-clients': 3.743.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/types@3.734.0': - dependencies: - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@aws-sdk/util-arn-parser@3.723.0': - dependencies: - tslib: 2.8.1 - - '@aws-sdk/util-endpoints@3.743.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.1.0 - '@smithy/util-endpoints': 3.0.1 - tslib: 2.8.1 - - '@aws-sdk/util-locate-window@3.723.0': - dependencies: - tslib: 2.8.1 - - '@aws-sdk/util-user-agent-browser@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.1.0 - bowser: 2.11.0 - tslib: 2.8.1 - - '@aws-sdk/util-user-agent-node@3.743.0': - dependencies: - '@aws-sdk/middleware-user-agent': 3.743.0 - '@aws-sdk/types': 3.734.0 - '@smithy/node-config-provider': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@aws-sdk/xml-builder@3.734.0': - dependencies: - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@babel/code-frame@7.26.2': - dependencies: - '@babel/helper-validator-identifier': 7.25.9 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.26.5': {} - - '@babel/core@7.26.7': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.5 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) - '@babel/helpers': 7.26.7 - '@babel/parser': 7.26.7 - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.7 - '@babel/types': 7.26.7 - convert-source-map: 2.0.0 - debug: 4.4.0 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.26.5': - dependencies: - '@babel/parser': 7.26.7 - '@babel/types': 7.26.7 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 - - '@babel/helper-annotate-as-pure@7.25.9': - dependencies: - '@babel/types': 7.26.7 - - '@babel/helper-compilation-targets@7.26.5': - dependencies: - '@babel/compat-data': 7.26.5 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.7)': - dependencies: - '@babel/core': 7.26.7 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.7) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.26.7 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + - supports-color '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.7)': dependencies: @@ -12286,14 +9160,14 @@ snapshots: '@babel/helper-member-expression-to-functions@7.25.9': dependencies: '@babel/traverse': 7.26.7 - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.25.9': dependencies: '@babel/traverse': 7.26.7 - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 transitivePeerDependencies: - supports-color @@ -12308,7 +9182,7 @@ snapshots: '@babel/helper-optimise-call-expression@7.25.9': dependencies: - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 '@babel/helper-plugin-utils@7.26.5': {} @@ -12333,7 +9207,7 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: '@babel/traverse': 7.26.7 - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 transitivePeerDependencies: - supports-color @@ -12347,18 +9221,18 @@ snapshots: dependencies: '@babel/template': 7.25.9 '@babel/traverse': 7.26.7 - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 transitivePeerDependencies: - supports-color '@babel/helpers@7.26.7': dependencies: '@babel/template': 7.25.9 - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 - '@babel/parser@7.26.7': + '@babel/parser@7.26.8': dependencies: - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.7)': dependencies: @@ -12405,7 +9279,7 @@ snapshots: '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.26.7)': dependencies: - '@babel/compat-data': 7.26.5 + '@babel/compat-data': 7.26.8 '@babel/core': 7.26.7 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-plugin-utils': 7.26.5 @@ -12748,7 +9622,7 @@ snapshots: '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.7) - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 transitivePeerDependencies: - supports-color @@ -12793,7 +9667,7 @@ snapshots: '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.7)': + '@babel/plugin-transform-template-literals@7.26.8(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.26.5 @@ -12803,7 +9677,7 @@ snapshots: '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-typescript@7.26.7(@babel/core@7.26.7)': + '@babel/plugin-transform-typescript@7.26.8(@babel/core@7.26.7)': dependencies: '@babel/core': 7.26.7 '@babel/helper-annotate-as-pure': 7.25.9 @@ -12839,7 +9713,7 @@ snapshots: '@babel/preset-env@7.26.7(@babel/core@7.26.7)': dependencies: - '@babel/compat-data': 7.26.5 + '@babel/compat-data': 7.26.8 '@babel/core': 7.26.7 '@babel/helper-compilation-targets': 7.26.5 '@babel/helper-plugin-utils': 7.26.5 @@ -12897,7 +9771,7 @@ snapshots: '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.7) '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.7) '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.7) - '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-template-literals': 7.26.8(@babel/core@7.26.7) '@babel/plugin-transform-typeof-symbol': 7.26.7(@babel/core@7.26.7) '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.7) '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.7) @@ -12916,7 +9790,7 @@ snapshots: dependencies: '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.26.5 - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 esutils: 2.0.3 '@babel/preset-react@7.26.3(@babel/core@7.26.7)': @@ -12938,7 +9812,7 @@ snapshots: '@babel/helper-validator-option': 7.25.9 '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.7) '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.7) - '@babel/plugin-transform-typescript': 7.26.7(@babel/core@7.26.7) + '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.7) transitivePeerDependencies: - supports-color @@ -12949,22 +9823,22 @@ snapshots: '@babel/template@7.25.9': dependencies: '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.7 - '@babel/types': 7.26.7 + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 '@babel/traverse@7.26.7': dependencies: '@babel/code-frame': 7.26.2 '@babel/generator': 7.26.5 - '@babel/parser': 7.26.7 + '@babel/parser': 7.26.8 '@babel/template': 7.25.9 - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.26.7': + '@babel/types@7.26.8': dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 @@ -12975,10 +9849,10 @@ snapshots: '@cartridge/account-wasm@0.6.0': {} - '@cartridge/connector@0.6.0(@starknet-react/core@3.7.2(get-starknet-core@3.3.4(starknet@6.23.1(encoding@0.1.13)))(react@19.0.0)(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3))(starknet@6.23.1(encoding@0.1.13))': + '@cartridge/connector@0.6.0(@starknet-react/core@3.7.2(get-starknet-core@3.3.5(starknet@6.23.1(encoding@0.1.13)))(react@18.3.1)(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3))(starknet@6.23.1(encoding@0.1.13))': dependencies: '@cartridge/controller': 0.6.0(starknet@6.23.1(encoding@0.1.13)) - '@starknet-react/core': 3.7.2(get-starknet-core@3.3.4(starknet@6.23.1(encoding@0.1.13)))(react@19.0.0)(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3) + '@starknet-react/core': 3.7.2(get-starknet-core@3.3.5(starknet@6.23.1(encoding@0.1.13)))(react@18.3.1)(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3) transitivePeerDependencies: - starknet @@ -13037,10 +9911,6 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - '@dojoengine/core@1.0.0-alpha.24(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3)': dependencies: '@dojoengine/recs': 2.0.13(typescript@5.7.3)(zod@3.24.1) @@ -13061,16 +9931,16 @@ snapshots: - typescript - utf-8-validate - '@dojoengine/create-burner@1.0.4-alpha.3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3)': + '@dojoengine/create-burner@1.0.4-alpha.3.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3)': dependencies: '@dojoengine/core': 1.0.4-alpha.3.1.0(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3) '@scure/bip32': 1.6.2 - '@starknet-react/core': 2.3.0(get-starknet-core@3.3.4(starknet@6.23.1(encoding@0.1.13)))(react@19.0.0)(starknet@6.23.1(encoding@0.1.13)) + '@starknet-react/core': 2.3.0(get-starknet-core@3.3.5(starknet@6.23.1(encoding@0.1.13)))(react@18.3.1)(starknet@6.23.1(encoding@0.1.13)) encoding: 0.1.13 - get-starknet-core: 3.3.4(starknet@6.23.1(encoding@0.1.13)) + get-starknet-core: 3.3.5(starknet@6.23.1(encoding@0.1.13)) js-cookie: 3.0.5 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) starknet: 6.23.1(encoding@0.1.13) transitivePeerDependencies: - bufferutil @@ -13115,7 +9985,7 @@ snapshots: - utf-8-validate - zod - '@dojoengine/react@1.0.4-alpha.3.1.0(@types/node@20.17.17)(@types/react@18.3.18)(react@19.0.0)(starknet@6.23.1(encoding@0.1.13))(terser@5.38.1)(type-fest@2.19.0)(typescript@5.7.3)(zod@3.24.1)': + '@dojoengine/react@1.0.4-alpha.3.1.0(@types/node@20.17.17)(@types/react@18.3.18)(react@18.3.1)(starknet@6.23.1(encoding@0.1.13))(terser@5.38.1)(type-fest@2.19.0)(typescript@5.7.3)(zod@3.24.1)': dependencies: '@dojoengine/recs': 2.0.13(typescript@5.7.3)(zod@3.24.1) '@dojoengine/state': 1.0.4-alpha.3.1.0(@types/node@20.17.17)(starknet@6.23.1(encoding@0.1.13))(terser@5.38.1)(typescript@5.7.3)(zod@3.24.1) @@ -13124,13 +9994,13 @@ snapshots: '@latticexyz/utils': 2.2.19 encoding: 0.1.13 fast-deep-equal: 3.1.3 - get-starknet-core: 3.3.4(starknet@6.23.1(encoding@0.1.13)) + get-starknet-core: 3.3.5(starknet@6.23.1(encoding@0.1.13)) js-cookie: 3.0.5 - react: 19.0.0 + react: 18.3.1 rxjs: 7.5.5 starknet: 6.23.1(encoding@0.1.13) type-fest: 2.19.0 - zustand: 4.5.6(@types/react@18.3.18)(react@19.0.0) + zustand: 4.5.6(@types/react@18.3.18)(react@18.3.1) transitivePeerDependencies: - '@edge-runtime/vm' - '@types/node' @@ -13255,500 +10125,49 @@ snapshots: - utf-8-validate - zod - '@electron-forge/cli@7.6.1(encoding@0.1.13)': + '@emotion/hash@0.9.2': {} + + '@envelop/core@5.0.3': dependencies: - '@electron-forge/core': 7.6.1(encoding@0.1.13) - '@electron-forge/shared-types': 7.6.1 - '@electron/get': 3.1.0 - chalk: 4.1.2 - commander: 4.1.1 - debug: 4.4.0 - fs-extra: 10.1.0 - listr2: 7.0.2 - semver: 7.7.1 - transitivePeerDependencies: - - bluebird - - encoding - - supports-color + '@envelop/types': 5.0.0 + tslib: 2.8.1 - '@electron-forge/core-utils@7.6.1': + '@envelop/types@5.0.0': dependencies: - '@electron-forge/shared-types': 7.6.1 - '@electron/rebuild': 3.7.1 - '@malept/cross-spawn-promise': 2.0.0 - chalk: 4.1.2 - debug: 4.4.0 - detect-package-manager: 3.0.2 - find-up: 5.0.0 - fs-extra: 10.1.0 - log-symbols: 4.1.0 - semver: 7.7.1 - transitivePeerDependencies: - - bluebird - - supports-color + tslib: 2.8.1 - '@electron-forge/core@7.6.1(encoding@0.1.13)': - dependencies: - '@electron-forge/core-utils': 7.6.1 - '@electron-forge/maker-base': 7.6.1 - '@electron-forge/plugin-base': 7.6.1 - '@electron-forge/publisher-base': 7.6.1 - '@electron-forge/shared-types': 7.6.1 - '@electron-forge/template-base': 7.6.1 - '@electron-forge/template-vite': 7.6.1 - '@electron-forge/template-vite-typescript': 7.6.1 - '@electron-forge/template-webpack': 7.6.1 - '@electron-forge/template-webpack-typescript': 7.6.1 - '@electron-forge/tracer': 7.6.1 - '@electron/get': 3.1.0 - '@electron/packager': 18.3.6 - '@electron/rebuild': 3.7.1 - '@malept/cross-spawn-promise': 2.0.0 - chalk: 4.1.2 - debug: 4.4.0 - detect-package-manager: 3.0.2 - fast-glob: 3.3.3 - filenamify: 4.3.0 - find-up: 5.0.0 - fs-extra: 10.1.0 - got: 11.8.6 - interpret: 3.1.1 - listr2: 7.0.2 - lodash: 4.17.21 - log-symbols: 4.1.0 - node-fetch: 2.7.0(encoding@0.1.13) - rechoir: 0.8.0 - resolve-package: 1.0.1 - semver: 7.7.1 - source-map-support: 0.5.21 - sudo-prompt: 9.2.1 - username: 5.1.0 - transitivePeerDependencies: - - bluebird - - encoding - - supports-color + '@esbuild/aix-ppc64@0.19.12': + optional: true - '@electron-forge/maker-base@7.6.1': - dependencies: - '@electron-forge/shared-types': 7.6.1 - fs-extra: 10.1.0 - which: 2.0.2 - transitivePeerDependencies: - - bluebird - - supports-color + '@esbuild/aix-ppc64@0.21.5': + optional: true - '@electron-forge/maker-deb@7.6.1': - dependencies: - '@electron-forge/maker-base': 7.6.1 - '@electron-forge/shared-types': 7.6.1 - optionalDependencies: - electron-installer-debian: 3.2.0 - transitivePeerDependencies: - - bluebird - - supports-color + '@esbuild/aix-ppc64@0.23.1': + optional: true - '@electron-forge/maker-dmg@7.6.1': - dependencies: - '@electron-forge/maker-base': 7.6.1 - '@electron-forge/shared-types': 7.6.1 - fs-extra: 10.1.0 - optionalDependencies: - electron-installer-dmg: 5.0.1 - transitivePeerDependencies: - - bluebird - - supports-color + '@esbuild/aix-ppc64@0.24.2': + optional: true - '@electron-forge/maker-rpm@7.6.1': - dependencies: - '@electron-forge/maker-base': 7.6.1 - '@electron-forge/shared-types': 7.6.1 - optionalDependencies: - electron-installer-redhat: 3.4.0 - transitivePeerDependencies: - - bluebird - - supports-color + '@esbuild/android-arm64@0.19.12': + optional: true - '@electron-forge/maker-squirrel@7.6.1': - dependencies: - '@electron-forge/maker-base': 7.6.1 - '@electron-forge/shared-types': 7.6.1 - fs-extra: 10.1.0 - optionalDependencies: - electron-winstaller: 5.4.0 - transitivePeerDependencies: - - bluebird - - supports-color + '@esbuild/android-arm64@0.21.5': + optional: true - '@electron-forge/maker-zip@7.6.1': - dependencies: - '@electron-forge/maker-base': 7.6.1 - '@electron-forge/shared-types': 7.6.1 - cross-zip: 4.0.1 - fs-extra: 10.1.0 - got: 11.8.6 - transitivePeerDependencies: - - bluebird - - supports-color + '@esbuild/android-arm64@0.23.1': + optional: true - '@electron-forge/plugin-auto-unpack-natives@7.6.1': - dependencies: - '@electron-forge/plugin-base': 7.6.1 - '@electron-forge/shared-types': 7.6.1 - transitivePeerDependencies: - - bluebird - - supports-color + '@esbuild/android-arm64@0.24.2': + optional: true - '@electron-forge/plugin-base@7.6.1': - dependencies: - '@electron-forge/shared-types': 7.6.1 - transitivePeerDependencies: - - bluebird - - supports-color + '@esbuild/android-arm@0.19.12': + optional: true - '@electron-forge/plugin-fuses@7.6.1(@electron/fuses@1.8.0)': - dependencies: - '@electron-forge/plugin-base': 7.6.1 - '@electron-forge/shared-types': 7.6.1 - '@electron/fuses': 1.8.0 - transitivePeerDependencies: - - bluebird - - supports-color + '@esbuild/android-arm@0.21.5': + optional: true - '@electron-forge/plugin-vite@7.6.1': - dependencies: - '@electron-forge/core-utils': 7.6.1 - '@electron-forge/plugin-base': 7.6.1 - '@electron-forge/shared-types': 7.6.1 - '@electron-forge/web-multi-logger': 7.6.1 - chalk: 4.1.2 - debug: 4.4.0 - fs-extra: 10.1.0 - listr2: 7.0.2 - transitivePeerDependencies: - - bluebird - - bufferutil - - supports-color - - utf-8-validate - - '@electron-forge/plugin-webpack@7.6.1(@swc/core@1.10.14(@swc/helpers@0.5.15))': - dependencies: - '@electron-forge/core-utils': 7.6.1 - '@electron-forge/plugin-base': 7.6.1 - '@electron-forge/shared-types': 7.6.1 - '@electron-forge/web-multi-logger': 7.6.1 - chalk: 4.1.2 - debug: 4.4.0 - fast-glob: 3.3.3 - fs-extra: 10.1.0 - html-webpack-plugin: 5.6.3(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))) - listr2: 7.0.2 - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15)) - webpack-dev-server: 4.15.2(debug@4.4.0)(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))) - webpack-merge: 5.10.0 - transitivePeerDependencies: - - '@rspack/core' - - '@swc/core' - - bluebird - - bufferutil - - esbuild - - supports-color - - uglify-js - - utf-8-validate - - webpack-cli - - '@electron-forge/publisher-base@7.6.1': - dependencies: - '@electron-forge/shared-types': 7.6.1 - transitivePeerDependencies: - - bluebird - - supports-color - - '@electron-forge/publisher-s3@7.6.1': - dependencies: - '@aws-sdk/client-s3': 3.743.0 - '@aws-sdk/lib-storage': 3.743.0(@aws-sdk/client-s3@3.743.0) - '@aws-sdk/types': 3.734.0 - '@electron-forge/publisher-static': 7.6.1 - '@electron-forge/shared-types': 7.6.1 - debug: 4.4.0 - transitivePeerDependencies: - - aws-crt - - bluebird - - supports-color - - '@electron-forge/publisher-static@7.6.1': - dependencies: - '@electron-forge/publisher-base': 7.6.1 - '@electron-forge/shared-types': 7.6.1 - transitivePeerDependencies: - - bluebird - - supports-color - - '@electron-forge/shared-types@7.6.1': - dependencies: - '@electron-forge/tracer': 7.6.1 - '@electron/packager': 18.3.6 - '@electron/rebuild': 3.7.1 - listr2: 7.0.2 - transitivePeerDependencies: - - bluebird - - supports-color - - '@electron-forge/template-base@7.6.1': - dependencies: - '@electron-forge/shared-types': 7.6.1 - '@malept/cross-spawn-promise': 2.0.0 - debug: 4.4.0 - fs-extra: 10.1.0 - username: 5.1.0 - transitivePeerDependencies: - - bluebird - - supports-color - - '@electron-forge/template-vite-typescript@7.6.1': - dependencies: - '@electron-forge/shared-types': 7.6.1 - '@electron-forge/template-base': 7.6.1 - fs-extra: 10.1.0 - transitivePeerDependencies: - - bluebird - - supports-color - - '@electron-forge/template-vite@7.6.1': - dependencies: - '@electron-forge/shared-types': 7.6.1 - '@electron-forge/template-base': 7.6.1 - fs-extra: 10.1.0 - transitivePeerDependencies: - - bluebird - - supports-color - - '@electron-forge/template-webpack-typescript@7.6.1': - dependencies: - '@electron-forge/shared-types': 7.6.1 - '@electron-forge/template-base': 7.6.1 - fs-extra: 10.1.0 - transitivePeerDependencies: - - bluebird - - supports-color - - '@electron-forge/template-webpack@7.6.1': - dependencies: - '@electron-forge/shared-types': 7.6.1 - '@electron-forge/template-base': 7.6.1 - fs-extra: 10.1.0 - transitivePeerDependencies: - - bluebird - - supports-color - - '@electron-forge/tracer@7.6.1': - dependencies: - chrome-trace-event: 1.0.4 - - '@electron-forge/web-multi-logger@7.6.1': - dependencies: - express: 4.21.2 - express-ws: 5.0.2(express@4.21.2) - xterm: 4.19.0 - xterm-addon-fit: 0.5.0(xterm@4.19.0) - xterm-addon-search: 0.8.2(xterm@4.19.0) - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - '@electron/asar@3.2.18': - dependencies: - commander: 5.1.0 - glob: 7.2.3 - minimatch: 3.1.2 - - '@electron/fuses@1.8.0': - dependencies: - chalk: 4.1.2 - fs-extra: 9.1.0 - minimist: 1.2.8 - - '@electron/get@2.0.3': - dependencies: - debug: 4.4.0 - env-paths: 2.2.1 - fs-extra: 8.1.0 - got: 11.8.6 - progress: 2.0.3 - semver: 6.3.1 - sumchecker: 3.0.1 - optionalDependencies: - global-agent: 3.0.0 - transitivePeerDependencies: - - supports-color - - '@electron/get@3.1.0': - dependencies: - debug: 4.4.0 - env-paths: 2.2.1 - fs-extra: 8.1.0 - got: 11.8.6 - progress: 2.0.3 - semver: 6.3.1 - sumchecker: 3.0.1 - optionalDependencies: - global-agent: 3.0.0 - transitivePeerDependencies: - - supports-color - - '@electron/node-gyp@https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2': - dependencies: - env-paths: 2.2.1 - exponential-backoff: 3.1.2 - glob: 8.1.0 - graceful-fs: 4.2.11 - make-fetch-happen: 10.2.1 - nopt: 6.0.0 - proc-log: 2.0.1 - semver: 7.7.1 - tar: 6.2.1 - which: 2.0.2 - transitivePeerDependencies: - - bluebird - - supports-color - - '@electron/notarize@2.5.0': - dependencies: - debug: 4.4.0 - fs-extra: 9.1.0 - promise-retry: 2.0.1 - transitivePeerDependencies: - - supports-color - - '@electron/osx-sign@1.3.2': - dependencies: - compare-version: 0.1.2 - debug: 4.4.0 - fs-extra: 10.1.0 - isbinaryfile: 4.0.10 - minimist: 1.2.8 - plist: 3.1.0 - transitivePeerDependencies: - - supports-color - - '@electron/packager@18.3.6': - dependencies: - '@electron/asar': 3.2.18 - '@electron/get': 3.1.0 - '@electron/notarize': 2.5.0 - '@electron/osx-sign': 1.3.2 - '@electron/universal': 2.0.1 - '@electron/windows-sign': 1.2.0 - debug: 4.4.0 - extract-zip: 2.0.1 - filenamify: 4.3.0 - fs-extra: 11.3.0 - galactus: 1.0.0 - get-package-info: 1.0.0 - junk: 3.1.0 - parse-author: 2.0.0 - plist: 3.1.0 - resedit: 2.0.3 - resolve: 1.22.10 - semver: 7.7.1 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - supports-color - - '@electron/rebuild@3.7.1': - dependencies: - '@electron/node-gyp': https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2 - '@malept/cross-spawn-promise': 2.0.0 - chalk: 4.1.2 - debug: 4.4.0 - detect-libc: 2.0.3 - fs-extra: 10.1.0 - got: 11.8.6 - node-abi: 3.74.0 - node-api-version: 0.2.0 - ora: 5.4.1 - read-binary-file-arch: 1.0.6 - semver: 7.7.1 - tar: 6.2.1 - yargs: 17.7.2 - transitivePeerDependencies: - - bluebird - - supports-color - - '@electron/universal@2.0.1': - dependencies: - '@electron/asar': 3.2.18 - '@malept/cross-spawn-promise': 2.0.0 - debug: 4.4.0 - dir-compare: 4.2.0 - fs-extra: 11.3.0 - minimatch: 9.0.5 - plist: 3.1.0 - transitivePeerDependencies: - - supports-color - - '@electron/windows-sign@1.2.0': - dependencies: - cross-dirname: 0.1.0 - debug: 4.4.0 - fs-extra: 11.3.0 - minimist: 1.2.8 - postject: 1.0.0-alpha.6 - transitivePeerDependencies: - - supports-color - - '@emotion/hash@0.9.2': {} - - '@emotion/is-prop-valid@1.2.2': - dependencies: - '@emotion/memoize': 0.8.1 - - '@emotion/memoize@0.8.1': {} - - '@emotion/unitless@0.8.1': {} - - '@envelop/core@5.0.3': - dependencies: - '@envelop/types': 5.0.0 - tslib: 2.8.1 - - '@envelop/types@5.0.0': - dependencies: - tslib: 2.8.1 - - '@esbuild/aix-ppc64@0.19.12': - optional: true - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/aix-ppc64@0.23.1': - optional: true - - '@esbuild/aix-ppc64@0.24.2': - optional: true - - '@esbuild/android-arm64@0.19.12': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.23.1': - optional: true - - '@esbuild/android-arm64@0.24.2': - optional: true - - '@esbuild/android-arm@0.19.12': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-arm@0.23.1': - optional: true + '@esbuild/android-arm@0.23.1': + optional: true '@esbuild/android-arm@0.24.2': optional: true @@ -14002,14 +10421,9 @@ snapshots: '@esbuild/win32-x64@0.24.2': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': + '@eslint-community/eslint-utils@4.4.1(eslint@9.20.0(jiti@2.4.2))': dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.4.1(eslint@9.19.0(jiti@2.4.2))': - dependencies: - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -14026,19 +10440,9 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@2.1.4': + '@eslint/core@0.11.0': dependencies: - ajv: 6.12.6 - debug: 4.4.0 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + '@types/json-schema': 7.0.15 '@eslint/eslintrc@3.2.0': dependencies: @@ -14054,9 +10458,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.1': {} - - '@eslint/js@9.19.0': {} + '@eslint/js@9.20.0': {} '@eslint/object-schema@2.1.6': {} @@ -14095,12 +10497,6 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@floating-ui/dom': 1.6.13 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - '@floating-ui/react@0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -14109,18 +10505,8 @@ snapshots: react-dom: 18.3.1(react@18.3.1) tabbable: 6.2.0 - '@floating-ui/react@0.26.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@floating-ui/utils': 0.2.9 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - tabbable: 6.2.0 - '@floating-ui/utils@0.2.9': {} - '@gar/promisify@1.1.3': {} - '@gql.tada/internal@1.0.8(graphql@16.10.0)(typescript@5.7.3)': dependencies: '@0no-co/graphql.web': 1.0.13(graphql@16.10.0) @@ -14137,7 +10523,7 @@ snapshots: dependencies: '@babel/generator': 7.26.5 '@babel/template': 7.25.9 - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 '@graphql-codegen/client-preset': 4.4.0(@babel/core@7.26.7)(encoding@0.1.13)(graphql@16.10.0) '@graphql-codegen/core': 4.0.2(graphql@16.10.0) '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) @@ -14420,7 +10806,7 @@ snapshots: dependencies: graphql: 16.10.0 lodash.sortby: 4.7.0 - tslib: 2.8.1 + tslib: 2.6.3 '@graphql-tools/executor-common@0.0.1(graphql@16.10.0)': dependencies: @@ -14517,10 +10903,10 @@ snapshots: '@graphql-tools/graphql-tag-pluck@8.3.12(graphql@16.10.0)': dependencies: '@babel/core': 7.26.7 - '@babel/parser': 7.26.7 + '@babel/parser': 7.26.8 '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.7) '@babel/traverse': 7.26.7 - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 '@graphql-tools/utils': 10.7.2(graphql@16.10.0) graphql: 16.10.0 tslib: 2.8.1 @@ -14559,12 +10945,12 @@ snapshots: '@graphql-tools/optimize@1.4.0(graphql@16.10.0)': dependencies: graphql: 16.10.0 - tslib: 2.8.1 + tslib: 2.6.3 '@graphql-tools/optimize@2.0.0(graphql@16.10.0)': dependencies: graphql: 16.10.0 - tslib: 2.8.1 + tslib: 2.6.3 '@graphql-tools/prisma-loader@8.0.17(@types/node@20.17.17)(encoding@0.1.13)(graphql@16.10.0)': dependencies: @@ -14597,7 +10983,7 @@ snapshots: '@ardatan/relay-compiler': 12.0.0(encoding@0.1.13)(graphql@16.10.0) '@graphql-tools/utils': 9.2.1(graphql@16.10.0) graphql: 16.10.0 - tslib: 2.8.1 + tslib: 2.6.3 transitivePeerDependencies: - encoding - supports-color @@ -14607,7 +10993,7 @@ snapshots: '@ardatan/relay-compiler': 12.0.1(@babel/core@7.26.7)(encoding@0.1.13)(graphql@16.10.0) '@graphql-tools/utils': 10.7.2(graphql@16.10.0) graphql: 16.10.0 - tslib: 2.8.1 + tslib: 2.6.3 transitivePeerDependencies: - '@babel/core' - encoding @@ -14652,13 +11038,13 @@ snapshots: '@graphql-tools/utils@8.13.1(graphql@16.10.0)': dependencies: graphql: 16.10.0 - tslib: 2.8.1 + tslib: 2.6.3 '@graphql-tools/utils@9.2.1(graphql@16.10.0)': dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) graphql: 16.10.0 - tslib: 2.8.1 + tslib: 2.6.3 '@graphql-tools/wrap@10.0.29(graphql@16.10.0)': dependencies: @@ -14692,18 +11078,8 @@ snapshots: '@humanfs/core': 0.19.1 '@humanwhocodes/retry': 0.3.1 - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} - '@humanwhocodes/retry@0.3.1': {} '@humanwhocodes/retry@0.4.1': {} @@ -14757,11 +11133,6 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - '@kamilkisiela/fast-url-parser@1.1.4': {} '@latticexyz/schema-type@2.0.12(typescript@5.7.3)(zod@3.24.1)': @@ -14786,17 +11157,6 @@ snapshots: proxy-deep: 3.1.1 rxjs: 7.5.5 - '@leichtgewicht/ip-codec@2.0.5': {} - - '@malept/cross-spawn-promise@1.1.1': - dependencies: - cross-spawn: 7.0.6 - optional: true - - '@malept/cross-spawn-promise@2.0.0': - dependencies: - cross-spawn: 7.0.6 - '@manypkg/find-root@2.2.3': dependencies: '@manypkg/tools': 1.1.2 @@ -14850,23 +11210,17 @@ snapshots: - acorn - supports-color - '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@19.0.0)': + '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 '@types/react': 18.3.18 - react: 19.0.0 - - '@mdx-js/react@3.1.0(@types/react@19.0.8)(react@18.3.1)': - dependencies: - '@types/mdx': 2.0.13 - '@types/react': 19.0.8 react: 18.3.1 - '@mdx-js/rollup@3.1.0(acorn@8.14.0)(rollup@4.34.5)': + '@mdx-js/rollup@3.1.0(acorn@8.14.0)(rollup@4.34.6)': dependencies: '@mdx-js/mdx': 3.1.0(acorn@8.14.0) - '@rollup/pluginutils': 5.1.4(rollup@4.34.5) - rollup: 4.34.5 + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) + rollup: 4.34.6 source-map: 0.7.4 vfile: 6.0.3 transitivePeerDependencies: @@ -14919,16 +11273,6 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.0 - '@npmcli/fs@2.1.2': - dependencies: - '@gar/promisify': 1.1.3 - semver: 7.7.1 - - '@npmcli/move-file@2.0.1': - dependencies: - mkdirp: 1.0.4 - rimraf: 3.0.2 - '@octokit/auth-token@4.0.0': {} '@octokit/core@5.2.0': @@ -15071,19 +11415,19 @@ snapshots: '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-accordion@1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-accordion@1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collapsible': 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-collapsible': 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) @@ -15104,71 +11448,37 @@ snapshots: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-arrow@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-arrow@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - - '@radix-ui/react-checkbox@1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-checkbox@1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - - '@radix-ui/react-collapsible@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-collapsible@1.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collapsible@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) '@radix-ui/react-collection@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -15182,41 +11492,17 @@ snapshots: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-collection@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-collection@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@19.0.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-compose-refs@1.0.0(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 react: 18.3.1 - '@radix-ui/react-compose-refs@1.0.1(@types/react@19.0.8)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 react: 18.3.1 optionalDependencies: - '@types/react': 19.0.8 + '@types/react': 18.3.18 '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -15224,29 +11510,17 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.8)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - '@radix-ui/react-context@1.0.0(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 react: 18.3.1 - '@radix-ui/react-context@1.0.1(@types/react@19.0.8)(react@18.3.1)': + '@radix-ui/react-context@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 react: 18.3.1 optionalDependencies: - '@types/react': 19.0.8 + '@types/react': 18.3.18 '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -15254,84 +11528,50 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-context@1.1.1(@types/react@19.0.8)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-dialog@1.0.5(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dialog@1.0.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.18)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.5(@types/react@19.0.8)(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - - '@radix-ui/react-dialog@1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@19.0.0) - aria-hidden: 1.2.4 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@19.0.0) + react-remove-scroll: 2.5.5(@types/react@18.3.18)(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-dialog@1.1.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dialog@1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.3(@types/react@19.0.8)(react@18.3.1) + react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -15339,18 +11579,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-direction@1.1.0(@types/react@19.0.8)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - '@radix-ui/react-dismissable-layer@1.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 @@ -15362,19 +11590,19 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -15389,53 +11617,27 @@ snapshots: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-dropdown-menu@2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - - '@radix-ui/react-dropdown-menu@2.1.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-menu': 2.1.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-menu': 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-focus-guards@1.0.1(@types/react@19.0.8)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 react: 18.3.1 optionalDependencies: - '@types/react': 19.0.8 + '@types/react': 18.3.18 '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -15443,29 +11645,17 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.18)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-focus-guards@1.1.1(@types/react@19.0.8)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -15478,49 +11668,23 @@ snapshots: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-icons@1.3.2(react@18.3.1)': dependencies: react: 18.3.1 - '@radix-ui/react-icons@1.3.2(react@19.0.0)': - dependencies: - react: 19.0.0 - '@radix-ui/react-id@1.0.0(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 '@radix-ui/react-use-layout-effect': 1.0.0(react@18.3.1) react: 18.3.1 - '@radix-ui/react-id@1.0.1(@types/react@19.0.8)(react@18.3.1)': + '@radix-ui/react-id@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 19.0.8 + '@types/react': 18.3.18 '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -15529,131 +11693,85 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@19.0.0)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-id@1.1.0(@types/react@19.0.8)(react@18.3.1)': + '@radix-ui/react-label@2.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-label@2.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-label@2.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - - '@radix-ui/react-menu@2.1.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-menu@2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-popper': 1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.3(@types/react@19.0.8)(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - - '@radix-ui/react-navigation-menu@1.2.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-visually-hidden': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-popover@1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-navigation-menu@1.2.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@19.0.0) - aria-hidden: 1.2.4 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@19.0.0) + '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-popover@1.1.6(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popover@1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-popper': 1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.3(@types/react@19.0.8)(react@18.3.1) + react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) '@radix-ui/react-popper@1.1.1(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -15691,42 +11809,6 @@ snapshots: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-popper@1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-arrow': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/rect': 1.1.0 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-popper@1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/rect': 1.1.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-portal@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 @@ -15734,15 +11816,15 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@radix-ui/react-portal@1.0.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.0.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) '@radix-ui/react-portal@1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -15754,26 +11836,6 @@ snapshots: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-portal@1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-portal@1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-presence@1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 @@ -15782,16 +11844,16 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@radix-ui/react-presence@1.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) '@radix-ui/react-presence@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -15803,26 +11865,6 @@ snapshots: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-presence@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-presence@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-primitive@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 @@ -15830,15 +11872,15 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 - '@radix-ui/react-slot': 1.0.2(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) '@radix-ui/react-primitive@2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -15849,24 +11891,6 @@ snapshots: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-primitive@2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-slot': 1.1.2(@types/react@19.0.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 @@ -15884,40 +11908,6 @@ snapshots: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-select@2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/number': 1.1.0 @@ -15947,14 +11937,14 @@ snapshots: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-separator@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-separator@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) '@radix-ui/react-slot@1.0.1(react@18.3.1)': dependencies: @@ -15962,13 +11952,13 @@ snapshots: '@radix-ui/react-compose-refs': 1.0.0(react@18.3.1) react: 18.3.1 - '@radix-ui/react-slot@1.0.2(@types/react@19.0.8)(react@18.3.1)': + '@radix-ui/react-slot@1.0.2(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 19.0.8 + '@types/react': 18.3.18 '@radix-ui/react-slot@1.1.2(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -15977,20 +11967,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-slot@1.1.2(@types/react@18.3.18)(react@19.0.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-slot@1.1.2(@types/react@19.0.8)(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - '@radix-ui/react-switch@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 @@ -16022,22 +11998,6 @@ snapshots: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-tabs@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-tooltip@1.0.5(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 @@ -16058,37 +12018,37 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@radix-ui/react-tooltip@1.1.8(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-tooltip@1.1.8(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-popper': 1.2.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.2(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) '@radix-ui/react-use-callback-ref@1.0.0(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 react: 18.3.1 - '@radix-ui/react-use-callback-ref@1.0.1(@types/react@19.0.8)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 react: 18.3.1 optionalDependencies: - '@types/react': 19.0.8 + '@types/react': 18.3.18 '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: @@ -16096,135 +12056,71 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.8)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - '@radix-ui/react-use-controllable-state@1.0.0(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 '@radix-ui/react-use-callback-ref': 1.0.0(react@18.3.1) react: 18.3.1 - '@radix-ui/react-use-controllable-state@1.0.1(@types/react@19.0.8)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@19.0.0)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.8)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-escape-keydown@1.0.2(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.3.1) - react: 18.3.1 - - '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@19.0.8)(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.8)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.18)(react@19.0.0)': + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 + '@babel/runtime': 7.26.7 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.0.8)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 19.0.8 + '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.0.0(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.0.2(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 + '@radix-ui/react-use-callback-ref': 1.0.0(react@18.3.1) react: 18.3.1 - '@radix-ui/react-use-layout-effect@1.0.1(@types/react@19.0.8)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 - react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': - dependencies: + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@19.0.0)': + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - react: 19.0.0 + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.8)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.0.0(react@18.3.1)': dependencies: + '@babel/runtime': 7.26.7 react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.18)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.18)(react@18.3.1)': dependencies: + '@babel/runtime': 7.26.7 react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.18)(react@19.0.0)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - react: 19.0.0 + react: 18.3.1 optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-previous@1.1.0(@types/react@19.0.8)(react@18.3.1)': + '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 19.0.8 + '@types/react': 18.3.18 '@radix-ui/react-use-rect@1.0.0(react@18.3.1)': dependencies: @@ -16239,20 +12135,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.18)(react@19.0.0)': - dependencies: - '@radix-ui/rect': 1.1.0 - react: 19.0.0 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-rect@1.1.0(@types/react@19.0.8)(react@18.3.1)': - dependencies: - '@radix-ui/rect': 1.1.0 - react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - '@radix-ui/react-use-size@1.0.0(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 @@ -16266,20 +12148,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - '@radix-ui/react-use-size@1.1.0(@types/react@18.3.18)(react@19.0.0)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 18.3.18 - - '@radix-ui/react-use-size@1.1.0(@types/react@19.0.8)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 19.0.8 - '@radix-ui/react-visually-hidden@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.7 @@ -16296,24 +12164,6 @@ snapshots: '@types/react': 18.3.18 '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-visually-hidden@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 18.3.18 - '@types/react-dom': 18.3.5(@types/react@18.3.18) - - '@radix-ui/react-visually-hidden@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/rect@1.0.0': dependencies: '@babel/runtime': 7.26.7 @@ -16402,9 +12252,9 @@ snapshots: optionalDependencies: rollup: 2.79.2 - '@rollup/plugin-virtual@3.0.2(rollup@4.34.5)': + '@rollup/plugin-virtual@3.0.2(rollup@4.34.6)': optionalDependencies: - rollup: 4.34.5 + rollup: 4.34.6 '@rollup/pluginutils@3.1.0(rollup@2.79.2)': dependencies: @@ -16421,69 +12271,69 @@ snapshots: optionalDependencies: rollup: 2.79.2 - '@rollup/pluginutils@5.1.4(rollup@4.34.5)': + '@rollup/pluginutils@5.1.4(rollup@4.34.6)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.34.5 + rollup: 4.34.6 - '@rollup/rollup-android-arm-eabi@4.34.5': + '@rollup/rollup-android-arm-eabi@4.34.6': optional: true - '@rollup/rollup-android-arm64@4.34.5': + '@rollup/rollup-android-arm64@4.34.6': optional: true - '@rollup/rollup-darwin-arm64@4.34.5': + '@rollup/rollup-darwin-arm64@4.34.6': optional: true - '@rollup/rollup-darwin-x64@4.34.5': + '@rollup/rollup-darwin-x64@4.34.6': optional: true - '@rollup/rollup-freebsd-arm64@4.34.5': + '@rollup/rollup-freebsd-arm64@4.34.6': optional: true - '@rollup/rollup-freebsd-x64@4.34.5': + '@rollup/rollup-freebsd-x64@4.34.6': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.34.5': + '@rollup/rollup-linux-arm-gnueabihf@4.34.6': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.34.5': + '@rollup/rollup-linux-arm-musleabihf@4.34.6': optional: true - '@rollup/rollup-linux-arm64-gnu@4.34.5': + '@rollup/rollup-linux-arm64-gnu@4.34.6': optional: true - '@rollup/rollup-linux-arm64-musl@4.34.5': + '@rollup/rollup-linux-arm64-musl@4.34.6': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.34.5': + '@rollup/rollup-linux-loongarch64-gnu@4.34.6': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.34.5': + '@rollup/rollup-linux-powerpc64le-gnu@4.34.6': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.34.5': + '@rollup/rollup-linux-riscv64-gnu@4.34.6': optional: true - '@rollup/rollup-linux-s390x-gnu@4.34.5': + '@rollup/rollup-linux-s390x-gnu@4.34.6': optional: true - '@rollup/rollup-linux-x64-gnu@4.34.5': + '@rollup/rollup-linux-x64-gnu@4.34.6': optional: true - '@rollup/rollup-linux-x64-musl@4.34.5': + '@rollup/rollup-linux-x64-musl@4.34.6': optional: true - '@rollup/rollup-win32-arm64-msvc@4.34.5': + '@rollup/rollup-win32-arm64-msvc@4.34.6': optional: true - '@rollup/rollup-win32-ia32-msvc@4.34.5': + '@rollup/rollup-win32-ia32-msvc@4.34.6': optional: true - '@rollup/rollup-win32-x64-msvc@4.34.5': + '@rollup/rollup-win32-x64-msvc@4.34.6': optional: true '@rtsao/scc@1.1.0': {} @@ -16499,7 +12349,7 @@ snapshots: '@scure/bip32@1.3.2': dependencies: '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.3 + '@noble/hashes': 1.3.2 '@scure/base': 1.1.9 '@scure/bip32@1.6.2': @@ -16510,7 +12360,7 @@ snapshots: '@scure/bip39@1.2.1': dependencies: - '@noble/hashes': 1.3.3 + '@noble/hashes': 1.3.2 '@scure/base': 1.1.9 '@scure/bip39@1.5.4': @@ -16588,376 +12438,43 @@ snapshots: '@sinclair/typebox@0.27.8': {} - '@sindresorhus/is@4.6.0': {} - - '@smithy/abort-controller@4.0.1': - dependencies: - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/chunked-blob-reader-native@4.0.0': - dependencies: - '@smithy/util-base64': 4.0.0 - tslib: 2.8.1 - - '@smithy/chunked-blob-reader@5.0.0': - dependencies: - tslib: 2.8.1 - - '@smithy/config-resolver@4.0.1': - dependencies: - '@smithy/node-config-provider': 4.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-config-provider': 4.0.0 - '@smithy/util-middleware': 4.0.1 - tslib: 2.8.1 - - '@smithy/core@3.1.2': - dependencies: - '@smithy/middleware-serde': 4.0.2 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-stream': 4.0.2 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@smithy/credential-provider-imds@4.0.1': - dependencies: - '@smithy/node-config-provider': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 - tslib: 2.8.1 - - '@smithy/eventstream-codec@4.0.1': - dependencies: - '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.1.0 - '@smithy/util-hex-encoding': 4.0.0 - tslib: 2.8.1 - - '@smithy/eventstream-serde-browser@4.0.1': - dependencies: - '@smithy/eventstream-serde-universal': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/eventstream-serde-config-resolver@4.0.1': - dependencies: - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/eventstream-serde-node@4.0.1': - dependencies: - '@smithy/eventstream-serde-universal': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/eventstream-serde-universal@4.0.1': - dependencies: - '@smithy/eventstream-codec': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/fetch-http-handler@5.0.1': - dependencies: - '@smithy/protocol-http': 5.0.1 - '@smithy/querystring-builder': 4.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-base64': 4.0.0 - tslib: 2.8.1 - - '@smithy/hash-blob-browser@4.0.1': - dependencies: - '@smithy/chunked-blob-reader': 5.0.0 - '@smithy/chunked-blob-reader-native': 4.0.0 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/hash-node@4.0.1': - dependencies: - '@smithy/types': 4.1.0 - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@smithy/hash-stream-node@4.0.1': - dependencies: - '@smithy/types': 4.1.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@smithy/invalid-dependency@4.0.1': - dependencies: - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/is-array-buffer@2.2.0': - dependencies: - tslib: 2.8.1 - - '@smithy/is-array-buffer@4.0.0': - dependencies: - tslib: 2.8.1 - - '@smithy/md5-js@4.0.1': - dependencies: - '@smithy/types': 4.1.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@smithy/middleware-content-length@4.0.1': - dependencies: - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/middleware-endpoint@4.0.3': - dependencies: - '@smithy/core': 3.1.2 - '@smithy/middleware-serde': 4.0.2 - '@smithy/node-config-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 - '@smithy/url-parser': 4.0.1 - '@smithy/util-middleware': 4.0.1 - tslib: 2.8.1 - - '@smithy/middleware-retry@4.0.4': - dependencies: - '@smithy/node-config-provider': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/service-error-classification': 4.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-retry': 4.0.1 - tslib: 2.8.1 - uuid: 9.0.1 - - '@smithy/middleware-serde@4.0.2': - dependencies: - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/middleware-stack@4.0.1': - dependencies: - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/node-config-provider@4.0.1': - dependencies: - '@smithy/property-provider': 4.0.1 - '@smithy/shared-ini-file-loader': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/node-http-handler@4.0.2': - dependencies: - '@smithy/abort-controller': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/querystring-builder': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/property-provider@4.0.1': - dependencies: - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/protocol-http@5.0.1': - dependencies: - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/querystring-builder@4.0.1': - dependencies: - '@smithy/types': 4.1.0 - '@smithy/util-uri-escape': 4.0.0 - tslib: 2.8.1 - - '@smithy/querystring-parser@4.0.1': - dependencies: - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/service-error-classification@4.0.1': - dependencies: - '@smithy/types': 4.1.0 - - '@smithy/shared-ini-file-loader@4.0.1': - dependencies: - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/signature-v4@5.0.1': - dependencies: - '@smithy/is-array-buffer': 4.0.0 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-middleware': 4.0.1 - '@smithy/util-uri-escape': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@smithy/smithy-client@4.1.3': - dependencies: - '@smithy/core': 3.1.2 - '@smithy/middleware-endpoint': 4.0.3 - '@smithy/middleware-stack': 4.0.1 - '@smithy/protocol-http': 5.0.1 - '@smithy/types': 4.1.0 - '@smithy/util-stream': 4.0.2 - tslib: 2.8.1 - - '@smithy/types@4.1.0': - dependencies: - tslib: 2.8.1 - - '@smithy/url-parser@4.0.1': - dependencies: - '@smithy/querystring-parser': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/util-base64@4.0.0': - dependencies: - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@smithy/util-body-length-browser@4.0.0': - dependencies: - tslib: 2.8.1 - - '@smithy/util-body-length-node@4.0.0': - dependencies: - tslib: 2.8.1 - - '@smithy/util-buffer-from@2.2.0': - dependencies: - '@smithy/is-array-buffer': 2.2.0 - tslib: 2.8.1 - - '@smithy/util-buffer-from@4.0.0': - dependencies: - '@smithy/is-array-buffer': 4.0.0 - tslib: 2.8.1 - - '@smithy/util-config-provider@4.0.0': - dependencies: - tslib: 2.8.1 - - '@smithy/util-defaults-mode-browser@4.0.4': - dependencies: - '@smithy/property-provider': 4.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - bowser: 2.11.0 - tslib: 2.8.1 - - '@smithy/util-defaults-mode-node@4.0.4': - dependencies: - '@smithy/config-resolver': 4.0.1 - '@smithy/credential-provider-imds': 4.0.1 - '@smithy/node-config-provider': 4.0.1 - '@smithy/property-provider': 4.0.1 - '@smithy/smithy-client': 4.1.3 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/util-endpoints@3.0.1': - dependencies: - '@smithy/node-config-provider': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/util-hex-encoding@4.0.0': - dependencies: - tslib: 2.8.1 - - '@smithy/util-middleware@4.0.1': - dependencies: - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/util-retry@4.0.1': - dependencies: - '@smithy/service-error-classification': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - - '@smithy/util-stream@4.0.2': - dependencies: - '@smithy/fetch-http-handler': 5.0.1 - '@smithy/node-http-handler': 4.0.2 - '@smithy/types': 4.1.0 - '@smithy/util-base64': 4.0.0 - '@smithy/util-buffer-from': 4.0.0 - '@smithy/util-hex-encoding': 4.0.0 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - - '@smithy/util-uri-escape@4.0.0': - dependencies: - tslib: 2.8.1 - - '@smithy/util-utf8@2.3.0': - dependencies: - '@smithy/util-buffer-from': 2.2.0 - tslib: 2.8.1 - - '@smithy/util-utf8@4.0.0': - dependencies: - '@smithy/util-buffer-from': 4.0.0 - tslib: 2.8.1 - - '@smithy/util-waiter@4.0.2': - dependencies: - '@smithy/abort-controller': 4.0.1 - '@smithy/types': 4.1.0 - tslib: 2.8.1 - '@starknet-io/types-js@0.7.10': {} '@starknet-react/chains@0.1.7': {} '@starknet-react/chains@3.1.2': {} - '@starknet-react/core@2.3.0(get-starknet-core@3.3.4(starknet@6.23.1(encoding@0.1.13)))(react@19.0.0)(starknet@6.23.1(encoding@0.1.13))': + '@starknet-react/core@2.3.0(get-starknet-core@3.3.5(starknet@6.23.1(encoding@0.1.13)))(react@18.3.1)(starknet@6.23.1(encoding@0.1.13))': dependencies: '@starknet-react/chains': 0.1.7 - '@tanstack/react-query': 5.66.0(react@19.0.0) + '@tanstack/react-query': 5.66.0(react@18.3.1) eventemitter3: 5.0.1 - get-starknet-core: 3.3.4(starknet@6.23.1(encoding@0.1.13)) + get-starknet-core: 3.3.5(starknet@6.23.1(encoding@0.1.13)) immutable: 4.3.7 - react: 19.0.0 + react: 18.3.1 starknet: 6.23.1(encoding@0.1.13) zod: 3.24.1 - '@starknet-react/core@2.9.0(get-starknet-core@3.3.4(starknet@6.23.1(encoding@0.1.13)))(react@18.3.1)(starknet@6.23.1(encoding@0.1.13))': + '@starknet-react/core@2.9.0(get-starknet-core@3.3.5(starknet@6.23.1(encoding@0.1.13)))(react@18.3.1)(starknet@6.23.1(encoding@0.1.13))': dependencies: '@starknet-react/chains': 0.1.7 '@tanstack/react-query': 5.66.0(react@18.3.1) eventemitter3: 5.0.1 - get-starknet-core: 3.3.4(starknet@6.23.1(encoding@0.1.13)) + get-starknet-core: 3.3.5(starknet@6.23.1(encoding@0.1.13)) immutable: 4.3.7 react: 18.3.1 starknet: 6.23.1(encoding@0.1.13) zod: 3.24.1 - '@starknet-react/core@3.7.2(get-starknet-core@3.3.4(starknet@6.23.1(encoding@0.1.13)))(react@19.0.0)(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3)': + '@starknet-react/core@3.7.2(get-starknet-core@3.3.5(starknet@6.23.1(encoding@0.1.13)))(react@18.3.1)(starknet@6.23.1(encoding@0.1.13))(typescript@5.7.3)': dependencies: '@starknet-io/types-js': 0.7.10 '@starknet-react/chains': 3.1.2 - '@tanstack/react-query': 5.66.0(react@19.0.0) + '@tanstack/react-query': 5.66.0(react@18.3.1) abi-wan-kanabi: 2.2.4 eventemitter3: 5.0.1 - get-starknet-core: 3.3.4(starknet@6.23.1(encoding@0.1.13)) - react: 19.0.0 + get-starknet-core: 3.3.5(starknet@6.23.1(encoding@0.1.13)) + react: 18.3.1 starknet: 6.23.1(encoding@0.1.13) viem: 2.22.23(typescript@5.7.3)(zod@3.24.1) zod: 3.24.1 @@ -17010,9 +12527,9 @@ snapshots: storybook: 8.5.3(prettier@3.4.2) ts-dedent: 2.2.0 - '@storybook/addon-docs@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-docs@8.5.3(@types/react@18.3.18)(storybook@8.5.3(prettier@3.4.2))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.0.8)(react@18.3.1) + '@mdx-js/react': 3.1.0(@types/react@18.3.18)(react@18.3.1) '@storybook/blocks': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) '@storybook/csf-plugin': 8.5.3(storybook@8.5.3(prettier@3.4.2)) '@storybook/react-dom-shim': 8.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2)) @@ -17023,12 +12540,12 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2))': + '@storybook/addon-essentials@8.5.3(@types/react@18.3.18)(storybook@8.5.3(prettier@3.4.2))': dependencies: '@storybook/addon-actions': 8.5.3(storybook@8.5.3(prettier@3.4.2)) '@storybook/addon-backgrounds': 8.5.3(storybook@8.5.3(prettier@3.4.2)) '@storybook/addon-controls': 8.5.3(storybook@8.5.3(prettier@3.4.2)) - '@storybook/addon-docs': 8.5.3(@types/react@19.0.8)(storybook@8.5.3(prettier@3.4.2)) + '@storybook/addon-docs': 8.5.3(@types/react@18.3.18)(storybook@8.5.3(prettier@3.4.2)) '@storybook/addon-highlight': 8.5.3(storybook@8.5.3(prettier@3.4.2)) '@storybook/addon-measure': 8.5.3(storybook@8.5.3(prettier@3.4.2)) '@storybook/addon-outline': 8.5.3(storybook@8.5.3(prettier@3.4.2)) @@ -17165,10 +12682,10 @@ snapshots: react-dom: 18.3.1(react@18.3.1) storybook: 8.5.3(prettier@3.4.2) - '@storybook/react-vite@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.34.5)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1))': + '@storybook/react-vite@8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.34.6)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1))': dependencies: '@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.7.3)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) - '@rollup/pluginutils': 5.1.4(rollup@4.34.5) + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) '@storybook/builder-vite': 8.5.3(storybook@8.5.3(prettier@3.4.2))(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) '@storybook/react': 8.5.3(@storybook/test@8.5.3(storybook@8.5.3(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.2))(typescript@5.7.3) find-up: 5.0.0 @@ -17269,17 +12786,6 @@ snapshots: '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.26.7) '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.26.7) - '@svgr/core@8.1.0(typescript@4.5.5)': - dependencies: - '@babel/core': 7.26.7 - '@svgr/babel-preset': 8.1.0(@babel/core@7.26.7) - camelcase: 6.3.0 - cosmiconfig: 8.3.6(typescript@4.5.5) - snake-case: 3.0.4 - transitivePeerDependencies: - - supports-color - - typescript - '@svgr/core@8.1.0(typescript@5.7.3)': dependencies: '@babel/core': 7.26.7 @@ -17293,19 +12799,9 @@ snapshots: '@svgr/hast-util-to-babel-ast@8.0.0': dependencies: - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 entities: 4.5.0 - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@4.5.5))': - dependencies: - '@babel/core': 7.26.7 - '@svgr/babel-preset': 8.1.0(@babel/core@7.26.7) - '@svgr/core': 8.1.0(typescript@4.5.5) - '@svgr/hast-util-to-babel-ast': 8.0.0 - svg-parser: 2.0.4 - transitivePeerDependencies: - - supports-color - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.7.3))': dependencies: '@babel/core': 7.26.7 @@ -17325,14 +12821,14 @@ snapshots: transitivePeerDependencies: - typescript - '@svgr/rollup@8.1.0(rollup@4.34.5)(typescript@5.7.3)': + '@svgr/rollup@8.1.0(rollup@4.34.6)(typescript@5.7.3)': dependencies: '@babel/core': 7.26.7 '@babel/plugin-transform-react-constant-elements': 7.25.9(@babel/core@7.26.7) '@babel/preset-env': 7.26.7(@babel/core@7.26.7) '@babel/preset-react': 7.26.3(@babel/core@7.26.7) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.7) - '@rollup/pluginutils': 5.1.4(rollup@4.34.5) + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) '@svgr/core': 8.1.0(typescript@5.7.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.7.3)) '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.7.3))(typescript@5.7.3) @@ -17341,51 +12837,51 @@ snapshots: - supports-color - typescript - '@swc/core-darwin-arm64@1.10.14': + '@swc/core-darwin-arm64@1.10.15': optional: true - '@swc/core-darwin-x64@1.10.14': + '@swc/core-darwin-x64@1.10.15': optional: true - '@swc/core-linux-arm-gnueabihf@1.10.14': + '@swc/core-linux-arm-gnueabihf@1.10.15': optional: true - '@swc/core-linux-arm64-gnu@1.10.14': + '@swc/core-linux-arm64-gnu@1.10.15': optional: true - '@swc/core-linux-arm64-musl@1.10.14': + '@swc/core-linux-arm64-musl@1.10.15': optional: true - '@swc/core-linux-x64-gnu@1.10.14': + '@swc/core-linux-x64-gnu@1.10.15': optional: true - '@swc/core-linux-x64-musl@1.10.14': + '@swc/core-linux-x64-musl@1.10.15': optional: true - '@swc/core-win32-arm64-msvc@1.10.14': + '@swc/core-win32-arm64-msvc@1.10.15': optional: true - '@swc/core-win32-ia32-msvc@1.10.14': + '@swc/core-win32-ia32-msvc@1.10.15': optional: true - '@swc/core-win32-x64-msvc@1.10.14': + '@swc/core-win32-x64-msvc@1.10.15': optional: true - '@swc/core@1.10.14(@swc/helpers@0.5.15)': + '@swc/core@1.10.15(@swc/helpers@0.5.15)': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.17 optionalDependencies: - '@swc/core-darwin-arm64': 1.10.14 - '@swc/core-darwin-x64': 1.10.14 - '@swc/core-linux-arm-gnueabihf': 1.10.14 - '@swc/core-linux-arm64-gnu': 1.10.14 - '@swc/core-linux-arm64-musl': 1.10.14 - '@swc/core-linux-x64-gnu': 1.10.14 - '@swc/core-linux-x64-musl': 1.10.14 - '@swc/core-win32-arm64-msvc': 1.10.14 - '@swc/core-win32-ia32-msvc': 1.10.14 - '@swc/core-win32-x64-msvc': 1.10.14 + '@swc/core-darwin-arm64': 1.10.15 + '@swc/core-darwin-x64': 1.10.15 + '@swc/core-linux-arm-gnueabihf': 1.10.15 + '@swc/core-linux-arm64-gnu': 1.10.15 + '@swc/core-linux-arm64-musl': 1.10.15 + '@swc/core-linux-x64-gnu': 1.10.15 + '@swc/core-linux-x64-musl': 1.10.15 + '@swc/core-win32-arm64-msvc': 1.10.15 + '@swc/core-win32-ia32-msvc': 1.10.15 + '@swc/core-win32-x64-msvc': 1.10.15 '@swc/helpers': 0.5.15 '@swc/counter@0.1.3': {} @@ -17398,19 +12894,15 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@szmarczak/http-timer@4.0.6': - dependencies: - defer-to-connect: 2.0.1 - - '@tailwindcss/typography@0.5.16(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3)))': + '@tailwindcss/typography@0.5.16(tailwindcss@3.4.17)': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3)) + tailwindcss: 3.4.17 - '@tanstack/history@1.99.0': {} + '@tanstack/history@1.99.13': {} '@tanstack/query-core@5.66.0': {} @@ -17419,16 +12911,11 @@ snapshots: '@tanstack/query-core': 5.66.0 react: 18.3.1 - '@tanstack/react-query@5.66.0(react@19.0.0)': + '@tanstack/react-router@1.99.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/query-core': 5.66.0 - react: 19.0.0 - - '@tanstack/react-router@1.99.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@tanstack/history': 1.99.0 + '@tanstack/history': 1.99.13 '@tanstack/react-store': 0.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/router-core': 1.99.6 + '@tanstack/router-core': 1.99.13 jsesc: 3.1.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -17442,11 +12929,11 @@ snapshots: react-dom: 18.3.1(react@18.3.1) use-sync-external-store: 1.4.0(react@18.3.1) - '@tanstack/react-table@8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@tanstack/react-table@8.20.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@tanstack/table-core': 8.20.5 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) '@tanstack/react-virtual@3.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -17454,14 +12941,14 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@tanstack/router-core@1.99.6': + '@tanstack/router-core@1.99.13': dependencies: - '@tanstack/history': 1.99.0 + '@tanstack/history': 1.99.13 '@tanstack/store': 0.7.0 - '@tanstack/router-devtools@1.99.9(@tanstack/react-router@1.99.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/router-devtools@1.99.13(@tanstack/react-router@1.99.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/react-router': 1.99.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-router': 1.99.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 2.1.1 goober: 2.1.16(csstype@3.1.3) react: 18.3.1 @@ -17469,24 +12956,24 @@ snapshots: transitivePeerDependencies: - csstype - '@tanstack/router-generator@1.99.9(@tanstack/react-router@1.99.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@tanstack/router-generator@1.99.14(@tanstack/react-router@1.99.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: '@tanstack/virtual-file-routes': 1.99.0 prettier: 3.4.2 tsx: 4.19.2 zod: 3.24.1 optionalDependencies: - '@tanstack/react-router': 1.99.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-router': 1.99.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/router-plugin@1.99.12(@tanstack/react-router@1.99.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1))(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))(esbuild@0.24.2))': + '@tanstack/router-plugin@1.99.14(@tanstack/react-router@1.99.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1))': dependencies: '@babel/core': 7.26.7 '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.7) '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.7) '@babel/template': 7.25.9 '@babel/traverse': 7.26.7 - '@babel/types': 7.26.7 - '@tanstack/router-generator': 1.99.9(@tanstack/react-router@1.99.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@babel/types': 7.26.8 + '@tanstack/router-generator': 1.99.14(@tanstack/react-router@1.99.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@tanstack/router-utils': 1.99.5 '@tanstack/virtual-file-routes': 1.99.0 '@types/babel__core': 7.20.5 @@ -17497,16 +12984,15 @@ snapshots: unplugin: 2.1.2 zod: 3.24.1 optionalDependencies: - '@tanstack/react-router': 1.99.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-router': 1.99.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) vite: 5.4.14(@types/node@20.17.17)(terser@5.38.1) - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))(esbuild@0.24.2) transitivePeerDependencies: - supports-color '@tanstack/router-utils@1.99.5': dependencies: '@babel/generator': 7.26.5 - '@babel/parser': 7.26.7 + '@babel/parser': 7.26.8 ansis: 3.10.0 diff: 7.0.0 @@ -17575,81 +13061,41 @@ snapshots: dependencies: '@testing-library/dom': 10.4.0 - '@tootallnate/once@2.0.0': {} - '@trysound/sax@0.2.0': {} - '@tsconfig/node10@1.0.11': {} - - '@tsconfig/node12@1.0.11': {} - - '@tsconfig/node14@1.0.3': {} - - '@tsconfig/node16@1.0.4': {} - '@tweenjs/tween.js@23.1.3': {} '@types/acorn@4.0.6': - dependencies: - '@types/estree': 1.0.6 - - '@types/appdmg@0.5.5': - dependencies: - '@types/node': 20.17.17 - optional: true + dependencies: + '@types/estree': 1.0.6 '@types/aria-query@5.0.4': {} '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.26.7 - '@babel/types': 7.26.7 + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.7 - '@babel/types': 7.26.7 + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.26.7 - - '@types/body-parser@1.19.5': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 20.17.17 - - '@types/bonjour@3.5.13': - dependencies: - '@types/node': 20.17.17 + '@babel/types': 7.26.8 '@types/bun@1.2.2': dependencies: bun-types: 1.2.2 - '@types/cacheable-request@6.0.3': - dependencies: - '@types/http-cache-semantics': 4.0.4 - '@types/keyv': 3.1.4 - '@types/node': 20.17.17 - '@types/responselike': 1.0.3 - - '@types/connect-history-api-fallback@1.5.4': - dependencies: - '@types/express-serve-static-core': 5.0.6 - '@types/node': 20.17.17 - - '@types/connect@3.4.38': - dependencies: - '@types/node': 20.17.17 - '@types/debug@4.1.12': dependencies: '@types/ms': 2.1.0 @@ -17658,18 +13104,6 @@ snapshots: '@types/draco3d@1.4.10': {} - '@types/electron-squirrel-startup@1.0.2': {} - - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.1 - '@types/estree': 1.0.6 - - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.6 @@ -17678,58 +13112,16 @@ snapshots: '@types/estree@1.0.6': {} - '@types/express-serve-static-core@4.19.6': - dependencies: - '@types/node': 20.17.17 - '@types/qs': 6.9.18 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - - '@types/express-serve-static-core@5.0.6': - dependencies: - '@types/node': 20.17.17 - '@types/qs': 6.9.18 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - - '@types/express@4.17.21': - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.6 - '@types/qs': 6.9.18 - '@types/serve-static': 1.15.7 - - '@types/fs-extra@9.0.13': - dependencies: - '@types/node': 20.17.17 - optional: true - - '@types/hasbin@1.2.2': {} - '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 - '@types/html-minifier-terser@6.1.0': {} - - '@types/http-cache-semantics@4.0.4': {} - - '@types/http-errors@2.0.4': {} - - '@types/http-proxy@1.17.16': - dependencies: - '@types/node': 20.17.17 - '@types/js-yaml@4.0.9': {} '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} - '@types/keyv@3.1.4': - dependencies: - '@types/node': 20.17.17 - '@types/lodash@4.17.15': {} '@types/mdast@4.0.4': @@ -17738,87 +13130,31 @@ snapshots: '@types/mdx@2.0.13': {} - '@types/mime@1.3.5': {} - '@types/ms@2.1.0': {} - '@types/node-forge@1.3.11': - dependencies: - '@types/node': 20.17.17 - '@types/node@20.17.17': dependencies: undici-types: 6.19.8 '@types/offscreencanvas@2019.7.3': {} - '@types/parse-json@4.0.2': {} - '@types/prop-types@15.7.14': {} - '@types/qs@6.9.18': {} - - '@types/range-parser@1.2.7': {} - '@types/react-dom@18.3.5(@types/react@18.3.18)': dependencies: '@types/react': 18.3.18 - '@types/react-dom@19.0.3(@types/react@19.0.8)': - dependencies: - '@types/react': 19.0.8 - '@types/react@18.3.18': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 - '@types/react@19.0.8': - dependencies: - csstype: 3.1.3 - '@types/resolve@1.20.2': {} '@types/resolve@1.20.6': {} - '@types/responselike@1.0.3': - dependencies: - '@types/node': 20.17.17 - - '@types/retry@0.12.0': {} - - '@types/semver@7.5.8': {} - - '@types/send@0.17.4': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 20.17.17 - - '@types/serve-index@1.9.4': - dependencies: - '@types/express': 4.17.21 - - '@types/serve-static@1.15.7': - dependencies: - '@types/http-errors': 2.0.4 - '@types/node': 20.17.17 - '@types/send': 0.17.4 - - '@types/shell-escape@0.2.3': {} - - '@types/sockjs@0.3.36': - dependencies: - '@types/node': 20.17.17 - '@types/stats.js@0.17.3': {} - '@types/stylis@4.2.5': {} - - '@types/tar@6.1.13': - dependencies: - '@types/node': 20.17.17 - minipass: 4.2.8 - '@types/three@0.163.0': dependencies: '@tweenjs/tween.js': 23.1.3 @@ -17841,39 +13177,15 @@ snapshots: dependencies: '@types/node': 20.17.17 - '@types/yauzl@2.10.3': - dependencies: - '@types/node': 20.17.17 - optional: true - - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.5.5))(eslint@8.57.1)(typescript@4.5.5)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@4.5.5) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@4.5.5) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@4.5.5) - debug: 4.4.0 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare-lite: 1.4.0 - semver: 7.7.1 - tsutils: 3.21.0(typescript@4.5.5) - optionalDependencies: - typescript: 4.5.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 7.18.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -17883,15 +13195,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@typescript-eslint/scope-manager': 8.23.0 - '@typescript-eslint/type-utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) '@typescript-eslint/visitor-keys': 8.23.0 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -17900,35 +13212,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.5.5)': - dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.5.5) - debug: 4.4.0 - eslint: 8.57.1 - optionalDependencies: - typescript: 4.5.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@typescript-eslint/scope-manager': 8.23.0 '@typescript-eslint/types': 8.23.0 '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) '@typescript-eslint/visitor-keys': 8.23.0 debug: 4.4.0 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - '@typescript-eslint/scope-manager@7.18.0': dependencies: '@typescript-eslint/types': 7.18.0 @@ -17939,61 +13234,33 @@ snapshots: '@typescript-eslint/types': 8.23.0 '@typescript-eslint/visitor-keys': 8.23.0 - '@typescript-eslint/type-utils@5.62.0(eslint@8.57.1)(typescript@4.5.5)': - dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.5.5) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@4.5.5) - debug: 4.4.0 - eslint: 8.57.1 - tsutils: 3.21.0(typescript@4.5.5) - optionalDependencies: - typescript: 4.5.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/type-utils@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/type-utils@7.18.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) - '@typescript-eslint/utils': 7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) debug: 4.4.0 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) ts-api-utils: 1.4.3(typescript@5.7.3) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) debug: 4.4.0 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) ts-api-utils: 2.0.1(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/types@7.18.0': {} '@typescript-eslint/types@8.23.0': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@4.5.5)': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.4.0 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.7.1 - tsutils: 3.21.0(typescript@4.5.5) - optionalDependencies: - typescript: 4.5.5 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.3)': dependencies: '@typescript-eslint/types': 7.18.0 @@ -18023,48 +13290,28 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@4.5.5)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.5.5) - eslint: 8.57.1 - eslint-scope: 5.1.1 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/utils@7.18.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/utils@7.18.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/utils@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 8.23.0 '@typescript-eslint/types': 8.23.0 '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.18.0': dependencies: '@typescript-eslint/types': 7.18.0 @@ -18147,12 +13394,12 @@ snapshots: '@vanilla-extract/private@1.0.6': {} - '@vanilla-extract/vite-plugin@3.9.5(@types/node@20.17.17)(terser@5.38.1)(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3))(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1))': + '@vanilla-extract/vite-plugin@3.9.5(@types/node@20.17.17)(terser@5.38.1)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1))': dependencies: '@vanilla-extract/integration': 6.5.0(@types/node@20.17.17)(terser@5.38.1) outdent: 0.8.0 postcss: 8.5.1 - postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3)) + postcss-load-config: 4.0.2(postcss@8.5.1) vite: 5.4.14(@types/node@20.17.17)(terser@5.38.1) transitivePeerDependencies: - '@types/node' @@ -18167,16 +13414,16 @@ snapshots: - terser - ts-node - '@vercel/analytics@1.4.1(react@19.0.0)': + '@vercel/analytics@1.4.1(react@18.3.1)': optionalDependencies: - react: 19.0.0 + react: 18.3.1 '@vercel/build-utils@8.8.0': {} - '@vercel/nft@0.27.10(encoding@0.1.13)(rollup@4.34.5)': + '@vercel/nft@0.27.10(encoding@0.1.13)(rollup@4.34.6)': dependencies: '@mapbox/node-pre-gyp': 2.0.0(encoding@0.1.13) - '@rollup/pluginutils': 5.1.4(rollup@4.34.5) + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) acorn: 8.14.0 acorn-import-attributes: 1.9.5(acorn@8.14.0) async-sema: 3.1.1 @@ -18198,10 +13445,6 @@ snapshots: optionalDependencies: ajv: 6.12.6 - '@vercel/webpack-asset-relocator-loader@1.7.4': - dependencies: - resolve: 1.22.10 - '@vitejs/plugin-react@4.3.1(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1))': dependencies: '@babel/core': 7.26.7 @@ -18344,82 +13587,6 @@ snapshots: loupe: 3.1.3 tinyrainbow: 1.2.0 - '@webassemblyjs/ast@1.14.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - - '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - - '@webassemblyjs/helper-api-error@1.13.2': {} - - '@webassemblyjs/helper-buffer@1.14.1': {} - - '@webassemblyjs/helper-numbers@1.13.2': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.13.2 - '@webassemblyjs/helper-api-error': 1.13.2 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - - '@webassemblyjs/helper-wasm-section@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/wasm-gen': 1.14.1 - - '@webassemblyjs/ieee754@1.13.2': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.13.2': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.13.2': {} - - '@webassemblyjs/wasm-edit@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/helper-wasm-section': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-opt': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wast-printer': 1.14.1 - - '@webassemblyjs/wasm-gen@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wasm-opt@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - - '@webassemblyjs/wasm-parser@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-api-error': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wast-printer@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@xtuc/long': 4.2.2 - '@whatwg-node/disposablestack@0.0.5': dependencies: tslib: 2.8.1 @@ -18447,14 +13614,6 @@ snapshots: busboy: 1.6.0 tslib: 2.8.1 - '@xmldom/xmldom@0.8.10': {} - - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} - - abbrev@1.1.1: {} - abbrev@3.0.0: {} abi-wan-kanabi@2.2.4: @@ -18474,11 +13633,6 @@ snapshots: typescript: 5.7.3 zod: 3.24.1 - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -18493,36 +13647,13 @@ snapshots: acorn@8.14.0: {} - agent-base@6.0.2: - dependencies: - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - agent-base@7.1.3: {} - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - ajv-formats@2.1.1(ajv@8.17.1): - optionalDependencies: - ajv: 8.17.1 - - ajv-keywords@3.5.2(ajv@6.12.6): - dependencies: - ajv: 6.12.6 - - ajv-keywords@5.1.0(ajv@8.17.1): - dependencies: - ajv: 8.17.1 - fast-deep-equal: 3.1.3 - ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -18541,12 +13672,6 @@ snapshots: dependencies: type-fest: 0.21.3 - ansi-escapes@5.0.0: - dependencies: - type-fest: 1.4.0 - - ansi-html-community@0.0.8: {} - ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} @@ -18570,23 +13695,6 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - appdmg@0.6.6: - dependencies: - async: 1.5.2 - ds-store: 0.1.6 - execa: 1.0.0 - fs-temp: 1.2.1 - fs-xattr: 0.3.1 - image-size: 0.7.5 - is-my-json-valid: 2.20.6 - minimist: 1.2.8 - parse-color: 1.0.0 - path-exists: 4.0.0 - repeat-string: 1.6.1 - optional: true - - arg@4.1.3: {} - arg@5.0.2: {} argparse@2.0.1: {} @@ -18606,8 +13714,6 @@ snapshots: call-bound: 1.0.3 is-array-buffer: 3.0.5 - array-flatten@1.1.1: {} - array-includes@3.1.8: dependencies: call-bind: 1.0.8 @@ -18672,8 +13778,6 @@ snapshots: async-sema@3.1.1: {} - async@1.5.2: {} - async@3.2.6: {} asynckit@0.4.0: {} @@ -18682,8 +13786,6 @@ snapshots: attr-accept@2.2.5: {} - author-regex@1.0.0: {} - auto-bind@4.0.0: {} autoprefixer@10.4.20(postcss@8.5.1): @@ -18708,27 +13810,18 @@ snapshots: transitivePeerDependencies: - debug - b4a@1.6.7: {} - babel-dead-code-elimination@1.0.8: dependencies: '@babel/core': 7.26.7 - '@babel/parser': 7.26.7 + '@babel/parser': 7.26.8 '@babel/traverse': 7.26.7 - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 transitivePeerDependencies: - supports-color - babel-loader@9.2.1(@babel/core@7.26.7)(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))): - dependencies: - '@babel/core': 7.26.7 - find-cache-dir: 4.0.0 - schema-utils: 4.3.0 - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15)) - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.7): dependencies: - '@babel/compat-data': 7.26.5 + '@babel/compat-data': 7.26.8 '@babel/core': 7.26.7 '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.7) semver: 6.3.1 @@ -18780,7 +13873,7 @@ snapshots: '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.7) '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.7) '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.7) - '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-template-literals': 7.26.8(@babel/core@7.26.7) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 transitivePeerDependencies: - supports-color @@ -18789,44 +13882,10 @@ snapshots: balanced-match@1.0.2: {} - bare-events@2.5.4: - optional: true - - bare-fs@4.0.1: - dependencies: - bare-events: 2.5.4 - bare-path: 3.0.0 - bare-stream: 2.6.5(bare-events@2.5.4) - transitivePeerDependencies: - - bare-buffer - optional: true - - bare-os@3.4.0: - optional: true - - bare-path@3.0.0: - dependencies: - bare-os: 3.4.0 - optional: true - - bare-stream@2.6.5(bare-events@2.5.4): - dependencies: - streamx: 2.22.0 - optionalDependencies: - bare-events: 2.5.4 - optional: true - - base32-encode@1.2.0: - dependencies: - to-data-view: 1.1.0 - optional: true - base64-js@1.5.1: {} base64url@3.0.1: {} - batch@0.6.1: {} - bcp-47-match@2.0.3: {} before-after-hook@2.2.3: {} @@ -18835,8 +13894,6 @@ snapshots: dependencies: open: 8.4.2 - big.js@5.2.2: {} - binary-extensions@2.3.0: {} bindings@1.5.0: @@ -18855,42 +13912,8 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - bluebird@3.7.2: {} - - body-parser@1.20.3: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.13.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - bonjour-service@1.3.0: - dependencies: - fast-deep-equal: 3.1.3 - multicast-dns: 7.2.5 - boolbase@1.0.0: {} - boolean@3.2.0: - optional: true - - bowser@2.11.0: {} - - bplist-creator@0.0.8: - dependencies: - stream-buffers: 2.2.0 - optional: true - brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -18917,15 +13940,8 @@ snapshots: dependencies: node-int64: 0.4.0 - buffer-crc32@0.2.13: {} - buffer-from@1.1.2: {} - buffer@5.6.0: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - buffer@5.7.1: dependencies: base64-js: 1.5.1 @@ -18954,41 +13970,6 @@ snapshots: cac@6.7.14: {} - cacache@16.1.3: - dependencies: - '@npmcli/fs': 2.1.2 - '@npmcli/move-file': 2.0.1 - chownr: 2.0.0 - fs-minipass: 2.1.0 - glob: 8.1.0 - infer-owner: 1.0.4 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - mkdirp: 1.0.4 - p-map: 4.0.0 - promise-inflight: 1.0.1 - rimraf: 3.0.2 - ssri: 9.0.1 - tar: 6.2.1 - unique-filename: 2.0.1 - transitivePeerDependencies: - - bluebird - - cacheable-lookup@5.0.4: {} - - cacheable-request@7.0.4: - dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 - http-cache-semantics: 4.1.1 - keyv: 4.5.4 - lowercase-keys: 2.0.0 - normalize-url: 6.1.0 - responselike: 2.0.1 - call-bind-apply-helpers@1.0.1: dependencies: es-errors: 1.3.0 @@ -19011,7 +13992,7 @@ snapshots: camel-case@4.1.2: dependencies: pascal-case: 3.1.2 - tslib: 2.8.1 + tslib: 2.6.3 camelcase-css@2.0.1: {} @@ -19019,14 +14000,12 @@ snapshots: camelcase@6.3.0: {} - camelize@1.0.1: {} - caniuse-lite@1.0.30001698: {} capital-case@1.0.4: dependencies: no-case: 3.0.4 - tslib: 2.8.1 + tslib: 2.6.3 upper-case-first: 2.0.2 cardinal@2.1.1: @@ -19121,7 +14100,7 @@ snapshots: path-case: 3.0.4 sentence-case: 3.0.4 snake-case: 3.0.4 - tslib: 2.8.1 + tslib: 2.6.3 character-entities-html4@2.1.0: {} @@ -19155,24 +14134,16 @@ snapshots: dependencies: readdirp: 4.1.1 - chownr@2.0.0: {} - chownr@3.0.0: {} chroma-js@2.6.0: {} chromatic@11.25.2: {} - chrome-trace-event@1.0.4: {} - class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 - clean-css@5.3.3: - dependencies: - source-map: 0.6.1 - clean-stack@2.2.0: {} cli-cursor@3.1.0: @@ -19190,11 +14161,6 @@ snapshots: slice-ansi: 3.0.0 string-width: 4.2.3 - cli-truncate@3.1.0: - dependencies: - slice-ansi: 5.0.0 - string-width: 5.1.2 - cli-width@3.0.0: {} cliui@6.0.0: @@ -19203,39 +14169,22 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 6.2.0 - cliui@7.0.4: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - optional: true - cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clone-deep@4.0.1: - dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - - clone-response@1.0.3: - dependencies: - mimic-response: 1.0.1 - clone@1.0.4: {} clsx@1.2.1: {} clsx@2.1.1: {} - cmdk@1.0.0(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + cmdk@1.0.0(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@radix-ui/react-dialog': 1.0.5(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -19244,9 +14193,6 @@ snapshots: collapse-white-space@2.1.0: {} - color-convert@0.5.3: - optional: true - color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -19269,20 +14215,10 @@ snapshots: commander@4.1.1: {} - commander@5.1.0: {} - commander@7.2.0: {} - commander@8.3.0: {} - - commander@9.5.0: {} - - common-path-prefix@3.0.0: {} - common-tags@1.8.2: {} - compare-version@0.1.2: {} - complex.js@2.4.2: {} compressible@2.0.18: @@ -19305,51 +14241,20 @@ snapshots: confbox@0.1.8: {} - connect-history-api-fallback@2.0.0: {} - consola@3.4.0: {} constant-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.8.1 + tslib: 2.6.3 upper-case: 2.0.2 - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} - convert-source-map@2.0.0: {} - cookie-signature@1.0.6: {} - - cookie@0.7.1: {} - core-js-compat@3.40.0: dependencies: browserslist: 4.24.4 - core-util-is@1.0.3: {} - - cosmiconfig@7.1.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.1 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - - cosmiconfig@8.3.6(typescript@4.5.5): - dependencies: - import-fresh: 3.3.1 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - optionalDependencies: - typescript: 4.5.5 - cosmiconfig@8.3.6(typescript@5.7.3): dependencies: import-fresh: 3.3.1 @@ -19359,17 +14264,6 @@ snapshots: optionalDependencies: typescript: 5.7.3 - cosmiconfig@9.0.0(typescript@4.5.5): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - parse-json: 5.2.0 - optionalDependencies: - typescript: 4.5.5 - - create-require@1.1.1: {} - create-vocs@1.0.0-alpha.5: dependencies: '@clack/prompts': 0.7.0 @@ -19378,8 +14272,6 @@ snapshots: fs-extra: 11.3.0 picocolors: 1.1.1 - cross-dirname@0.1.0: {} - cross-fetch@3.2.0(encoding@0.1.13): dependencies: node-fetch: 2.7.0(encoding@0.1.13) @@ -19390,47 +14282,14 @@ snapshots: dependencies: tslib: 2.8.1 - cross-spawn@6.0.6: - dependencies: - nice-try: 1.0.5 - path-key: 2.0.1 - semver: 5.7.2 - shebang-command: 1.2.0 - which: 1.3.1 - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - cross-zip@4.0.1: {} - crypto-random-string@2.0.0: {} - css-color-keywords@1.0.0: {} - - css-loader@6.11.0(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))): - dependencies: - icss-utils: 5.1.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.1) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.1) - postcss-modules-scope: 3.2.1(postcss@8.5.1) - postcss-modules-values: 4.0.0(postcss@8.5.1) - postcss-value-parser: 4.2.0 - semver: 7.7.1 - optionalDependencies: - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15)) - - css-select@4.3.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 4.3.1 - domutils: 2.8.0 - nth-check: 2.1.1 - css-select@5.1.0: dependencies: boolbase: 1.0.0 @@ -19441,12 +14300,6 @@ snapshots: css-selector-parser@3.0.5: {} - css-to-react-native@3.2.0: - dependencies: - camelize: 1.0.1 - css-color-keywords: 1.0.0 - postcss-value-parser: 4.2.0 - css-tree@2.2.1: dependencies: mdn-data: 2.0.28 @@ -19515,10 +14368,6 @@ snapshots: decode-uri-component@0.2.2: {} - decompress-response@6.0.0: - dependencies: - mimic-response: 3.1.0 - dedent@1.5.3: {} deep-eql@4.1.4: @@ -19535,16 +14384,10 @@ snapshots: deepmerge@4.3.1: {} - default-gateway@6.0.3: - dependencies: - execa: 5.1.1 - defaults@1.0.4: dependencies: clone: 1.0.4 - defer-to-connect@2.0.1: {} - define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -19561,8 +14404,6 @@ snapshots: delayed-stream@1.0.0: {} - depd@1.1.2: {} - depd@2.0.0: {} dependency-graph@0.11.0: {} @@ -19581,8 +14422,6 @@ snapshots: detect-node-es@1.1.0: {} - detect-node@2.1.0: {} - detect-package-manager@3.0.2: dependencies: execa: 5.1.1 @@ -19595,15 +14434,8 @@ snapshots: diff-sequences@29.6.3: {} - diff@4.0.2: {} - diff@7.0.0: {} - dir-compare@4.2.0: - dependencies: - minimatch: 3.1.2 - p-limit: 3.1.0 - dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -19612,10 +14444,6 @@ snapshots: dlv@1.1.3: {} - dns-packet@5.6.1: - dependencies: - '@leichtgewicht/ip-codec': 2.0.5 - doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -19628,16 +14456,6 @@ snapshots: dom-accessibility-api@0.6.3: {} - dom-converter@0.2.0: - dependencies: - utila: 0.4.0 - - dom-serializer@1.4.1: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -19646,20 +14464,10 @@ snapshots: domelementtype@2.3.0: {} - domhandler@4.3.1: - dependencies: - domelementtype: 2.3.0 - domhandler@5.0.3: dependencies: domelementtype: 2.3.0 - domutils@2.8.0: - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 - domutils@3.2.2: dependencies: dom-serializer: 2.0.0 @@ -19675,13 +14483,6 @@ snapshots: draco3d@1.5.7: {} - ds-store@0.1.6: - dependencies: - bplist-creator: 0.0.8 - macos-alias: 0.2.12 - tn1150: 0.1.0 - optional: true - dset@3.1.4: {} dunder-proto@1.0.1: @@ -19698,90 +14499,8 @@ snapshots: dependencies: jake: 10.9.2 - electron-installer-common@0.10.4: - dependencies: - '@electron/asar': 3.2.18 - '@malept/cross-spawn-promise': 1.1.1 - debug: 4.4.0 - fs-extra: 9.1.0 - glob: 7.2.3 - lodash: 4.17.21 - parse-author: 2.0.0 - semver: 7.7.1 - tmp-promise: 3.0.3 - optionalDependencies: - '@types/fs-extra': 9.0.13 - transitivePeerDependencies: - - supports-color - optional: true - - electron-installer-debian@3.2.0: - dependencies: - '@malept/cross-spawn-promise': 1.1.1 - debug: 4.4.0 - electron-installer-common: 0.10.4 - fs-extra: 9.1.0 - get-folder-size: 2.0.1 - lodash: 4.17.21 - word-wrap: 1.2.5 - yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - optional: true - - electron-installer-dmg@5.0.1: - dependencies: - '@types/appdmg': 0.5.5 - debug: 4.4.0 - minimist: 1.2.8 - optionalDependencies: - appdmg: 0.6.6 - transitivePeerDependencies: - - supports-color - optional: true - - electron-installer-redhat@3.4.0: - dependencies: - '@malept/cross-spawn-promise': 1.1.1 - debug: 4.4.0 - electron-installer-common: 0.10.4 - fs-extra: 9.1.0 - lodash: 4.17.21 - word-wrap: 1.2.5 - yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - optional: true - - electron-squirrel-startup@1.0.1: - dependencies: - debug: 2.6.9 - transitivePeerDependencies: - - supports-color - electron-to-chromium@1.5.96: {} - electron-winstaller@5.4.0: - dependencies: - '@electron/asar': 3.2.18 - debug: 4.4.0 - fs-extra: 7.0.1 - lodash: 4.17.21 - temp: 0.9.4 - optionalDependencies: - '@electron/windows-sign': 1.2.0 - transitivePeerDependencies: - - supports-color - optional: true - - electron@34.0.0: - dependencies: - '@electron/get': 2.0.3 - '@types/node': 20.17.17 - extract-zip: 2.0.1 - transitivePeerDependencies: - - supports-color - emoji-regex-xs@1.0.0: {} emoji-regex@10.4.0: {} @@ -19790,11 +14509,6 @@ snapshots: emoji-regex@9.2.2: {} - emojis-list@3.0.0: {} - - encode-utf8@1.0.3: - optional: true - encodeurl@1.0.2: {} encodeurl@2.0.0: {} @@ -19803,23 +14517,13 @@ snapshots: dependencies: iconv-lite: 0.6.3 - end-of-stream@1.4.4: - dependencies: - once: 1.4.0 - enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - entities@2.2.0: {} - entities@4.5.0: {} - env-paths@2.2.1: {} - - err-code@2.0.3: {} - error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -19905,9 +14609,6 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - es6-error@4.1.1: - optional: true - esast-util-from-estree@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 @@ -20040,8 +14741,6 @@ snapshots: escape-html@1.0.3: {} - escape-it@0.3.0: {} - escape-latex@1.2.0: {} escape-string-regexp@1.0.5: {} @@ -20050,21 +14749,21 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.19.0(jiti@2.4.2)): + eslint-compat-utils@0.5.1(eslint@9.20.0(jiti@2.4.2)): dependencies: - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) semver: 7.7.1 - eslint-config-love@114.0.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3): + eslint-config-love@114.0.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) - eslint-plugin-eslint-comments: 3.2.0(eslint@9.19.0(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2)) - eslint-plugin-n: 17.15.1(eslint@9.19.0(jiti@2.4.2)) - eslint-plugin-promise: 7.2.1(eslint@9.19.0(jiti@2.4.2)) + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.20.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)) + eslint-plugin-n: 17.15.1(eslint@9.20.0(jiti@2.4.2)) + eslint-plugin-promise: 7.2.1(eslint@9.20.0(jiti@2.4.2)) typescript: 5.7.3 - typescript-eslint: 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + typescript-eslint: 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-typescript @@ -20079,69 +14778,30 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.5.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@4.5.5) - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.20.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.19.0(jiti@2.4.2)): + eslint-plugin-es-x@7.8.0(eslint@9.20.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.19.0(jiti@2.4.2) - eslint-compat-utils: 0.5.1(eslint@9.19.0(jiti@2.4.2)) + eslint: 9.20.0(jiti@2.4.2) + eslint-compat-utils: 0.5.1(eslint@9.20.0(jiti@2.4.2)) - eslint-plugin-eslint-comments@3.2.0(eslint@9.19.0(jiti@2.4.2)): + eslint-plugin-eslint-comments@3.2.0(eslint@9.20.0(jiti@2.4.2)): dependencies: escape-string-regexp: 1.0.5 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) ignore: 5.3.2 - eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.5.5))(eslint@8.57.1): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.5.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@4.5.5) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -20150,9 +14810,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.19.0(jiti@2.4.2) + eslint: 9.20.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.19.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint@9.20.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -20164,107 +14824,54 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-n@17.15.1(eslint@9.19.0(jiti@2.4.2)): + eslint-plugin-n@17.15.1(eslint@9.20.0(jiti@2.4.2)): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) enhanced-resolve: 5.18.1 - eslint: 9.19.0(jiti@2.4.2) - eslint-plugin-es-x: 7.8.0(eslint@9.19.0(jiti@2.4.2)) + eslint: 9.20.0(jiti@2.4.2) + eslint-plugin-es-x: 7.8.0(eslint@9.20.0(jiti@2.4.2)) get-tsconfig: 4.10.0 globals: 15.14.0 ignore: 5.3.2 minimatch: 9.0.5 semver: 7.7.1 - eslint-plugin-promise@7.2.1(eslint@9.19.0(jiti@2.4.2)): - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2)) - eslint: 9.19.0(jiti@2.4.2) - - eslint-plugin-react-hooks@5.1.0(eslint@9.19.0(jiti@2.4.2)): - dependencies: - eslint: 9.19.0(jiti@2.4.2) - - eslint-plugin-react-refresh@0.4.18(eslint@9.19.0(jiti@2.4.2)): - dependencies: - eslint: 9.19.0(jiti@2.4.2) - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-scope@8.2.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.2.0: {} - - eslint@8.57.1: - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.3.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color + eslint-plugin-promise@7.2.1(eslint@9.20.0(jiti@2.4.2)): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) + eslint: 9.20.0(jiti@2.4.2) + + eslint-plugin-react-hooks@5.1.0(eslint@9.20.0(jiti@2.4.2)): + dependencies: + eslint: 9.20.0(jiti@2.4.2) + + eslint-plugin-react-refresh@0.4.18(eslint@9.20.0(jiti@2.4.2)): + dependencies: + eslint: 9.20.0(jiti@2.4.2) + + eslint-scope@8.2.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} - eslint@9.19.0(jiti@2.4.2): + eslint-visitor-keys@4.2.0: {} + + eslint@9.20.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.2 - '@eslint/core': 0.10.0 + '@eslint/core': 0.11.0 '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.19.0 + '@eslint/js': 9.20.0 '@eslint/plugin-kit': 0.2.5 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -20304,12 +14911,6 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 4.2.0 - espree@9.6.1: - dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 3.4.3 - esprima@4.0.1: {} esquery@1.6.0: @@ -20320,8 +14921,6 @@ snapshots: dependencies: estraverse: 5.3.0 - estraverse@4.3.0: {} - estraverse@5.3.0: {} estree-util-attach-comments@3.0.0: @@ -20374,22 +14973,8 @@ snapshots: '@types/node': 20.17.17 require-like: 0.1.2 - eventemitter3@4.0.7: {} - eventemitter3@5.0.1: {} - events@3.3.0: {} - - execa@1.0.0: - dependencies: - cross-spawn: 6.0.6 - get-stream: 4.1.0 - is-stream: 1.1.0 - npm-run-path: 2.0.2 - p-finally: 1.0.0 - signal-exit: 3.0.7 - strip-eof: 1.0.0 - execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -20414,58 +14999,8 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - expand-tilde@2.0.2: - dependencies: - homedir-polyfill: 1.0.3 - expect-type@1.1.0: {} - exponential-backoff@3.1.2: {} - - express-ws@5.0.2(express@4.21.2): - dependencies: - express: 4.21.2 - ws: 7.5.10 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - express@4.21.2: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.3 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.1 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.1 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.12 - proxy-addr: 2.0.7 - qs: 6.13.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.0 - serve-static: 1.16.2 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 @@ -20485,22 +15020,10 @@ snapshots: extract-files@11.0.0: {} - extract-zip@2.0.1: - dependencies: - debug: 4.4.0 - get-stream: 5.2.0 - yauzl: 2.10.0 - optionalDependencies: - '@types/yauzl': 2.10.3 - transitivePeerDependencies: - - supports-color - fast-decode-uri-component@1.0.1: {} fast-deep-equal@3.1.3: {} - fast-fifo@1.3.2: {} - fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -20519,10 +15042,6 @@ snapshots: fast-uri@3.0.6: {} - fast-xml-parser@4.4.1: - dependencies: - strnum: 1.0.5 - fastq@1.19.0: dependencies: reusify: 1.0.4 @@ -20531,10 +15050,6 @@ snapshots: dependencies: format: 0.2.2 - faye-websocket@0.11.4: - dependencies: - websocket-driver: 0.7.4 - fb-watchman@2.0.2: dependencies: bser: 2.1.1 @@ -20553,10 +15068,6 @@ snapshots: transitivePeerDependencies: - encoding - fd-slicer@1.1.0: - dependencies: - pend: 1.2.0 - fdir@6.4.3(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -20579,10 +15090,6 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -20597,14 +15104,6 @@ snapshots: dependencies: minimatch: 5.1.6 - filename-reserved-regex@2.0.0: {} - - filenamify@4.3.0: - dependencies: - filename-reserved-regex: 2.0.0 - strip-outer: 1.0.1 - trim-repeated: 1.0.0 - filesize@10.1.6: {} fill-range@7.1.1: @@ -20613,27 +15112,6 @@ snapshots: filter-obj@1.1.0: {} - finalhandler@1.3.1: - dependencies: - debug: 2.6.9 - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - find-cache-dir@4.0.0: - dependencies: - common-path-prefix: 3.0.0 - pkg-dir: 7.0.0 - - find-up@2.1.0: - dependencies: - locate-path: 2.0.0 - find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -20644,38 +15122,13 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - find-up@6.3.0: - dependencies: - locate-path: 7.2.0 - path-exists: 5.0.0 - - flat-cache@3.2.0: - dependencies: - flatted: 3.3.2 - keyv: 4.5.4 - rimraf: 3.0.2 - flat-cache@4.0.1: dependencies: flatted: 3.3.2 keyv: 4.5.4 - flat@5.0.2: {} - flatted@3.3.2: {} - flora-colossus@2.0.0: - dependencies: - debug: 4.4.0 - fs-extra: 10.1.0 - transitivePeerDependencies: - - supports-color - - fmix@0.1.0: - dependencies: - imul: 1.0.1 - optional: true - follow-redirects@1.15.9(debug@4.4.0): optionalDependencies: debug: 4.4.0 @@ -20691,23 +15144,6 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@7.3.0(typescript@4.5.5)(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))): - dependencies: - '@babel/code-frame': 7.26.2 - chalk: 4.1.2 - chokidar: 3.6.0 - cosmiconfig: 7.1.0 - deepmerge: 4.3.1 - fs-extra: 10.1.0 - memfs: 3.5.3 - minimatch: 3.1.2 - node-abort-controller: 3.1.1 - schema-utils: 3.3.0 - semver: 7.7.1 - tapable: 2.2.1 - typescript: 4.5.5 - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15)) - form-data@4.0.1: dependencies: asynckit: 0.4.0 @@ -20720,19 +15156,16 @@ snapshots: dependencies: fetch-blob: 3.2.0 - forwarded@0.2.0: {} - fraction.js@4.3.4: {} fraction.js@4.3.7: {} - framer-motion@11.18.2(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@11.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: motion-dom: 11.18.1 motion-utils: 11.18.1 tslib: 2.8.1 optionalDependencies: - '@emotion/is-prop-valid': 1.2.2 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -20750,19 +15183,6 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@7.0.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - optional: true - - fs-extra@8.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - fs-extra@9.1.0: dependencies: at-least-node: 1.0.0 @@ -20770,20 +15190,6 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-minipass@2.1.0: - dependencies: - minipass: 3.3.6 - - fs-monkey@1.0.6: {} - - fs-temp@1.2.1: - dependencies: - random-path: 0.1.2 - optional: true - - fs-xattr@0.3.1: - optional: true - fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -20802,43 +15208,12 @@ snapshots: functions-have-names@1.2.3: {} - galactus@1.0.0: - dependencies: - debug: 4.4.0 - flora-colossus: 2.0.0 - fs-extra: 10.1.0 - transitivePeerDependencies: - - supports-color - - gar@1.0.4: - optional: true - - generate-function@2.3.1: - dependencies: - is-property: 1.0.2 - optional: true - - generate-object-property@1.2.0: - dependencies: - is-property: 1.0.2 - optional: true - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} - get-folder-size@2.0.1: - dependencies: - gar: 1.0.4 - tiny-each-async: 2.0.3 - optional: true - get-func-name@2.0.2: {} - get-installed-path@2.1.1: - dependencies: - global-modules: 1.0.0 - get-intrinsic@1.2.7: dependencies: call-bind-apply-helpers: 1.0.1 @@ -20856,21 +15231,12 @@ snapshots: get-own-enumerable-property-symbols@3.0.2: {} - get-package-info@1.0.0: - dependencies: - bluebird: 3.7.2 - debug: 2.6.9 - lodash.get: 4.4.2 - read-pkg-up: 2.0.0 - transitivePeerDependencies: - - supports-color - get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - get-starknet-core@3.3.4(starknet@6.23.1(encoding@0.1.13)): + get-starknet-core@3.3.5(starknet@6.23.1(encoding@0.1.13)): dependencies: '@module-federation/runtime': 0.1.21 starknet: 6.23.1(encoding@0.1.13) @@ -20879,14 +15245,6 @@ snapshots: dependencies: '@starknet-io/types-js': 0.7.10 - get-stream@4.1.0: - dependencies: - pump: 3.0.2 - - get-stream@5.2.0: - dependencies: - pump: 3.0.2 - get-stream@6.0.1: {} get-stream@8.0.1: {} @@ -20905,10 +15263,6 @@ snapshots: github-slugger@2.0.0: {} - github-url-to-object@4.0.6: - dependencies: - is-url: 1.2.4 - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -20917,8 +15271,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-to-regexp@0.4.1: {} - glob@10.4.5: dependencies: foreground-child: 3.3.0 @@ -20937,44 +15289,8 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - - global-agent@3.0.0: - dependencies: - boolean: 3.2.0 - es6-error: 4.1.1 - matcher: 3.0.0 - roarr: 2.15.4 - semver: 7.7.1 - serialize-error: 7.0.1 - optional: true - - global-modules@1.0.0: - dependencies: - global-prefix: 1.0.2 - is-windows: 1.0.2 - resolve-dir: 1.0.1 - - global-prefix@1.0.2: - dependencies: - expand-tilde: 2.0.2 - homedir-polyfill: 1.0.3 - ini: 1.3.8 - is-windows: 1.0.2 - which: 1.3.1 - globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - globals@14.0.0: {} globals@15.14.0: {} @@ -21007,20 +15323,6 @@ snapshots: gopd@1.2.0: {} - got@11.8.6: - dependencies: - '@sindresorhus/is': 4.6.0 - '@szmarczak/http-timer': 4.0.6 - '@types/cacheable-request': 6.0.3 - '@types/responselike': 1.0.3 - cacheable-lookup: 5.0.4 - cacheable-request: 7.0.4 - decompress-response: 6.0.0 - http2-wrapper: 1.0.3 - lowercase-keys: 2.0.0 - p-cancelable: 2.1.1 - responselike: 2.0.1 - graceful-fs@4.2.11: {} graphemer@1.4.0: {} @@ -21071,8 +15373,6 @@ snapshots: gsap@3.12.7: {} - handle-thing@2.0.1: {} - has-bigints@1.1.0: {} has-flag@4.0.0: {} @@ -21091,10 +15391,6 @@ snapshots: dependencies: has-symbols: 1.1.0 - hasbin@1.2.3: - dependencies: - async: 1.5.2 - hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -21209,74 +15505,19 @@ snapshots: property-information: 6.5.0 space-separated-tokens: 2.0.2 - he@1.2.0: {} - header-case@2.0.4: dependencies: capital-case: 1.0.4 - tslib: 2.8.1 - - homedir-polyfill@1.0.3: - dependencies: - parse-passwd: 1.0.0 + tslib: 2.6.3 hono@3.12.12: {} - hosted-git-info@2.8.9: {} - howler@2.2.4: {} - hpack.js@2.1.6: - dependencies: - inherits: 2.0.4 - obuf: 1.1.2 - readable-stream: 2.3.8 - wbuf: 1.7.3 - - html-entities@2.5.2: {} - html-escaper@2.0.2: {} - html-minifier-terser@6.1.0: - dependencies: - camel-case: 4.1.2 - clean-css: 5.3.3 - commander: 8.3.0 - he: 1.2.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 5.38.1 - html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.3(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))): - dependencies: - '@types/html-minifier-terser': 6.1.0 - html-minifier-terser: 6.1.0 - lodash: 4.17.21 - pretty-error: 4.0.0 - tapable: 2.2.1 - optionalDependencies: - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15)) - - htmlparser2@6.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - domutils: 2.8.0 - entities: 2.2.0 - - http-cache-semantics@4.1.1: {} - - http-deceiver@1.2.7: {} - - http-errors@1.6.3: - dependencies: - depd: 1.1.2 - inherits: 2.0.3 - setprototypeof: 1.1.0 - statuses: 1.5.0 - http-errors@2.0.0: dependencies: depd: 2.0.0 @@ -21285,16 +15526,6 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-parser-js@0.5.9: {} - - http-proxy-agent@5.0.0: - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.3 @@ -21302,38 +15533,6 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-middleware@2.0.7(@types/express@4.17.21)(debug@4.4.0): - dependencies: - '@types/http-proxy': 1.17.16 - http-proxy: 1.18.1(debug@4.4.0) - is-glob: 4.0.3 - is-plain-obj: 3.0.0 - micromatch: 4.0.8 - optionalDependencies: - '@types/express': 4.17.21 - transitivePeerDependencies: - - debug - - http-proxy@1.18.1(debug@4.4.0): - dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.9(debug@4.4.0) - requires-port: 1.0.0 - transitivePeerDependencies: - - debug - - http2-wrapper@1.0.3: - dependencies: - quick-lru: 5.1.1 - resolve-alpn: 1.2.1 - - https-proxy-agent@5.0.1: - dependencies: - agent-base: 6.0.2 - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 @@ -21345,10 +15544,6 @@ snapshots: human-signals@5.0.0: {} - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -21357,19 +15552,12 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - idb@7.1.1: {} ieee754@1.2.1: {} ignore@5.3.2: {} - image-size@0.7.5: - optional: true - immutable@3.7.6: {} immutable@4.3.7: {} @@ -21381,26 +15569,17 @@ snapshots: import-from@4.0.0: {} - imul@1.0.1: - optional: true - imurmurhash@0.1.4: {} indent-string@4.0.0: {} - infer-owner@1.0.4: {} - inflight@1.0.6: dependencies: once: 1.4.0 wrappy: 1.0.2 - inherits@2.0.3: {} - inherits@2.0.4: {} - ini@1.3.8: {} - inline-style-parser@0.2.4: {} inquirer@8.2.6: @@ -21427,21 +15606,10 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 - interpret@3.1.1: {} - invariant@2.2.4: dependencies: loose-envify: 1.4.0 - ip-address@9.0.5: - dependencies: - jsbn: 1.1.0 - sprintf-js: 1.1.3 - - ipaddr.js@1.9.1: {} - - ipaddr.js@2.2.0: {} - is-absolute@1.0.0: dependencies: is-relative: 1.0.0 @@ -21525,8 +15693,6 @@ snapshots: is-fullwidth-code-point@3.0.0: {} - is-fullwidth-code-point@4.0.0: {} - is-generator-function@1.1.0: dependencies: call-bound: 1.0.3 @@ -21544,28 +15710,14 @@ snapshots: is-interactive@2.0.0: {} - is-lambda@1.0.1: {} - is-lower-case@2.0.2: dependencies: - tslib: 2.8.1 + tslib: 2.6.3 is-map@2.0.3: {} is-module@1.0.0: {} - is-my-ip-valid@1.0.1: - optional: true - - is-my-json-valid@2.20.6: - dependencies: - generate-function: 2.3.1 - generate-object-property: 1.2.0 - is-my-ip-valid: 1.0.1 - jsonpointer: 5.0.1 - xtend: 4.0.2 - optional: true - is-number-object@1.1.1: dependencies: call-bound: 1.0.3 @@ -21575,19 +15727,12 @@ snapshots: is-obj@1.0.1: {} - is-path-inside@3.0.3: {} - - is-plain-obj@3.0.0: {} - is-plain-obj@4.1.0: {} is-plain-object@2.0.4: dependencies: isobject: 3.0.1 - is-property@1.0.2: - optional: true - is-regex@1.2.1: dependencies: call-bound: 1.0.3 @@ -21607,8 +15752,6 @@ snapshots: dependencies: call-bound: 1.0.3 - is-stream@1.1.0: {} - is-stream@2.0.1: {} is-stream@3.0.0: {} @@ -21638,9 +15781,7 @@ snapshots: is-upper-case@2.0.2: dependencies: - tslib: 2.8.1 - - is-url@1.2.4: {} + tslib: 2.6.3 is-weakmap@2.0.2: {} @@ -21659,12 +15800,8 @@ snapshots: dependencies: is-docker: 2.2.1 - isarray@1.0.0: {} - isarray@2.0.5: {} - isbinaryfile@4.0.10: {} - isexe@2.0.0: {} isobject@3.0.1: {} @@ -21726,12 +15863,6 @@ snapshots: javascript-stringify@2.1.0: {} - jest-worker@27.5.1: - dependencies: - '@types/node': 20.17.17 - merge-stream: 2.0.0 - supports-color: 8.1.1 - jiti@1.21.7: {} jiti@2.4.2: {} @@ -21740,9 +15871,9 @@ snapshots: jose@5.9.6: {} - jotai@2.11.3(@types/react@19.0.8)(react@18.3.1): + jotai@2.11.3(@types/react@18.3.18)(react@18.3.1): optionalDependencies: - '@types/react': 19.0.8 + '@types/react': 18.3.18 react: 18.3.1 joycon@3.1.1: {} @@ -21757,8 +15888,6 @@ snapshots: dependencies: argparse: 2.0.1 - jsbn@1.1.0: {} - jsdoc-type-pratt-parser@4.1.0: {} jsesc@3.0.2: {} @@ -21777,9 +15906,6 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} - json-stringify-safe@5.0.1: - optional: true - json-to-pretty-yaml@1.2.2: dependencies: remedial: 1.0.8 @@ -21791,10 +15917,6 @@ snapshots: json5@2.2.3: {} - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 - jsonfile@6.1.0: dependencies: universalify: 2.0.1 @@ -21803,19 +15925,10 @@ snapshots: jsonpointer@5.0.1: {} - junk@3.1.0: {} - keyv@4.5.4: dependencies: json-buffer: 3.0.1 - kind-of@6.0.3: {} - - launch-editor@2.9.1: - dependencies: - picocolors: 1.1.1 - shell-quote: 1.8.2 - leva@0.9.36(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@radix-ui/react-portal': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21862,42 +15975,13 @@ snapshots: through: 2.3.8 wrap-ansi: 7.0.0 - listr2@7.0.2: - dependencies: - cli-truncate: 3.1.0 - colorette: 2.0.20 - eventemitter3: 5.0.1 - log-update: 5.0.1 - rfdc: 1.4.1 - wrap-ansi: 8.1.0 - - load-json-file@2.0.0: - dependencies: - graceful-fs: 4.2.11 - parse-json: 2.2.0 - pify: 2.3.0 - strip-bom: 3.0.0 - load-tsconfig@0.2.5: {} - loader-runner@4.3.0: {} - - loader-utils@2.0.4: - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 2.2.3 - local-pkg@0.5.1: dependencies: mlly: 1.7.4 pkg-types: 1.3.1 - locate-path@2.0.0: - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -21906,16 +15990,10 @@ snapshots: dependencies: p-locate: 5.0.0 - locate-path@7.2.0: - dependencies: - p-locate: 6.0.0 - lodash.castarray@4.4.0: {} lodash.debounce@4.0.8: {} - lodash.get@4.4.2: {} - lodash.isplainobject@4.0.6: {} lodash.merge@4.6.2: {} @@ -21941,14 +16019,6 @@ snapshots: slice-ansi: 4.0.0 wrap-ansi: 6.2.0 - log-update@5.0.1: - dependencies: - ansi-escapes: 5.0.0 - cli-cursor: 4.0.0 - slice-ansi: 5.0.0 - strip-ansi: 7.1.0 - wrap-ansi: 8.1.0 - longest-streak@3.1.0: {} loose-envify@1.4.0: @@ -21965,13 +16035,11 @@ snapshots: lower-case-first@2.0.2: dependencies: - tslib: 2.8.1 + tslib: 2.6.3 lower-case@2.0.2: dependencies: - tslib: 2.8.1 - - lowercase-keys@2.0.0: {} + tslib: 2.6.3 lru-cache@10.4.3: {} @@ -21979,8 +16047,6 @@ snapshots: dependencies: yallist: 3.1.1 - lru-cache@7.18.3: {} - lucide-react@0.365.0(react@18.3.1): dependencies: react: 18.3.1 @@ -21989,11 +16055,6 @@ snapshots: lz-string@1.5.0: {} - macos-alias@0.2.12: - dependencies: - nan: 2.22.0 - optional: true - magic-string@0.25.9: dependencies: sourcemap-codec: 1.4.8 @@ -22008,42 +16069,14 @@ snapshots: magicast@0.3.5: dependencies: - '@babel/parser': 7.26.7 - '@babel/types': 7.26.7 + '@babel/parser': 7.26.8 + '@babel/types': 7.26.8 source-map-js: 1.2.1 make-dir@4.0.0: dependencies: semver: 7.7.1 - make-error@1.3.6: {} - - make-fetch-happen@10.2.1: - dependencies: - agentkeepalive: 4.6.0 - cacache: 16.1.3 - http-cache-semantics: 4.1.1 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-lambda: 1.0.1 - lru-cache: 7.18.3 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 2.1.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - negotiator: 0.6.4 - promise-retry: 2.0.1 - socks-proxy-agent: 7.0.0 - ssri: 9.0.1 - transitivePeerDependencies: - - bluebird - - supports-color - - map-age-cleaner@0.1.3: - dependencies: - p-defer: 1.0.0 - map-cache@0.2.2: {} map-or-similar@1.5.0: {} @@ -22063,11 +16096,6 @@ snapshots: markdown-table@3.0.4: {} - matcher@3.0.0: - dependencies: - escape-string-regexp: 4.0.0 - optional: true - math-intrinsics@1.1.0: {} mathjs@12.4.3: @@ -22280,24 +16308,10 @@ snapshots: dependencies: '@babel/runtime': 7.26.7 - media-typer@0.3.0: {} - - mem@4.3.0: - dependencies: - map-age-cleaner: 0.1.3 - mimic-fn: 2.1.0 - p-is-promise: 2.1.0 - - memfs@3.5.3: - dependencies: - fs-monkey: 1.0.6 - memoizerific@1.11.3: dependencies: map-or-similar: 1.5.0 - merge-descriptors@1.0.3: {} - merge-stream@2.0.0: {} merge-value@1.0.0: @@ -22315,8 +16329,6 @@ snapshots: meshoptimizer@0.18.1: {} - methods@1.1.2: {} - micro-starknet@0.2.3: dependencies: '@noble/curves': 1.0.0 @@ -22624,14 +16636,8 @@ snapshots: mimic-fn@4.0.0: {} - mimic-response@1.0.1: {} - - mimic-response@3.1.0: {} - min-indent@1.0.1: {} - minimalistic-assert@1.0.1: {} - minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -22646,47 +16652,10 @@ snapshots: minimist@1.2.8: {} - minipass-collect@1.0.2: - dependencies: - minipass: 3.3.6 - - minipass-fetch@2.1.2: - dependencies: - minipass: 3.3.6 - minipass-sized: 1.0.3 - minizlib: 2.1.2 - optionalDependencies: - encoding: 0.1.13 - - minipass-flush@1.0.5: - dependencies: - minipass: 3.3.6 - - minipass-pipeline@1.2.4: - dependencies: - minipass: 3.3.6 - - minipass-sized@1.0.3: - dependencies: - minipass: 3.3.6 - - minipass@3.3.6: - dependencies: - yallist: 4.0.0 - - minipass@4.2.8: {} - - minipass@5.0.0: {} - minipass@7.1.2: {} minisearch@6.3.0: {} - minizlib@2.1.2: - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - minizlib@3.0.1: dependencies: minipass: 7.1.2 @@ -22699,13 +16668,6 @@ snapshots: for-in: 1.0.2 is-extendable: 1.0.1 - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - optional: true - - mkdirp@1.0.4: {} - mkdirp@3.0.1: {} mlly@1.7.4: @@ -22731,18 +16693,6 @@ snapshots: ms@2.1.3: {} - multicast-dns@7.2.5: - dependencies: - dns-packet: 5.6.1 - thunky: 1.1.0 - - murmur-32@0.2.0: - dependencies: - encode-utf8: 1.0.3 - fmix: 0.1.0 - imul: 1.0.1 - optional: true - mute-stream@0.0.8: {} mz@2.7.0: @@ -22751,45 +16701,24 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.22.0: - optional: true - nanoid@3.3.8: {} - natural-compare-lite@1.4.0: {} - natural-compare@1.4.0: {} - negotiator@0.6.3: {} - negotiator@0.6.4: {} - neo-async@2.6.2: {} - next-themes@0.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - nice-try@1.0.5: {} - no-case@3.0.4: dependencies: lower-case: 2.0.2 - tslib: 2.8.1 - - node-abi@3.74.0: - dependencies: - semver: 7.7.1 - - node-abort-controller@3.1.1: {} + tslib: 2.6.3 node-addon-api@7.1.1: {} - node-api-version@0.2.0: - dependencies: - semver: 7.7.1 - node-domexception@1.0.0: {} node-fetch@2.7.0(encoding@0.1.13): @@ -22804,8 +16733,6 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-forge@1.3.1: {} - node-gyp-build-optional-packages@5.1.1: dependencies: detect-libc: 2.0.3 @@ -22815,28 +16742,12 @@ snapshots: node-int64@0.4.0: {} - node-loader@2.1.0(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))): - dependencies: - loader-utils: 2.0.4 - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15)) - node-releases@2.0.19: {} - nopt@6.0.0: - dependencies: - abbrev: 1.1.1 - nopt@8.1.0: dependencies: abbrev: 3.0.0 - normalize-package-data@2.5.0: - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.10 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - normalize-path@2.1.1: dependencies: remove-trailing-separator: 1.1.0 @@ -22845,12 +16756,6 @@ snapshots: normalize-range@0.1.2: {} - normalize-url@6.1.0: {} - - npm-run-path@2.0.2: - dependencies: - path-key: 2.0.1 - npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -22910,8 +16815,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - obuf@1.1.2: {} - on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -22999,18 +16902,6 @@ snapshots: transitivePeerDependencies: - zod - p-cancelable@2.1.1: {} - - p-defer@1.0.0: {} - - p-finally@1.0.0: {} - - p-is-promise@2.1.0: {} - - p-limit@1.3.0: - dependencies: - p-try: 1.0.0 - p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -23019,18 +16910,10 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-limit@4.0.0: - dependencies: - yocto-queue: 1.1.1 - p-limit@5.0.0: dependencies: yocto-queue: 1.1.1 - p-locate@2.0.0: - dependencies: - p-limit: 1.3.0 - p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -23039,21 +16922,10 @@ snapshots: dependencies: p-limit: 3.1.0 - p-locate@6.0.0: - dependencies: - p-limit: 4.0.0 - p-map@4.0.0: dependencies: aggregate-error: 3.1.0 - p-retry@4.6.2: - dependencies: - '@types/retry': 0.12.0 - retry: 0.13.1 - - p-try@1.0.0: {} - p-try@2.2.0: {} package-json-from-dist@1.0.1: {} @@ -23063,21 +16935,12 @@ snapshots: param-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.8.1 + tslib: 2.6.3 parent-module@1.0.1: dependencies: callsites: 3.1.0 - parse-author@2.0.0: - dependencies: - author-regex: 1.0.0 - - parse-color@1.0.0: - dependencies: - color-convert: 0.5.3 - optional: true - parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -23094,10 +16957,6 @@ snapshots: map-cache: 0.2.2 path-root: 0.1.1 - parse-json@2.2.0: - dependencies: - error-ex: 1.3.2 - parse-json@5.2.0: dependencies: '@babel/code-frame': 7.26.2 @@ -23105,30 +16964,22 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-passwd@1.0.0: {} - parseurl@1.3.3: {} pascal-case@3.1.2: dependencies: no-case: 3.0.4 - tslib: 2.8.1 + tslib: 2.6.3 path-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.8.1 - - path-exists@3.0.0: {} + tslib: 2.6.3 path-exists@4.0.0: {} - path-exists@5.0.0: {} - path-is-absolute@1.0.1: {} - path-key@2.0.1: {} - path-key@3.1.1: {} path-key@4.0.0: {} @@ -23146,14 +16997,8 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@0.1.12: {} - path-to-regexp@6.1.0: {} - path-type@2.0.0: - dependencies: - pify: 2.3.0 - path-type@4.0.0: {} pathe@1.1.2: {} @@ -23164,10 +17009,6 @@ snapshots: pathval@2.0.0: {} - pe-library@1.0.1: {} - - pend@1.2.0: {} - picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -23178,22 +17019,12 @@ snapshots: pirates@4.0.6: {} - pkg-dir@7.0.0: - dependencies: - find-up: 6.3.0 - pkg-types@1.3.1: dependencies: confbox: 0.1.8 mlly: 1.7.4 pathe: 2.0.2 - plist@3.1.0: - dependencies: - '@xmldom/xmldom': 0.8.10 - base64-js: 1.5.1 - xmlbuilder: 15.1.1 - polished@4.3.1: dependencies: '@babel/runtime': 7.26.7 @@ -23212,21 +17043,12 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.1 - postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@4.5.5)): - dependencies: - lilconfig: 3.1.3 - yaml: 2.7.0 - optionalDependencies: - postcss: 8.5.1 - ts-node: 10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@4.5.5) - - postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3)): + postcss-load-config@4.0.2(postcss@8.5.1): dependencies: lilconfig: 3.1.3 yaml: 2.7.0 optionalDependencies: postcss: 8.5.1 - ts-node: 10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3) postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(yaml@2.7.0): dependencies: @@ -23237,38 +17059,6 @@ snapshots: tsx: 4.19.2 yaml: 2.7.0 - postcss-loader@8.1.1(postcss@8.5.1)(typescript@4.5.5)(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))): - dependencies: - cosmiconfig: 9.0.0(typescript@4.5.5) - jiti: 1.21.7 - postcss: 8.5.1 - semver: 7.7.1 - optionalDependencies: - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15)) - transitivePeerDependencies: - - typescript - - postcss-modules-extract-imports@3.1.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - - postcss-modules-local-by-default@4.2.0(postcss@8.5.1): - dependencies: - icss-utils: 5.1.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-selector-parser: 7.1.0 - postcss-value-parser: 4.2.0 - - postcss-modules-scope@3.2.1(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - postcss-selector-parser: 7.1.0 - - postcss-modules-values@4.0.0(postcss@8.5.1): - dependencies: - icss-utils: 5.1.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-nested@6.2.0(postcss@8.5.1): dependencies: postcss: 8.5.1 @@ -23284,29 +17074,14 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.1.0: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss-value-parser@4.2.0: {} - postcss@8.4.49: - dependencies: - nanoid: 3.3.8 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postcss@8.5.1: dependencies: nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 - postject@1.0.0-alpha.6: - dependencies: - commander: 9.5.0 - postprocessing@6.36.7(three@0.166.1): dependencies: three: 0.166.1 @@ -23321,11 +17096,6 @@ snapshots: pretty-bytes@6.1.1: {} - pretty-error@4.0.0: - dependencies: - lodash: 4.17.21 - renderkid: 3.0.0 - pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 @@ -23338,21 +17108,8 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - proc-log@2.0.1: {} - - process-nextick-args@2.0.1: {} - process@0.11.10: {} - progress@2.0.3: {} - - promise-inflight@1.0.1: {} - - promise-retry@2.0.1: - dependencies: - err-code: 2.0.3 - retry: 0.12.0 - promise@7.3.1: dependencies: asap: 2.0.6 @@ -23365,11 +17122,6 @@ snapshots: property-information@6.5.0: {} - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - proxy-deep@3.1.1: {} proxy-from-env@1.1.0: {} @@ -23378,19 +17130,10 @@ snapshots: dependencies: punycode: 2.3.1 - pump@3.0.2: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - punycode.js@2.3.1: {} punycode@2.3.1: {} - qs@6.13.0: - dependencies: - side-channel: 1.1.0 - query-string@7.1.3: dependencies: decode-uri-component: 0.2.2 @@ -23402,27 +17145,12 @@ snapshots: queue-microtask@1.2.3: {} - quick-lru@5.1.1: {} - - random-path@0.1.2: - dependencies: - base32-encode: 1.2.0 - murmur-32: 0.2.0 - optional: true - randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 - range-parser@1.2.1: {} - - raw-body@2.5.2: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - + range-parser@1.2.1: {} + react-colorful@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 @@ -23441,7 +17169,7 @@ snapshots: dependencies: '@babel/core': 7.26.7 '@babel/traverse': 7.26.7 - '@babel/types': 7.26.7 + '@babel/types': 7.26.8 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 '@types/doctrine': 0.0.9 @@ -23458,17 +17186,12 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 - react-dom@19.0.0(react@19.0.0): - dependencies: - react: 19.0.0 - scheduler: 0.25.0 - - react-draggable@4.4.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-draggable@4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: clsx: 1.2.1 prop-types: 15.8.1 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) react-dropzone@12.1.0(react@18.3.1): dependencies: @@ -23479,19 +17202,19 @@ snapshots: react-fast-compare@3.2.2: {} - react-helmet@6.1.0(react@19.0.0): + react-helmet@6.1.0(react@18.3.1): dependencies: object-assign: 4.1.1 prop-types: 15.8.1 - react: 19.0.0 + react: 18.3.1 react-fast-compare: 3.2.2 - react-side-effect: 2.1.2(react@19.0.0) + react-side-effect: 2.1.2(react@18.3.1) - react-intersection-observer@9.15.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-intersection-observer@9.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - react: 19.0.0 + react: 18.3.1 optionalDependencies: - react-dom: 19.0.0(react@19.0.0) + react-dom: 18.3.1(react@18.3.1) react-is@16.13.1: {} @@ -23509,32 +17232,16 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@19.0.0): - dependencies: - react: 19.0.0 - react-style-singleton: 2.2.3(@types/react@18.3.18)(react@19.0.0) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - - react-remove-scroll-bar@2.3.8(@types/react@19.0.8)(react@18.3.1): - dependencies: - react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@19.0.8)(react@18.3.1) - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - - react-remove-scroll@2.5.5(@types/react@19.0.8)(react@18.3.1): + react-remove-scroll@2.5.5(@types/react@18.3.18)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@19.0.8)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@19.0.8)(react@18.3.1) + react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.0.8)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@19.0.8)(react@18.3.1) + use-callback-ref: 1.3.3(@types/react@18.3.18)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 19.0.8 + '@types/react': 18.3.18 react-remove-scroll@2.6.3(@types/react@18.3.18)(react@18.3.1): dependencies: @@ -23547,64 +17254,28 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-remove-scroll@2.6.3(@types/react@18.3.18)(react@19.0.0): - dependencies: - react: 19.0.0 - react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@19.0.0) - react-style-singleton: 2.2.3(@types/react@18.3.18)(react@19.0.0) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.3.18)(react@19.0.0) - use-sidecar: 1.1.3(@types/react@18.3.18)(react@19.0.0) - optionalDependencies: - '@types/react': 18.3.18 - - react-remove-scroll@2.6.3(@types/react@19.0.8)(react@18.3.1): - dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@19.0.8)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@19.0.8)(react@18.3.1) - tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.0.8)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@19.0.8)(react@18.3.1) - optionalDependencies: - '@types/react': 19.0.8 - react-router-dom@6.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@remix-run/router': 1.22.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-router: 6.29.0(react@18.3.1) - optional: true - - react-router-dom@6.29.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - '@remix-run/router': 1.22.0 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-router: 6.29.0(react@19.0.0) react-router@6.29.0(react@18.3.1): dependencies: '@remix-run/router': 1.22.0 react: 18.3.1 - optional: true - - react-router@6.29.0(react@19.0.0): - dependencies: - '@remix-run/router': 1.22.0 - react: 19.0.0 - react-shepherd@6.1.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3): + react-shepherd@6.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3): dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) shepherd.js: 14.4.0 typescript: 5.7.3 - react-side-effect@2.1.2(react@19.0.0): + react-side-effect@2.1.2(react@18.3.1): dependencies: - react: 19.0.0 + react: 18.3.1 react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): dependencies: @@ -23614,59 +17285,14 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - react-style-singleton@2.2.3(@types/react@18.3.18)(react@19.0.0): - dependencies: - get-nonce: 1.0.1 - react: 19.0.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - - react-style-singleton@2.2.3(@types/react@19.0.8)(react@18.3.1): - dependencies: - get-nonce: 1.0.1 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - react@18.3.1: dependencies: loose-envify: 1.4.0 - react@19.0.0: {} - - read-binary-file-arch@1.0.6: - dependencies: - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - read-cache@1.0.0: dependencies: pify: 2.3.0 - read-pkg-up@2.0.0: - dependencies: - find-up: 2.1.0 - read-pkg: 2.0.0 - - read-pkg@2.0.0: - dependencies: - load-json-file: 2.0.0 - normalize-package-data: 2.5.0 - path-type: 2.0.0 - - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - readable-stream@3.6.2: dependencies: inherits: 2.0.4 @@ -23687,10 +17313,6 @@ snapshots: tiny-invariant: 1.3.3 tslib: 2.8.1 - rechoir@0.8.0: - dependencies: - resolve: 1.22.10 - recma-build-jsx@1.0.0: dependencies: '@types/estree': 1.0.6 @@ -23820,8 +17442,6 @@ snapshots: hast-util-to-string: 3.0.1 unist-util-visit: 5.0.0 - relateurl@0.2.7: {} - relay-runtime@12.0.0(encoding@0.1.13): dependencies: '@babel/runtime': 7.26.7 @@ -23904,17 +17524,6 @@ snapshots: remove-trailing-spaces@1.0.8: {} - renderkid@3.0.0: - dependencies: - css-select: 4.3.0 - dom-converter: 0.2.0 - htmlparser2: 6.1.0 - lodash: 4.17.21 - strip-ansi: 6.0.1 - - repeat-string@1.6.1: - optional: true - require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -23925,25 +17534,10 @@ snapshots: requires-port@1.0.0: {} - resedit@2.0.3: - dependencies: - pe-library: 1.0.1 - - resolve-alpn@1.2.1: {} - - resolve-dir@1.0.1: - dependencies: - expand-tilde: 2.0.2 - global-modules: 1.0.0 - resolve-from@4.0.0: {} resolve-from@5.0.0: {} - resolve-package@1.0.1: - dependencies: - get-installed-path: 2.1.1 - resolve-pkg-maps@1.0.0: {} resolve@1.22.10: @@ -23952,10 +17546,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - responselike@2.0.1: - dependencies: - lowercase-keys: 2.0.0 - restore-cursor@3.1.0: dependencies: onetime: 5.1.2 @@ -23966,64 +17556,41 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry@0.12.0: {} - - retry@0.13.1: {} - reusify@1.0.4: {} rfdc@1.4.1: {} - rimraf@2.6.3: - dependencies: - glob: 7.2.3 - optional: true - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - rimraf@5.0.10: dependencies: glob: 10.4.5 - roarr@2.15.4: - dependencies: - boolean: 3.2.0 - detect-node: 2.1.0 - globalthis: 1.0.4 - json-stringify-safe: 5.0.1 - semver-compare: 1.0.0 - sprintf-js: 1.1.3 - optional: true - rollup@2.79.2: optionalDependencies: fsevents: 2.3.3 - rollup@4.34.5: + rollup@4.34.6: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.34.5 - '@rollup/rollup-android-arm64': 4.34.5 - '@rollup/rollup-darwin-arm64': 4.34.5 - '@rollup/rollup-darwin-x64': 4.34.5 - '@rollup/rollup-freebsd-arm64': 4.34.5 - '@rollup/rollup-freebsd-x64': 4.34.5 - '@rollup/rollup-linux-arm-gnueabihf': 4.34.5 - '@rollup/rollup-linux-arm-musleabihf': 4.34.5 - '@rollup/rollup-linux-arm64-gnu': 4.34.5 - '@rollup/rollup-linux-arm64-musl': 4.34.5 - '@rollup/rollup-linux-loongarch64-gnu': 4.34.5 - '@rollup/rollup-linux-powerpc64le-gnu': 4.34.5 - '@rollup/rollup-linux-riscv64-gnu': 4.34.5 - '@rollup/rollup-linux-s390x-gnu': 4.34.5 - '@rollup/rollup-linux-x64-gnu': 4.34.5 - '@rollup/rollup-linux-x64-musl': 4.34.5 - '@rollup/rollup-win32-arm64-msvc': 4.34.5 - '@rollup/rollup-win32-ia32-msvc': 4.34.5 - '@rollup/rollup-win32-x64-msvc': 4.34.5 + '@rollup/rollup-android-arm-eabi': 4.34.6 + '@rollup/rollup-android-arm64': 4.34.6 + '@rollup/rollup-darwin-arm64': 4.34.6 + '@rollup/rollup-darwin-x64': 4.34.6 + '@rollup/rollup-freebsd-arm64': 4.34.6 + '@rollup/rollup-freebsd-x64': 4.34.6 + '@rollup/rollup-linux-arm-gnueabihf': 4.34.6 + '@rollup/rollup-linux-arm-musleabihf': 4.34.6 + '@rollup/rollup-linux-arm64-gnu': 4.34.6 + '@rollup/rollup-linux-arm64-musl': 4.34.6 + '@rollup/rollup-linux-loongarch64-gnu': 4.34.6 + '@rollup/rollup-linux-powerpc64le-gnu': 4.34.6 + '@rollup/rollup-linux-riscv64-gnu': 4.34.6 + '@rollup/rollup-linux-s390x-gnu': 4.34.6 + '@rollup/rollup-linux-x64-gnu': 4.34.6 + '@rollup/rollup-linux-x64-musl': 4.34.6 + '@rollup/rollup-win32-arm64-msvc': 4.34.6 + '@rollup/rollup-win32-ia32-msvc': 4.34.6 + '@rollup/rollup-win32-x64-msvc': 4.34.6 fsevents: 2.3.3 run-async@2.4.1: {} @@ -24048,8 +17615,6 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 - safe-buffer@5.1.2: {} - safe-buffer@5.2.1: {} safe-push-apply@1.0.0: @@ -24069,37 +17634,10 @@ snapshots: dependencies: loose-envify: 1.4.0 - scheduler@0.25.0: {} - - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - - schema-utils@4.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) - scuid@1.1.0: {} seedrandom@3.0.5: {} - select-hose@2.0.0: {} - - selfsigned@2.4.1: - dependencies: - '@types/node-forge': 1.3.11 - node-forge: 1.3.1 - - semver-compare@1.0.0: - optional: true - - semver@5.7.2: {} - semver@6.3.1: {} semver@7.7.1: {} @@ -24125,30 +17663,13 @@ snapshots: sentence-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.8.1 + tslib: 2.6.3 upper-case-first: 2.0.2 - serialize-error@7.0.1: - dependencies: - type-fest: 0.13.1 - optional: true - serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 - serve-index@1.9.1: - dependencies: - accepts: 1.3.8 - batch: 0.6.1 - debug: 2.6.9 - escape-html: 1.0.3 - http-errors: 1.6.3 - mime-types: 2.1.35 - parseurl: 1.3.3 - transitivePeerDependencies: - - supports-color - serve-static@1.16.2: dependencies: encodeurl: 2.0.0 @@ -24193,30 +17714,14 @@ snapshots: setimmediate@1.0.5: {} - setprototypeof@1.1.0: {} - setprototypeof@1.2.0: {} - shallow-clone@3.0.1: - dependencies: - kind-of: 6.0.3 - - shallowequal@1.1.0: {} - - shebang-command@1.2.0: - dependencies: - shebang-regex: 1.0.0 - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - shebang-regex@1.0.0: {} - shebang-regex@3.0.0: {} - shell-escape@0.2.0: {} - shell-quote@1.8.2: {} shepherd.js@14.4.0: @@ -24296,13 +17801,6 @@ snapshots: astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 - slice-ansi@5.0.0: - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 - - smart-buffer@4.2.0: {} - smob@1.5.0: {} snake-case@3.0.4: @@ -24310,35 +17808,11 @@ snapshots: dot-case: 3.0.4 tslib: 2.8.1 - sockjs@0.3.24: - dependencies: - faye-websocket: 0.11.4 - uuid: 8.3.2 - websocket-driver: 0.7.4 - - socks-proxy-agent@7.0.0: - dependencies: - agent-base: 6.0.2 - debug: 4.4.0 - socks: 2.8.3 - transitivePeerDependencies: - - supports-color - - socks@2.8.3: - dependencies: - ip-address: 9.0.5 - smart-buffer: 4.2.0 - sonner@1.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - sonner@1.7.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -24358,41 +17832,6 @@ snapshots: space-separated-tokens@2.0.2: {} - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.21 - - spdx-exceptions@2.5.0: {} - - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.21 - - spdx-license-ids@3.0.21: {} - - spdy-transport@3.0.0: - dependencies: - debug: 4.4.0 - detect-node: 2.1.0 - hpack.js: 2.1.6 - obuf: 1.1.2 - readable-stream: 3.6.2 - wbuf: 1.7.3 - transitivePeerDependencies: - - supports-color - - spdy@4.0.2: - dependencies: - debug: 4.4.0 - handle-thing: 2.0.1 - http-deceiver: 1.2.7 - select-hose: 2.0.0 - spdy-transport: 3.0.0 - transitivePeerDependencies: - - supports-color - split-on-first@1.1.0: {} split-string@3.1.0: @@ -24401,13 +17840,7 @@ snapshots: sponge-case@1.0.1: dependencies: - tslib: 2.8.1 - - sprintf-js@1.1.3: {} - - ssri@9.0.1: - dependencies: - minipass: 3.3.6 + tslib: 2.6.3 stackback@0.0.2: {} @@ -24427,8 +17860,6 @@ snapshots: transitivePeerDependencies: - encoding - statuses@1.5.0: {} - statuses@2.0.1: {} std-env@3.8.0: {} @@ -24447,23 +17878,8 @@ snapshots: - supports-color - utf-8-validate - stream-browserify@3.0.0: - dependencies: - inherits: 2.0.4 - readable-stream: 3.6.2 - - stream-buffers@2.2.0: - optional: true - streamsearch@1.1.0: {} - streamx@2.22.0: - dependencies: - fast-fifo: 1.3.2 - text-decoder: 1.2.3 - optionalDependencies: - bare-events: 2.5.4 - strict-uri-encode@2.0.0: {} string-env-interpolation@1.0.1: {} @@ -24525,10 +17941,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -24556,8 +17968,6 @@ snapshots: strip-comments@2.0.1: {} - strip-eof@1.0.0: {} - strip-final-newline@2.0.0: {} strip-final-newline@3.0.0: {} @@ -24576,36 +17986,10 @@ snapshots: dependencies: js-tokens: 9.0.1 - strip-outer@1.0.1: - dependencies: - escape-string-regexp: 1.0.5 - - strnum@1.0.5: {} - - style-loader@3.3.4(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))): - dependencies: - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15)) - style-to-object@1.0.8: dependencies: inline-style-parser: 0.2.4 - styled-components@6.1.15(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - '@emotion/is-prop-valid': 1.2.2 - '@emotion/unitless': 0.8.1 - '@types/stylis': 4.2.5 - css-to-react-native: 3.2.0 - csstype: 3.1.3 - postcss: 8.4.49 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - shallowequal: 1.1.0 - stylis: 4.3.2 - tslib: 2.6.2 - - stylis@4.3.2: {} - sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -24616,22 +18000,10 @@ snapshots: pirates: 4.0.6 ts-interface-checker: 0.1.13 - sudo-prompt@9.2.1: {} - - sumchecker@3.0.1: - dependencies: - debug: 4.4.0 - transitivePeerDependencies: - - supports-color - supports-color@7.2.0: dependencies: has-flag: 4.0.0 - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} svg-parser@2.0.4: {} @@ -24639,59 +18011,32 @@ snapshots: svgo@3.3.2: dependencies: '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 5.1.0 - css-tree: 2.3.1 - css-what: 6.1.0 - csso: 5.0.5 - picocolors: 1.1.1 - - swap-case@2.0.2: - dependencies: - tslib: 2.8.1 - - sync-fetch@0.6.0-2: - dependencies: - node-fetch: 3.3.2 - timeout-signal: 2.0.0 - whatwg-mimetype: 4.0.0 - - tabbable@6.2.0: {} - - tailwind-merge@2.6.0: {} - - tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3))): - dependencies: - tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3)) - - tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@4.5.5)): - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.3 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.7 - lilconfig: 3.1.3 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.1 - postcss: 8.5.1 - postcss-import: 15.1.0(postcss@8.5.1) - postcss-js: 4.0.1(postcss@8.5.1) - postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@4.5.5)) - postcss-nested: 6.2.0(postcss@8.5.1) - postcss-selector-parser: 6.1.2 - resolve: 1.22.10 - sucrase: 3.35.0 - transitivePeerDependencies: - - ts-node + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.1.1 + + swap-case@2.0.2: + dependencies: + tslib: 2.6.3 + + sync-fetch@0.6.0-2: + dependencies: + node-fetch: 3.3.2 + timeout-signal: 2.0.0 + whatwg-mimetype: 4.0.0 - tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3)): + tabbable@6.2.0: {} + + tailwind-merge@2.6.0: {} + + tailwindcss-animate@1.0.7(tailwindcss@3.4.17): + dependencies: + tailwindcss: 3.4.17 + + tailwindcss@3.4.17: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -24710,7 +18055,7 @@ snapshots: postcss: 8.5.1 postcss-import: 15.1.0(postcss@8.5.1) postcss-js: 4.0.1(postcss@8.5.1) - postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3)) + postcss-load-config: 4.0.2(postcss@8.5.1) postcss-nested: 6.2.0(postcss@8.5.1) postcss-selector-parser: 6.1.2 resolve: 1.22.10 @@ -24720,31 +18065,6 @@ snapshots: tapable@2.2.1: {} - tar-fs@3.0.8: - dependencies: - pump: 3.0.2 - tar-stream: 3.1.7 - optionalDependencies: - bare-fs: 4.0.1 - bare-path: 3.0.0 - transitivePeerDependencies: - - bare-buffer - - tar-stream@3.1.7: - dependencies: - b4a: 1.6.7 - fast-fifo: 1.3.2 - streamx: 2.22.0 - - tar@6.2.1: - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - tar@7.4.3: dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -24756,12 +18076,6 @@ snapshots: temp-dir@2.0.0: {} - temp@0.9.4: - dependencies: - mkdirp: 0.5.6 - rimraf: 2.6.3 - optional: true - tempy@0.6.0: dependencies: is-stream: 2.0.1 @@ -24769,30 +18083,6 @@ snapshots: type-fest: 0.16.0 unique-string: 2.0.0 - terser-webpack-plugin@5.3.11(@swc/core@1.10.14(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))(esbuild@0.24.2)): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 4.3.0 - serialize-javascript: 6.0.2 - terser: 5.38.1 - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))(esbuild@0.24.2) - optionalDependencies: - '@swc/core': 1.10.14(@swc/helpers@0.5.15) - esbuild: 0.24.2 - optional: true - - terser-webpack-plugin@5.3.11(@swc/core@1.10.14(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 4.3.0 - serialize-javascript: 6.0.2 - terser: 5.38.1 - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15)) - optionalDependencies: - '@swc/core': 1.10.14(@swc/helpers@0.5.15) - terser@5.38.1: dependencies: '@jridgewell/source-map': 0.3.6 @@ -24806,12 +18096,6 @@ snapshots: glob: 10.4.5 minimatch: 9.0.5 - text-decoder@1.2.3: - dependencies: - b4a: 1.6.7 - - text-table@0.2.0: {} - thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -24834,13 +18118,8 @@ snapshots: through@2.3.8: {} - thunky@1.1.0: {} - timeout-signal@2.0.0: {} - tiny-each-async@2.0.3: - optional: true - tiny-emitter@2.1.0: {} tiny-invariant@1.3.3: {} @@ -24868,28 +18147,12 @@ snapshots: title-case@3.0.3: dependencies: - tslib: 2.8.1 - - tmp-promise@3.0.3: - dependencies: - tmp: 0.2.3 - optional: true + tslib: 2.6.3 tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 - tmp@0.2.3: - optional: true - - tn1150@0.1.0: - dependencies: - unorm: 1.6.0 - optional: true - - to-data-view@1.1.0: - optional: true - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -24917,10 +18180,6 @@ snapshots: trim-lines@3.0.1: {} - trim-repeated@1.0.0: - dependencies: - escape-string-regexp: 1.0.5 - trough@2.2.0: {} ts-api-utils@1.4.3(typescript@5.7.3): @@ -24935,61 +18194,10 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-loader@9.5.2(typescript@4.5.5)(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))): - dependencies: - chalk: 4.1.2 - enhanced-resolve: 5.18.1 - micromatch: 4.0.8 - semver: 7.7.1 - source-map: 0.7.4 - typescript: 4.5.5 - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15)) - ts-log@2.2.7: {} ts-mixer@6.0.4: {} - ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@4.5.5): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.17.17 - acorn: 8.14.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 4.5.5 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.10.14(@swc/helpers@0.5.15) - - ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.17.17 - acorn: 8.14.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.7.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.10.14(@swc/helpers@0.5.15) - optional: true - tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -25003,17 +18211,13 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tslib@1.14.1: {} - tslib@2.4.1: {} - tslib@2.6.2: {} - tslib@2.6.3: {} tslib@2.8.1: {} - tsup@8.3.6(@swc/core@1.10.14(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0): + tsup@8.3.6(@swc/core@1.10.15(@swc/helpers@0.5.15))(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0): dependencies: bundle-require: 5.1.0(esbuild@0.24.2) cac: 6.7.14 @@ -25025,14 +18229,14 @@ snapshots: picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.1)(tsx@4.19.2)(yaml@2.7.0) resolve-from: 5.0.0 - rollup: 4.34.5 + rollup: 4.34.6 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 tinyglobby: 0.2.10 tree-kill: 1.2.2 optionalDependencies: - '@swc/core': 1.10.14(@swc/helpers@0.5.15) + '@swc/core': 1.10.15(@swc/helpers@0.5.15) postcss: 8.5.1 typescript: 5.7.3 transitivePeerDependencies: @@ -25041,11 +18245,6 @@ snapshots: - tsx - yaml - tsutils@3.21.0(typescript@4.5.5): - dependencies: - tslib: 1.14.1 - typescript: 4.5.5 - tsx@4.19.2: dependencies: esbuild: 0.23.1 @@ -25071,24 +18270,12 @@ snapshots: type-detect@4.1.0: {} - type-fest@0.13.1: - optional: true - type-fest@0.16.0: {} - type-fest@0.20.2: {} - type-fest@0.21.3: {} - type-fest@1.4.0: {} - type-fest@2.19.0: {} - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.3 @@ -25137,18 +18324,16 @@ snapshots: typescript: 5.7.3 yaml: 2.7.0 - typescript-eslint@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3): + typescript-eslint@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.23.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.19.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.23.0(@typescript-eslint/parser@8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.23.0(eslint@9.20.0(jiti@2.4.2))(typescript@5.7.3) + eslint: 9.20.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color - typescript@4.5.5: {} - typescript@5.7.3: {} ua-parser-js@1.0.40: {} @@ -25199,14 +18384,6 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unique-filename@2.0.1: - dependencies: - unique-slug: 3.0.0 - - unique-slug@3.0.0: - dependencies: - imurmurhash: 0.1.4 - unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 @@ -25244,8 +18421,6 @@ snapshots: universal-user-agent@6.0.1: {} - universalify@0.1.2: {} - universalify@0.2.0: {} universalify@2.0.1: {} @@ -25254,11 +18429,6 @@ snapshots: dependencies: normalize-path: 2.1.1 - unorm@1.6.0: - optional: true - - unpipe@1.0.0: {} - unplugin@1.16.1: dependencies: acorn: 8.14.0 @@ -25277,18 +18447,13 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - update-electron-app@3.1.1: - dependencies: - github-url-to-object: 4.0.6 - ms: 2.1.3 - upper-case-first@2.0.2: dependencies: - tslib: 2.8.1 + tslib: 2.6.3 upper-case@2.0.2: dependencies: - tslib: 2.8.1 + tslib: 2.6.3 uri-js@4.4.1: dependencies: @@ -25308,20 +18473,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - use-callback-ref@1.3.3(@types/react@18.3.18)(react@19.0.0): - dependencies: - react: 19.0.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - - use-callback-ref@1.3.3(@types/react@19.0.8)(react@18.3.1): - dependencies: - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - use-isomorphic-layout-effect@1.2.0(@types/react@18.3.18)(react@18.3.1): dependencies: react: 18.3.1 @@ -25336,40 +18487,15 @@ snapshots: optionalDependencies: '@types/react': 18.3.18 - use-sidecar@1.1.3(@types/react@18.3.18)(react@19.0.0): - dependencies: - detect-node-es: 1.1.0 - react: 19.0.0 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 18.3.18 - - use-sidecar@1.1.3(@types/react@19.0.8)(react@18.3.1): - dependencies: - detect-node-es: 1.1.0 - react: 18.3.1 - tslib: 2.8.1 - optionalDependencies: - '@types/react': 19.0.8 - - use-sound@4.0.3(react@19.0.0): + use-sound@4.0.3(react@18.3.1): dependencies: howler: 2.2.4 - react: 19.0.0 + react: 18.3.1 use-sync-external-store@1.4.0(react@18.3.1): dependencies: react: 18.3.1 - use-sync-external-store@1.4.0(react@19.0.0): - dependencies: - react: 19.0.0 - - username@5.1.0: - dependencies: - execa: 1.0.0 - mem: 4.3.0 - util-deprecate@1.0.2: {} util@0.12.5: @@ -25380,25 +18506,12 @@ snapshots: is-typed-array: 1.1.15 which-typed-array: 1.1.18 - utila@0.4.0: {} - - utils-merge@1.0.1: {} - uuid@10.0.0: {} - uuid@8.3.2: {} - uuid@9.0.1: {} - v8-compile-cache-lib@3.0.1: {} - v8n@1.5.1: {} - validate-npm-package-license@3.0.4: - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - value-or-promise@1.0.12: {} vary@1.1.2: {} @@ -25516,20 +18629,9 @@ snapshots: transitivePeerDependencies: - supports-color - vite-plugin-svgr@4.3.0(rollup@4.34.5)(typescript@4.5.5)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)): - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.5) - '@svgr/core': 8.1.0(typescript@4.5.5) - '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@4.5.5)) - vite: 5.4.14(@types/node@20.17.17)(terser@5.38.1) - transitivePeerDependencies: - - rollup - - supports-color - - typescript - - vite-plugin-svgr@4.3.0(rollup@4.34.5)(typescript@5.7.3)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)): + vite-plugin-svgr@4.3.0(rollup@4.34.6)(typescript@5.7.3)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)): dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.5) + '@rollup/pluginutils': 5.1.4(rollup@4.34.6) '@svgr/core': 8.1.0(typescript@5.7.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.7.3)) vite: 5.4.14(@types/node@20.17.17)(terser@5.38.1) @@ -25538,22 +18640,22 @@ snapshots: - supports-color - typescript - vite-plugin-top-level-await@1.4.4(@swc/helpers@0.5.15)(rollup@4.34.5)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)): + vite-plugin-top-level-await@1.4.4(@swc/helpers@0.5.15)(rollup@4.34.6)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)): dependencies: - '@rollup/plugin-virtual': 3.0.2(rollup@4.34.5) - '@swc/core': 1.10.14(@swc/helpers@0.5.15) + '@rollup/plugin-virtual': 3.0.2(rollup@4.34.6) + '@swc/core': 1.10.15(@swc/helpers@0.5.15) uuid: 10.0.0 vite: 5.4.14(@types/node@20.17.17)(terser@5.38.1) transitivePeerDependencies: - '@swc/helpers' - rollup - vite-plugin-vercel@9.0.4(encoding@0.1.13)(rollup@4.34.5)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)): + vite-plugin-vercel@9.0.4(encoding@0.1.13)(rollup@4.34.6)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)): dependencies: '@brillout/libassert': 0.5.8 '@manypkg/find-root': 2.2.3 '@vercel/build-utils': 8.8.0 - '@vercel/nft': 0.27.10(encoding@0.1.13)(rollup@4.34.5) + '@vercel/nft': 0.27.10(encoding@0.1.13)(rollup@4.34.6) '@vercel/routing-utils': 3.1.0 esbuild: 0.24.2 fast-glob: 3.3.3 @@ -25573,7 +18675,7 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.5.1 - rollup: 4.34.5 + rollup: 4.34.6 optionalDependencies: '@types/node': 20.17.17 fsevents: 2.3.3 @@ -25649,27 +18751,27 @@ snapshots: - supports-color - terser - vocs@1.0.0-alpha.62(@types/node@20.17.17)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(acorn@8.14.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.34.5)(terser@5.38.1)(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3))(typescript@5.7.3): + vocs@1.0.0-alpha.62(@types/node@20.17.17)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(acorn@8.14.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.34.6)(terser@5.38.1)(typescript@5.7.3): dependencies: - '@floating-ui/react': 0.26.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@floating-ui/react': 0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@hono/node-server': 1.13.8(hono@3.12.12) - '@mdx-js/react': 3.1.0(@types/react@18.3.18)(react@19.0.0) - '@mdx-js/rollup': 3.1.0(acorn@8.14.0)(rollup@4.34.5) + '@mdx-js/react': 3.1.0(@types/react@18.3.18)(react@18.3.1) + '@mdx-js/rollup': 3.1.0(acorn@8.14.0)(rollup@4.34.6) '@noble/hashes': 1.7.1 '@radix-ui/colors': 3.0.0 - '@radix-ui/react-accordion': 1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-dialog': 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-icons': 1.3.2(react@19.0.0) - '@radix-ui/react-label': 2.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-navigation-menu': 1.2.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-popover': 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-tabs': 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-accordion': 1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-icons': 1.3.2(react@18.3.1) + '@radix-ui/react-label': 2.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-navigation-menu': 1.2.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-popover': 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tabs': 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@shikijs/rehype': 1.29.2 '@shikijs/transformers': 1.29.2 '@shikijs/twoslash': 1.29.2(typescript@5.7.3) '@vanilla-extract/css': 1.17.1 '@vanilla-extract/dynamic': 2.1.2 - '@vanilla-extract/vite-plugin': 3.9.5(@types/node@20.17.17)(terser@5.38.1)(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3))(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) + '@vanilla-extract/vite-plugin': 3.9.5(@types/node@20.17.17)(terser@5.38.1)(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) '@vitejs/plugin-react': 4.3.1(vite@5.4.14(@types/node@20.17.17)(terser@5.38.1)) autoprefixer: 10.4.20(postcss@8.5.1) cac: 6.7.14 @@ -25692,11 +18794,11 @@ snapshots: ora: 7.0.1 p-limit: 5.0.0 postcss: 8.5.1 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-helmet: 6.1.0(react@19.0.0) - react-intersection-observer: 9.15.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react-router-dom: 6.29.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-helmet: 6.1.0(react@18.3.1) + react-intersection-observer: 9.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-router-dom: 6.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rehype-autolink-headings: 7.1.0 rehype-class-names: 1.0.14 rehype-slug: 6.0.0 @@ -25707,7 +18809,7 @@ snapshots: remark-parse: 11.0.0 serve-static: 1.16.2 shiki: 1.29.2 - tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.10.14(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.7.3)) + tailwindcss: 3.4.17 toml: 3.0.0 twoslash: 0.2.12(typescript@5.7.3) ua-parser-js: 1.0.40 @@ -25732,15 +18834,6 @@ snapshots: - ts-node - typescript - watchpack@2.4.2: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - - wbuf@1.7.3: - dependencies: - minimalistic-assert: 1.0.1 - wcwidth@1.0.1: dependencies: defaults: 1.0.4 @@ -25751,134 +18844,8 @@ snapshots: webidl-conversions@4.0.2: {} - webpack-dev-middleware@5.3.4(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))): - dependencies: - colorette: 2.0.20 - memfs: 3.5.3 - mime-types: 2.1.35 - range-parser: 1.2.1 - schema-utils: 4.3.0 - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15)) - - webpack-dev-server@4.15.2(debug@4.4.0)(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))): - dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.21 - '@types/serve-index': 1.9.4 - '@types/serve-static': 1.15.7 - '@types/sockjs': 0.3.36 - '@types/ws': 8.5.14 - ansi-html-community: 0.0.8 - bonjour-service: 1.3.0 - chokidar: 3.6.0 - colorette: 2.0.20 - compression: 1.7.5 - connect-history-api-fallback: 2.0.0 - default-gateway: 6.0.3 - express: 4.21.2 - graceful-fs: 4.2.11 - html-entities: 2.5.2 - http-proxy-middleware: 2.0.7(@types/express@4.17.21)(debug@4.4.0) - ipaddr.js: 2.2.0 - launch-editor: 2.9.1 - open: 8.4.2 - p-retry: 4.6.2 - rimraf: 3.0.2 - schema-utils: 4.3.0 - selfsigned: 2.4.1 - serve-index: 1.9.1 - sockjs: 0.3.24 - spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))) - ws: 8.18.0 - optionalDependencies: - webpack: 5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15)) - transitivePeerDependencies: - - bufferutil - - debug - - supports-color - - utf-8-validate - - webpack-merge@5.10.0: - dependencies: - clone-deep: 4.0.1 - flat: 5.0.2 - wildcard: 2.0.1 - - webpack-sources@3.2.3: {} - webpack-virtual-modules@0.6.2: {} - webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15)): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.6 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.0 - browserslist: 4.24.4 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.1 - es-module-lexer: 1.6.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(@swc/core@1.10.14(@swc/helpers@0.5.15))(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))) - watchpack: 2.4.2 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))(esbuild@0.24.2): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.6 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.0 - browserslist: 4.24.4 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.1 - es-module-lexer: 1.6.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(@swc/core@1.10.14(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack@5.97.1(@swc/core@1.10.14(@swc/helpers@0.5.15))(esbuild@0.24.2)) - watchpack: 2.4.2 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - optional: true - - websocket-driver@0.7.4: - dependencies: - http-parser-js: 0.5.9 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - - websocket-extensions@0.1.4: {} - whatwg-fetch@3.6.20: {} whatwg-mimetype@4.0.0: {} @@ -25936,10 +18903,6 @@ snapshots: gopd: 1.2.0 has-tostringtag: 1.0.2 - which@1.3.1: - dependencies: - isexe: 2.0.0 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -25949,8 +18912,6 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 - wildcard@2.0.1: {} - word-wrap@1.2.5: {} workbox-background-sync@7.3.0: @@ -26071,11 +19032,6 @@ snapshots: react: 18.3.1 use-sync-external-store: 1.4.0(react@18.3.1) - wouter@2.12.1(react@19.0.0): - dependencies: - react: 19.0.0 - use-sync-external-store: 1.4.0(react@19.0.0) - wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 @@ -26096,41 +19052,20 @@ snapshots: wrappy@1.0.2: {} - ws@7.5.10: {} - ws@8.13.0: {} ws@8.18.0: {} - xmlbuilder@15.1.1: {} - - xtend@4.0.2: - optional: true - - xterm-addon-fit@0.5.0(xterm@4.19.0): - dependencies: - xterm: 4.19.0 - - xterm-addon-search@0.8.2(xterm@4.19.0): - dependencies: - xterm: 4.19.0 - - xterm@4.19.0: {} - y18n@4.0.3: {} y18n@5.0.8: {} yallist@3.1.1: {} - yallist@4.0.0: {} - yallist@5.0.0: {} yaml-ast-parser@0.0.43: {} - yaml@1.10.2: {} - yaml@2.7.0: {} yargs-parser@18.1.3: @@ -26138,9 +19073,6 @@ snapshots: camelcase: 5.3.1 decamelize: 1.2.0 - yargs-parser@20.2.9: - optional: true - yargs-parser@21.1.1: {} yargs@15.4.1: @@ -26157,17 +19089,6 @@ snapshots: y18n: 4.0.3 yargs-parser: 18.1.3 - yargs@16.2.0: - dependencies: - cliui: 7.0.4 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - optional: true - yargs@17.7.2: dependencies: cliui: 8.0.1 @@ -26178,13 +19099,6 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yauzl@2.10.0: - dependencies: - buffer-crc32: 0.2.13 - fd-slicer: 1.1.0 - - yn@3.1.1: {} - yocto-queue@0.1.0: {} yocto-queue@1.1.1: {} @@ -26202,18 +19116,4 @@ snapshots: '@types/react': 18.3.18 react: 18.3.1 - zustand@4.5.6(@types/react@18.3.18)(react@19.0.0): - dependencies: - use-sync-external-store: 1.4.0(react@19.0.0) - optionalDependencies: - '@types/react': 18.3.18 - react: 19.0.0 - - zustand@4.5.6(@types/react@19.0.8)(react@19.0.0): - dependencies: - use-sync-external-store: 1.4.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - react: 19.0.0 - zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1f27a4986..5dc564b3c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,6 +1,9 @@ packages: - "client" - - "client/apps/*" + - "client/apps/landing" + - "client/apps/game" + - "client/apps/balancing" + - "client/apps/game-docs" - "config" - "packages/*" - "contracts/season_pass/scripts/deployment"