Skip to content

fixes for bundles documentation#625

Open
kaze-cow wants to merge 1 commit intomainfrom
buff-bundles-docs
Open

fixes for bundles documentation#625
kaze-cow wants to merge 1 commit intomainfrom
buff-bundles-docs

Conversation

@kaze-cow
Copy link
Copy Markdown
Contributor

@kaze-cow kaze-cow commented May 8, 2026

Description

Following the release of atomic bundles, we have discovered some additional documentation could be changed, and some of hte terminology hasn't been fully updated.

Changes

  • all terminology should be "Atomic Bundles" wherever possible
  • add a section explaining difference between bundles and hooks and when to use each
  • add a section explaining how to get whitelisted in staging

Note that the URL of the pages wrappers remains the same in all cases, and the original source code for CowWrapper or related contract examples also remains the same since we haven't changed the official terminology in the source code yet.

Summary by CodeRabbit

  • Documentation
    • Updated terminology across protocol documentation to reflect "Atomic Bundles" branding (formerly "Generalized Wrappers").
    • Enhanced integration guide with clearer usage guidance, including when to use bundles and validation approaches.
    • Added documentation for nested bundle execution semantics and configuration validation.

* all terminology should be "Atomic Bundles" wherever possible
* add a section explaining difference between bundles and hooks and when to use each
* add a section explaining how to get whitelisted in staging
@kaze-cow kaze-cow requested a review from anxolin May 8, 2026 10:13
@kaze-cow kaze-cow self-assigned this May 8, 2026
@kaze-cow kaze-cow requested a review from a team as a code owner May 8, 2026 10:13
@kaze-cow kaze-cow added the documentation Improvements or additions to documentation label May 8, 2026
@vercel
Copy link
Copy Markdown

vercel Bot commented May 8, 2026

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

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview May 8, 2026 10:13am

Request Review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 8, 2026

Review Change Stack

📝 Walkthrough

Walkthrough

This pull request rebrands "Generalized Wrappers" to "Atomic Bundles" across CoW Protocol documentation. The concept page introduces the new name and restructures decision guidance with "When to Use" criteria and alternative-first framing. Integration guides add new sections for nested bundle execution and validation. Contract reference updates terminology throughout implementation details and reorganizes resources.

Changes

Atomic Bundles Documentation Rebranding

Layer / File(s) Summary
Concept Definitions and Decision Framework
docs/cow-protocol/concepts/order-types/wrappers.md
"Atomic Bundles (formerly Generalized Wrappers)" framing introduced. "Example Use Cases" replaces "Use Cases." New "When to Use Atomic Bundles" section adds "Consider alternatives first" guidance centered on CoW Hooks and explicit use-case checklist. "Limitations"/"Gas Overhead" copy adjusted.
Integration Guides and Developer Examples
docs/cow-protocol/integrate/wrappers.mdx
Bundle terminology applied throughout. Order creator section updates appData schema and SDK examples to reflect bundle call targets and bundle-specific semantics. New "Multiple Bundles (Nested)" section documents execution order. "Validating Bundle Configuration" subsection introduced. Solver section expanded with bundle field semantics, non-omittable rules, authentication verification, and manual encoding steps targeting the first bundle. "Accumulating Bundles in Solutions" workflow renamed and rewritten.
Contract Reference and Technical Specifications
docs/cow-protocol/reference/contracts/periphery/wrapper.mdx
Page heading, design principles, and base contract descriptions updated to bundle terminology. validateWrapperData, _next, and wrappedSettle sections reworded for bundle semantics. Calldata encoding spec renamed to bundle-specific terminology. Implementation requirements and security examples reference bundle context. Gas overhead benchmark labels updated. Resources section reorganized with "Bundle Concepts" link and "Documentation" subsection.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A bundle of docs, once wrappers so plain,
Now "Atomic" and clearer, with less to explain!
The concepts now shine with "When to Use" light,
Integration guides sparkle, the reference looks right.
From wrapper to bundle, the story's rewritten—
Our CoW Protocol docs are now truly smitten! 🌾✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive Title is vague and generic. 'fixes for bundles documentation' lacks specificity about the primary change (terminology updates and new sections) and uses non-descriptive phrasing. Use a more descriptive title that clarifies the main change, such as 'Rebrand wrapper terminology to Atomic Bundles and add deployment guidance' or 'Update documentation terminology and add bundle vs hooks comparison.'
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed Description is mostly complete with clear context, objectives, and a bulleted list of changes. However, it contains a minor typo ('hte' instead of 'the') and lacks the template's 'Related Issues' section.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch buff-bundles-docs

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.

Copy link
Copy Markdown
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

🧹 Nitpick comments (1)
docs/cow-protocol/integrate/wrappers.mdx (1)

128-139: ⚡ Quick win

Rename isValid in the example to match actual return type

verifyAndBuildWrapperData returns encoded chainedWrapperData (bytes), not a boolean. Naming it isValid is misleading in sample code.

