# Change Log

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

# 1.42.0 (2023-04-13)

# Bug Fixes

  • cli: account for getRecord's trimming (#574) (9c5317a)
  • cli: add back in resolveTableId export for use with mudConfig (#518) (4906d77)
  • cli: handle static arrays in worldgen (#566) (b6a09f2)
  • cli: remove node-dependent exports from base module (#517) (abb34a6)
  • cli: use esbuild to load mud config (#565) (18a8c42)
  • cli: use fileSelector in worldgen (#502) (fa021ed)
  • cli: wait for tx confirmation on deploy txs (#606) (b92be71)
  • network: fall back to RPC sync if MODE is not available (#555) (4de4b6d)
  • network: fix mode decoding (#562) (fb82313)
  • network: handle singleton/empty keys (#541) (1e0ddb9)
  • network: skip sync from cache in dev mode (#521) (818c1e2)
  • recs,cli: fix bigint in recs and tsgen (#563) (29fefae)
  • recs: overridden component update stream should return the overridden component (#544) (9af097d)
  • std-client: export getBurnerWallet (#547) (5b5a71a)
  • world: allow world to access own functions via external calls (#609) (98047f7)
  • world: give World contract access to root namespace (#575) (cbef50d)

# Features

  • add support for key schemas (#480) (37aec2e)
  • align git dep versions (#577) (2b5fb5e)
  • cli/recs/std-client: add ts definitions generator (#536) (dd1efa6)
  • cli: add mud test-v2 command (#554) (d6be8b0)
  • cli: add set-version to upgrade all MUD dependencies in a project (#527) (89731a6)
  • cli: add encode function to all tables (#498) (564604c)
  • cli: add module config to CLI (#494) (263c828)
  • cli: add mud2 cli entrypoint with only v2 commands (#567) (785a324)
  • cli: add registerFunctionSelectors to deploy cli (#501) (de3d459)
  • cli: add worldgen (#496) (e84c0c8)
  • cli: allow customization of IWorld interface name via mud config, change world/IWorld to world/IBaseWorld (#545) (38b355c)
  • cli: allow passing world address and src dir to deploy cli (#586) (4b532be)
  • cli: allow static arrays as abi types in store config and tablegen (#509) (588d037)
  • cli: improve store config typehints, prepare for static array support (#508) (abb5eb2)
  • cli: improve storeArgument, refactor cli (#500) (bb68670)
  • cli: include stateMutability in worldgen (#571) (3a91292)
  • cli: namespace deploy output by chain id (#516) (7687349)
  • cli: rename deploymentInfoDirectory to deploysDirectory, default to ./deploys (#519) (1dba0d3)
  • cli: set storeArgument to true by default (#553) (cb1ecbc)
  • cli: use a central codegen dir for tablegen and worldgen (#585) (7500b11)
  • cli: use abi types in store config (#507) (12a739f)
  • cli: use json for gas report output (#607) (bea12ca)
  • config: create config package (#589) (d2a23a6)
  • config: separate config from cli (#600) (cd224a5)
  • create-mud: use pnpm in templates, move to root so they can be installed/run (#599) (010740d)
  • mode mvp (#492) (08a7baf)
  • network,recs,std-client: support StoreSetField before StoreSetRecord (#581) (f259f90), closes #479 #523
  • network: add fastTxExecute util (#543) (f05a70a)
  • network: add option to sync in main thread instead of worker (#522) (4e8e7d7)
  • network: integrate initial sync from MODE (#493) (7d06c1b)
  • schema-type: add SchemaType -> primitive map, rearrange files (#488) (b1bf876)
  • std-client: add getBurnerWallet util (#546) (f427b50)
  • std-client: move v2 setup to its own function/file (#526) (ef5b4c2)
  • store: add metadata to the schema table (#550) (55ab704)
  • use IErrors in IStore and IWorldCore (#573) (4f9ed7b)
  • use viem when creating burner wallet (#576) (d5d22e0)
  • v2 event decoding (#415) (374ed54)
  • world,store: add updateInField (#525) (0ac76fd)
  • world: add naive ReverseMappingHook/Module (#487) (36aaaef)
  • world: add support for modules, add RegistrationModule, add CoreModule (#482) (624cbbc)
  • world: add UniqueEntityModule (#552) (983e26a)
  • world: allow payable systems (#568) (b63aca8)
  • world: allow registration of function selectors in the World, split out RegisterSystem from World (#481) (ba0166f)
  • world: index first key for KeysWithValueModule on tables with composite keys (#569) (bcba109)
  • world: ReverseMapping: infer target table id from source table id, add getKeysWithValue util (#490) (f69e3dc)
  • world: simplify access control to namespaces instead of routes (#467) (945f2ef)

# 1.41.0 (2023-03-09)

# Bug Fixes

  • cli: add missing await (#475) (efb5d76)
  • cli: add missing await to tablegen, fix formatting (#472) (4313c27)
  • cli: avoid fs usage in utils, create deployment output directory if it doesn't exist (#471) (cc8aa13)
  • services: fix protobuf imports (#477) (3eda547)
  • world: fix schema order (#464) (3d137dd)

# Features

  • add pushToField to Store and World (#434) (b665efc)
  • cli: add setMetadata to autogen of table libraries (#466) (1e129fe)
  • cli: add v2 deployment script (#450) (1db37a5)
  • cli: user types and route/path separation (#454) (758bf03)
  • react: option for useEntityQuery to re-render on value changes (#460) (6b90b85)

# 1.40.0 (2023-03-03)

# Bug Fixes

  • ecs-browser: fix some errors in ecs-browser (#420) (2a7ce21)

# Features

  • add StoreMetadata table for table name and field names to Store and World (#428) (ae39ace)
  • cli: reorganize internal structure and add exports for all utilities (#451) (e683904)
  • phaserx: tag native phaser game objects with object pool id (#453) (27ac5d3)
  • v2 - add store, world and schema-type, cli table code generation (#422) (cb731e0)

# BREAKING CHANGES

  • This commit removes the deprecated mud deploy CLI command. Use mud deploy-contracts instead.

# 1.39.0 (2023-02-22)

# Features

  • create-mud: default to latest mud version (#432) (5a38ad6)

# 1.38.0 (2023-02-22)

# Bug Fixes

  • create-mud: small linting/type fixes for templates (#425) (1f2598c)

# Features

# 1.37.1 (2023-02-17)

Note: Version bump only for package mud

# 1.37.0 (2023-02-16)

# Bug Fixes

  • package entry points, peer dep versions (#409) (66a7fd6)

# Features

# Reverts

  • Revert "chore(release): publish v1.37.0" (c934f53)

# 1.36.1 (2023-02-16)

Note: Version bump only for package mud

# 1.36.0 (2023-02-16)

# Bug Fixes

  • create-mud: attempt to fix create-mud build/install issues (#406) (ea53acc)

# Features

  • cli: use forge config for paths to src, test, out (#392) (01217d3)

# 1.35.0 (2023-02-15)

# Bug Fixes

  • cli: exit if generateDeploy fails in deploy-contracts setup (#377) (71dd7f0)
  • cli: pass reuseComponents arg in deploy command (#356) (8e31984)
  • cli: use nodejs grpc transport (#374) (4c9ca7d)
  • network: add explicit return type to createFaucetService (#399) (cae82e5)
  • network: use current block number while waiting for new blocks (#368) (09b77a7)
  • solecs: make OwnableWritable overridable (#370) (49d520e)

# Features

  • cli: add gas-report command (#365) (c2a5209)
  • cli: add initialization libs to deploy (#361) (3999ca0)
  • cli: allow initializers to utilize SystemStorage (#371) (b8ba018)
  • create-mud: add create-mud package (#336) (e85c124)
  • update forge-std, use some new features in cli (#311) (43ad118)

# 1.34.0 (2023-01-29)

# Bug Fixes

  • cli: round gas price to nearest integer (#348) (ce07174)
  • network: throw errors from txQueue calls (#351) (a811ff7), closes #315
  • phaserx: reset game object masks when resetting embodied entity (#349) (2153f69)

# Features

  • network: add support for external wallets (eg MetaMask) (#256) (bf0b5cf)
  • solecs: add deterministic storage location for systems, add storage access util (#264) (f18c398)

# 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 89248902+alvrs@users.noreply.github.com

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

Co-authored-by: alvarius 89248902+alvrs@users.noreply.github.com

  • 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 89248902+alvrs@users.noreply.github.com

# 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 24281657+andriidski@users.noreply.github.com

# 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 ludens@lattice.xyz

  • 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)