diff --git a/config/.gitignore b/config/.gitignore index 4f877be723..468f82a1aa 100644 --- a/config/.gitignore +++ b/config/.gitignore @@ -9,7 +9,6 @@ yarn-debug.log* yarn-error.log* lerna-debug.log* .pnpm-debug.log* -environments/data/local.json # Caches diff --git a/config/environments/data/local.json b/config/environments/data/local.json new file mode 100644 index 0000000000..c71aa0c961 --- /dev/null +++ b/config/environments/data/local.json @@ -0,0 +1,11121 @@ +{ + "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)>" + } + ] + }, + { + "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": "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": "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": "0x46b3c69414f2501d808b459b186ce20d12ecf6691953da7b2d15fb10d101e6d", + "class_hash": "0xc9da769a96f6e3aacd9c9329f89fc32c82a3318f82a92373cf4eaf3759f230", + "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": "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" + }, + { + "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": "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" + }, + { + "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": "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" + }, + { + "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" + } + ] + } + } + } +} diff --git a/config/utils/utils.ts b/config/utils/utils.ts index e879114118..b1070eb59a 100644 --- a/config/utils/utils.ts +++ b/config/utils/utils.ts @@ -1,18 +1,20 @@ import type { Config, SeasonAddresses } from "@bibliothecadao/eternum"; +import localSeasonAddresses from "../../contracts/common/addresses/local.json"; import mainnetSeasonAddresses from "../../contracts/common/addresses/mainnet.json"; import sepoliaSeasonAddresses from "../../contracts/common/addresses/sepolia.json"; import slotSeasonAddresses from "../../contracts/common/addresses/slot.json"; - +import localGameManifest from "../../contracts/game/manifest_local.json"; import mainnetGameManifest from "../../contracts/game/manifest_mainnet.json"; import sepoliaGameManifest from "../../contracts/game/manifest_sepolia.json"; import slotGameManifest from "../../contracts/game/manifest_slot.json"; +import localConfig from "../environments/data/local.json"; import mainnetConfig from "../environments/data/mainnet.json"; import sepoliaConfig from "../environments/data/sepolia.json"; import slotConfig from "../environments/data/slot.json"; /** Valid chain identifiers */ -export type Chain = "sepolia" | "mainnet" | "slot"; +export type Chain = "sepolia" | "mainnet" | "slot" | "local"; /** * Retrieves the season addresses for a specific chain @@ -29,6 +31,8 @@ export function getSeasonAddresses(chain: Chain): SeasonAddresses { return mainnetSeasonAddresses; case "slot": return slotSeasonAddresses; + case "local": + return localSeasonAddresses; default: throw new Error(`Invalid chain: ${chain}`); } @@ -60,6 +64,8 @@ export function getGameManifest(chain: Chain): GameManifest { return mainnetGameManifest; case "slot": return slotGameManifest; + case "local": + return localGameManifest; default: throw new Error(`Invalid chain: ${chain}`); } @@ -92,7 +98,9 @@ export function getConfigFromNetwork(chain: Chain): Config { case "mainnet": return mainnetConfig.configuration; case "slot": - return slotConfig.configuration; + return slotConfig.configuration ; + case "local": + return localConfig.configuration; default: throw new Error(`Invalid chain: ${chain}`); } diff --git a/contracts/common/.gitignore b/contracts/common/.gitignore index 3ca89a5dbf..4c49bd78f1 100644 --- a/contracts/common/.gitignore +++ b/contracts/common/.gitignore @@ -1,2 +1 @@ .env -addresses/local.json diff --git a/contracts/common/addresses/local.json b/contracts/common/addresses/local.json new file mode 100644 index 0000000000..bd52e8754c --- /dev/null +++ b/contracts/common/addresses/local.json @@ -0,0 +1,37 @@ +{ + "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"] + } +} diff --git a/contracts/game/.gitignore b/contracts/game/.gitignore index f94cd340b4..f05f524e5d 100644 --- a/contracts/game/.gitignore +++ b/contracts/game/.gitignore @@ -1,7 +1,6 @@ target/* torii.db KATANA.toml -manifest_local.json logs/* pids/* .DS_Store diff --git a/contracts/game/dojo_local.toml b/contracts/game/dojo_local.toml index ef78b6b8a7..9dc9290f0a 100644 --- a/contracts/game/dojo_local.toml +++ b/contracts/game/dojo_local.toml @@ -21,7 +21,6 @@ website = "https://alpha-eternum.realms.world/" "s1_eternum-production_systems", "s1_eternum-config_systems", "s1_eternum-dev_bank_systems", - "s1_eternum-dev_realm_systems", "s1_eternum-dev_resource_systems", "s1_eternum-donkey_systems", "s1_eternum-guild_systems", diff --git a/contracts/game/dojo_sepolia.toml b/contracts/game/dojo_sepolia.toml index 6357b1ad51..5a42d24aa7 100644 --- a/contracts/game/dojo_sepolia.toml +++ b/contracts/game/dojo_sepolia.toml @@ -22,7 +22,6 @@ website = "https://eternum.realms.world/" "s1_eternum-production_systems", "s1_eternum-config_systems", "s1_eternum-dev_bank_systems", - "s1_eternum-dev_realm_systems", "s1_eternum-dev_resource_systems", "s1_eternum-donkey_systems", "s1_eternum-guild_systems", diff --git a/contracts/game/manifest_local.json b/contracts/game/manifest_local.json new file mode 100644 index 0000000000..e140d9497e --- /dev/null +++ b/contracts/game/manifest_local.json @@ -0,0 +1,9789 @@ +{ + "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)>" + } + ] + }, + { + "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": "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": "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": "0x46b3c69414f2501d808b459b186ce20d12ecf6691953da7b2d15fb10d101e6d", + "class_hash": "0xc9da769a96f6e3aacd9c9329f89fc32c82a3318f82a92373cf4eaf3759f230", + "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": "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" + }, + { + "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": "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" + }, + { + "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": "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" + }, + { + "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/contracts/game/manifest_sepolia.json b/contracts/game/manifest_sepolia.json index 9438a4ca82..dcd054c913 100644 --- a/contracts/game/manifest_sepolia.json +++ b/contracts/game/manifest_sepolia.json @@ -1482,7 +1482,7 @@ }, { "address": "0x158114da9a538d75512dc29b3d1995ff551dfb61bee80996232abe54b8febc2", - "class_hash": "0x2d35042bdc3fe8f799396ce2cf9c31deb666e63df2427688a4a8605e34d846", + "class_hash": "0x6020cd4dce4dce9b5a4a68a70daa898537b224b3a5a9e80f64bdbc6e80b897e", "abi": [ { "type": "impl", @@ -1686,7 +1686,7 @@ }, { "address": "0x66bc2d8ef45ce10d3847cc901a41af6a05db34c0ea0ab87fc332ca8c9b2ccb0", - "class_hash": "0x1f9260c45aed95e060c98434c5922c5dfef7c82a62b47ae42496815c3dc6401", + "class_hash": "0xfcba7b3b68a6c50b899999c57a97cc280044a6d3eb1853860714d1ca8b5f15", "abi": [ { "type": "impl", @@ -2001,7 +2001,7 @@ }, { "address": "0x73dff02735d7031496afb34d28f6fd935d8f8e2db14b0877aaf871b3d11f524", - "class_hash": "0x688863adfa91d251a6d09d09c156264d2c6d1128e70c759bd2848abbbe11fc6", + "class_hash": "0x41d596efc4a6d03213daf7b9e4e8bedc5e92bc77e40ea66105f79989a1d2845", "abi": [ { "type": "impl", @@ -4064,213 +4064,9 @@ "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", + "class_hash": "0x3f098fd71b6f1a1437772a724b7b3fa91389d3cc9cb946381ff049f4b4deafd", "abi": [ { "type": "impl", @@ -4959,7 +4755,7 @@ }, { "address": "0xd4a3c274fbdc8ca6fc0c0a2e1bdb9f4ef78ec6efe253592e936bd2e5db712f", - "class_hash": "0x1af127b3e1737bc103072be80c6927cdc90616df78597a5e225f6ab981ad6e4", + "class_hash": "0x7e3fc4e262618f16424b6d0014737c31110891610b18fb44788169480b83113", "abi": [ { "type": "impl", @@ -5336,7 +5132,7 @@ }, { "address": "0x12b32981130d1089c5642125fbe96cdb4da0562e904eb8da590a30ea4f0aa9d", - "class_hash": "0x39da4b5a4c779a5961a30a6bd3be3002f7ac8ca7fcb261bae647262cb03f8df", + "class_hash": "0x56e732616b199de6b6f08b185d4a925ca611a466ac94263004af7d72f81084c", "abi": [ { "type": "impl", @@ -5609,7 +5405,7 @@ }, { "address": "0x43b2a3f4e47fa52ef2549162f89258dbcbd23bc62a51d0a331b80039a66bc9b", - "class_hash": "0x23550c76e27c75c2c2aab7aaca5bc20b9595837ff35fdb95cd538c3d3f2466c", + "class_hash": "0x48a8ae3f6841aed95fb3186cf390db19854c8174fea69fdca19c88fd8c58c63", "abi": [ { "type": "impl", @@ -5894,7 +5690,7 @@ }, { "address": "0x6e173c5aca48a948de710aea5492c1df18a3f477b666a9af82281e1024e7bd2", - "class_hash": "0x3bb707045c5ff3766935a9bece0717a1adf395e9f109cf9e0f8d025bfeadc6d", + "class_hash": "0x466e7ebd1333acd3f8d1280605da3d47f0defc727e4e14a55d41e088272f936", "abi": [ { "type": "impl", @@ -6549,7 +6345,7 @@ }, { "address": "0x47773b52867c0867b40b26408e3ff84fca0b1a9afe55c0cb0fe284c1a18c3d8", - "class_hash": "0x2d8e31a55fd8bf1e95262a07e57c0b97db4a1ae573f4e9d07b6b8fdb863cc43", + "class_hash": "0x72be272c9af1769ad38beaf68495533628fdb4ead0a7879760d17b1f6bab196", "abi": [ { "type": "impl", @@ -6984,7 +6780,7 @@ }, { "address": "0x30b9c5bf6c05b8e950901079bba39766f4a4d23466f2df0258e1ecca3731e19", - "class_hash": "0x567e142c27b39221110078e7ffc6f3d24ee35d07978b548cb799d777d81baba", + "class_hash": "0x227365531efc583855affe2ccf2e38c08b13436e71228a003960a1f45d05ec3", "abi": [ { "type": "impl", @@ -7226,7 +7022,7 @@ }, { "address": "0x1e859bd917c725f938d7ffecdd9f687e04af2b44cf534848895e7efa946378a", - "class_hash": "0x50d051cf375ddb6427d781b0e7f5c7670f3a0c3cea45ed487154c6fe33cdacf", + "class_hash": "0x62d54b6b3e65921272e1fb14ea5388119d3910abc1856ea79db87c6ca1ae90e", "abi": [ { "type": "impl", @@ -7535,7 +7331,7 @@ }, { "address": "0x7e9f737c5c89d0f4e2c2b9f0ffda396da22b2c9fa14106f2d940dddae35497a", - "class_hash": "0x4e3a61a93c7703b04df217cf8e8b43698187f9a7434c457f29f3602f8ceb190", + "class_hash": "0x3565c033b9ab7fd56f044c9ba70e983b30354e3d35d6d0c65592a6e7a2e131d", "abi": [ { "type": "impl", @@ -8032,7 +7828,7 @@ }, { "address": "0x67d9fbdbb222b30679aa4b6d4d15f0e16f984603996111c6ef8b425293d29c7", - "class_hash": "0x6ecba556869f9af550c06eebf09953b9a9b5e021d1841e1fdba2893f6375787", + "class_hash": "0x1ba743062d12d4e056335b18ad188f32ece928103d1c2fe57c4e57148de9d57", "abi": [ { "type": "impl", @@ -8277,7 +8073,7 @@ }, { "address": "0x4949075e31363f02ac3d4374bf1cb726873cd55a3f572dc85ddc9f8ef89c351", - "class_hash": "0xc9da769a96f6e3aacd9c9329f89fc32c82a3318f82a92373cf4eaf3759f230", + "class_hash": "0xb00fb0d9ea7c7a27c1271c9de87d829f7d690e3f6966ebd69204743304fb3a", "abi": [ { "type": "impl", @@ -8578,7 +8374,7 @@ }, { "address": "0x5bb3ed403abb2ceeb6ce8911052a4f9c922f2d4777427454fcbea605192ddc9", - "class_hash": "0x1dea2c672934cc98154903b1e64e34287fbd24ffa3be05415371f9a21638484", + "class_hash": "0x49442e8242359125e36140e04d2acaa96e4d28397ae604a5793ece34587ba8b", "abi": [ { "type": "impl", @@ -8822,7 +8618,7 @@ }, { "address": "0x4d6d43ec3fe5fb0d22398f9aee1846285e7c44bfa3900b7e490d18a9fb4eae4", - "class_hash": "0x710a28a02d258fc3ac7b008f52d1bcb472249ac0948221d328858c01b08a889", + "class_hash": "0x2d6f05a2d585b43e9c6e30c686465d8e73413b059812129cfa372a9f7e6971b", "abi": [ { "type": "impl", diff --git a/contracts/game/src/models/resource/production/labor.cairo b/contracts/game/src/models/resource/production/labor.cairo index b3855bb85a..4c4f8b9e9d 100644 --- a/contracts/game/src/models/resource/production/labor.cairo +++ b/contracts/game/src/models/resource/production/labor.cairo @@ -67,7 +67,7 @@ impl LaborImpl of LaborTrait { let mut resource = ResourceImpl::get(ref world, (entity_id, resource_type)); let resource_production_config: ProductionConfig = world.read_model(resource_type); - resource.production.use_labor(@resource_production_config, labor_amount); + resource.production.spend_labor_resource(@resource_production_config, labor_amount); world.write_model(@resource); // ** BURN LABOR AMOUNT FROM LABOR RESOURCE ** // diff --git a/contracts/game/src/models/resource/production/production.cairo b/contracts/game/src/models/resource/production/production.cairo index de67481d11..cb7065f3da 100644 --- a/contracts/game/src/models/resource/production/production.cairo +++ b/contracts/game/src/models/resource/production/production.cairo @@ -7,7 +7,7 @@ use dojo::world::WorldStorage; use s1_eternum::alias::ID; use s1_eternum::models::config::{ProductionConfig}; use s1_eternum::models::config::{TickConfig, TickImpl, TickTrait}; -use s1_eternum::models::resource::resource::{Resource, ResourceImpl, ResourceTypes}; +use s1_eternum::models::resource::resource::{Resource, ResourceImpl, ResourceTypes, ResourceFoodImpl}; use starknet::get_block_timestamp; #[derive(IntrospectPacked, Copy, Drop, Serde)] @@ -49,15 +49,34 @@ impl ProductionImpl of ProductionTrait { self.production_rate -= production_rate; } - fn use_labor(ref self: Production, production_config: @ProductionConfig, labor_amount: u128) { - // assert!(self.resource_type == *production_config.resource_type, "mismatched resource type when using labor"); + 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 % (*production_config).labor_cost == 0, "labor amount not exactly divisible by labor cost" ); let additional_labor_units: u64 = (labor_amount / (*production_config).labor_cost).try_into().unwrap(); - self.labor_units_left += additional_labor_units; + self.increase_labor_units(additional_labor_units); + } + + #[inline(always)] + fn increase_labor_units(ref self: Production, labor_units: u64) { + self.labor_units_left += labor_units; + } + + #[inline(always)] + fn decrease_labor_units(ref self: Production, labor_units: u64) { + self.labor_units_left -= labor_units; + } + + #[inline(always)] + fn set_last_updated_tick(ref self: Production, tick: u32) { + self.last_updated_tick = tick; + } + + #[inline(always)] + fn is_free_production(resource_type: u8) -> bool { + return ResourceFoodImpl::is_food(resource_type); } // function must be called on every resource before querying their balance @@ -65,42 +84,44 @@ impl ProductionImpl of ProductionTrait { fn harvest( ref self: Production, ref resource: Resource, tick: @TickConfig, production_config: @ProductionConfig ) -> bool { - // return false if production is not active - if !self.has_building() { - return false; - } - // check production duration + // get start tick before updating last updated tick + let start_tick = self.last_updated_tick; + + // last updated tick must always be updated let current_tick = (*tick).current(); - if self.labor_units_left.is_non_zero() { - // total units produced by all buildings - let mut labor_units_burned: u128 = (current_tick.into() - self.last_updated_tick.into()) - * self.building_count.into(); + self.set_last_updated_tick(current_tick.try_into().unwrap()); - // limit units produced to labor units left + // ensure lords can not be produced + if resource.resource_type == ResourceTypes::LORDS { + return false; + } + // stop if production is not active + 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 + 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(); } - - // get total produced amount - let total_produced_amount: u128 = labor_units_burned * self.production_rate; - - // ensure lords can not be produced by any means - assert!(resource.resource_type != ResourceTypes::LORDS, "lords can not be produced"); - - // update resource balance - resource.balance += total_produced_amount; - // update labor cycles left - self.labor_units_left -= labor_units_burned.try_into().unwrap(); + self.decrease_labor_units(labor_units_burned.try_into().unwrap()); + } - // update last updated tick - self.last_updated_tick = current_tick.try_into().unwrap(); + // get total produced amount + let total_produced_amount: u128 = labor_units_burned * self.production_rate; - // todo add event here - return true; - } + // update resource balance + resource.add(total_produced_amount); - return false; + // todo add event here + return total_produced_amount.is_non_zero(); } } diff --git a/contracts/game/src/models/resource/resource.cairo b/contracts/game/src/models/resource/resource.cairo index 11dcbc48fa..8bc9d27342 100644 --- a/contracts/game/src/models/resource/resource.cairo +++ b/contracts/game/src/models/resource/resource.cairo @@ -278,17 +278,18 @@ impl ResourceImpl of ResourceTrait { let tick = TickImpl::get_default_tick_config(ref world); let current_tick = tick.current().try_into().unwrap(); let mut production: Production = self.production; - if production.has_building() && production.last_updated_tick != current_tick { + if production.last_updated_tick != current_tick { // harvest the production let production_config: ProductionConfig = world.read_model(self.resource_type); - 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; - // limit balance by storehouse capacity - self.limit_balance_by_storehouse_capacity(ref world); - // save the updated resource model world.write_model(@self); diff --git a/package.json b/package.json index 11695ab52d..6842a43b1f 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "seasonresources:deploy:local": "cd ./contracts/season_resources/ext/scripts && ./deploy.sh", "toml:update:local": "cd ./contracts/game && ./ext/scripts/update-toml.sh torii-local.toml ../common/addresses/local.json", "indexer:start:local": "pnpm run toml:update:local && cd ./contracts/game && ./ext/scripts/indexer.sh --network local --rpc http://127.0.0.1:8080", - "config:deploy:local": "pnpm run build:packages && pnpm --dir ./client/config run local", + "config:deploy:local": "pnpm run build:packages && pnpm --dir ./config run local", "indexer:stop:local": "cd ./contracts/game && ./ext/scripts/indexer.sh --kill --network local", "katana:stop:local": "cd ./contracts/game && ./ext/scripts/katana.sh --kill", "contract:start:local": "pnpm run katana:start:local && pnpm run game:migrate:local && pnpm run seasonpass:deploy:local && pnpm run seasonresources:deploy:local && pnpm run indexer:start:local && pnpm run config:deploy:local", @@ -41,7 +41,7 @@ "seasonresources:deploy:slot": "cd ./contracts/season_resources/ext/scripts && ./deploy.sh slot", "toml:update:slot": "cd ./contracts/game && ./ext/scripts/update-toml.sh torii-slot.toml ../common/addresses/slot.json", "indexer:start:slot": "pnpm run toml:update:slot && bash contracts/game/ext/scripts/slot.sh torii --network slot --world 0x0009dd5e66cfa83f893c2a70b9ea5221e2df18aaf52a111fe9003264f948c7aa --toml ./contracts/game", - "config:deploy:slot": "pnpm run build:packages && pnpm --dir ./client/config run slot", + "config:deploy:slot": "pnpm run build:packages && pnpm --dir ./config run slot", "_comment_sepolia_network_": "_______________________________________________", "_comment_sepolia_network1": "These are all you commands you need to run (in this order)", "_comment_sepolia_network2": "Commands will be executed using `.env.sepolia` in contracts/common/", @@ -52,7 +52,7 @@ "seasonresources:deploy:sepolia": "cd ./contracts/season_resources/ext/scripts && ./deploy.sh sepolia", "toml:update:sepolia": "cd ./contracts/game && ./ext/scripts/update-toml.sh torii-sepolia.toml ../common/addresses/sepolia.json", "indexer:start:sepolia": "pnpm run toml:update:sepolia && bash contracts/game/ext/scripts/slot.sh torii --network sepolia --world 0x0009dd5e66cfa83f893c2a70b9ea5221e2df18aaf52a111fe9003264f948c7aa --toml ./contracts/game", - "config:deploy:sepolia": "pnpm run build:packages && pnpm --dir ./client/config run sepolia", + "config:deploy:sepolia": "pnpm run build:packages && pnpm --dir ./config run sepolia", "_comment_mainnet_network_": "_______________________________________________", "_comment_mainnet_network1": "These are all you commands you need to run (in this order)", "_comment_mainnet_network2": "Commands will be executed using `.env.mainnet` in contracts/common/", @@ -63,7 +63,7 @@ "seasonresources:deploy:mainnet": "cd ./contracts/season_resources/ext/scripts && ./deploy.sh mainnet", "toml:update:mainnet": "cd ./contracts/game && ./ext/scripts/update-toml.sh torii-mainnet.toml ../common/addresses/mainnet.json", "indexer:start:mainnet": "pnpm run toml:update:mainnet && bash contracts/game/ext/scripts/slot.sh torii --network mainnet --world 0x0009dd5e66cfa83f893c2a70b9ea5221e2df18aaf52a111fe9003264f948c7aa --toml ./contracts/game", - "config:deploy:mainnet": "pnpm run build:packages && pnpm --dir ./client/config run mainnet", + "config:deploy:mainnet": "pnpm run build:packages && pnpm --dir ./config run mainnet", "_comment_seasonresources_revoke_": "_______________________________________________", "_comment_seasonresources_revoke1": "Revoke the minter role of the in-game bridge system from all season resource contracts", "_comment_seasonresources_revoke2": "Commands will be executed using `.env.{network}` in contracts/common/", diff --git a/packages/core/src/managers/resource-manager.ts b/packages/core/src/managers/resource-manager.ts index 618f056476..8cd3ca6c41 100644 --- a/packages/core/src/managers/resource-manager.ts +++ b/packages/core/src/managers/resource-manager.ts @@ -28,6 +28,10 @@ export class ResourceManager { return this._getResource(); } + public isFood(): boolean { + return this.resourceId === ResourcesIds.Wheat || this.resourceId === ResourcesIds.Fish; + } + public isActive(): boolean { const production = this.getProduction(); return production !== undefined && production.building_count > 0; @@ -36,6 +40,7 @@ export class ResourceManager { public balance(currentTick: number): number { return Number(this._balance(currentTick)); } + public optimisticResourceUpdate = (overrideId: string, change: bigint) => { const entity = getEntityIdFromKeys([BigInt(this.entityId), BigInt(this.resourceId)]); @@ -91,7 +96,6 @@ export class ResourceManager { private _amountProduced(resource: any, currentTick: number): bigint { if (!resource) return 0n; const production = resource.production!; - if (!production?.labor_units_left) return 0n; let laborUnitsBurned = this._laborUnitsBurned(resource, currentTick); let totalProducedAmount = laborUnitsBurned * production.production_rate; @@ -102,7 +106,7 @@ export class ResourceManager { const production = resource?.production; if (!production) return 0n; let laborUnitsBurned = BigInt(currentTick - production.last_updated_tick) * BigInt(production.building_count); - if (laborUnitsBurned > production.labor_units_left) { + if (!this.isFood() && laborUnitsBurned > production.labor_units_left) { laborUnitsBurned = production.labor_units_left; } @@ -115,7 +119,10 @@ export class ResourceManager { if (!production) return 0; if (production.building_count === 0) return 0; - const productionTicksLeft = BigInt(production.labor_units_left) / BigInt(production.building_count); + let productionTicksLeft = BigInt(production.labor_units_left) / BigInt(production.building_count); + if (this.isFood()) { + productionTicksLeft = BigInt(1) << BigInt(64); + } return production.last_updated_tick + Number(productionTicksLeft); }