Skip to content

feat: Add Ink network#593

Open
Danziger wants to merge 1 commit intomainfrom
feat/cow-163-ink-network
Open

feat: Add Ink network#593
Danziger wants to merge 1 commit intomainfrom
feat/cow-163-ink-network

Conversation

@Danziger
Copy link

@Danziger Danziger commented Feb 5, 2026

Description

Add Ink network.

Changes

  • src/components/contract-addresses/index.tsx
  • reference/contracts/core
  • reference/contracts/periphery
  • reference/core/auctions/rewards - Missing specific values
  • reference/core/signing schemes
  • concepts/order types/twap orders - Doesn't apply?
  • tutorials/cow swap/custom links
  • tutorials/cow swap/native - Doesn't apply?
  • tutorials/cow swap/twap - Doesn't apply?
  • tutorials/solvers/local test
  • tutorials/widget
  • tutorials/governance/token

Summary by CodeRabbit

Release Notes

  • New Features

    • Added support for Ink network throughout the platform, including contract addresses, explorer integration, and network endpoints.
  • Documentation

    • Updated core and periphery contract documentation with Ink network information.
    • Expanded rewards and governance token documentation to include Ink.
    • Added Ink endpoints for local testing and Orderbook access.
    • Included Ink in native/wrapped token references.

@Danziger Danziger requested a review from a team as a code owner February 5, 2026 15:30
@vercel
Copy link

vercel bot commented Feb 5, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Error Error Feb 5, 2026 3:30pm

Request Review

@github-actions
Copy link

github-actions bot commented Feb 5, 2026


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA


You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 5, 2026

📝 Walkthrough

Walkthrough

This PR adds support for the Ink blockchain across documentation files and refactors the contract-addresses component. Changes include adding Ink to contract reference tables, periphery deployments, reward configurations, signing schemes, token governance, and tutorials. A TypeScript component introduces typed ChainName type and an asArray helper for explorer link generation.

Changes

Cohort / File(s) Summary
Contract Reference Documentation
docs/cow-protocol/reference/contracts/core/README.mdx, docs/cow-protocol/reference/contracts/periphery/README.mdx
Added Ink as a supported network in explorer links for GPv2Settlement, GPv2AllowListAuthentication, GPv2VaultRelayer, HooksTrampoline, and EthFlow deployment tables; rearranged network listings to include Ink alongside existing chains.
Core Protocol Documentation
docs/cow-protocol/reference/core/auctions/rewards.md, docs/cow-protocol/reference/core/signing_schemes.mdx
Added Ink to rewards cap calculation supported chains list and current rewards table; updated domain separator explorer links to include Ink and Polygon with reorganized network ordering.
Tutorial and Governance Documentation
docs/cow-protocol/tutorials/cow-swap/custom-links.md, docs/cow-protocol/tutorials/solvers/local_test.md, docs/governance/token.md
Added Ink native/wrapped token entries (WETH), Orderbook staging and production endpoints, and bridged token table entries for Ink across COW and vCOW token sections.
Contract Addresses Component
src/components/contract-addresses/index.tsx
Introduced ChainName type derived from explorerByChain keys; added Ink explorer entry; refactored explorerUrl and explorerLinks to accept ChainName-typed chain parameters; added asArray helper utility for input normalization.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • #545: Directly related—introduces the same contract-addresses utility refactoring with ChainName type and asArray helper for explorer link generation.
  • #558: Related—modifies the same explorerByChain mapping in contract-addresses component to add new chain entries (Linea/Plasma vs. Ink).
  • #583: Related—adjusts contract-addresses component's explorer link behavior and chain entries.

Suggested reviewers

  • anxolin
  • pretf00d

Poem

🐰 With paws swift across the blockchain's sprawl,
Ink flows through docs—we've added it all!
New chains on the map, explorer links shine,
Types now stand guard at the reference line,
A rabbit's delight: documentation divine! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'feat: Add Ink network' is concise, specific, and accurately reflects the main objective of the pull request—adding support for the Ink network across documentation.
Description check ✅ Passed The description covers the main purpose and provides a detailed checklist of files/sections updated. While minimal narrative explanation is provided, the structured checklist clearly documents what was done and highlights incomplete work (missing specific values for auctions/rewards).

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/cow-163-ink-network

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

The payment is capped from above and below using the function $$\textrm{cap}(x) = \max(-c_l, \min(c_u, x))$$, where $$c_u$$ is the protocol fee (excluding partner fees) that the protocol earned from the trades in all solutions supplied by the solver in that auction and $$c_l$$ is chain-specific, determined by the following values:

- Ethereum mainnet, Arbitrum, and Base chain: $$0.010 \;\textrm{ETH}$$
- Ethereum mainnet, Arbitrum, Base and Ink chain: $$0.010 \;\textrm{ETH}$$
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this is the case (Ink == Mainnet)

- BNB Chain: $$\min\{0.001 ~\textrm{BNB}, 6 ~\textrm{COW}\}$$
- Linea: $$\min\{0.00003 ~\textrm{ETH}, 6 ~\textrm{COW}\}$$.
- Plasma: $$\min\{0.6 ~\textrm{XPL}, 6 ~\textrm{COW}\}$$.
- Ink: $$\min\{X.X ~\textrm{XPL}, 6 ~\textrm{COW}\}$$.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need values.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/components/contract-addresses/index.tsx (1)

