Skip to content

docs: multi-chain deployment patterns — Mainnet/Gnosis/Arbitrum/Base#310

Open
lgahdl wants to merge 2 commits into
feat/m1-mock-venuefrom
feat/124-multi-chain-deployment
Open

docs: multi-chain deployment patterns — Mainnet/Gnosis/Arbitrum/Base#310
lgahdl wants to merge 2 commits into
feat/m1-mock-venuefrom
feat/124-multi-chain-deployment

Conversation

@lgahdl

@lgahdl lgahdl commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Closes #124

Verbatim M5 grant deliverable: adds docs/deployment/multi-chain.md.

What's covered

  • Chain support matrix — the 5 CoW-supported chains (Mainnet, Gnosis, Base, Arbitrum One, Sepolia) with chain IDs, orderbook slugs, and barn availability
  • engine.toml wiring[chains.<id>] blocks, ${VAR} env-var substitution, require_ws = false opt-out for poll-only chains
  • CoW API URLs — canonical production and barn URLs per chain; [extensions.cow.orderbook_urls] override pattern for staging/mocks
  • Contract addresses — CREATE2-stable set (GPv2Settlement, GPv2VaultRelayer, ComposableCoW) vs EthFlow per-network caveat with a pointer to cowprotocol/ethflowcontract networks.prod.json
  • [[subscription]] duplication pattern — annotated twap-monitor and ethflow-watcher examples spanning two chains each
  • Event topic reference — ConditionalOrderCreated and OrderPlacement topic-0 hashes
  • Resource sizing — per-chain subscription cost and RPC tier guidance

Source verification

All contract addresses, orderbook slugs, and barn eligibility are derived directly from cowprotocol-primitives-0.1.0 (already a workspace dependency) and the existing module.toml manifests — no manual lookup.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TfSsJPYDQ1GQGbnSVFxATx

…124)

New docs/deployment/multi-chain.md covering the verbatim M5 grant
deliverable: per-chain [chains.<id>] + env-var wiring, CoW orderbook
URL slugs per network, per-chain contract addresses (CREATE2-stable
vs EthFlow per-network caveat), the [[subscription]] duplication
pattern with twap-monitor and ethflow-watcher examples, event topic
reference, and resource sizing guidance.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TfSsJPYDQ1GQGbnSVFxATx
@lgahdl lgahdl requested a review from mfw78 as a code owner July 9, 2026 22:22
@jean-neiverth

Copy link
Copy Markdown
Collaborator

Following up on the require_ws point above — eth_getLogs polling already works over HTTP, and I think that was the case even before #306, which extended the same poll-based approach to block following.

Wonder if this line could mislead operators who only have an HTTP endpoint available. Maybe it could be reworded to something like "WebSocket gives lower-latency streaming, but HTTP works for both block and log subscriptions via polling."

@lgahdl lgahdl linked an issue Jul 10, 2026 that may be closed by this pull request
…ents

Review catches:

- The EthFlow section claimed the address is per-network and told
  operators to hunt for a different mainnet address. The current
  production deployment is address-identical on every supported chain
  (cowprotocol's ETH_FLOW_PRODUCTION, from networks.prod.json) - the
  old text would have steered a mainnet port toward the legacy v1.0.0
  deployment and missed every OrderPlacement event. The real caveat is
  narrower and now stated as such: sameness is not a CREATE2 guarantee,
  legacy per-version deployments exist, verify on version bumps.
- "every chain the orderbook supports" was false (the Chain enum also
  carries BNB, Polygon, Avalanche, Linea, Plasma); the table is scoped
  to the chains this repo's modules target.
- Dropped the unsupported "Gnosis volume roughly equal to Mainnet"
  claim; require_ws violations are an ERROR log, not a warning; the
  RPC recommendation names a rate requirement instead of a specific
  provider's free tier.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TfSsJPYDQ1GQGbnSVFxATx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs: multi-chain deployment patterns (Mainnet/Arbitrum/Base/Gnosis)

2 participants