# Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

# 1.33.1 (2023-01-12)

Note: Version bump only for package mud

# 1.33.0 (2023-01-12)

# Bug Fixes

  • cli: do not copy System test ABIs during build 🧱 (#312) (660e508)
  • solecs: use _setOwner in Ownable constructor (#338) (851a3e6)

# Features

  • cli: add deploy option to specify whether dev flag should be appended to client url (#313) (d3de8d2)
  • react: add react package (#294) (f5ee290)
  • std-contracts: add SystemCallbackComponent (#303) (7b3a859)

# Reverts

  • Revert "feat: bump devnode gas limit to 100m (#289)" (#302) (34c9d27), closes #289 #302

# 1.32.0 (2023-01-06)

# Bug Fixes

  • update tween references after phaser bump (#297) (9d6ed01)

# Features

  • ecs-browser: replace react syntax highlighter with shiki and bundler with tsup (#262) (915506d)

# 1.31.3 (2022-12-16)

# Bug Fixes

  • cli: better logs, more resilience, better gas price mgmt (#300) (26c62e6)

# 1.31.2 (2022-12-15)

# Bug Fixes

  • std-client: allow default components to be passed in to setupMUDNetwork (#299) (5d043ee)

# 1.31.1 (2022-12-15)

# Bug Fixes

  • cli issue with circular dependencies (#291) (bbc182f)
  • cli: catch error when attempting to invalid file (#282) (add01a8)
  • cli: reset LibDeploy.sol using original/cached contents (#292) (6e7a8b9)
  • new entities should be included in overrides (#290) (878ee2a)
  • std-contracts: add virtual to MudTest setUp (#298) (942cfcd)

# 1.31.0 (2022-12-14)

# Bug Fixes

  • add LoadingState component from SyncWorker (#288) (2026abc)
  • cli: mud trace bug for non-local networks (#276) (3f6abeb)
  • cli: replace LibDeploy.sol content with stub (275824a)
  • use interfaces in LibDeploy (#278) (6d01082)

# Features

  • bump devnode gas limit to 100m (#289) (a02e44b)
  • services: twitter verification / linking behind a flag (#274) (60d4ae8)
  • solecs: add world to IComponent definition (#284) (881e4ea)
  • std-client: add more granular relationship utilities (#283) (f094624)

# 1.30.1 (2022-12-02)

Note: Version bump only for package mud

# 1.30.0 (2022-12-02)

# Features

  • cli: hot system replacement, new commands (deploy-contracts, codegen-libdeploy, devnode, types, test, create) (#277) (8e32f98)

# 1.29.0 (2022-11-29)

# Bug Fixes

  • allow overriding preset components, replace Owned interface with IERC173, fix IComponent interface (#239) (ae3983b)

# Features

  • cli: add faucet cli (#271) (a33f1ce)
  • cli: add mud types command for TypeChain type generation (#259) (4303b40)
  • solecs: add util to split up bitpacked data (#247) (a7f73b0)
  • std-contracts: basic gas metrics for mud components (#255) (2aeb4a6)

# 1.28.1 (2022-11-24)

# Bug Fixes

# 1.28.0 (2022-11-20)

# Features

  • network: system call stream available in streaming service (0244eb8), closes #254

# 1.27.0 (2022-11-15)

# Bug Fixes

  • network: disable browser cache in dev mode (#213) (ba9e6bc)
  • phaserx: scale zoom delta with pinch speed (#242) (e939ed2)
  • solecs: restrict write access to Set and MapSet to owner (#244) (f17a6d7)

# Code Refactoring

  • ecs-browser: make dev components optional, remove unnecessary dependencies (#235) (868ae02), closes #231

# BREAKING CHANGES

  • ecs-browser: changes how props are handled, no longer are entities or other devComponent props required, these are inferred or set as optional and the handling is conditonal now

  • Update packages/ecs-browser/src/ComponentEditor.tsx

Co-authored-by: alvarius [email protected]

  • Update packages/ecs-browser/src/ComponentEditor.tsx

Co-authored-by: alvarius [email protected]

  • feat(ecs-browser): migrate browser dev components to own function

Move creation of the dev components needed for the Browser to be created outside of the Browser for easier hooking into

  • fix(ecs-browser): remove unused import

  • fix(ecs-browser): fix from Kooshaba

Co-authored-by: alvarius [email protected]

# 1.26.0 (2022-11-07)

# Bug Fixes

  • phaserx: avoid creating tilemap chunks if tilemap is not visible (#241) (641e2c4)

# Features

  • relay: check message data doesn't exceed a configurable limit (#195) (4e35ed3)
  • services: admin endpoint on faucet (#238) (282fd69)

# 1.25.1 (2022-11-03)

Note: Version bump only for package mud

# 1.25.0 (2022-11-03)

# Bug Fixes

# Features

  • network,std-client: add support for SystemCall events in default MUD network setup (#232) (93d947b)
  • network: export createBlockNumberStream (#230) (c227e5d)
  • solecs: allow overriding Component logic, better inheritance (#229) (d4f5a4b)
  • std-client: export missing types (aefba08)
  • working deploy script from mud basics (#218) (fd1c61b)

# 1.24.1 (2022-10-29)

# Bug Fixes

  • std-contracts: use assembly for delegation in UpgradableSystem (#228) (1fa46fd)

# 1.24.0 (2022-10-28)

# Features

  • v2 endpoint for pruned snapshot that returns entities as raw bytes (#215) (28cce1e)

# 1.23.1 (2022-10-28)

# Bug Fixes

  • avoid early return for unknown components (#226) (bb8684f)

# 1.23.0 (2022-10-26)

# Features

# 1.22.0 (2022-10-26)

# Features

  • network: expose method to register new system contracts on the client (#224) (4583767)
  • network: simplify calling untyped systems (#223) (94e4788)

# 1.21.0 (2022-10-26)

# Bug Fixes

  • solecs: remove console import from MapSet (#216) (b3116b3)

# Features

  • network: send ack between main thread and sync worker (#220) (e06978a)

# 1.20.0 (2022-10-22)

# Features

  • recs: add util to clear cache of local cache component (#217) (30a5868)

# 1.19.0 (2022-10-21)

# Bug Fixes

  • checksum address / value when pruning snapshot (#214) (64fd178)

# Features

  • network: only create encoders if asked for it (c5af08c)

# 1.18.0 (2022-10-21)

# Bug Fixes

  • ecs-browser: remove component on contract from ecs-browser (#205) (f08c6d1)

# Features

  • service stabilizations, send ecs tx on drip, new pruned snapshot endpoint (#204) (d0de185)
  • solecs: add payable system interface (#206) (a436d9e)
  • utils: add more general euclidiean distance util (687f840)

# 1.17.0 (2022-10-19)

# Features

# 1.16.0 (2022-10-19)

# Features

# 1.15.0 (2022-10-18)

# Features

  • network): expose relay ping method, feat(std-client: add tx hash to action component (#209) (3e0b4a7)

# 1.14.2 (2022-10-18)

Note: Version bump only for package mud

# 1.14.1 (2022-10-18)

Note: Version bump only for package mud

# 1.14.0 (2022-10-18)

# Features

  • expose registerComponent method from setupMUDNetwork (#207) (4b078bd)
  • mud.dev: add video content (ffca85e)

# 1.13.0 (2022-10-15)

# Features

  • network: expose SystemsRegistry and ComponentsRegistry from setupMUDNetwork (373d62b)

# 1.12.0 (2022-10-12)

# Bug Fixes

  • std-contracts: fix name of Uint32Component (#201) (82600e2)

# Features

  • fail without error on certain checks and other improvements (#202) (f5d565e)

# 1.11.0 (2022-10-11)

# Features

  • add BareComponent (#200) (780d62c)
  • relay: check account balance is greater than a configured amount (#194) (1cbbd5b)

# 1.10.0 (2022-10-11)

# Features

  • ecs-browser: add support for modifying boolean values (1dba52e)

# 1.9.0 (2022-10-11)

# Bug Fixes

  • solecs): only allow components to register their own updates, feat(std-client: add support for multiple overrides per component per action (#199) (d8dd63e)

# Features

  • network: fall back to rpc if stream service errors (#190) (414e777)
  • services: grpc prometheus metrics (#196) (33e8959)

# 1.8.0 (2022-10-07)

# Bug Fixes

  • network: use websocket to subscribe to relayer messages (8218249)
  • relay: open stream grpc endpoint not properly closing (#187) (1db4a7d)

# Features

# 1.7.1 (2022-10-06)

Note: Version bump only for package mud

# 1.7.0 (2022-10-06)

# Bug Fixes

  • ecs-browser: do not early return for entity 0 (bf36cc0)
  • relay: proper interval rate limiting and flag to control account balance check (#181) (e84ae44)

# Features

  • add utils to normalize hex ids (#185) (170e963)
  • general service improvements (#179) (e0dac83)
  • services: service-side changes for health probes (#183) (da4cf91)
  • soleces: expose component functions set and remove internally without onlyWriter permissions (#182) (662936b)

# 1.6.0 (2022-10-04)

# Bug Fixes

  • make OverridableComponent conform with Component type (#180) (c9d2c31)

# Features

  • flag for sig verification, rate limiting of push, and check for balance when relaying (#175) (0271ac9)

# 1.5.1 (2022-10-03)

Note: Version bump only for package mud

# 1.5.0 (2022-10-03)

# Features

  • add a stream rpc for message push (#174) (e0aa956)
  • faucet re-drip after tweet, rpc to get time until next drip (#173) (27b08fc)

# 1.4.1 (2022-10-03)

Note: Version bump only for package mud

# 1.4.0 (2022-10-03)

# Features

  • add signature verification for all client actions via relay service (#167) (7920d6e)
  • faucet improvements (#168) (29d0b91)
  • network: add util for creating faucet service (#171) (9f50d9c)
  • network: expose mappings and ecsEvent$ from setupMUDNetwork (44a8676)

# 1.3.0 (2022-09-30)

# Bug Fixes

  • network: remove failed actions from the queue (b27b958)
  • recs: change internal query behavior to match previous version (47b8834)
  • std-client: add stream service config to createMUDNetwork (98b0861)

# Features

  • recs: add local cache component (#169) (09058f6)
  • recs: allow multiple subscribers per query update$ (6d13531)

# 1.2.0 (2022-09-29)

# Bug Fixes

  • network: check event type instead of just value before decoding (#166) (f4dedd9)

# Features

  • network: increase network performance by reducing unnecessary rpc calls (#165) (195b710)

# 1.1.0 (2022-09-28)

# Features

  • add createRelayService, add utils to work with Uint8Arrays (#164) (b02992b)
  • basic faucet service implementation (#163) (3217176)
  • ecs-browser: make nameComponent and spawnPrototypeAt optional (7822d53)
  • initial implementation of ecs relay service (#157) (140aec3)

# 1.0.0 (2022-09-27)

Note: Version bump only for package mud

# 0.16.4 (2022-09-26)

# Bug Fixes

  • network: cancel tx request if gas estimation failed (565b37f)

# 0.16.3 (2022-09-26)

# Bug Fixes

  • do gas estimation right before sending tx to avoid invalid gas estimations (f251642)

# 0.16.2 (2022-09-26)

Note: Version bump only for package mud

# 0.16.1 (2022-09-26)

Note: Version bump only for package mud

# 0.16.0 (2022-09-26)

# Bug Fixes

  • std-client: add generic type to waitForComponentValueIn (f1641d4)

# Features

# 0.15.1 (2022-09-23)

Note: Version bump only for package mud

# 0.15.0 (2022-09-21)

# Features

# 0.14.2 (2022-09-21)

Note: Version bump only for package mud

# 0.14.1 (2022-09-21)

# Bug Fixes

# 0.14.0 (2022-09-20)

# Bug Fixes

  • phaser input click$ stream (#152) (a7e1cfe)
  • phaserx: distinguish left and right click in click$ stream (#155) (004753d)
  • std-client: remove references to old phaser version (#153) (c691c6e)

# Features

# 0.13.0 (2022-09-19)

# Features

# 0.12.0 (2022-09-16)

# Features

  • cli: forge bulk upload ecs state script (#142) (bbd6e1f)

# 0.11.1 (2022-09-15)

# Bug Fixes

  • do not run prepack multiple times when publishing (4f6f4c3)

# 0.11.0 (2022-09-15)

# Features

  • add more granularity to initial sync state report (#146) (d4ba338)

# 0.10.0 (2022-09-14)

# Features

  • add chunk snapshot and stream service (#139) (8c9d4b3)
  • matching Perlin noise implementations in Solidity and AssemblyScript (#145) (29094c4)

# 0.9.0 (2022-09-13)

# Bug Fixes

  • network: align hex entity id formatting (#140) (93b1bd6)

# Features

  • network: add loading state component update stream to SyncWorker (#141) (824c4f3)

# BREAKING CHANGES

  • network: The loading state component is attached to the entity with id 0x060D (GodID). The std-client package previously exported a different mudwar specific GodID, which has been replaced with the 0x060D GodID exported by the network package.

  • test(network): add test for LoadingState and fix existing tests

# 0.8.1 (2022-08-22)

# Bug Fixes

  • start from initialBlockNumber, build settings, fix github actions, and other minor additions (#137) (08eab5c)

# 0.8.0 (2022-08-22)

# Bug Fixes

  • fix mud.dev build and improve responsiveness (#134) (a3f2b24)

# Features

# 0.7.0 (2022-08-19)

# Features

# 0.6.0 (2022-08-15)

# Code Refactoring

  • sync worker (+ integrated snapshot service) (#125) (6173b59)

# BREAKING CHANGES

  • sync worker update stream returns component id instead of component key

  • test(network): add tests for sync utils and SyncWorker logic

  • chore: remove logs and improve comments

  • chore: add logs

Co-authored-by: andrii dobroshynski 2428[email protected]

# 0.5.1 (2022-08-05)

# Bug Fixes

  • only render prototype creator if required components are provided (#124) (d877b39)

# 0.5.0 (2022-08-05)

# Bug Fixes

  • better getComponentValueStrict error message, small std-client fixes (#121) (5c78b82)
  • CacheWorker (#118) (bfe006e)
  • optimism, cancel action if gas check fails, add noise utils, fix ecs-browser entry point (#119) (f35d3c3)
  • phaserx: allow for multiple tweens on same objects by passing in… (#122) (d129836)

# Features

  • ecs-browser: Allow spawning of prototypes at arbitrary locations (#117) (b31bfcd)
  • logging library with support for topics/filters (#123) (4eac3c6)
  • std-client: add player getter utils for std client (#120) (7a06f0b)

# 0.4.3 (2022-07-30)

Note: Version bump only for package mud

# 0.4.2 (2022-07-29)

Note: Version bump only for package mud

# 0.4.1 (2022-07-29)

Note: Version bump only for package mud

# 0.4.0 (2022-07-29)

# Bug Fixes

  • cli: extract encoded arguments from signature (#116) (f630319)
  • recs: fix fragment types in system definitions (#109) (c74f393)

# Features

  • add 3d components (d230339)
  • allow component overrides to be null (f9baf44)
  • cli: cli commands for better debugging (#113) (80ae128)
  • network: faster execution of multiple tx, better revert message logging (#111) (bee34dc)
  • phaser: expose set cursor function in phaser input (#110) (e377bb0)
  • phaserx: allow running phaser in headless mode for unit testing in jest (#112) (22bc4d8)

# 0.3.2 (2022-07-26)

Note: Version bump only for package mud

# 0.3.1 (2022-07-26)

Note: Version bump only for package mud

# 0.3.0 (2022-07-26)

# Bug Fixes

  • fix deploying to hardhat using forge, check for existing persona in launcher (#56) (a0f954b)
  • ri: add MoveFacet to deploy script (#55) (ee381e1)
  • std-contracts: add openzeppelin to remappings to fix build (5db32a8)
  • use hardhat as node (better logs) and make hardhat compatible with forge (#54) (45a5981)

# Features

# 0.2.0 (2022-07-05)

# Bug Fixes

  • phaserx: do not call preventDefault on keyboard events (ac27fe2)

# Features

  • add webworker architecture for contract/client sync, add cache webworker (#10) (4ef9f90), closes #14
  • cli: add vscode solidity config file to mud create projects (064546a)
  • component browser 📈 (#16) (37af75e)
  • contracts: add function to set contract ecs state in bulk (#23) (5bc8d2b)
  • contracts: replace hardhat with foundry toolkit (#51) (2c0e4a9)
  • network: integrate snapshot service (#24) (a146164)
  • on-chain maps (nyc sprint 1) (#38) (089c46d), closes #17 #20 #18 #25 #26 #27 #28 #29 #30 #31 #33 #32 #34 #35 #36 #37 #39 #40 #41 #42 #43 #44 #45 #46 #48 #49 #50
  • recs: add more granular type assertion function for introspecting Component schema types (#8) (48331f9)
  • recs: add optional parameters to reaction and autorun systems (451209f)
  • recs: expose raw schema on component (69d9b89)
  • recs: rewrite for performance improvements (without integrating in ri) (#22) (887564d)
  • ri-client: pass requirement function result into updates function in ActionRequest (#7) (bb60c5a)
  • solecs: create getUniqueEntityId function on World contract (#4) (a06a9c5)

# BREAKING CHANGES

  • Components have to implement a getSchema() function

  • feat(network): make Sync worker return a stream of ECS events (prev contract events)

  • feat(ri-contracts): integrate solecs change (add getSchema to components)

  • feat(ri-client): integrate network package changes

  • feat(network): store ECS state in cache

  • feat(network): load state from cache

  • feat(utils): add more utils for iterables

  • refactor(network): clean up

  • feat(network): generalize component value decoder function, add tests

  • fix(network): make it possible to subscribe to ecsStream from sync worker multiple times

  • fix(network): start sync from provided initial block number

  • feat(network): move storing ecs to indexDB to its own Cache worker

  • feat(network): create separate cache for every World contract address

  • fix(network): fix issues discovered during live review

  • chore: remove unused import

  • Update packages/network/src/createBlockNumberStream.ts

Co-authored-by: ludens [email protected]

  • feat(network): add clock syncInterval as config parameter

  • feat(utils): emit values through componentToStream and observableToStream only if non-null

  • feat(network): add chain id to cache id, disable loading from cache on hardhat

  • fix(contracts): change Position and EntityType schema to int32/uint32 to fit in js number

  • docs(client): fix typos in comments

  • fix(network): fix tests

  • fix(scripting): integrate new network package into ri scripting

  • fix(network): fix sending multiple requests for component schema if many events get reduced

# 0.1.8 (2022-05-25)

# Bug Fixes

  • @latticexyz/cli: fix create script (2c3b0db)
  • ri-client: change bufferCount to bufferTime to apply ecs updates immediately below threshold (03ecc70)

# Performance Improvements

  • ri-contracts: disable hardhat automine (72d644a)

# 0.1.7 (2022-05-25)

Note: Version bump only for package mud

# 0.1.6 (2022-05-25)

Note: Version bump only for package mud

# 0.1.5 (2022-05-24)

Note: Version bump only for package mud

# 0.1.4 (2022-05-24)

Note: Version bump only for package mud

# 0.1.3 (2022-05-23)

Note: Version bump only for package mud

# 0.1.2 (2022-05-23)

Note: Version bump only for package mud

# 0.1.1 (2022-05-23)

Note: Version bump only for package mud

# 0.1.0 (2022-05-23)

# Bug Fixes

  • @mud/network: do not increase nonce for view functions (233c4b5)
  • @mud/network: use component id for ecs event mapping (instead of address) (baa5f10)
  • @mud/network: use component id instead of address for mapping (39b516c)
  • @mud/solecs: early return from Component.remove if value does not exist (02f78c1)
  • ri-client: fix assuming component value is not undefined when using updateQuery (f93ee23)
  • ri-client: integrate client with new contract-side component ids (78bbdfb)
  • ri-client: type game contracts using combined facet abi (6bc48a8)

# Features

  • @mud/cli: add deploy script to cli (99d0b70)
  • @mud/cli: add initial version of mud create script (72758cf)
  • @mud/cli: add mud cli and move diamond abi generation to cli (034af90)
  • @mud/network: add @mud/network (9a29452)
  • @mud/network: add option to ignore tx confirmation to txQueue, add ready state, add fetch log (438549a)
  • @mud/phaserx: add @mud/phaserx (cbefb71)
  • @mud/recs: add @mud/recs (aaf6d0f)
  • @mud/solecs: add @mud/solecs (84f05f0)
  • @mud/solecs: add advanced queries with support for relationships (e56f6f4)
  • @mud/utils: add @mud/utils package (fc721cc)
  • @mud/utils: add keccak256 hash function that accepts string inputs (ca1a4e0)
  • @mud/utils: add stretch rxjs operator to add a minimum delay between events in a rxjs stream (3a1673f)
  • ri-client: add client reference implementation (10a33cb)
  • ri-contracts: add contracts reference implementation (8709568)
  • ri-scripting: add light client to send tx at scale, add scripts for stresstest 1 (903b25c)

# Performance Improvements

  • @mud/network: add initial sync in stages (d0c026a)
  • @mud/network: move sync and processing of chain events to a webworker (dad52ea)
  • @mud/solecs: add MapSet.sol to improve solecs Component performance (reduce gas) (678c7ac)
  • ri-client: throttle ECS event processing to 12000 per second (88726ec)
  • ri-client: use json rpc provider to send transactions and load block events (2455aeb)