59-67: ⚠️ Potential issue | 🟡 Minor

Missing key prop on <Link> elements will cause React warnings.

When rendering an array of elements via reduce, each element needs a unique key prop to avoid React reconciliation warnings.

🔧 Proposed fix
   return chains.reduce(
     (acc, chain) => {
       if (acc.length) {
         acc.push(separator)
       }
-      acc.push(<Link to={explorerUrl(chain, address, { urlTrailing })}>{chain}</Link>)
+      acc.push(<Link key={chain} to={explorerUrl(chain, address, { urlTrailing })}>{chain}</Link>)
       return acc
     }
     , []);
 }
🤖 Fix all issues with AI agents
In `@docs/cow-protocol/reference/contracts/periphery/README.mdx`:
- Around line 45-56: The MDX array passed to explorerLinks is missing commas
after the "Ink" and "Optimism" entries which breaks parsing; update the array
inside the explorerLinks([...]) call (the list containing "Arbitrum One",
"Avalanche", ..., "Ink", "Lens", "Linea", "Optimism", "Plasma") to include the
missing commas so each string is a separate element and the MDX/JS is valid.

In `@docs/cow-protocol/reference/core/auctions/rewards.md`:
- Line 100: Replace the incorrect token symbol in the Ink reward line: change
the expression "Ink: $$\min\{X.X ~\textrm{XPL}, 6 ~\textrm{COW}\}$$." so that
the placeholder token symbol "XPL" is "ETH" (e.g., "Ink: $$\min\{X.X
~\textrm{ETH}, 6 ~\textrm{COW}\}$$."), preserving the LaTeX formatting and the
rest of the text.
🧹 Nitpick comments (1)
src/components/contract-addresses/index.tsx (1)

70-72: Consider moving the asArray helper above explorerLinks for better readability.

While function hoisting makes this work, placing helper functions before their usage improves code flow and readability.

Comment on lines 45 to +56
{explorerLinks([
"Ethereum",
"Sepolia",
"Gnosis",
"Base",
"Arbitrum One",
"Avalanche",
"Polygon",
"Lens",
"Base",
"BNB",
"Ethereum",
"Gnosis",
"Ink"
"Lens",
"Linea",
"Plasma",
"Optimism"
"Plasma",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Fix missing commas in the network list (build break).

The explorerLinks([...]) array is missing commas after "Ink" and "Optimism", which will invalidate the MDX/JS and fail builds.

🔧 Proposed fix
 "Gnosis",
-"Ink"
+"Ink",
 "Lens",
 "Linea",
-"Optimism"
+"Optimism",
 "Plasma",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{explorerLinks([
"Ethereum",
"Sepolia",
"Gnosis",
"Base",
"Arbitrum One",
"Avalanche",
"Polygon",
"Lens",
"Base",
"BNB",
"Ethereum",
"Gnosis",
"Ink"
"Lens",
"Linea",
"Plasma",
"Optimism"
"Plasma",
{explorerLinks([
"Arbitrum One",
"Avalanche",
"Base",
"BNB",
"Ethereum",
"Gnosis",
"Ink",
"Lens",
"Linea",
"Optimism",
"Plasma",
🤖 Prompt for AI Agents
In `@docs/cow-protocol/reference/contracts/periphery/README.mdx` around lines 45 -
56, The MDX array passed to explorerLinks is missing commas after the "Ink" and
"Optimism" entries which breaks parsing; update the array inside the
explorerLinks([...]) call (the list containing "Arbitrum One", "Avalanche", ...,
"Ink", "Lens", "Linea", "Optimism", "Plasma") to include the missing commas so
each string is a separate element and the MDX/JS is valid.

- BNB Chain: $$\min\{0.001 ~\textrm{BNB}, 6 ~\textrm{COW}\}$$
- Linea: $$\min\{0.00003 ~\textrm{ETH}, 6 ~\textrm{COW}\}$$.
- Plasma: $$\min\{0.6 ~\textrm{XPL}, 6 ~\textrm{COW}\}$$.
- Ink: $$\min\{X.X ~\textrm{XPL}, 6 ~\textrm{COW}\}$$.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Incorrect token symbol: Ink uses ETH, not XPL.

The placeholder shows X.X XPL but Ink is an OP Stack chain that uses ETH as its native token. XPL is Plasma's native token (copied from line 99).

🔧 Proposed fix
-- Ink: $$\min\{X.X ~\textrm{XPL}, 6 ~\textrm{COW}\}$$.
+- Ink: $$\min\{X.X ~\textrm{ETH}, 6 ~\textrm{COW}\}$$.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- Ink: $$\min\{X.X ~\textrm{XPL}, 6 ~\textrm{COW}\}$$.
- Ink: $$\min\{X.X ~\textrm{ETH}, 6 ~\textrm{COW}\}$$.
🤖 Prompt for AI Agents
In `@docs/cow-protocol/reference/core/auctions/rewards.md` at line 100, Replace
the incorrect token symbol in the Ink reward line: change the expression "Ink:
$$\min\{X.X ~\textrm{XPL}, 6 ~\textrm{COW}\}$$." so that the placeholder token
symbol "XPL" is "ETH" (e.g., "Ink: $$\min\{X.X ~\textrm{ETH}, 6
~\textrm{COW}\}$$."), preserving the LaTeX formatting and the rest of the text.

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.

1 participant