Skip to content

Commit

Permalink
feat: bump viem to 1.6.0 (#1308)
Browse files Browse the repository at this point in the history
holic authored Aug 15, 2023
1 parent 5294a7d commit b8a6158
Showing 40 changed files with 184 additions and 287 deletions.
6 changes: 6 additions & 0 deletions .changeset/lazy-ladybugs-return.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@latticexyz/common": minor
---

- adds `defaultPriorityFee` to `mudFoundry` for better support with MUD's default anvil config and removes workaround in `createContract`
- improves nonce error detection using viem's custom errors
14 changes: 14 additions & 0 deletions .changeset/red-turkeys-develop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
"@latticexyz/block-logs-stream": patch
"@latticexyz/common": patch
"@latticexyz/dev-tools": patch
"@latticexyz/network": patch
"@latticexyz/protocol-parser": patch
"@latticexyz/schema-type": patch
"@latticexyz/std-client": patch
"@latticexyz/store-indexer": patch
"@latticexyz/store-sync": patch
"create-mud": patch
---

bump viem to 1.6.0
7 changes: 7 additions & 0 deletions .changeset/sharp-worms-kneel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@latticexyz/block-logs-stream": major
---

- removes our own `getLogs` function now that viem's `getLogs` supports using multiple `events` per RPC call.
- removes `isNonPendingBlock` and `isNonPendingLog` helpers now that viem narrows `Block` and `Log` types based on inputs
- simplifies `groupLogsByBlockNumber` types and tests
5 changes: 5 additions & 0 deletions .changeset/spotty-cups-destroy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@latticexyz/store-sync": patch
---

remove usages of `isNonPendingBlock` and `isNonPendingLog` (fixed with more specific viem types)
2 changes: 1 addition & 1 deletion e2e/packages/client-vanilla/package.json
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@
"react": "^18.2.0",
"rxjs": "7.5.5",
"threads": "^1.7.0",
"viem": "1.3.1"
"viem": "1.6.0"
},
"devDependencies": {
"rimraf": "^3.0.2",
2 changes: 1 addition & 1 deletion e2e/packages/sync-test/package.json
Original file line number Diff line number Diff line change
@@ -22,7 +22,7 @@
"execa": "^7.1.1",
"jsdom": "^22.0.0",
"typescript": "5.1.6",
"viem": "1.3.1",
"viem": "1.6.0",
"vite": "^4.2.1",
"vitest": "^0.31.0"
}
29 changes: 22 additions & 7 deletions e2e/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion examples/minimal/packages/client-phaser/package.json
Original file line number Diff line number Diff line change
@@ -39,7 +39,7 @@
"styled-components": "^5.3.10",
"threads": "^1.7.0",
"use-resize-observer": "^9.1.0",
"viem": "1.3.1",
"viem": "1.6.0",
"vite": "^4.2.1",
"zustand": "^4.3.8"
},
2 changes: 1 addition & 1 deletion examples/minimal/packages/client-react/package.json
Original file line number Diff line number Diff line change
@@ -35,7 +35,7 @@
"react-dom": "^18.2.0",
"rxjs": "7.5.5",
"threads": "^1.7.0",
"viem": "1.3.1"
"viem": "1.6.0"
},
"devDependencies": {
"@types/react": "^18.2.6",
2 changes: 1 addition & 1 deletion examples/minimal/packages/client-vanilla/package.json
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@
"react": "^18.2.0",
"rxjs": "7.5.5",
"threads": "^1.7.0",
"viem": "1.3.1"
"viem": "1.6.0"
},
"devDependencies": {
"vite": "^4.2.1",
36 changes: 27 additions & 9 deletions examples/minimal/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 2 additions & 11 deletions packages/block-logs-stream/README.md
Original file line number Diff line number Diff line change
@@ -10,23 +10,14 @@ A set of utilities for efficiently retrieving blockchain event logs. Built on to
```ts
import { filter, map, mergeMap } from "rxjs";
import { createPublicClient, parseAbi } from "viem";
import {
createBlockStream,
isNonPendingBlock,
groupLogsByBlockNumber,
blockRangeToLogs,
} from "@latticexyz/block-logs-stream";
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(
filter(isNonPendingBlock),
map((block) => block.number)
);
const latestBlockNumber$ = latestBlock$.pipe(map((block) => block.number));

latestBlockNumber$
.pipe(
2 changes: 1 addition & 1 deletion packages/block-logs-stream/package.json
Original file line number Diff line number Diff line change
@@ -29,7 +29,7 @@
"abitype": "0.9.3",
"debug": "^4.3.4",
"rxjs": "7.5.5",
"viem": "1.3.1"
"viem": "1.6.0"
},
"devDependencies": {
"@types/debug": "^4.1.7",
4 changes: 2 additions & 2 deletions packages/block-logs-stream/src/blockRangeToLogs.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { EMPTY, OperatorFunction, concatMap, from, pipe, tap } from "rxjs";
import { FetchLogsResult, fetchLogs } from "./fetchLogs";
import { AbiEvent, Address } from "abitype";
import { BlockNumber, PublicClient } from "viem";
import { AbiEvent } from "abitype";
import { Address, BlockNumber, PublicClient } from "viem";

export type BlockRangeToLogsOptions<TAbiEvents extends readonly AbiEvent[]> = {
/**
11 changes: 7 additions & 4 deletions packages/block-logs-stream/src/createBlockStream.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
import { Observable } from "rxjs";
import type { Block, BlockTag, PublicClient } from "viem";

export type CreateBlockStreamOptions = {
export type CreateBlockStreamOptions<TBlockTag extends BlockTag> = {
publicClient: PublicClient;
blockTag: BlockTag;
blockTag: TBlockTag;
};

export type CreateBlockStreamResult = Observable<Block>;
export type CreateBlockStreamResult<TBlockTag extends BlockTag> = Observable<Block<bigint, false, TBlockTag>>;

export function createBlockStream({ publicClient, blockTag }: CreateBlockStreamOptions): CreateBlockStreamResult {
export function createBlockStream<TBlockTag extends BlockTag>({
publicClient,
blockTag,
}: CreateBlockStreamOptions<TBlockTag>): CreateBlockStreamResult<TBlockTag> {
return new Observable(function subscribe(subscriber) {
return publicClient.watchBlocks({
blockTag,
12 changes: 7 additions & 5 deletions packages/block-logs-stream/src/fetchLogs.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { AbiEvent, Address } from "abitype";
import { PublicClient, BlockNumber } from "viem";
import { AbiEvent } from "abitype";
import { Address, PublicClient, BlockNumber, GetLogsReturnType } from "viem";
import { bigIntMin, wait } from "@latticexyz/common/utils";
import { GetLogsResult, getLogs } from "./getLogs";
import { debug } from "./debug";

export type FetchLogsOptions<TAbiEvents extends readonly AbiEvent[]> = {
@@ -40,7 +39,7 @@ export type FetchLogsOptions<TAbiEvents extends readonly AbiEvent[]> = {
export type FetchLogsResult<TAbiEvents extends readonly AbiEvent[]> = {
fromBlock: BlockNumber;
toBlock: BlockNumber;
logs: GetLogsResult<TAbiEvents>;
logs: GetLogsReturnType<undefined, TAbiEvents, true, BlockNumber, BlockNumber>;
};

/**
@@ -61,6 +60,7 @@ export type FetchLogsResult<TAbiEvents extends readonly AbiEvent[]> = {
export async function* fetchLogs<TAbiEvents extends readonly AbiEvent[]>({
maxBlockRange = 1000n,
maxRetryCount = 3,
publicClient,
...getLogsOpts
}: FetchLogsOptions<TAbiEvents>): AsyncGenerator<FetchLogsResult<TAbiEvents>> {
let fromBlock = getLogsOpts.fromBlock;
@@ -70,13 +70,14 @@ export async function* fetchLogs<TAbiEvents extends readonly AbiEvent[]>({
while (fromBlock <= getLogsOpts.toBlock) {
try {
const toBlock = fromBlock + blockRange;
const logs = await getLogs({ ...getLogsOpts, fromBlock, toBlock });
const logs = await publicClient.getLogs({ ...getLogsOpts, fromBlock, toBlock, strict: true });
yield { fromBlock, toBlock, logs };
fromBlock = toBlock + 1n;
blockRange = bigIntMin(maxBlockRange, getLogsOpts.toBlock - fromBlock);
} catch (error: unknown) {
if (!(error instanceof Error)) throw error;

// TODO: figure out actual rate limit message for RPCs
if (error.message.includes("rate limit exceeded") && retryCount < maxRetryCount) {
const seconds = 2 * retryCount;
debug(`too many requests, retrying in ${seconds}s`, error);
@@ -85,6 +86,7 @@ export async function* fetchLogs<TAbiEvents extends readonly AbiEvent[]>({
continue;
}

// TODO: figure out actual block range exceeded message for RPCs
if (error.message.includes("block range exceeded")) {
blockRange /= 2n;
if (blockRange <= 0n) {
72 changes: 0 additions & 72 deletions packages/block-logs-stream/src/getLogs.ts

This file was deleted.

56 changes: 3 additions & 53 deletions packages/block-logs-stream/src/groupLogsByBlockNumber.test.ts
Original file line number Diff line number Diff line change
@@ -1,103 +1,65 @@
import { describe, it, expect } from "vitest";
import { groupLogsByBlockNumber } from "./groupLogsByBlockNumber";
import { Log } from "viem";

describe("groupLogsByBlockNumber", () => {
it("groups logs by block number and correctly sorts them", () => {
const logs = [
{
blockNumber: 1n,
blockHash: "0x",
logIndex: 4,
transactionHash: "0x",
transactionIndex: 0,
},
{
blockNumber: 5n,
blockHash: "0x",
logIndex: 0,
transactionHash: "0x",
transactionIndex: 0,
},
{
blockNumber: 1n,
blockHash: "0x",
logIndex: 0,
transactionHash: "0x",
transactionIndex: 0,
},
{
blockNumber: 1n,
blockHash: "0x",
logIndex: 2,
transactionHash: "0x",
transactionIndex: 0,
},
{
blockNumber: null,
blockHash: null,
logIndex: null,
transactionHash: null,
transactionIndex: null,
},
{
blockNumber: 3n,
blockHash: "0x",
logIndex: 3,
transactionHash: "0x",
transactionIndex: 0,
},
] as any as Log[];
];

expect(groupLogsByBlockNumber(logs)).toMatchInlineSnapshot(`
[
{
"blockNumber": 1n,
"logs": [
{
"blockHash": "0x",
"blockNumber": 1n,
"logIndex": 0,
"transactionHash": "0x",
"transactionIndex": 0,
},
{
"blockHash": "0x",
"blockNumber": 1n,
"logIndex": 2,
"transactionHash": "0x",
"transactionIndex": 0,
},
{
"blockHash": "0x",
"blockNumber": 1n,
"logIndex": 4,
"transactionHash": "0x",
"transactionIndex": 0,
},
],
},
{
"blockNumber": 3n,
"logs": [
{
"blockHash": "0x",
"blockNumber": 3n,
"logIndex": 3,
"transactionHash": "0x",
"transactionIndex": 0,
},
],
},
{
"blockNumber": 5n,
"logs": [
{
"blockHash": "0x",
"blockNumber": 5n,
"logIndex": 0,
"transactionHash": "0x",
"transactionIndex": 0,
},
],
},
@@ -109,24 +71,18 @@ describe("groupLogsByBlockNumber", () => {
const logs = [
{
blockNumber: 1n,
blockHash: "0x",
logIndex: 4,
transactionHash: "0x",
transactionIndex: 0,
},
] as any as Log[];
];

expect(groupLogsByBlockNumber(logs, 2n)).toMatchInlineSnapshot(`
[
{
"blockNumber": 1n,
"logs": [
{
"blockHash": "0x",
"blockNumber": 1n,
"logIndex": 4,
"transactionHash": "0x",
"transactionIndex": 0,
},
],
},
@@ -142,24 +98,18 @@ describe("groupLogsByBlockNumber", () => {
const logs = [
{
blockNumber: 2n,
blockHash: "0x",
logIndex: 4,
transactionHash: "0x",
transactionIndex: 0,
},
] as any as Log[];
];

expect(groupLogsByBlockNumber(logs, 2n)).toMatchInlineSnapshot(`
[
{
"blockNumber": 2n,
"logs": [
{
"blockHash": "0x",
"blockNumber": 2n,
"logIndex": 4,
"transactionHash": "0x",
"transactionIndex": 0,
},
],
},
25 changes: 8 additions & 17 deletions packages/block-logs-stream/src/groupLogsByBlockNumber.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { BlockNumber, Log } from "viem";
import { NonPendingLog, isNonPendingLog } from "./isNonPendingLog";
import { BlockNumber } from "viem";
import { bigIntSort, isDefined } from "@latticexyz/common/utils";
import { debug } from "./debug";

export type GroupLogsByBlockNumberResult<TLog extends Log> = {
type PartialLog = { blockNumber: bigint; logIndex: number };

export type GroupLogsByBlockNumberResult<TLog extends PartialLog> = {
blockNumber: BlockNumber;
logs: readonly NonPendingLog<TLog>[];
logs: TLog[];
}[];

/**
@@ -22,25 +22,16 @@ export type GroupLogsByBlockNumberResult<TLog extends Log> = {
* @returns An array of objects where each object represents a distinct block and includes the block number,
* the block hash, and an array of logs for that block.
*/
export function groupLogsByBlockNumber<TLog extends Log>(
export function groupLogsByBlockNumber<TLog extends PartialLog>(
logs: readonly TLog[],
toBlock?: BlockNumber
): GroupLogsByBlockNumberResult<TLog> {
// Pending logs don't have block numbers, so filter them out.
const nonPendingLogs = logs.filter(isNonPendingLog);
if (logs.length !== nonPendingLogs.length) {
debug(
"pending logs discarded",
logs.filter((log) => !isNonPendingLog(log))
);
}

const blockNumbers = Array.from(new Set(nonPendingLogs.map((log) => log.blockNumber)));
const blockNumbers = Array.from(new Set(logs.map((log) => log.blockNumber)));
blockNumbers.sort(bigIntSort);

const groupedBlocks = blockNumbers
.map((blockNumber) => {
const blockLogs = nonPendingLogs.filter((log) => log.blockNumber === blockNumber);
const blockLogs = logs.filter((log) => log.blockNumber === blockNumber);
if (!blockLogs.length) return;
blockLogs.sort((a, b) => (a.logIndex < b.logIndex ? -1 : a.logIndex > b.logIndex ? 1 : 0));

3 changes: 0 additions & 3 deletions packages/block-logs-stream/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
export * from "./blockRangeToLogs";
export * from "./createBlockStream";
export * from "./fetchLogs";
export * from "./getLogs";
export * from "./groupLogsByBlockNumber";
export * from "./isNonPendingBlock";
export * from "./isNonPendingLog";
14 changes: 0 additions & 14 deletions packages/block-logs-stream/src/isNonPendingBlock.ts

This file was deleted.

21 changes: 0 additions & 21 deletions packages/block-logs-stream/src/isNonPendingLog.ts

This file was deleted.

2 changes: 1 addition & 1 deletion packages/common/package.json
Original file line number Diff line number Diff line change
@@ -65,7 +65,7 @@
"p-retry": "^5.1.2",
"prettier": "^2.8.4",
"prettier-plugin-solidity": "^1.1.2",
"viem": "1.3.1"
"viem": "1.6.0"
},
"devDependencies": {
"@types/debug": "^4.1.7",
4 changes: 3 additions & 1 deletion packages/common/src/chains/mudFoundry.ts
Original file line number Diff line number Diff line change
@@ -3,5 +3,7 @@ import { MUDChain } from "./types";

export const mudFoundry = {
...foundry,
// We may override chain settings here
fees: {
defaultPriorityFee: 0n,
},
} as const satisfies MUDChain;
13 changes: 0 additions & 13 deletions packages/common/src/createContract.ts
Original file line number Diff line number Diff line change
@@ -110,19 +110,6 @@ export function createContract<
}

async function write(options: WriteContractParameters): Promise<Hex> {
// Temporarily override base fee for our default anvil config
// TODO: replace with https://github.com/wagmi-dev/viem/pull/1006 once merged
// TODO: more specific mud foundry check? or can we safely assume anvil+mud will be block fee zero for now?
if (
walletClient.chain.id === 31337 &&
options.maxFeePerGas == null &&
options.maxPriorityFeePerGas == null
) {
debug("assuming zero base fee for anvil chain");
options.maxFeePerGas = 0n;
options.maxPriorityFeePerGas = 0n;
}

const preparedWrite = await prepareWrite(options);

return await pRetry(
15 changes: 13 additions & 2 deletions packages/common/src/createNonceManager.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
import { BlockTag, Hex, PublicClient } from "viem";
import {
BaseError,
BlockTag,
Hex,
NonceTooHighError,
NonceTooLowError,
PublicClient,
TransactionExecutionError,
} from "viem";
import { debug as parentDebug } from "./debug";

const debug = parentDebug.extend("createNonceManager");
@@ -55,7 +63,10 @@ export function createNonceManager({
}

function shouldResetNonce(error: unknown): boolean {
return /already known|nonce too low/.test(String(error));
return (
error instanceof BaseError &&
error.walk((e) => e instanceof NonceTooLowError || e instanceof NonceTooHighError) != null
);
}

return {
2 changes: 1 addition & 1 deletion packages/dev-tools/package.json
Original file line number Diff line number Diff line change
@@ -36,7 +36,7 @@
"rxjs": "7.5.5",
"tailwind-merge": "^1.12.0",
"use-local-storage-state": "^18.3.2",
"viem": "1.3.1",
"viem": "1.6.0",
"zustand": "^4.3.7"
},
"devDependencies": {
2 changes: 1 addition & 1 deletion packages/network/package.json
Original file line number Diff line number Diff line change
@@ -51,7 +51,7 @@
"nice-grpc-web": "^2.0.1",
"rxjs": "7.5.5",
"threads": "^1.7.0",
"viem": "1.3.1"
"viem": "1.6.0"
},
"devDependencies": {
"@types/debug": "^4.1.7",
2 changes: 1 addition & 1 deletion packages/protocol-parser/package.json
Original file line number Diff line number Diff line change
@@ -26,7 +26,7 @@
"@latticexyz/common": "workspace:*",
"@latticexyz/schema-type": "workspace:*",
"abitype": "0.9.3",
"viem": "1.3.1"
"viem": "1.6.0"
},
"devDependencies": {
"tsup": "^6.7.0",
2 changes: 1 addition & 1 deletion packages/schema-type/package.json
Original file line number Diff line number Diff line change
@@ -34,7 +34,7 @@
},
"dependencies": {
"abitype": "0.9.3",
"viem": "1.3.1"
"viem": "1.6.0"
},
"devDependencies": {
"@latticexyz/gas-report": "workspace:*",
2 changes: 1 addition & 1 deletion packages/std-client/package.json
Original file line number Diff line number Diff line change
@@ -48,7 +48,7 @@
"mobx": "^6.7.0",
"react": "^18.2.0",
"rxjs": "7.5.5",
"viem": "1.3.1"
"viem": "1.6.0"
},
"devDependencies": {
"@types/jest": "^27.4.1",
2 changes: 1 addition & 1 deletion packages/store-indexer/package.json
Original file line number Diff line number Diff line change
@@ -40,7 +40,7 @@
"drizzle-orm": "^0.27.0",
"rxjs": "7.5.5",
"superjson": "^1.12.4",
"viem": "1.3.1",
"viem": "1.6.0",
"zod": "^3.21.4"
},
"devDependencies": {
2 changes: 1 addition & 1 deletion packages/store-sync/package.json
Original file line number Diff line number Diff line change
@@ -57,7 +57,7 @@
"rxjs": "7.5.5",
"sql.js": "^1.8.0",
"superjson": "^1.12.4",
"viem": "1.3.1",
"viem": "1.6.0",
"zod": "^3.21.4"
},
"devDependencies": {
11 changes: 6 additions & 5 deletions packages/store-sync/src/common.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import { Address, Block, Hex, PublicClient, TransactionReceipt } from "viem";
import { GetLogsResult, GroupLogsByBlockNumberResult, NonPendingLog } from "@latticexyz/block-logs-stream";
import { Address, Block, Hex, Log, PublicClient, TransactionReceipt } from "viem";
import { GroupLogsByBlockNumberResult } from "@latticexyz/block-logs-stream";
import {
StoreEventsAbi,
StoreConfig,
KeySchema,
ValueSchema,
ConfigToKeyPrimitives as Key,
ConfigToValuePrimitives as Value,
TableRecord,
StoreEventsAbiItem,
StoreEventsAbi,
} from "@latticexyz/store";
import { Observable } from "rxjs";
import { BlockStorageOperations } from "./blockLogsToStorage";
@@ -29,11 +30,11 @@ export type Table = {

export type TableWithRecords = Table & { records: TableRecord[] };

export type StoreEventsLog = GetLogsResult<StoreEventsAbi>[number];
export type StoreEventsLog = Log<bigint, number, false, StoreEventsAbiItem, true, StoreEventsAbi>;
export type BlockLogs = GroupLogsByBlockNumberResult<StoreEventsLog>[number];

export type BaseStorageOperation = {
log?: NonPendingLog<StoreEventsLog>;
log?: StoreEventsLog;
address: Hex;
namespace: TableNamespace;
name: TableName;
9 changes: 1 addition & 8 deletions packages/store-sync/src/createStoreSync.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import { ConfigToKeyPrimitives, ConfigToValuePrimitives, StoreConfig, storeEventsAbi } from "@latticexyz/store";
import { Hex, TransactionReceipt } from "viem";
import { SetRecordOperation, SyncOptions, SyncResult } from "./common";
import {
createBlockStream,
isNonPendingBlock,
blockRangeToLogs,
groupLogsByBlockNumber,
} from "@latticexyz/block-logs-stream";
import { createBlockStream, blockRangeToLogs, groupLogsByBlockNumber } from "@latticexyz/block-logs-stream";
import { filter, map, tap, mergeMap, from, concatMap, share, firstValueFrom } from "rxjs";
import { blockLogsToStorage } from "./blockLogsToStorage";
import { debug as parentDebug } from "./debug";
@@ -100,9 +95,7 @@ export async function createStoreSync<TConfig extends StoreConfig = StoreConfig>
debug("starting sync from block", startBlock);

const latestBlock$ = createBlockStream({ publicClient, blockTag: "latest" }).pipe(share());

const latestBlockNumber$ = latestBlock$.pipe(
filter(isNonPendingBlock),
map((block) => block.number),
share()
);
55 changes: 33 additions & 22 deletions pnpm-lock.yaml
2 changes: 1 addition & 1 deletion templates/phaser/packages/client/package.json
Original file line number Diff line number Diff line change
@@ -32,7 +32,7 @@
"simplex-noise": "^4.0.1",
"styled-components": "^5.3.10",
"use-resize-observer": "^9.1.0",
"viem": "1.3.1",
"viem": "1.6.0",
"zustand": "^4.3.8"
},
"devDependencies": {
2 changes: 1 addition & 1 deletion templates/react/packages/client/package.json
Original file line number Diff line number Diff line change
@@ -27,7 +27,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"rxjs": "7.5.5",
"viem": "1.3.1"
"viem": "1.6.0"
},
"devDependencies": {
"@types/react": "^18.2.6",
2 changes: 1 addition & 1 deletion templates/threejs/packages/client/package.json
Original file line number Diff line number Diff line change
@@ -28,7 +28,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"rxjs": "7.5.5",
"viem": "1.3.1"
"viem": "1.6.0"
},
"devDependencies": {
"@types/react": "^18.2.6",
2 changes: 1 addition & 1 deletion templates/vanilla/packages/client/package.json
Original file line number Diff line number Diff line change
@@ -24,7 +24,7 @@
"contracts": "workspace:*",
"ethers": "^5.7.2",
"rxjs": "7.5.5",
"viem": "1.3.1"
"viem": "1.6.0"
},
"devDependencies": {
"vite": "^4.2.1",

0 comments on commit b8a6158

Please sign in to comment.