![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
@latticexyz/block-logs-stream
Advanced tools
A set of utilities for efficiently retrieving blockchain event logs. Built on top of viem and RxJS.
import { filter, map, mergeMap } from "rxjs";
import { createPublicClient, parseAbi } from "viem";
import { createBlockStream, groupLogsByBlockNumber, blockRangeToLogs } from "@latticexyz/block-logs-stream";
const publicClient = createPublicClient({
// your viem public client config here
});
const latestBlock$ = await createBlockStream({ publicClient, blockTag: "latest" });
const latestBlockNumber$ = latestBlock$.pipe(map((block) => block.number));
latestBlockNumber$
.pipe(
map((latestBlockNumber) => ({ startBlock: 0n, endBlock: latestBlockNumber })),
blockRangeToLogs({
publicClient,
address,
events: parseAbi([
"event Store_SetRecord(bytes32 indexed tableId, bytes32[] keyTuple, bytes staticData, bytes32 encodedLengths, bytes dynamicData)",
"event Store_SpliceStaticData(bytes32 indexed tableId, bytes32[] keyTuple, uint48 start, bytes data)",
"event Store_SpliceDynamicData(bytes32 indexed tableId, bytes32[] keyTuple, uint48 start, uint40 deleteCount, bytes32 encodedLengths, bytes data)",
"event Store_DeleteRecord(bytes32 indexed tableId, bytes32[] keyTuple)",
]),
}),
mergeMap(({ logs }) => from(groupLogsByBlockNumber(logs))),
)
.subscribe((block) => {
console.log("got events for block", block);
});
Version 2.2.20
Release date: Tue Feb 11 2025
feat(explorer): wrap table names in double quotes by default (#3588) (@latticexyz/explorer)
Table names in SQL queries are now automatically enclosed in double quotes by default, allowing support for special characters.
feat(world-consumer): convert store-consumer package into world-consumer (#3584) (@latticexyz/world-module-erc20)
Migrated from store-consumer
to world-consumer
.
refactor(world): add default-reverting methods to Module (#3581) (@latticexyz/world-module-callwithsignature, @latticexyz/world-module-erc20, @latticexyz/world-module-metadata, @latticexyz/world-modules)
Removed unsupported install methods as these now automatically revert in the base Module
contract.
feat: install module with delegation (#3586) (@latticexyz/cli, @latticexyz/world)
Added useDelegation
module config option to install modules using a temporary, unlimited delegation. This allows modules to install or upgrade systems and tables on your behalf.
feat(world): generate system libs (#3587) (@latticexyz/world)
Added experimental system libraries for World systems for better ergonomics when interacting with core systems.
Note that these libraries are marked experimental as we may make breaking changes to their interfaces.
import { worldRegistrationSystem } from "@latticexyz/world/src/codegen/experimental/systems/WorldRegistrationSystemLib.sol";
// equivalent to `IBaseWorld(_world()).registerNamespace("hello")` but directly routed through `world.call` for better gas.
worldRegistrationSystem.registerNamespace("hello");
// and makes delegation use cases easier
worldRegistrationSystem.callFrom(_msgSender()).registerNamespace("hello");
refactor(world): add default-reverting methods to Module (#3581) (@latticexyz/world)
The base Module
contract now includes default implementations of install
and installRoot
that immediately revert, avoiding the need to implement these manually in each module.
If you've written a module, you may need to update your install methods with override
when using this new base contract.
-function install(bytes memory) public {
+function install(bytes memory) public override {
-function installRoot(bytes memory) public {
+function installRoot(bytes memory) public override {
fix(cli): use execa directly instead of custom foundry wrappers (#3582) (@latticexyz/cli)
Fixed forge/anvil/cast output for all CLI commands.
feat: install module with delegation (#3586) (@latticexyz/cli, @latticexyz/world-module-metadata)
Metadata module has been updated to install via delegation, making it easier for later module upgrades and to demonstrate modules installed via delegation.
feat(world): generate system libs (#3587) (@latticexyz/store)
Updated IStoreRegistration
interface to allow calling registerTable
with keyNames
and fieldNames
from memory
rather than calldata
so this can be called with names returned by table libraries.
feat: install module with delegation (#3586) (@latticexyz/world)
Updated encodeSystemCalls
and encodeSystemCallsFrom
to include the abi
in each call so that different systems/ABIs can be called in batch. Types have been improved to properly hint/narrow the expected arguments for each call.
-encodeSystemCalls(abi, [{
+encodeSystemCalls([{
+ abi,
systemId: '0x...',
functionName: '...',
args: [...],
}]);
-encodeSystemCallsFrom(from, abi, [{
+encodeSystemCallsFrom(from, [{
+ abi,
systemId: '0x...',
functionName: '...',
args: [...],
}]);
feat(world-consumer): convert store-consumer package into world-consumer (#3584) (@latticexyz/world-consumer)
Renamed store-consumer
package to world-consumer
. The world-consumer
package now only includes a single WorldConsumer
contract that is bound to a World
.
FAQs
Create a stream of EVM block logs for events
The npm package @latticexyz/block-logs-stream receives a total of 3,796 weekly downloads. As such, @latticexyz/block-logs-stream popularity was classified as popular.
We found that @latticexyz/block-logs-stream demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.