Skip to content

Commit 03ed2c2

Browse files
committed
chore(ponder-interop): upgrade to 0.11.1
1 parent 1f1dc80 commit 03ed2c2

File tree

11 files changed

+190
-214
lines changed

11 files changed

+190
-214
lines changed

.changeset/cuddly-laws-unite.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@eth-optimism/ponder-interop': patch
3+
---
4+
5+
chore: update ponder dependency to 0.11

apps/ponder-interop/docker-compose.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,12 @@ services:
2727
context: ../../
2828
dockerfile: Dockerfile
2929
target: ponder-interop
30+
args:
31+
- DOCKER_TARGET=ponder-interop
3032
env_file: .env
3133
environment:
3234
- DATABASE_URL=postgresql://local-db-user:@postgres:5432/ponder-interop
35+
- VIEWS_SCHEMA=ponder-interop-views
3336
volumes:
3437
- ../../certs/extra-ca-certificates.crt:/usr/local/share/ca-certificates/extra-ca-certificates.crt
3538
healthcheck:

apps/ponder-interop/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"docker:services:up": "docker compose --profile dependencies up -d",
3030
"docker:up": "docker compose --profile dependencies --profile app up -d",
3131
"docker:down": "docker compose down",
32-
"start": "ponder start",
32+
"start": "ponder start --views-schema=${VIEWS_SCHEMA}",
3333
"start:devnet": "ponder start --config ponder.config.devnet.ts",
3434
"start:alphanet": "ponder start --config ponder.config.alphanet.ts",
3535
"db": "ponder db",
@@ -40,9 +40,9 @@
4040
},
4141
"dependencies": {
4242
"@eth-optimism/viem": "workspace:*",
43-
"drizzle-orm": "0.39.3",
43+
"drizzle-orm": "0.41.0",
4444
"hono": "^4.5.0",
45-
"ponder": "^0.10.6",
45+
"ponder": "0.11.1",
4646
"viem": "^2.17.9",
4747
"zod": "^3.24.2",
4848
"zod-validation-error": "^3.4.0"

apps/ponder-interop/ponder.config.alphanet.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import { interopRcAlpha0, interopRcAlpha1 } from '@eth-optimism/viem/chains'
22
import { http } from 'viem'
33

4-
import type { Endpoints } from '@/createPonderConfig.js'
4+
import type { ChainConfigs } from '@/createPonderConfig.js'
55
import { createPonderConfig } from '@/createPonderConfig.js'
66

7-
const endpoints: Endpoints = {
7+
const endpoints: ChainConfigs = {
88
interopRcAlpha0: {
9-
chainId: interopRcAlpha0.id,
10-
transport: http(interopRcAlpha0.rpcUrls.default.http[0]),
9+
id: interopRcAlpha0.id,
10+
rpc: http(interopRcAlpha0.rpcUrls.default.http[0]),
1111
},
1212
interopRcAlpha1: {
13-
chainId: interopRcAlpha1.id,
14-
transport: http(interopRcAlpha1.rpcUrls.default.http[0]),
13+
id: interopRcAlpha1.id,
14+
rpc: http(interopRcAlpha1.rpcUrls.default.http[0]),
1515
},
1616
}
1717

apps/ponder-interop/ponder.config.devnet.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
import { interopAlpha0, interopAlpha1 } from '@eth-optimism/viem/chains'
22
import { http } from 'viem'
33

4-
import type { Endpoints } from '@/createPonderConfig.js'
5-
import { createPonderConfig } from '@/createPonderConfig.js'
4+
import { type ChainConfigs, createPonderConfig } from '@/createPonderConfig.js'
65

7-
const endpoints: Endpoints = {
6+
const endpoints: ChainConfigs = {
87
interopAlpha0: {
9-
chainId: interopAlpha0.id,
10-
transport: http(interopAlpha0.rpcUrls.default.http[0]),
8+
id: interopAlpha0.id,
9+
rpc: http(interopAlpha0.rpcUrls.default.http[0]),
1110
},
1211
interopAlpha1: {
13-
chainId: interopAlpha1.id,
14-
transport: http(interopAlpha1.rpcUrls.default.http[0]),
12+
id: interopAlpha1.id,
13+
rpc: http(interopAlpha1.rpcUrls.default.http[0]),
1514
},
1615
}
1716

apps/ponder-interop/ponder.config.supersim.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
import { supersimL2A, supersimL2B } from '@eth-optimism/viem/chains'
22
import { http } from 'viem'
33

4-
import type { Endpoints } from '@/createPonderConfig.js'
5-
import { createPonderConfig } from '@/createPonderConfig.js'
4+
import { type ChainConfigs, createPonderConfig } from '@/createPonderConfig.js'
65

7-
const endpoints: Endpoints = {
6+
const endpoints: ChainConfigs = {
87
supersimL2A: {
9-
chainId: supersimL2A.id,
10-
transport: http(supersimL2A.rpcUrls.default.http[0]),
8+
id: supersimL2A.id,
9+
rpc: http(supersimL2A.rpcUrls.default.http[0]),
1110
disableCache: true,
1211
},
1312
supersimL2B: {
14-
chainId: supersimL2B.id,
15-
transport: http(supersimL2B.rpcUrls.default.http[0]),
13+
id: supersimL2B.id,
14+
rpc: http(supersimL2B.rpcUrls.default.http[0]),
1615
disableCache: true,
1716
},
1817
}

apps/ponder-interop/ponder.config.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
import type { Transport } from 'viem'
21
import { http } from 'viem'
32
import { z } from 'zod'
43

5-
import { createPonderConfig } from '@/createPonderConfig.js'
4+
import { type ChainConfigs, createPonderConfig } from '@/createPonderConfig.js'
65

76
// Parse Endpoints from Environment
8-
const endpoints: Record<string, { chainId: number; transport: Transport }> = {}
7+
const chainConfigs: ChainConfigs = {}
98
for (const [key, value] of Object.entries(process.env)) {
109
if (!key.startsWith('PONDER_INTEROP_ENDPOINT_') || value === undefined) {
1110
continue
@@ -26,16 +25,16 @@ for (const [key, value] of Object.entries(process.env)) {
2625
throw new Error(`invalid endpoint url for ${key}: ${value}`)
2726
}
2827

29-
endpoints[chainIdStr] = {
30-
chainId: parseInt(chainIdStr),
31-
transport: http(value),
28+
chainConfigs[chainIdStr] = {
29+
id: parseInt(chainIdStr),
30+
rpc: http(value),
3231
}
3332
}
3433

35-
if (Object.keys(endpoints).length === 0) {
34+
if (Object.keys(chainConfigs).length === 0) {
3635
throw new Error(
37-
'No endpoints in environment found. Please set `PONDER_INTEROP_ENDPOINT_<chainId>=<url>` urls for each chain to index.',
36+
'No chain configs in environment found. Please set `PONDER_INTEROP_ENDPOINT_<chainId>=<url>` urls for each chain to index.',
3837
)
3938
}
4039

41-
export default createPonderConfig(endpoints)
40+
export default createPonderConfig(chainConfigs)

apps/ponder-interop/src/createPonderConfig.ts

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,31 @@ import {
22
contracts as addrs,
33
l2ToL2CrossDomainMessengerAbi,
44
} from '@eth-optimism/viem'
5+
import type { ChainConfig } from 'ponder'
56
import { createConfig } from 'ponder'
6-
import type { Transport } from 'viem'
7-
8-
export type Endpoint = {
9-
chainId: number
10-
transport: Transport
11-
disableCache?: boolean
12-
}
137

148
/**
159
* A map of name to {@link Endpoint}
1610
*/
17-
export type Endpoints = Record<string, Endpoint>
11+
export type ChainConfigs = Record<string, ChainConfig>
1812

1913
/**
2014
* Create a Ponder config for interop
2115
* @param endpoints - Interoperable endpoints to index -- {@link Endpoints}
2216
* @returns Ponder configuration
2317
*/
24-
export function createPonderConfig(endpoints: Endpoints) {
25-
if (Object.keys(endpoints).length === 0) {
26-
throw new Error('no endpoints provided')
18+
export function createPonderConfig(chainConfigs: ChainConfigs) {
19+
if (Object.keys(chainConfigs).length === 0) {
20+
throw new Error('no chain configs provided')
2721
}
2822

2923
// relevant interop contracts
3024
const contracts = {
3125
L2ToL2CDM: {
3226
abi: l2ToL2CrossDomainMessengerAbi,
3327
startBlock: 1,
34-
network: Object.fromEntries(
35-
Object.keys(endpoints).map((key) => [
28+
chain: Object.fromEntries(
29+
Object.keys(chainConfigs).map((key) => [
3630
key,
3731
{ address: addrs.l2ToL2CrossDomainMessenger.address },
3832
]),
@@ -42,7 +36,7 @@ export function createPonderConfig(endpoints: Endpoints) {
4236

4337
return createConfig({
4438
ordering: 'multichain',
45-
networks: endpoints,
39+
chains: chainConfigs,
4640
contracts,
4741
})
4842
}

apps/ponder-interop/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { hashMessageIdentifier } from '@/utils/hashMessageIdentifier.js'
1515

1616
ponder.on('L2ToL2CDM:SentMessage', async ({ event, context }) => {
1717
const cdm = {
18-
source: BigInt(context.network.chainId),
18+
source: BigInt(context.chain.id),
1919
destination: event.args.destination,
2020
nonce: event.args.messageNonce,
2121
sender: event.args.sender,

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"commander": "^13.1.0",
2525
"@hono/node-server": "^1.14.0",
2626
"hono": "^4.5.0",
27-
"ponder": "^0.10.6",
27+
"ponder": "0.11.1",
2828
"prom-client": "^15.1.0",
2929
"zod": "^3.24.2",
3030
"zod-validation-error": "^3.4.0"

0 commit comments

Comments
 (0)