Suggested edit
-const isValid = await helper.verifyAndBuildWrapperData([
+const chainedWrapperData = await helper.verifyAndBuildWrapperData([
@@
-// Returns encoded chainedWrapperData if valid, reverts if invalid
+// Returns encoded chainedWrapperData if valid, reverts if invalid
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/cow-protocol/integrate/wrappers.mdx` around lines 128 - 139, The example
variable name is misleading: change the variable named isValid to reflect that
verifyAndBuildWrapperData returns encoded chainedWrapperData (bytes), e.g.,
rename isValid to chainedWrapperData or encodedWrapperData; update any
subsequent example comments to match the byte return type and clarify that the
value is encoded chainedWrapperData returned by verifyAndBuildWrapperData.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/cow-protocol/concepts/order-types/wrappers.md`:
- Line 26: Replace the placeholder bullet title "Something else" with a concrete
use-case heading such as "Third‑party/Custom Atomic Bundles" (so the line reads:
"Third‑party/Custom Atomic Bundles: Anyone can build and submit a new Atomic
Bundles contract, and there are few restrictions on what a bundle can do during
execution.") or remove the entire bullet until a finalized heading is agreed;
update the heading text that currently contains "Something else" to a specific,
descriptive title.

In `@docs/cow-protocol/integrate/wrappers.mdx`:
- Line 40: Replace the chain/explorer-specific phrase "Etherscan" in the staging
allowlist instruction with a neutral term like "a public block explorer" (so the
sentence that currently reads "verified and deployed on Etherscan" becomes e.g.
"verified and deployed on a public block explorer") to ensure the guidance is
correct across supported testnets and chains; update the sentence in the
docs/cow-protocol/integrate/wrappers.mdx content that mentions verification to
use this generic wording.

---

Nitpick comments:
In `@docs/cow-protocol/integrate/wrappers.mdx`:
- Around line 128-139: The example variable name is misleading: change the
variable named isValid to reflect that verifyAndBuildWrapperData returns encoded
chainedWrapperData (bytes), e.g., rename isValid to chainedWrapperData or
encodedWrapperData; update any subsequent example comments to match the byte
return type and clarify that the value is encoded chainedWrapperData returned by
verifyAndBuildWrapperData.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 297cd7fc-0e11-420d-80db-9ac76a8fc0b0

📥 Commits

Reviewing files that changed from the base of the PR and between 5e11bb1 and c004b38.

📒 Files selected for processing (3)
  • docs/cow-protocol/concepts/order-types/wrappers.md
  • docs/cow-protocol/integrate/wrappers.mdx
  • docs/cow-protocol/reference/contracts/periphery/wrapper.mdx

- Cross chain transfers (pre- or post-transfer)
- Deposit in a vault or other bundle contract (swap and stake)
* **Something else:** Anyone can build and submit a new Atomic Bundles contract, and there are few restrictions on what a wrapper can do during execution.
* **Something else:** Anyone can build and submit a new Atomic Bundles contract, and there are few restrictions on what a bundle can do during execution.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Replace placeholder “Something else” with a concrete use case title

Line 26 reads like draft placeholder text and weakens this section’s clarity. Please replace it with a specific heading (or remove the bullet until finalized).

Suggested edit
-* **Something else:** Anyone can build and submit a new Atomic Bundles contract, and there are few restrictions on what a bundle can do during execution.
+* **Custom integrations:** Anyone can build and submit a new Atomic Bundles contract, and there are few restrictions on what a bundle can do during execution.
📝 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
* **Something else:** Anyone can build and submit a new Atomic Bundles contract, and there are few restrictions on what a bundle can do during execution.
* **Custom integrations:** Anyone can build and submit a new Atomic Bundles contract, and there are few restrictions on what a bundle can do during execution.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/cow-protocol/concepts/order-types/wrappers.md` at line 26, Replace the
placeholder bullet title "Something else" with a concrete use-case heading such
as "Third‑party/Custom Atomic Bundles" (so the line reads: "Third‑party/Custom
Atomic Bundles: Anyone can build and submit a new Atomic Bundles contract, and
there are few restrictions on what a bundle can do during execution.") or remove
the entire bullet until a finalized heading is agreed; update the heading text
that currently contains "Something else" to a specific, descriptive title.

To get whitelisted on staging:

1. **Meet the implementation requirements.** Review the [Implementation Requirements](../reference/contracts/periphery/wrapper.mdx#implementation-requirements-for-integrators) and make sure your bundle satisfies all of them. In particular, ensure your contract uses the `CowWrapper` abstract contract, that `validateWrapperData()` is deterministic, and that the bundle is designed defensively.
2. **Reach out to the CoW Protocol team.** Contact the team (e.g. via the [CoW Protocol Discord](https://discord.com/invite/cowprotocol)) to request staging allowlist access. Share your contract which is verified and deployed on Etherscan and a brief description of the intended use case.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Avoid hard-coding “Etherscan” in staging-whitelist instructions

Line 40 is chain/explorer-specific. Prefer “verified on a public block explorer” so this stays correct across supported testnets.

Suggested edit
-2. **Reach out to the CoW Protocol team.** Contact the team (e.g. via the [CoW Protocol Discord](https://discord.com/invite/cowprotocol)) to request staging allowlist access. Share your contract which is verified and deployed on Etherscan and a brief description of the intended use case.
+2. **Reach out to the CoW Protocol team.** Contact the team (e.g. via the [CoW Protocol Discord](https://discord.com/invite/cowprotocol)) to request staging allowlist access. Share your deployed contract (verified on a public block explorer) and a brief description of the intended use case.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/cow-protocol/integrate/wrappers.mdx` at line 40, Replace the
chain/explorer-specific phrase "Etherscan" in the staging allowlist instruction
with a neutral term like "a public block explorer" (so the sentence that
currently reads "verified and deployed on Etherscan" becomes e.g. "verified and
deployed on a public block explorer") to ensure the guidance is correct across
supported testnets and chains; update the sentence in the
docs/cow-protocol/integrate/wrappers.mdx content that mentions verification to
use this generic wording.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant