@latticexyz/recs 2.0.12-main-9be2bb86 → 2.0.12-main-e43c0938

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md DELETED
@@ -1,1248 +0,0 @@
1
- # Change Log
2
-
3
- ## 2.0.12-main-9be2bb86
4
-
5
- ### Patch Changes
6
-
7
- - @latticexyz/schema-type@2.0.12-main-9be2bb86
8
- - @latticexyz/utils@2.0.12-main-9be2bb86
9
-
10
- ## 2.0.11
11
-
12
- ### Patch Changes
13
-
14
- - @latticexyz/schema-type@2.0.11
15
- - @latticexyz/utils@2.0.11
16
-
17
- ## 2.0.10
18
-
19
- ### Patch Changes
20
-
21
- - @latticexyz/schema-type@2.0.10
22
- - @latticexyz/utils@2.0.10
23
-
24
- ## 2.0.9
25
-
26
- ### Patch Changes
27
-
28
- - @latticexyz/schema-type@2.0.9
29
- - @latticexyz/utils@2.0.9
30
-
31
- ## 2.0.8
32
-
33
- ### Patch Changes
34
-
35
- - @latticexyz/schema-type@2.0.8
36
- - @latticexyz/utils@2.0.8
37
-
38
- ## 2.0.7
39
-
40
- ### Patch Changes
41
-
42
- - @latticexyz/schema-type@2.0.7
43
- - @latticexyz/utils@2.0.7
44
-
45
- ## 2.0.6
46
-
47
- ### Patch Changes
48
-
49
- - Updated dependencies [c18e93c5]
50
- - Updated dependencies [d95028a6]
51
- - @latticexyz/schema-type@2.0.6
52
- - @latticexyz/utils@2.0.6
53
-
54
- ## 2.0.5
55
-
56
- ### Patch Changes
57
-
58
- - @latticexyz/schema-type@2.0.5
59
- - @latticexyz/utils@2.0.5
60
-
61
- ## 2.0.4
62
-
63
- ### Patch Changes
64
-
65
- - @latticexyz/schema-type@2.0.4
66
- - @latticexyz/utils@2.0.4
67
-
68
- ## 2.0.3
69
-
70
- ### Patch Changes
71
-
72
- - @latticexyz/schema-type@2.0.3
73
- - @latticexyz/utils@2.0.3
74
-
75
- ## 2.0.2
76
-
77
- ### Patch Changes
78
-
79
- - @latticexyz/schema-type@2.0.2
80
- - @latticexyz/utils@2.0.2
81
-
82
- ## 2.0.1
83
-
84
- ### Patch Changes
85
-
86
- - @latticexyz/schema-type@2.0.1
87
- - @latticexyz/utils@2.0.1
88
-
89
- ## 2.0.0
90
-
91
- ### Minor Changes
92
-
93
- - c14f8bf1e: - Moved `createActionSystem` from `std-client` to `recs` package and updated it to better support v2 sync stack.
94
-
95
- If you want to use `createActionSystem` alongside `syncToRecs`, you'll need to pass in arguments like so:
96
-
97
- ```ts
98
- import { syncToRecs } from "@latticexyz/store-sync/recs";
99
- import { createActionSystem } from "@latticexyz/recs/deprecated";
100
- import { from, mergeMap } from "rxjs";
101
-
102
- const { blockLogsStorage$, waitForTransaction } = syncToRecs({
103
- world,
104
- ...
105
- });
106
-
107
- const txReduced$ = blockLogsStorage$.pipe(
108
- mergeMap(({ operations }) => from(operations.map((op) => op.log?.transactionHash).filter(isDefined)))
109
- );
110
-
111
- const actionSystem = createActionSystem(world, txReduced$, waitForTransaction);
112
- ```
113
-
114
- - Fixed a bug in `waitForComponentValueIn` that caused the promise to not resolve if the component value was already set when the function was called.
115
- - Fixed a bug in `createActionSystem` that caused optimistic updates to be incorrectly propagated to requirement checks. To fix the bug, you must now pass in the full component object to the action's `updates` instead of just the component name.
116
-
117
- ```diff
118
- actions.add({
119
- updates: () => [
120
- {
121
- - component: "Resource",
122
- + component: Resource,
123
- ...
124
- }
125
- ],
126
- ...
127
- });
128
- ```
129
-
130
- ### Patch Changes
131
-
132
- - ce7125a1b: Removes `solecs` package. These were v1 contracts, now entirely replaced by our v2 tooling. See the [MUD docs](https://mud.dev/) for building with v2 or create a new project from our v2 templates with `pnpm create mud@next your-app-name`.
133
- - 1e2ad78e2: improve RECS error messages for v2 components
134
- - 590542030: TS packages now generate their respective `.d.ts` type definition files for better compatibility when using MUD with `moduleResolution` set to `bundler` or `node16` and fixes issues around missing type declarations for dependent packages.
135
- - 60cfd089f: Templates and examples now use MUD's new sync packages, all built on top of [viem](https://viem.sh/). This greatly speeds up and stabilizes our networking code and improves types throughout.
136
-
137
- These new sync packages come with support for our `recs` package, including `encodeEntity` and `decodeEntity` utilities for composite keys.
138
-
139
- If you're using `store-cache` and `useRow`/`useRows`, you should wait to upgrade until we have a suitable replacement for those libraries. We're working on a [sql.js](https://github.com/sql-js/sql.js/)-powered sync module that will replace `store-cache`.
140
-
141
- **Migrate existing RECS apps to new sync packages**
142
-
143
- As you migrate, you may find some features replaced, removed, or not included by default. Please [open an issue](https://github.com/latticexyz/mud/issues/new) and let us know if we missed anything.
144
-
145
- 1. Add `@latticexyz/store-sync` package to your app's `client` package and make sure `viem` is pinned to version `1.3.1` (otherwise you may get type errors)
146
- 2. In your `supportedChains.ts`, replace `foundry` chain with our new `mudFoundry` chain.
147
-
148
- ```diff
149
- - import { foundry } from "viem/chains";
150
- - import { MUDChain, latticeTestnet } from "@latticexyz/common/chains";
151
- + import { MUDChain, latticeTestnet, mudFoundry } from "@latticexyz/common/chains";
152
-
153
- - export const supportedChains: MUDChain[] = [foundry, latticeTestnet];
154
- + export const supportedChains: MUDChain[] = [mudFoundry, latticeTestnet];
155
- ```
156
-
157
- 3. In `getNetworkConfig.ts`, remove the return type (to let TS infer it for now), remove now-unused config values, and add the viem `chain` object.
158
-
159
- ```diff
160
- - export async function getNetworkConfig(): Promise<NetworkConfig> {
161
- + export async function getNetworkConfig() {
162
- ```
163
-
164
- ```diff
165
- const initialBlockNumber = params.has("initialBlockNumber")
166
- ? Number(params.get("initialBlockNumber"))
167
- - : world?.blockNumber ?? -1; // -1 will attempt to find the block number from RPC
168
- + : world?.blockNumber ?? 0n;
169
- ```
170
-
171
- ```diff
172
- + return {
173
- + privateKey: getBurnerWallet().value,
174
- + chain,
175
- + worldAddress,
176
- + initialBlockNumber,
177
- + faucetServiceUrl: params.get("faucet") ?? chain.faucetUrl,
178
- + };
179
- ```
180
-
181
- 4. In `setupNetwork.ts`, replace `setupMUDV2Network` with `syncToRecs`.
182
-
183
- ```diff
184
- - import { setupMUDV2Network } from "@latticexyz/std-client";
185
- - import { createFastTxExecutor, createFaucetService, getSnapSyncRecords } from "@latticexyz/network";
186
- + import { createFaucetService } from "@latticexyz/network";
187
- + import { createPublicClient, fallback, webSocket, http, createWalletClient, getContract, Hex, parseEther, ClientConfig } from "viem";
188
- + import { encodeEntity, syncToRecs } from "@latticexyz/store-sync/recs";
189
- + import { createBurnerAccount, createContract, transportObserver } from "@latticexyz/common";
190
- ```
191
-
192
- ```diff
193
- - const result = await setupMUDV2Network({
194
- - ...
195
- - });
196
-
197
- + const clientOptions = {
198
- + chain: networkConfig.chain,
199
- + transport: transportObserver(fallback([webSocket(), http()])),
200
- + pollingInterval: 1000,
201
- + } as const satisfies ClientConfig;
202
-
203
- + const publicClient = createPublicClient(clientOptions);
204
-
205
- + const burnerAccount = createBurnerAccount(networkConfig.privateKey as Hex);
206
- + const burnerWalletClient = createWalletClient({
207
- + ...clientOptions,
208
- + account: burnerAccount,
209
- + });
210
-
211
- + const { components, latestBlock$, blockStorageOperations$, waitForTransaction } = await syncToRecs({
212
- + world,
213
- + config: storeConfig,
214
- + address: networkConfig.worldAddress as Hex,
215
- + publicClient,
216
- + components: contractComponents,
217
- + startBlock: BigInt(networkConfig.initialBlockNumber),
218
- + indexerUrl: networkConfig.indexerUrl ?? undefined,
219
- + });
220
-
221
- + const worldContract = createContract({
222
- + address: networkConfig.worldAddress as Hex,
223
- + abi: IWorld__factory.abi,
224
- + publicClient,
225
- + walletClient: burnerWalletClient,
226
- + });
227
- ```
228
-
229
- ```diff
230
- // Request drip from faucet
231
- - const signer = result.network.signer.get();
232
- - if (networkConfig.faucetServiceUrl && signer) {
233
- - const address = await signer.getAddress();
234
- + if (networkConfig.faucetServiceUrl) {
235
- + const address = burnerAccount.address;
236
- ```
237
-
238
- ```diff
239
- const requestDrip = async () => {
240
- - const balance = await signer.getBalance();
241
- + const balance = await publicClient.getBalance({ address });
242
- console.info(`[Dev Faucet]: Player balance -> ${balance}`);
243
- - const lowBalance = balance?.lte(utils.parseEther("1"));
244
- + const lowBalance = balance < parseEther("1");
245
- ```
246
-
247
- You can remove the previous ethers `worldContract`, snap sync code, and fast transaction executor.
248
-
249
- The return of `setupNetwork` is a bit different than before, so you may have to do corresponding app changes.
250
-
251
- ```diff
252
- + return {
253
- + world,
254
- + components,
255
- + playerEntity: encodeEntity({ address: "address" }, { address: burnerWalletClient.account.address }),
256
- + publicClient,
257
- + walletClient: burnerWalletClient,
258
- + latestBlock$,
259
- + blockStorageOperations$,
260
- + waitForTransaction,
261
- + worldContract,
262
- + };
263
- ```
264
-
265
- 5. Update `createSystemCalls` with the new return type of `setupNetwork`.
266
-
267
- ```diff
268
- export function createSystemCalls(
269
- - { worldSend, txReduced$, singletonEntity }: SetupNetworkResult,
270
- + { worldContract, waitForTransaction }: SetupNetworkResult,
271
- { Counter }: ClientComponents
272
- ) {
273
- const increment = async () => {
274
- - const tx = await worldSend("increment", []);
275
- - await awaitStreamValue(txReduced$, (txHash) => txHash === tx.hash);
276
- + const tx = await worldContract.write.increment();
277
- + await waitForTransaction(tx);
278
- return getComponentValue(Counter, singletonEntity);
279
- };
280
- ```
281
-
282
- 6. (optional) If you still need a clock, you can create it with:
283
-
284
- ```ts
285
- import { map, filter } from "rxjs";
286
- import { createClock } from "@latticexyz/network";
287
-
288
- const clock = createClock({
289
- period: 1000,
290
- initialTime: 0,
291
- syncInterval: 5000,
292
- });
293
-
294
- world.registerDisposer(() => clock.dispose());
295
-
296
- latestBlock$
297
- .pipe(
298
- map((block) => Number(block.timestamp) * 1000), // Map to timestamp in ms
299
- filter((blockTimestamp) => blockTimestamp !== clock.lastUpdateTime), // Ignore if the clock was already refreshed with this block
300
- filter((blockTimestamp) => blockTimestamp !== clock.currentTime), // Ignore if the current local timestamp is correct
301
- )
302
- .subscribe(clock.update); // Update the local clock
303
- ```
304
-
305
- If you're using the previous `LoadingState` component, you'll want to migrate to the new `SyncProgress`:
306
-
307
- ```ts
308
- import { SyncStep, singletonEntity } from "@latticexyz/store-sync/recs";
309
-
310
- const syncProgress = useComponentValue(SyncProgress, singletonEntity, {
311
- message: "Connecting",
312
- percentage: 0,
313
- step: SyncStep.INITIALIZE,
314
- });
315
-
316
- if (syncProgress.step === SyncStep.LIVE) {
317
- // we're live!
318
- }
319
- ```
320
-
321
- - afdba793f: Update RECS components with v2 key/value schemas. This helps with encoding/decoding composite keys and strong types for keys/values.
322
-
323
- This may break if you were previously dependent on `component.id`, `component.metadata.componentId`, or `component.metadata.tableId`:
324
-
325
- - `component.id` is now the on-chain `bytes32` hex representation of the table ID
326
- - `component.metadata.componentName` is the table name (e.g. `Position`)
327
- - `component.metadata.tableName` is the namespaced table name (e.g. `myworld:Position`)
328
- - `component.metadata.keySchema` is an object with key names and their corresponding ABI types
329
- - `component.metadata.valueSchema` is an object with field names and their corresponding ABI types
330
-
331
- - Updated dependencies [52182f70d]
332
- - Updated dependencies [aabd30767]
333
- - Updated dependencies [b38c096d]
334
- - Updated dependencies [f99e88987]
335
- - Updated dependencies [48909d151]
336
- - Updated dependencies [b02f9d0e4]
337
- - Updated dependencies [bb91edaa0]
338
- - Updated dependencies [590542030]
339
- - Updated dependencies [f03531d97]
340
- - Updated dependencies [b8a6158d6]
341
- - Updated dependencies [92de59982]
342
- - Updated dependencies [4e4a34150]
343
- - Updated dependencies [535229984]
344
- - Updated dependencies [d7b1c588a]
345
- - @latticexyz/utils@2.0.0
346
- - @latticexyz/schema-type@2.0.0
347
-
348
- ## 2.0.0-next.18
349
-
350
- ### Patch Changes
351
-
352
- - Updated dependencies [b38c096d]
353
- - Updated dependencies [d7b1c588a]
354
- - @latticexyz/schema-type@2.0.0-next.18
355
- - @latticexyz/utils@2.0.0-next.18
356
-
357
- ## 2.0.0-next.17
358
-
359
- ### Patch Changes
360
-
361
- - Updated dependencies [aabd3076]
362
- - @latticexyz/schema-type@2.0.0-next.17
363
- - @latticexyz/utils@2.0.0-next.17
364
-
365
- ## 2.0.0-next.16
366
-
367
- ### Patch Changes
368
-
369
- - @latticexyz/schema-type@2.0.0-next.16
370
- - @latticexyz/utils@2.0.0-next.16
371
-
372
- ## 2.0.0-next.15
373
-
374
- ### Patch Changes
375
-
376
- - 59054203: TS packages now generate their respective `.d.ts` type definition files for better compatibility when using MUD with `moduleResolution` set to `bundler` or `node16` and fixes issues around missing type declarations for dependent packages.
377
- - Updated dependencies [59054203]
378
- - @latticexyz/schema-type@2.0.0-next.15
379
- - @latticexyz/utils@2.0.0-next.15
380
-
381
- ## 2.0.0-next.14
382
-
383
- ### Patch Changes
384
-
385
- - Updated dependencies [bb91edaa]
386
- - @latticexyz/schema-type@2.0.0-next.14
387
- - @latticexyz/utils@2.0.0-next.14
388
-
389
- ## 2.0.0-next.13
390
-
391
- ### Patch Changes
392
-
393
- - Updated dependencies [52182f70]
394
- - @latticexyz/utils@2.0.0-next.13
395
- - @latticexyz/schema-type@2.0.0-next.13
396
-
397
- ## 2.0.0-next.12
398
-
399
- ### Patch Changes
400
-
401
- - @latticexyz/schema-type@2.0.0-next.12
402
- - @latticexyz/utils@2.0.0-next.12
403
-
404
- ## 2.0.0-next.11
405
-
406
- ### Patch Changes
407
-
408
- - Updated dependencies [f99e8898]
409
- - @latticexyz/schema-type@2.0.0-next.11
410
- - @latticexyz/utils@2.0.0-next.11
411
-
412
- ## 2.0.0-next.10
413
-
414
- ### Patch Changes
415
-
416
- - Updated dependencies []:
417
- - @latticexyz/schema-type@2.0.0-next.10
418
- - @latticexyz/utils@2.0.0-next.10
419
-
420
- ## 2.0.0-next.9
421
-
422
- ### Patch Changes
423
-
424
- - Updated dependencies [[`92de5998`](https://github.com/latticexyz/mud/commit/92de59982fb9fc4e00e50c4a5232ed541f3ce71a)]:
425
- - @latticexyz/schema-type@2.0.0-next.9
426
- - @latticexyz/utils@2.0.0-next.9
427
-
428
- ## 2.0.0-next.8
429
-
430
- ### Patch Changes
431
-
432
- - Updated dependencies []:
433
- - @latticexyz/schema-type@2.0.0-next.8
434
- - @latticexyz/utils@2.0.0-next.8
435
-
436
- ## 2.0.0-next.7
437
-
438
- ### Patch Changes
439
-
440
- - Updated dependencies []:
441
- - @latticexyz/schema-type@2.0.0-next.7
442
- - @latticexyz/utils@2.0.0-next.7
443
-
444
- ## 2.0.0-next.6
445
-
446
- ### Patch Changes
447
-
448
- - Updated dependencies []:
449
- - @latticexyz/schema-type@2.0.0-next.6
450
- - @latticexyz/utils@2.0.0-next.6
451
-
452
- ## 2.0.0-next.5
453
-
454
- ### Patch Changes
455
-
456
- - Updated dependencies []:
457
- - @latticexyz/schema-type@2.0.0-next.5
458
- - @latticexyz/utils@2.0.0-next.5
459
-
460
- ## 2.0.0-next.4
461
-
462
- ### Minor Changes
463
-
464
- - [#1351](https://github.com/latticexyz/mud/pull/1351) [`c14f8bf1`](https://github.com/latticexyz/mud/commit/c14f8bf1ec8c199902c12899853ac144aa69bb9c) Thanks [@holic](https://github.com/holic)! - - Moved `createActionSystem` from `std-client` to `recs` package and updated it to better support v2 sync stack.
465
-
466
- If you want to use `createActionSystem` alongside `syncToRecs`, you'll need to pass in arguments like so:
467
-
468
- ```ts
469
- import { syncToRecs } from "@latticexyz/store-sync/recs";
470
- import { createActionSystem } from "@latticexyz/recs/deprecated";
471
- import { from, mergeMap } from "rxjs";
472
-
473
- const { blockLogsStorage$, waitForTransaction } = syncToRecs({
474
- world,
475
- ...
476
- });
477
-
478
- const txReduced$ = blockLogsStorage$.pipe(
479
- mergeMap(({ operations }) => from(operations.map((op) => op.log?.transactionHash).filter(isDefined)))
480
- );
481
-
482
- const actionSystem = createActionSystem(world, txReduced$, waitForTransaction);
483
- ```
484
-
485
- - Fixed a bug in `waitForComponentValueIn` that caused the promise to not resolve if the component value was already set when the function was called.
486
-
487
- - Fixed a bug in `createActionSystem` that caused optimistic updates to be incorrectly propagated to requirement checks. To fix the bug, you must now pass in the full component object to the action's `updates` instead of just the component name.
488
-
489
- ```diff
490
- actions.add({
491
- updates: () => [
492
- {
493
- - component: "Resource",
494
- + component: Resource,
495
- ...
496
- }
497
- ],
498
- ...
499
- });
500
- ```
501
-
502
- ### Patch Changes
503
-
504
- - [#1340](https://github.com/latticexyz/mud/pull/1340) [`ce7125a1`](https://github.com/latticexyz/mud/commit/ce7125a1b97efd3db47c5ea1593d5a37ba143f64) Thanks [@holic](https://github.com/holic)! - Removes `solecs` package. These were v1 contracts, now entirely replaced by our v2 tooling. See the [MUD docs](https://mud.dev/) for building with v2 or create a new project from our v2 templates with `pnpm create mud@next your-app-name`.
505
-
506
- - Updated dependencies []:
507
- - @latticexyz/schema-type@2.0.0-next.4
508
- - @latticexyz/utils@2.0.0-next.4
509
-
510
- ## 2.0.0-next.3
511
-
512
- ### Patch Changes
513
-
514
- - Updated dependencies []:
515
- - @latticexyz/schema-type@2.0.0-next.3
516
- - @latticexyz/utils@2.0.0-next.3
517
-
518
- ## 2.0.0-next.2
519
-
520
- ### Patch Changes
521
-
522
- - Updated dependencies [[`b8a6158d`](https://github.com/latticexyz/mud/commit/b8a6158d63738ebfc1e7eb221909436d050c7e39)]:
523
- - @latticexyz/schema-type@2.0.0-next.2
524
- - @latticexyz/utils@2.0.0-next.2
525
-
526
- ## 2.0.0-next.1
527
-
528
- ### Patch Changes
529
-
530
- - [#1214](https://github.com/latticexyz/mud/pull/1214) [`60cfd089`](https://github.com/latticexyz/mud/commit/60cfd089fc7a17b98864b631d265f36718df35a9) Thanks [@holic](https://github.com/holic)! - Templates and examples now use MUD's new sync packages, all built on top of [viem](https://viem.sh/). This greatly speeds up and stabilizes our networking code and improves types throughout.
531
-
532
- These new sync packages come with support for our `recs` package, including `encodeEntity` and `decodeEntity` utilities for composite keys.
533
-
534
- If you're using `store-cache` and `useRow`/`useRows`, you should wait to upgrade until we have a suitable replacement for those libraries. We're working on a [sql.js](https://github.com/sql-js/sql.js/)-powered sync module that will replace `store-cache`.
535
-
536
- **Migrate existing RECS apps to new sync packages**
537
-
538
- As you migrate, you may find some features replaced, removed, or not included by default. Please [open an issue](https://github.com/latticexyz/mud/issues/new) and let us know if we missed anything.
539
-
540
- 1. Add `@latticexyz/store-sync` package to your app's `client` package and make sure `viem` is pinned to version `1.3.1` (otherwise you may get type errors)
541
-
542
- 2. In your `supportedChains.ts`, replace `foundry` chain with our new `mudFoundry` chain.
543
-
544
- ```diff
545
- - import { foundry } from "viem/chains";
546
- - import { MUDChain, latticeTestnet } from "@latticexyz/common/chains";
547
- + import { MUDChain, latticeTestnet, mudFoundry } from "@latticexyz/common/chains";
548
-
549
- - export const supportedChains: MUDChain[] = [foundry, latticeTestnet];
550
- + export const supportedChains: MUDChain[] = [mudFoundry, latticeTestnet];
551
- ```
552
-
553
- 3. In `getNetworkConfig.ts`, remove the return type (to let TS infer it for now), remove now-unused config values, and add the viem `chain` object.
554
-
555
- ```diff
556
- - export async function getNetworkConfig(): Promise<NetworkConfig> {
557
- + export async function getNetworkConfig() {
558
- ```
559
-
560
- ```diff
561
- const initialBlockNumber = params.has("initialBlockNumber")
562
- ? Number(params.get("initialBlockNumber"))
563
- - : world?.blockNumber ?? -1; // -1 will attempt to find the block number from RPC
564
- + : world?.blockNumber ?? 0n;
565
- ```
566
-
567
- ```diff
568
- + return {
569
- + privateKey: getBurnerWallet().value,
570
- + chain,
571
- + worldAddress,
572
- + initialBlockNumber,
573
- + faucetServiceUrl: params.get("faucet") ?? chain.faucetUrl,
574
- + };
575
- ```
576
-
577
- 4. In `setupNetwork.ts`, replace `setupMUDV2Network` with `syncToRecs`.
578
-
579
- ```diff
580
- - import { setupMUDV2Network } from "@latticexyz/std-client";
581
- - import { createFastTxExecutor, createFaucetService, getSnapSyncRecords } from "@latticexyz/network";
582
- + import { createFaucetService } from "@latticexyz/network";
583
- + import { createPublicClient, fallback, webSocket, http, createWalletClient, getContract, Hex, parseEther, ClientConfig } from "viem";
584
- + import { encodeEntity, syncToRecs } from "@latticexyz/store-sync/recs";
585
- + import { createBurnerAccount, createContract, transportObserver } from "@latticexyz/common";
586
- ```
587
-
588
- ```diff
589
- - const result = await setupMUDV2Network({
590
- - ...
591
- - });
592
-
593
- + const clientOptions = {
594
- + chain: networkConfig.chain,
595
- + transport: transportObserver(fallback([webSocket(), http()])),
596
- + pollingInterval: 1000,
597
- + } as const satisfies ClientConfig;
598
-
599
- + const publicClient = createPublicClient(clientOptions);
600
-
601
- + const burnerAccount = createBurnerAccount(networkConfig.privateKey as Hex);
602
- + const burnerWalletClient = createWalletClient({
603
- + ...clientOptions,
604
- + account: burnerAccount,
605
- + });
606
-
607
- + const { components, latestBlock$, blockStorageOperations$, waitForTransaction } = await syncToRecs({
608
- + world,
609
- + config: storeConfig,
610
- + address: networkConfig.worldAddress as Hex,
611
- + publicClient,
612
- + components: contractComponents,
613
- + startBlock: BigInt(networkConfig.initialBlockNumber),
614
- + indexerUrl: networkConfig.indexerUrl ?? undefined,
615
- + });
616
-
617
- + const worldContract = createContract({
618
- + address: networkConfig.worldAddress as Hex,
619
- + abi: IWorld__factory.abi,
620
- + publicClient,
621
- + walletClient: burnerWalletClient,
622
- + });
623
- ```
624
-
625
- ```diff
626
- // Request drip from faucet
627
- - const signer = result.network.signer.get();
628
- - if (networkConfig.faucetServiceUrl && signer) {
629
- - const address = await signer.getAddress();
630
- + if (networkConfig.faucetServiceUrl) {
631
- + const address = burnerAccount.address;
632
- ```
633
-
634
- ```diff
635
- const requestDrip = async () => {
636
- - const balance = await signer.getBalance();
637
- + const balance = await publicClient.getBalance({ address });
638
- console.info(`[Dev Faucet]: Player balance -> ${balance}`);
639
- - const lowBalance = balance?.lte(utils.parseEther("1"));
640
- + const lowBalance = balance < parseEther("1");
641
- ```
642
-
643
- You can remove the previous ethers `worldContract`, snap sync code, and fast transaction executor.
644
-
645
- The return of `setupNetwork` is a bit different than before, so you may have to do corresponding app changes.
646
-
647
- ```diff
648
- + return {
649
- + world,
650
- + components,
651
- + playerEntity: encodeEntity({ address: "address" }, { address: burnerWalletClient.account.address }),
652
- + publicClient,
653
- + walletClient: burnerWalletClient,
654
- + latestBlock$,
655
- + blockStorageOperations$,
656
- + waitForTransaction,
657
- + worldContract,
658
- + };
659
- ```
660
-
661
- 5. Update `createSystemCalls` with the new return type of `setupNetwork`.
662
-
663
- ```diff
664
- export function createSystemCalls(
665
- - { worldSend, txReduced$, singletonEntity }: SetupNetworkResult,
666
- + { worldContract, waitForTransaction }: SetupNetworkResult,
667
- { Counter }: ClientComponents
668
- ) {
669
- const increment = async () => {
670
- - const tx = await worldSend("increment", []);
671
- - await awaitStreamValue(txReduced$, (txHash) => txHash === tx.hash);
672
- + const tx = await worldContract.write.increment();
673
- + await waitForTransaction(tx);
674
- return getComponentValue(Counter, singletonEntity);
675
- };
676
- ```
677
-
678
- 6. (optional) If you still need a clock, you can create it with:
679
-
680
- ```ts
681
- import { map, filter } from "rxjs";
682
- import { createClock } from "@latticexyz/network";
683
-
684
- const clock = createClock({
685
- period: 1000,
686
- initialTime: 0,
687
- syncInterval: 5000,
688
- });
689
-
690
- world.registerDisposer(() => clock.dispose());
691
-
692
- latestBlock$
693
- .pipe(
694
- map((block) => Number(block.timestamp) * 1000), // Map to timestamp in ms
695
- filter((blockTimestamp) => blockTimestamp !== clock.lastUpdateTime), // Ignore if the clock was already refreshed with this block
696
- filter((blockTimestamp) => blockTimestamp !== clock.currentTime), // Ignore if the current local timestamp is correct
697
- )
698
- .subscribe(clock.update); // Update the local clock
699
- ```
700
-
701
- If you're using the previous `LoadingState` component, you'll want to migrate to the new `SyncProgress`:
702
-
703
- ```ts
704
- import { SyncStep, singletonEntity } from "@latticexyz/store-sync/recs";
705
-
706
- const syncProgress = useComponentValue(SyncProgress, singletonEntity, {
707
- message: "Connecting",
708
- percentage: 0,
709
- step: SyncStep.INITIALIZE,
710
- });
711
-
712
- if (syncProgress.step === SyncStep.LIVE) {
713
- // we're live!
714
- }
715
- ```
716
-
717
- - [#1195](https://github.com/latticexyz/mud/pull/1195) [`afdba793`](https://github.com/latticexyz/mud/commit/afdba793fd84abf17eef5ef59dd56fabe353c8bd) Thanks [@holic](https://github.com/holic)! - Update RECS components with v2 key/value schemas. This helps with encoding/decoding composite keys and strong types for keys/values.
718
-
719
- This may break if you were previously dependent on `component.id`, `component.metadata.componentId`, or `component.metadata.tableId`:
720
-
721
- - `component.id` is now the on-chain `bytes32` hex representation of the table ID
722
- - `component.metadata.componentName` is the table name (e.g. `Position`)
723
- - `component.metadata.tableName` is the namespaced table name (e.g. `myworld:Position`)
724
- - `component.metadata.keySchema` is an object with key names and their corresponding ABI types
725
- - `component.metadata.valueSchema` is an object with field names and their corresponding ABI types
726
-
727
- - Updated dependencies [[`b02f9d0e`](https://github.com/latticexyz/mud/commit/b02f9d0e43089e5f9b46d817ea2032ce0a1b0b07)]:
728
- - @latticexyz/schema-type@2.0.0-next.1
729
- - @latticexyz/utils@2.0.0-next.1
730
-
731
- ## 2.0.0-next.0
732
-
733
- ### Patch Changes
734
-
735
- - [#1167](https://github.com/latticexyz/mud/pull/1167) [`1e2ad78e`](https://github.com/latticexyz/mud/commit/1e2ad78e277b551dd1b8efb0e4438fb10441644c) Thanks [@holic](https://github.com/holic)! - improve RECS error messages for v2 components
736
-
737
- - Updated dependencies [[`48909d15`](https://github.com/latticexyz/mud/commit/48909d151b3dfceab128c120bc6bb77de53c456b), [`f03531d9`](https://github.com/latticexyz/mud/commit/f03531d97c999954a626ef63bc5bbae51a7b90f3), [`4e4a3415`](https://github.com/latticexyz/mud/commit/4e4a34150aeae988c8e61e25d55c227afb6c2d4b), [`53522998`](https://github.com/latticexyz/mud/commit/535229984565539e6168042150b45fe0f9b48b0f)]:
738
- - @latticexyz/schema-type@2.0.0-next.0
739
- - @latticexyz/utils@2.0.0-next.0
740
-
741
- All notable changes to this project will be documented in this file.
742
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
743
-
744
- # [1.42.0](https://github.com/latticexyz/mud/compare/v1.41.0...v1.42.0) (2023-04-13)
745
-
746
- ### Bug Fixes
747
-
748
- - **recs,cli:** fix bigint in recs and tsgen ([#563](https://github.com/latticexyz/mud/issues/563)) ([29fefae](https://github.com/latticexyz/mud/commit/29fefae43d96b107a66b9fd365b566cb8c466f8b))
749
- - **recs:** overridden component update stream should return the overridden component ([#544](https://github.com/latticexyz/mud/issues/544)) ([9af097d](https://github.com/latticexyz/mud/commit/9af097de7914d0c43b7d65ca6271260439bc6bc4))
750
-
751
- ### Features
752
-
753
- - **cli/recs/std-client:** add ts definitions generator ([#536](https://github.com/latticexyz/mud/issues/536)) ([dd1efa6](https://github.com/latticexyz/mud/commit/dd1efa6a1ebd2b3c62080d1b191633d7b0072916))
754
- - **cli:** improve storeArgument, refactor cli ([#500](https://github.com/latticexyz/mud/issues/500)) ([bb68670](https://github.com/latticexyz/mud/commit/bb686702da75401d9ea4a8c8effcf3a15fa53b49))
755
- - **cli:** use abi types in store config ([#507](https://github.com/latticexyz/mud/issues/507)) ([12a739f](https://github.com/latticexyz/mud/commit/12a739f953d0929f7ffc8657fa22bc9e68201d75))
756
- - **network,recs,std-client:** support StoreSetField before StoreSetRecord ([#581](https://github.com/latticexyz/mud/issues/581)) ([f259f90](https://github.com/latticexyz/mud/commit/f259f90e1c561163a6675f4ec51b1659681d880b)), closes [#479](https://github.com/latticexyz/mud/issues/479) [#523](https://github.com/latticexyz/mud/issues/523)
757
- - **network:** integrate initial sync from MODE ([#493](https://github.com/latticexyz/mud/issues/493)) ([7d06c1b](https://github.com/latticexyz/mud/commit/7d06c1b5cf00df627000c907e78f60d3cd2415cd))
758
- - v2 event decoding ([#415](https://github.com/latticexyz/mud/issues/415)) ([374ed54](https://github.com/latticexyz/mud/commit/374ed542c3387a4ec2b36ab68ae534419aa58763))
759
-
760
- # [1.41.0](https://github.com/latticexyz/mud/compare/v1.40.0...v1.41.0) (2023-03-09)
761
-
762
- **Note:** Version bump only for package @latticexyz/recs
763
-
764
- # [1.40.0](https://github.com/latticexyz/mud/compare/v1.39.0...v1.40.0) (2023-03-03)
765
-
766
- **Note:** Version bump only for package @latticexyz/recs
767
-
768
- # [1.39.0](https://github.com/latticexyz/mud/compare/v1.38.0...v1.39.0) (2023-02-22)
769
-
770
- **Note:** Version bump only for package @latticexyz/recs
771
-
772
- # [1.38.0](https://github.com/latticexyz/mud/compare/v1.37.1...v1.38.0) (2023-02-22)
773
-
774
- **Note:** Version bump only for package @latticexyz/recs
775
-
776
- ## [1.37.1](https://github.com/latticexyz/mud/compare/v1.37.0...v1.37.1) (2023-02-17)
777
-
778
- **Note:** Version bump only for package @latticexyz/recs
779
-
780
- # [1.37.0](https://github.com/latticexyz/mud/compare/v1.36.1...v1.37.0) (2023-02-16)
781
-
782
- ### Bug Fixes
783
-
784
- - package entry points, peer dep versions ([#409](https://github.com/latticexyz/mud/issues/409)) ([66a7fd6](https://github.com/latticexyz/mud/commit/66a7fd6f74620ce02c60e3d55701d4740cc65251))
785
-
786
- ### Reverts
787
-
788
- - Revert "chore(release): publish v1.37.0" ([c934f53](https://github.com/latticexyz/mud/commit/c934f5388c1e56f2fe6390fdda30f5b9b1ea1c20))
789
-
790
- ## [1.36.1](https://github.com/latticexyz/mud/compare/v1.36.0...v1.36.1) (2023-02-16)
791
-
792
- **Note:** Version bump only for package @latticexyz/recs
793
-
794
- # [1.35.0](https://github.com/latticexyz/mud/compare/v1.34.0...v1.35.0) (2023-02-15)
795
-
796
- **Note:** Version bump only for package @latticexyz/recs
797
-
798
- # [1.34.0](https://github.com/latticexyz/mud/compare/v1.33.1...v1.34.0) (2023-01-29)
799
-
800
- **Note:** Version bump only for package @latticexyz/recs
801
-
802
- ## [1.33.1](https://github.com/latticexyz/mud/compare/v1.33.0...v1.33.1) (2023-01-12)
803
-
804
- **Note:** Version bump only for package @latticexyz/recs
805
-
806
- # [1.33.0](https://github.com/latticexyz/mud/compare/v1.32.0...v1.33.0) (2023-01-12)
807
-
808
- **Note:** Version bump only for package @latticexyz/recs
809
-
810
- # [1.32.0](https://github.com/latticexyz/mud/compare/v1.31.3...v1.32.0) (2023-01-06)
811
-
812
- ### Features
813
-
814
- - **ecs-browser:** replace react syntax highlighter with shiki and bundler with tsup ([#262](https://github.com/latticexyz/mud/issues/262)) ([915506d](https://github.com/latticexyz/mud/commit/915506d7e7ca0b5a68afb646388bb9d4bb689879))
815
-
816
- ## [1.31.3](https://github.com/latticexyz/mud/compare/v1.31.2...v1.31.3) (2022-12-16)
817
-
818
- **Note:** Version bump only for package @latticexyz/recs
819
-
820
- ## [1.31.2](https://github.com/latticexyz/mud/compare/v1.31.1...v1.31.2) (2022-12-15)
821
-
822
- **Note:** Version bump only for package @latticexyz/recs
823
-
824
- ## [1.31.1](https://github.com/latticexyz/mud/compare/v1.31.0...v1.31.1) (2022-12-15)
825
-
826
- ### Bug Fixes
827
-
828
- - new entities should be included in overrides ([#290](https://github.com/latticexyz/mud/issues/290)) ([878ee2a](https://github.com/latticexyz/mud/commit/878ee2a5718d73221686dfe7de1c31a0f16347d7))
829
-
830
- # [1.31.0](https://github.com/latticexyz/mud/compare/v1.30.1...v1.31.0) (2022-12-14)
831
-
832
- **Note:** Version bump only for package @latticexyz/recs
833
-
834
- ## [1.30.1](https://github.com/latticexyz/mud/compare/v1.30.0...v1.30.1) (2022-12-02)
835
-
836
- **Note:** Version bump only for package @latticexyz/recs
837
-
838
- # [1.30.0](https://github.com/latticexyz/mud/compare/v1.29.0...v1.30.0) (2022-12-02)
839
-
840
- **Note:** Version bump only for package @latticexyz/recs
841
-
842
- # [1.29.0](https://github.com/latticexyz/mud/compare/v1.28.1...v1.29.0) (2022-11-29)
843
-
844
- **Note:** Version bump only for package @latticexyz/recs
845
-
846
- ## [1.28.1](https://github.com/latticexyz/mud/compare/v1.28.0...v1.28.1) (2022-11-24)
847
-
848
- ### Bug Fixes
849
-
850
- - typescript errors ([#253](https://github.com/latticexyz/mud/issues/253)) ([83e0c7a](https://github.com/latticexyz/mud/commit/83e0c7a1eda900d254a73115446c4ce38b531645))
851
-
852
- # [1.28.0](https://github.com/latticexyz/mud/compare/v1.27.1...v1.28.0) (2022-11-20)
853
-
854
- **Note:** Version bump only for package @latticexyz/recs
855
-
856
- # [1.26.0](https://github.com/latticexyz/mud/compare/v1.25.1...v1.26.0) (2022-11-07)
857
-
858
- **Note:** Version bump only for package @latticexyz/recs
859
-
860
- ## [1.25.1](https://github.com/latticexyz/mud/compare/v1.25.0...v1.25.1) (2022-11-03)
861
-
862
- **Note:** Version bump only for package @latticexyz/recs
863
-
864
- # [1.25.0](https://github.com/latticexyz/mud/compare/v1.24.1...v1.25.0) (2022-11-03)
865
-
866
- **Note:** Version bump only for package @latticexyz/recs
867
-
868
- ## [1.24.1](https://github.com/latticexyz/mud/compare/v1.24.0...v1.24.1) (2022-10-29)
869
-
870
- **Note:** Version bump only for package @latticexyz/recs
871
-
872
- # [1.24.0](https://github.com/latticexyz/mud/compare/v1.23.1...v1.24.0) (2022-10-28)
873
-
874
- **Note:** Version bump only for package @latticexyz/recs
875
-
876
- ## [1.23.1](https://github.com/latticexyz/mud/compare/v1.23.0...v1.23.1) (2022-10-28)
877
-
878
- **Note:** Version bump only for package @latticexyz/recs
879
-
880
- # [1.23.0](https://github.com/latticexyz/mud/compare/v1.22.0...v1.23.0) (2022-10-26)
881
-
882
- **Note:** Version bump only for package @latticexyz/recs
883
-
884
- # [1.22.0](https://github.com/latticexyz/mud/compare/v1.21.0...v1.22.0) (2022-10-26)
885
-
886
- **Note:** Version bump only for package @latticexyz/recs
887
-
888
- # [1.21.0](https://github.com/latticexyz/mud/compare/v1.20.0...v1.21.0) (2022-10-26)
889
-
890
- **Note:** Version bump only for package @latticexyz/recs
891
-
892
- # [1.20.0](https://github.com/latticexyz/mud/compare/v1.19.0...v1.20.0) (2022-10-22)
893
-
894
- ### Features
895
-
896
- - **recs:** add util to clear cache of local cache component ([#217](https://github.com/latticexyz/mud/issues/217)) ([30a5868](https://github.com/latticexyz/mud/commit/30a5868f86a0d9e7a8de92f79c286841125f8ca7))
897
-
898
- # [1.19.0](https://github.com/latticexyz/mud/compare/v1.18.0...v1.19.0) (2022-10-21)
899
-
900
- **Note:** Version bump only for package @latticexyz/recs
901
-
902
- # [1.18.0](https://github.com/latticexyz/mud/compare/v1.17.0...v1.18.0) (2022-10-21)
903
-
904
- **Note:** Version bump only for package @latticexyz/recs
905
-
906
- # [1.17.0](https://github.com/latticexyz/mud/compare/v1.16.0...v1.17.0) (2022-10-19)
907
-
908
- **Note:** Version bump only for package @latticexyz/recs
909
-
910
- # [1.16.0](https://github.com/latticexyz/mud/compare/v1.15.0...v1.16.0) (2022-10-19)
911
-
912
- **Note:** Version bump only for package @latticexyz/recs
913
-
914
- # [1.15.0](https://github.com/latticexyz/mud/compare/v1.14.2...v1.15.0) (2022-10-18)
915
-
916
- **Note:** Version bump only for package @latticexyz/recs
917
-
918
- ## [1.14.2](https://github.com/latticexyz/mud/compare/v1.14.1...v1.14.2) (2022-10-18)
919
-
920
- **Note:** Version bump only for package @latticexyz/recs
921
-
922
- ## [1.14.1](https://github.com/latticexyz/mud/compare/v1.14.0...v1.14.1) (2022-10-18)
923
-
924
- **Note:** Version bump only for package @latticexyz/recs
925
-
926
- # [1.14.0](https://github.com/latticexyz/mud/compare/v1.13.0...v1.14.0) (2022-10-18)
927
-
928
- ### Features
929
-
930
- - expose registerComponent method from setupMUDNetwork ([#207](https://github.com/latticexyz/mud/issues/207)) ([4b078bd](https://github.com/latticexyz/mud/commit/4b078bd93c14dfbb1b06c5ca8bc92dee2e8dcfea))
931
-
932
- # [1.13.0](https://github.com/latticexyz/mud/compare/v1.12.0...v1.13.0) (2022-10-15)
933
-
934
- **Note:** Version bump only for package @latticexyz/recs
935
-
936
- # [1.12.0](https://github.com/latticexyz/mud/compare/v1.11.0...v1.12.0) (2022-10-12)
937
-
938
- **Note:** Version bump only for package @latticexyz/recs
939
-
940
- # [1.11.0](https://github.com/latticexyz/mud/compare/v1.10.0...v1.11.0) (2022-10-11)
941
-
942
- **Note:** Version bump only for package @latticexyz/recs
943
-
944
- # [1.10.0](https://github.com/latticexyz/mud/compare/v1.9.0...v1.10.0) (2022-10-11)
945
-
946
- **Note:** Version bump only for package @latticexyz/recs
947
-
948
- # [1.9.0](https://github.com/latticexyz/mud/compare/v1.8.0...v1.9.0) (2022-10-11)
949
-
950
- ### Bug Fixes
951
-
952
- - **solecs): only allow components to register their own updates, feat(std-client:** add support for multiple overrides per component per action ([#199](https://github.com/latticexyz/mud/issues/199)) ([d8dd63e](https://github.com/latticexyz/mud/commit/d8dd63e8055c603d5df41ad47765a286d800c529))
953
-
954
- # [1.8.0](https://github.com/latticexyz/mud/compare/v1.7.1...v1.8.0) (2022-10-07)
955
-
956
- **Note:** Version bump only for package @latticexyz/recs
957
-
958
- ## [1.7.1](https://github.com/latticexyz/mud/compare/v1.7.0...v1.7.1) (2022-10-06)
959
-
960
- **Note:** Version bump only for package @latticexyz/recs
961
-
962
- # [1.7.0](https://github.com/latticexyz/mud/compare/v1.6.0...v1.7.0) (2022-10-06)
963
-
964
- **Note:** Version bump only for package @latticexyz/recs
965
-
966
- # [1.6.0](https://github.com/latticexyz/mud/compare/v1.5.1...v1.6.0) (2022-10-04)
967
-
968
- ### Bug Fixes
969
-
970
- - make OverridableComponent conform with Component type ([#180](https://github.com/latticexyz/mud/issues/180)) ([c9d2c31](https://github.com/latticexyz/mud/commit/c9d2c311aa1c86d9bcabdf67eee598c264618ad0))
971
-
972
- ## [1.5.1](https://github.com/latticexyz/mud/compare/v1.5.0...v1.5.1) (2022-10-03)
973
-
974
- **Note:** Version bump only for package @latticexyz/recs
975
-
976
- # [1.5.0](https://github.com/latticexyz/mud/compare/v1.4.1...v1.5.0) (2022-10-03)
977
-
978
- **Note:** Version bump only for package @latticexyz/recs
979
-
980
- ## [1.4.1](https://github.com/latticexyz/mud/compare/v1.4.0...v1.4.1) (2022-10-03)
981
-
982
- **Note:** Version bump only for package @latticexyz/recs
983
-
984
- # [1.4.0](https://github.com/latticexyz/mud/compare/v1.3.0...v1.4.0) (2022-10-03)
985
-
986
- **Note:** Version bump only for package @latticexyz/recs
987
-
988
- # [1.3.0](https://github.com/latticexyz/mud/compare/v1.2.0...v1.3.0) (2022-09-30)
989
-
990
- ### Bug Fixes
991
-
992
- - **recs:** change internal query behavior to match previous version ([47b8834](https://github.com/latticexyz/mud/commit/47b8834ce8d88f4b79febbfe94dbfb79def6d2b8))
993
-
994
- ### Features
995
-
996
- - **recs:** add local cache component ([#169](https://github.com/latticexyz/mud/issues/169)) ([09058f6](https://github.com/latticexyz/mud/commit/09058f69a7d6d743afefc80da2c06020ff3d1a56))
997
- - **recs:** allow multiple subscribers per query update$ ([6d13531](https://github.com/latticexyz/mud/commit/6d135314225f211814272e325fa8ab89952241ab))
998
-
999
- # [1.2.0](https://github.com/latticexyz/mud/compare/v1.1.0...v1.2.0) (2022-09-29)
1000
-
1001
- **Note:** Version bump only for package @latticexyz/recs
1002
-
1003
- # [1.1.0](https://github.com/latticexyz/mud/compare/v1.0.0...v1.1.0) (2022-09-28)
1004
-
1005
- **Note:** Version bump only for package @latticexyz/recs
1006
-
1007
- # [1.0.0](https://github.com/latticexyz/mud/compare/v0.16.4...v1.0.0) (2022-09-27)
1008
-
1009
- **Note:** Version bump only for package @latticexyz/recs
1010
-
1011
- ## [0.16.4](https://github.com/latticexyz/mud/compare/v0.16.3...v0.16.4) (2022-09-26)
1012
-
1013
- **Note:** Version bump only for package @latticexyz/recs
1014
-
1015
- ## [0.16.3](https://github.com/latticexyz/mud/compare/v0.16.2...v0.16.3) (2022-09-26)
1016
-
1017
- **Note:** Version bump only for package @latticexyz/recs
1018
-
1019
- ## [0.16.2](https://github.com/latticexyz/mud/compare/v0.16.1...v0.16.2) (2022-09-26)
1020
-
1021
- **Note:** Version bump only for package @latticexyz/recs
1022
-
1023
- ## [0.16.1](https://github.com/latticexyz/mud/compare/v0.16.0...v0.16.1) (2022-09-26)
1024
-
1025
- **Note:** Version bump only for package @latticexyz/recs
1026
-
1027
- # [0.16.0](https://github.com/latticexyz/mud/compare/v0.15.1...v0.16.0) (2022-09-26)
1028
-
1029
- ### Features
1030
-
1031
- - **recs:** add support for custom type in component ([#158](https://github.com/latticexyz/mud/issues/158)) ([fdc781d](https://github.com/latticexyz/mud/commit/fdc781d851147f2a98cbe95e89789a3c0ee226ca))
1032
-
1033
- ## [0.15.1](https://github.com/latticexyz/mud/compare/v0.15.0...v0.15.1) (2022-09-23)
1034
-
1035
- **Note:** Version bump only for package @latticexyz/recs
1036
-
1037
- # [0.15.0](https://github.com/latticexyz/mud/compare/v0.14.2...v0.15.0) (2022-09-21)
1038
-
1039
- **Note:** Version bump only for package @latticexyz/recs
1040
-
1041
- ## [0.14.2](https://github.com/latticexyz/mud/compare/v0.14.1...v0.14.2) (2022-09-21)
1042
-
1043
- **Note:** Version bump only for package @latticexyz/recs
1044
-
1045
- ## [0.14.1](https://github.com/latticexyz/mud/compare/v0.14.0...v0.14.1) (2022-09-21)
1046
-
1047
- **Note:** Version bump only for package @latticexyz/recs
1048
-
1049
- # [0.14.0](https://github.com/latticexyz/mud/compare/v0.13.0...v0.14.0) (2022-09-20)
1050
-
1051
- **Note:** Version bump only for package @latticexyz/recs
1052
-
1053
- # [0.13.0](https://github.com/latticexyz/mud/compare/v0.12.0...v0.13.0) (2022-09-19)
1054
-
1055
- **Note:** Version bump only for package @latticexyz/recs
1056
-
1057
- # [0.12.0](https://github.com/latticexyz/mud/compare/v0.11.1...v0.12.0) (2022-09-16)
1058
-
1059
- **Note:** Version bump only for package @latticexyz/recs
1060
-
1061
- ## [0.11.1](https://github.com/latticexyz/mud/compare/v0.11.0...v0.11.1) (2022-09-15)
1062
-
1063
- ### Bug Fixes
1064
-
1065
- - do not run prepack multiple times when publishing ([4f6f4c3](https://github.com/latticexyz/mud/commit/4f6f4c35a53c105951b32a071e47a748b2502cda))
1066
-
1067
- # [0.11.0](https://github.com/latticexyz/mud/compare/v0.10.0...v0.11.0) (2022-09-15)
1068
-
1069
- **Note:** Version bump only for package @latticexyz/recs
1070
-
1071
- # [0.10.0](https://github.com/latticexyz/mud/compare/v0.9.0...v0.10.0) (2022-09-14)
1072
-
1073
- **Note:** Version bump only for package @latticexyz/recs
1074
-
1075
- # [0.9.0](https://github.com/latticexyz/mud/compare/v0.8.1...v0.9.0) (2022-09-13)
1076
-
1077
- **Note:** Version bump only for package @latticexyz/recs
1078
-
1079
- ## [0.8.1](https://github.com/latticexyz/mud/compare/v0.8.0...v0.8.1) (2022-08-22)
1080
-
1081
- **Note:** Version bump only for package @latticexyz/recs
1082
-
1083
- # [0.8.0](https://github.com/latticexyz/mud/compare/v0.7.0...v0.8.0) (2022-08-22)
1084
-
1085
- ### Bug Fixes
1086
-
1087
- - fix mud.dev build and improve responsiveness ([#134](https://github.com/latticexyz/mud/issues/134)) ([a3f2b24](https://github.com/latticexyz/mud/commit/a3f2b2438203697f1dd9f8710b15caa5cd83e40d))
1088
-
1089
- ### Features
1090
-
1091
- - add mud.dev ([#133](https://github.com/latticexyz/mud/issues/133)) ([302588c](https://github.com/latticexyz/mud/commit/302588cbbab2803396b894bc006d13e6ac943da9))
1092
-
1093
- # [0.7.0](https://github.com/latticexyz/mud/compare/v0.6.0...v0.7.0) (2022-08-19)
1094
-
1095
- **Note:** Version bump only for package @latticexyz/recs
1096
-
1097
- # [0.6.0](https://github.com/latticexyz/mud/compare/v0.5.1...v0.6.0) (2022-08-15)
1098
-
1099
- **Note:** Version bump only for package @latticexyz/recs
1100
-
1101
- ## [0.5.1](https://github.com/latticexyz/mud/compare/v0.5.0...v0.5.1) (2022-08-05)
1102
-
1103
- **Note:** Version bump only for package @latticexyz/recs
1104
-
1105
- # [0.5.0](https://github.com/latticexyz/mud/compare/v0.4.3...v0.5.0) (2022-08-05)
1106
-
1107
- ### Bug Fixes
1108
-
1109
- - better getComponentValueStrict error message, small std-client fixes ([#121](https://github.com/latticexyz/mud/issues/121)) ([5c78b82](https://github.com/latticexyz/mud/commit/5c78b82a88a9d50091bf3c4e65100eb3cb6230b2))
1110
-
1111
- ## [0.4.3](https://github.com/latticexyz/mud/compare/v0.4.2...v0.4.3) (2022-07-30)
1112
-
1113
- **Note:** Version bump only for package @latticexyz/recs
1114
-
1115
- ## [0.4.2](https://github.com/latticexyz/mud/compare/v0.4.1...v0.4.2) (2022-07-29)
1116
-
1117
- **Note:** Version bump only for package @latticexyz/recs
1118
-
1119
- ## [0.4.1](https://github.com/latticexyz/mud/compare/v0.4.0...v0.4.1) (2022-07-29)
1120
-
1121
- **Note:** Version bump only for package @latticexyz/recs
1122
-
1123
- # [0.4.0](https://github.com/latticexyz/mud/compare/v0.3.2...v0.4.0) (2022-07-29)
1124
-
1125
- ### Bug Fixes
1126
-
1127
- - **recs:** fix fragment types in system definitions ([#109](https://github.com/latticexyz/mud/issues/109)) ([c74f393](https://github.com/latticexyz/mud/commit/c74f393255af46336e9823b08a2aa7f366cad866))
1128
-
1129
- ### Features
1130
-
1131
- - allow component overrides to be null ([f9baf44](https://github.com/latticexyz/mud/commit/f9baf446e3ddb346792b169bb0942b41c60ac9fb))
1132
-
1133
- ## [0.3.2](https://github.com/latticexyz/mud/compare/v0.3.1...v0.3.2) (2022-07-26)
1134
-
1135
- **Note:** Version bump only for package @latticexyz/recs
1136
-
1137
- ## [0.3.1](https://github.com/latticexyz/mud/compare/v0.3.0...v0.3.1) (2022-07-26)
1138
-
1139
- **Note:** Version bump only for package @latticexyz/recs
1140
-
1141
- # [0.3.0](https://github.com/latticexyz/mud/compare/v0.2.0...v0.3.0) (2022-07-26)
1142
-
1143
- ### Features
1144
-
1145
- - mudwar prototype (nyc sprint 2) ([#59](https://github.com/latticexyz/mud/issues/59)) ([a3db20e](https://github.com/latticexyz/mud/commit/a3db20e14c641b8b456775ee191eca6f016d47f5)), closes [#58](https://github.com/latticexyz/mud/issues/58) [#61](https://github.com/latticexyz/mud/issues/61) [#64](https://github.com/latticexyz/mud/issues/64) [#62](https://github.com/latticexyz/mud/issues/62) [#66](https://github.com/latticexyz/mud/issues/66) [#69](https://github.com/latticexyz/mud/issues/69) [#72](https://github.com/latticexyz/mud/issues/72) [#73](https://github.com/latticexyz/mud/issues/73) [#74](https://github.com/latticexyz/mud/issues/74) [#76](https://github.com/latticexyz/mud/issues/76) [#75](https://github.com/latticexyz/mud/issues/75) [#77](https://github.com/latticexyz/mud/issues/77) [#78](https://github.com/latticexyz/mud/issues/78) [#79](https://github.com/latticexyz/mud/issues/79) [#80](https://github.com/latticexyz/mud/issues/80) [#82](https://github.com/latticexyz/mud/issues/82) [#86](https://github.com/latticexyz/mud/issues/86) [#83](https://github.com/latticexyz/mud/issues/83) [#81](https://github.com/latticexyz/mud/issues/81) [#85](https://github.com/latticexyz/mud/issues/85) [#84](https://github.com/latticexyz/mud/issues/84) [#87](https://github.com/latticexyz/mud/issues/87) [#91](https://github.com/latticexyz/mud/issues/91) [#88](https://github.com/latticexyz/mud/issues/88) [#90](https://github.com/latticexyz/mud/issues/90) [#92](https://github.com/latticexyz/mud/issues/92) [#93](https://github.com/latticexyz/mud/issues/93) [#89](https://github.com/latticexyz/mud/issues/89) [#94](https://github.com/latticexyz/mud/issues/94) [#95](https://github.com/latticexyz/mud/issues/95) [#98](https://github.com/latticexyz/mud/issues/98) [#100](https://github.com/latticexyz/mud/issues/100) [#97](https://github.com/latticexyz/mud/issues/97) [#101](https://github.com/latticexyz/mud/issues/101) [#105](https://github.com/latticexyz/mud/issues/105) [#106](https://github.com/latticexyz/mud/issues/106)
1146
- - new systems pattern ([#63](https://github.com/latticexyz/mud/issues/63)) ([fb6197b](https://github.com/latticexyz/mud/commit/fb6197b997eb7232e38ecfb9116ff256491dc38c))
1147
-
1148
- # [0.2.0](https://github.com/latticexyz/mud/compare/v0.1.8...v0.2.0) (2022-07-05)
1149
-
1150
- ### Features
1151
-
1152
- - add webworker architecture for contract/client sync, add cache webworker ([#10](https://github.com/latticexyz/mud/issues/10)) ([4ef9f90](https://github.com/latticexyz/mud/commit/4ef9f909d1d3c10f6bea888b2c32b1d1df04185a)), closes [#14](https://github.com/latticexyz/mud/issues/14)
1153
- - component browser 📈 ([#16](https://github.com/latticexyz/mud/issues/16)) ([37af75e](https://github.com/latticexyz/mud/commit/37af75ecb11266e5877d04cb3224698605b87646))
1154
- - on-chain maps (nyc sprint 1) ([#38](https://github.com/latticexyz/mud/issues/38)) ([089c46d](https://github.com/latticexyz/mud/commit/089c46d7c0e112d1670e3bcd01a35f08ee21d593)), closes [#17](https://github.com/latticexyz/mud/issues/17) [#20](https://github.com/latticexyz/mud/issues/20) [#18](https://github.com/latticexyz/mud/issues/18) [#25](https://github.com/latticexyz/mud/issues/25) [#26](https://github.com/latticexyz/mud/issues/26) [#27](https://github.com/latticexyz/mud/issues/27) [#28](https://github.com/latticexyz/mud/issues/28) [#29](https://github.com/latticexyz/mud/issues/29) [#30](https://github.com/latticexyz/mud/issues/30) [#31](https://github.com/latticexyz/mud/issues/31) [#33](https://github.com/latticexyz/mud/issues/33) [#32](https://github.com/latticexyz/mud/issues/32) [#34](https://github.com/latticexyz/mud/issues/34) [#35](https://github.com/latticexyz/mud/issues/35) [#36](https://github.com/latticexyz/mud/issues/36) [#37](https://github.com/latticexyz/mud/issues/37) [#39](https://github.com/latticexyz/mud/issues/39) [#40](https://github.com/latticexyz/mud/issues/40) [#41](https://github.com/latticexyz/mud/issues/41) [#42](https://github.com/latticexyz/mud/issues/42) [#43](https://github.com/latticexyz/mud/issues/43) [#44](https://github.com/latticexyz/mud/issues/44) [#45](https://github.com/latticexyz/mud/issues/45) [#46](https://github.com/latticexyz/mud/issues/46) [#48](https://github.com/latticexyz/mud/issues/48) [#49](https://github.com/latticexyz/mud/issues/49) [#50](https://github.com/latticexyz/mud/issues/50)
1155
- - **recs:** add more granular type assertion function for introspecting Component schema types ([#8](https://github.com/latticexyz/mud/issues/8)) ([48331f9](https://github.com/latticexyz/mud/commit/48331f911eb9f6e39eb774a1aecf759f69729aa4))
1156
- - **recs:** add optional parameters to reaction and autorun systems ([451209f](https://github.com/latticexyz/mud/commit/451209f98c17e4b228d7a828662e4b72077fe55f))
1157
- - **recs:** expose raw schema on component ([69d9b89](https://github.com/latticexyz/mud/commit/69d9b8978b95a50091a896c123e1c47110e81803))
1158
- - **recs:** rewrite for performance improvements (without integrating in ri) ([#22](https://github.com/latticexyz/mud/issues/22)) ([887564d](https://github.com/latticexyz/mud/commit/887564dbe0fad4250b82fd29d144305f176e3b89))
1159
-
1160
- ### BREAKING CHANGES
1161
-
1162
- - Components have to implement a getSchema() function
1163
-
1164
- - feat(network): make Sync worker return a stream of ECS events (prev contract events)
1165
-
1166
- - feat(ri-contracts): integrate solecs change (add getSchema to components)
1167
-
1168
- - feat(ri-client): integrate network package changes
1169
-
1170
- - feat(network): store ECS state in cache
1171
-
1172
- - feat(network): load state from cache
1173
-
1174
- - feat(utils): add more utils for iterables
1175
-
1176
- - refactor(network): clean up
1177
-
1178
- - feat(network): generalize component value decoder function, add tests
1179
-
1180
- - fix(network): make it possible to subscribe to ecsStream from sync worker multiple times
1181
-
1182
- - fix(network): start sync from provided initial block number
1183
-
1184
- - feat(network): move storing ecs to indexDB to its own Cache worker
1185
-
1186
- - feat(network): create separate cache for every World contract address
1187
-
1188
- - fix(network): fix issues discovered during live review
1189
-
1190
- - chore: remove unused import
1191
-
1192
- - Update packages/network/src/createBlockNumberStream.ts
1193
-
1194
- Co-authored-by: ludens <ludens@lattice.xyz>
1195
-
1196
- - feat(network): add clock syncInterval as config parameter
1197
-
1198
- - feat(utils): emit values through componentToStream and observableToStream only if non-null
1199
-
1200
- - feat(network): add chain id to cache id, disable loading from cache on hardhat
1201
-
1202
- - fix(contracts): change Position and EntityType schema to int32/uint32 to fit in js number
1203
-
1204
- - docs(client): fix typos in comments
1205
-
1206
- - fix(network): fix tests
1207
-
1208
- - fix(scripting): integrate new network package into ri scripting
1209
-
1210
- - fix(network): fix sending multiple requests for component schema if many events get reduced
1211
-
1212
- ## [0.1.8](https://github.com/latticexyz/mud/compare/v0.1.7...v0.1.8) (2022-05-25)
1213
-
1214
- **Note:** Version bump only for package @latticexyz/recs
1215
-
1216
- ## [0.1.7](https://github.com/latticexyz/mud/compare/v0.1.6...v0.1.7) (2022-05-25)
1217
-
1218
- **Note:** Version bump only for package @latticexyz/recs
1219
-
1220
- ## [0.1.6](https://github.com/latticexyz/mud/compare/v0.1.5...v0.1.6) (2022-05-25)
1221
-
1222
- **Note:** Version bump only for package @latticexyz/recs
1223
-
1224
- ## [0.1.5](https://github.com/latticexyz/mud/compare/v0.1.4...v0.1.5) (2022-05-24)
1225
-
1226
- **Note:** Version bump only for package @latticexyz/recs
1227
-
1228
- ## [0.1.4](https://github.com/latticexyz/mud/compare/v0.1.3...v0.1.4) (2022-05-24)
1229
-
1230
- **Note:** Version bump only for package @latticexyz/recs
1231
-
1232
- ## [0.1.3](https://github.com/latticexyz/mud/compare/v0.1.2...v0.1.3) (2022-05-23)
1233
-
1234
- **Note:** Version bump only for package @latticexyz/recs
1235
-
1236
- ## [0.1.2](https://github.com/latticexyz/mud/compare/v0.1.1...v0.1.2) (2022-05-23)
1237
-
1238
- **Note:** Version bump only for package @latticexyz/recs
1239
-
1240
- ## [0.1.1](https://github.com/latticexyz/mud/compare/v0.1.0...v0.1.1) (2022-05-23)
1241
-
1242
- **Note:** Version bump only for package @latticexyz/recs
1243
-
1244
- # 0.1.0 (2022-05-23)
1245
-
1246
- ### Features
1247
-
1248
- - **@mud/recs:** add @mud/recs ([aaf6d0f](https://github.com/latticexyz/mud/commit/aaf6d0faf7a98330823ed3449936c5c336113d7e))