-
Notifications
You must be signed in to change notification settings - Fork 24
feat: plasma #583
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: plasma #583
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📝 WalkthroughWalkthroughThis PR systematically adds Plasma network support across documentation files, including contract references, tutorial guides, protocol specifications, and a minor URL configuration fix for the Plasma explorer endpoint. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (2 inconclusive)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
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. Comment |
There was a problem hiding this 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)
docs/cow-amm/tutorials/cow-amm-deployer.md (1)
29-29: Fix broken step numbering sequence. The numbered steps are currently [1, 1, 1, 2, 1], which breaks the tutorial's logical flow. Steps should be numbered sequentially [1, 2, 3, 4, 5] to guide readers through the deployment process correctly.🔧 Proposed fix to restore correct step numbering
- 1. In order to create a new pool, one first needs to call the `newBPool` function of the factory contract. An example transaction that creates a new pool can be found [here](https://etherscan.io/tx/0x7543a97853827e267ecd3c1309509ac7704e4f85a53fbfacd6060f461d85bad8#eventlog). The relevant `LOG_NEW_POOL` log also reveals the address of the newly created pool; in our example transaction, it is `0x81530e9B069c69F6671A0A9d7Ee337cafEF419F6`. -1. The next step is to approve the tokens we want to add to the pool; this can be done by calling the `approve()` function on the contract of the relevant ERC-20 token that is being added to the pool, where the "spender" needs to be set to the newly created BPool address from (1). +2. The next step is to approve the tokens we want to add to the pool; this can be done by calling the `approve()` function on the contract of the relevant ERC-20 token that is being added to the pool, where the "spender" needs to be set to the newly created BPool address from (1). -1. The next step is to bind the approved tokens to the pool, by using the `bind()` function of the newly created pool contract. We need to do one bind per token that will be added to the pool. Note that the `denorm` parameter should always be set to 1000000000000000000 (i.e., 10^18). +3. The next step is to bind the approved tokens to the pool, by using the `bind()` function of the newly created pool contract. We need to do one bind per token that will be added to the pool. Note that the `denorm` parameter should always be set to 1000000000000000000 (i.e., 10^18). -2. We can then set the swap fee; this is the fee trades will pay if they trade permissionlessly (i.e., outside of the batch), and this is done by calling the `setSwapFee()` function of the pool contract. The fee parameter needs to be specified in wei, hence, a 10% fee would be 100000000000000000 (i.e., 10^17) +4. We can then set the swap fee; this is the fee trades will pay if they trade permissionlessly (i.e., outside of the batch), and this is done by calling the `setSwapFee()` function of the pool contract. The fee parameter needs to be specified in wei, hence, a 10% fee would be 100000000000000000 (i.e., 10^17) -1. The final step is to finalize the pool by calling the `finalize()` function of the newly created pool contract. +5. The final step is to finalize the pool by calling the `finalize()` function of the newly created pool contract.Also applies to: 36-36, 43-43, 45-45, 57-57
🤖 Fix all issues with AI agents
In @docs/cow-protocol/reference/core/auctions/rewards.md:
- Line 49: Replace the placeholder reward cap string "Plasma: $$0.XXX
\;\textrm{XPL}$$" with the actual cap value specified in the PR description
(e.g., "Plasma: $$0.123 \;\textrm{XPL}$$"), keeping the same LaTeX/Markdown
formatting; update the line in
docs/cow-protocol/reference/core/auctions/rewards.md (the placeholder string) so
the document reflects the real numeric value before merging.
- Line 99: Replace the placeholder price-estimation reward "0.XXX" in the LaTeX
expression for Plasma (the line containing "Plasma: $$\min\{0.XXX ~\textrm{XPL},
6 ~\textrm{COW}\}$$") with the actual numeric XPL value used for other networks,
keeping the existing LaTeX formatting and units intact so the line becomes e.g.
"Plasma: $$\min\{<actual_value> ~\textrm{XPL}, 6 ~\textrm{COW}\}$$".
🧹 Nitpick comments (6)
docs/cow-protocol/reference/core/auctions/bonding_pools.md (3)
9-9: Fix hyphenation of compound adjectives.Lines 9 and 15 use "yield bearing" but should use the hyphenated form "yield-bearing" when modifying a noun. This improves consistency with standard compound adjective formatting in technical documentation.
📝 Proposed fix
-Once this safe has been confirmed by the CoW DAO team, the safe should be funded with $500,000 USD in (yield bearing) stable coins and 1,500,000 COW tokens. +Once this safe has been confirmed by the CoW DAO team, the safe should be funded with $500,000 USD in (yield-bearing) stable coins and 1,500,000 COW tokens.-After this is done and has been confirmed by the CoW DAO team, the solver needs to deposit $50,000 in (yield-bearing) stable coins or ETH, and 500,000 COW tokens to the newly created safe, and gradually build the pool's size over the course of the following year all the way to $100,000 in (yield-bearing) stable coins or ETH, and 1,000,000 COW tokens. +After this is done and has been confirmed by the CoW DAO team, the solver needs to deposit $50,000 in (yield-bearing) stable coins or ETH, and 500,000 COW tokens to the newly created safe, and gradually build the pool's size over the course of the following year all the way to $100,000 in (yield-bearing) stable coins or ETH, and 1,000,000 COW tokens.Also applies to: 15-15
13-13: Fix spacing in compound word.Line 13 uses "onchain" but should use the spaced/hyphenated form "on-chain" to match standard technical terminology and improve readability.
📝 Proposed fix
-...where the main benefit is that then they can fully control their calldata and the onchain submission process. +...where the main benefit is that then they can fully control their calldata and the on-chain submission process.
43-43: Simplify verbose phrasing.Line 43 uses "In order to" which is more verbose than necessary. Consider using the simpler "To" for cleaner, more concise documentation.
📝 Proposed fix
-In order to dissolve a bonding pool you must first unvouch for all solvers that have been vouched for by this bonding pool. +To dissolve a bonding pool you must first unvouch for all solvers that have been vouched for by this bonding pool.docs/cow-amm/tutorials/cow-amm-deployer.md (2)
40-40: Refine conciseness in step 2 instructions. The phrase "in order to set the correct approval" can be simplified to "to set the correct approval" for more direct language.✍️ Proposed refinement
- One needs to take the token's decimals into account in order to set the correct approval. + One needs to take the token's decimals into account to set the correct approval.
45-45: Simplify redundant phrasing. The phrase "outside of the batch" is redundant; use "outside the batch" instead for clarity.✍️ Proposed refinement
- We can then set the swap fee; this is the fee trades will pay if they trade permissionlessly (i.e., outside of the batch), and this is done by calling the `setSwapFee()` function of the pool contract. + We can then set the swap fee; this is the fee trades will pay if they trade permissionlessly (i.e., outside the batch), and this is done by calling the `setSwapFee()` function of the pool contract.docs/governance/token.md (1)
99-99: Consider restoring sequential numbering for better source readability.While markdown will auto-number these list items correctly, having three consecutive "1." markers (lines 93, 99, 107) makes the source markdown harder to read and maintain. The AI summary indicates these were changed from "2." and "3." respectively.
Consider using explicit sequential numbers (1., 2., 3.) for clarity, or if auto-numbering is preferred, add a comment explaining this convention.
📝 Suggested numbering for clarity
-1. Unvested COW Tokens +2. Unvested COW Tokens-1. DAO Treasury Holdings +3. DAO Treasury HoldingsAlso applies to: 107-107
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (13)
docs/cow-amm/tutorials/cow-amm-deployer.mddocs/cow-amm/tutorials/cow-amm-for-solvers.mddocs/cow-protocol/reference/contracts/core/README.mdxdocs/cow-protocol/reference/contracts/periphery/README.mdxdocs/cow-protocol/reference/core/auctions/bonding_pools.mddocs/cow-protocol/reference/core/auctions/competition_rules.mddocs/cow-protocol/reference/core/auctions/rewards.mddocs/cow-protocol/reference/core/signing_schemes.mdxdocs/cow-protocol/tutorials/cow-swap/custom-links.mddocs/cow-protocol/tutorials/solvers/local_test.mddocs/cow-protocol/tutorials/widget/widget.mddocs/governance/token.mdsrc/components/contract-addresses/index.tsx
🧰 Additional context used
🪛 LanguageTool
docs/cow-amm/tutorials/cow-amm-deployer.md
[style] ~40-~40: Consider a more concise word here.
Context: ... take the token's decimals into account in order to set the correct approval. ::: 1. The n...
(IN_ORDER_TO_PREMIUM)
[style] ~43-~43: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... of the newly created pool contract. We need to do one bind per token that will be adde...
(REP_NEED_TO_VB)
[style] ~45-~45: This phrase is redundant. Consider using “outside”.
Context: ...y if they trade permissionlessly (i.e., outside of the batch), and this is done by calling...
(OUTSIDE_OF)
docs/cow-protocol/reference/core/auctions/rewards.md
[style] ~73-~73: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...en the best and second-best solution is very large, then the winning solver wins more when...
(EN_WEAK_ADJECTIVE)
docs/cow-protocol/reference/core/auctions/bonding_pools.md
[grammar] ~9-~9: Use a hyphen to join words.
Context: ...d be funded with $500,000 USD in (yield bearing) stable coins and 1,500,000 COW ...
(QB_NEW_EN_HYPHEN)
[grammar] ~13-~13: Ensure spelling is correct
Context: ...an fully control their calldata and the onchain submission process. Note that the inter...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~43-~43: Consider a more concise word here.
Context: ...nts. # How to dissolve a bonding pool In order to dissolve a bonding pool you must first ...
(IN_ORDER_TO_PREMIUM)
docs/cow-protocol/reference/core/auctions/competition_rules.md
[style] ~44-~44: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ..., gasLimit, calldata 2. The hook needs to be attempted, meaning the hook revertin...
(REP_NEED_TO_VB)
[style] ~53-~53: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ver network fees in the contract. - Solvers are allowed to use funds in the settlem...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~54-~54: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...es, also referred to as slippage. - Solvers are allowed to use funds in the settlem...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~55-~55: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...cification](../../apis/driver.mdx). Solvers bear responsibility for all changes to ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
🔇 Additional comments (17)
docs/cow-protocol/reference/core/auctions/bonding_pools.md (1)
23-34: The Plasma explorer URL is valid and already configured in the codebase.The explorer URL
https://plasmascan.to/returned HTTP 200 and is already registered insrc/components/contract-addresses/index.tsxas the official Plasma explorer endpoint. The URL pattern is consistent with all other block explorers in the list.However, the contract address
0xAAA4De096D02AE21729aA31D967E148D4e3Ae501cannot be definitively confirmed as the correct VouchRegister contract for Plasma. This address is used identically across multiple networks (Gnosis Chain, Arbitrum, Base, Avalanche, Polygon, Lens, BNB, Linea), which is consistent with cross-chain deployment patterns, but no explicit Plasma deployment records exist in the codebase to verify it corresponds to the VouchRegister contract on Plasma specifically.docs/cow-protocol/tutorials/solvers/local_test.md (1)
67-68: Network endpoints properly documented. Addition of Plasma staging and production orderbook endpoints follows the established table format and URL patterns consistently.docs/cow-protocol/tutorials/cow-swap/custom-links.md (1)
80-80: Plasma wrapped token documentation added correctly. The WXPL entry follows the established pattern for other chains with proper explorer link and token address reference.docs/cow-amm/tutorials/cow-amm-deployer.md (1)
24-24: Plasma factory contract entry added appropriately. The "N/A" status is suitable for a network without a deployed factory contract yet, maintaining consistency with other networks awaiting deployment.src/components/contract-addresses/index.tsx (1)
15-15: LGTM! Fixes URL construction.Removing the trailing slash prevents a double-slash issue in the constructed explorer URLs. The
explorerUrlfunction (line 31) concatenates the base URL with/address/..., so the trailing slash would have producedhttps://plasmascan.to//address/...instead of the correcthttps://plasmascan.to/address/....docs/cow-amm/tutorials/cow-amm-for-solvers.md (1)
49-49: LGTM!Consistent addition of Plasma to the helper contracts deployment list, following the same N/A pattern as other networks without deployments.
docs/cow-protocol/tutorials/widget/widget.md (1)
98-98: LGTM!Plasma network entries added consistently across all partner fee configuration examples (bps values and recipient placeholders for all trade types). The additions follow the same pattern as other supported networks.
Also applies to: 118-118, 131-131, 144-144
docs/governance/token.md (1)
24-24: LGTM!Plasma entries added consistently to both COW and vCOW token tables, indicating N/A availability, which aligns with the broader Plasma network support being added across the documentation.
Also applies to: 43-43
docs/cow-protocol/reference/contracts/core/README.mdx (1)
47-49: LGTM!Plasma network added consistently to all three core contract deployment lists, using the same deterministic addresses as other chains. The additions correctly reflect the expansion of CoW Protocol to the Plasma network.
docs/cow-protocol/reference/core/signing_schemes.mdx (2)
39-51: LGTM!Plasma is correctly added to the explorerLinks array for the domain separator view function, maintaining consistency with other supported networks.
138-138: LGTM!Plasma is correctly listed as N/A for the helper contract, consistent with other newer networks that don't have this deployment yet.
docs/cow-protocol/reference/contracts/periphery/README.mdx (3)
17-18: LGTM!Plasma is correctly added to both Production and Staging EthFlow network lists, maintaining consistent positioning before Sepolia.
45-58: LGTM!Plasma (and Optimism) correctly added to the HooksTrampoline networks array.
71-83: LGTM!Plasma correctly added to the ComposableCoW networks array with consistent positioning.
docs/cow-protocol/reference/core/auctions/competition_rules.md (3)
39-48: LGTM!Formatting adjustments to hook execution rules are consistent and improve readability.
70-70: LGTM!Plasma deadline of 20 blocks is consistent with similar L2 chains (Base, Avalanche, Polygon, Linea).
159-165: URLs are valid and properly linked. All three Plasma token addresses on plasmascan.to are accessible.
| - Lens: $$10 \;\textrm{GHO}$$ | ||
| - BNB: $$0.04 \;\textrm{BNB}$$ | ||
| - Linea: $$0.0015 \;\textrm{ETH}$$ | ||
| - Plasma: $$0.XXX \;\textrm{XPL}$$ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Placeholder value needs to be replaced before merge.
The reward cap value 0.XXX XPL is a placeholder. This should be updated with the actual value before merging, as noted in the PR description.
🤖 Prompt for AI Agents
In @docs/cow-protocol/reference/core/auctions/rewards.md at line 49, Replace the
placeholder reward cap string "Plasma: $$0.XXX \;\textrm{XPL}$$" with the actual
cap value specified in the PR description (e.g., "Plasma: $$0.123
\;\textrm{XPL}$$"), keeping the same LaTeX/Markdown formatting; update the line
in docs/cow-protocol/reference/core/auctions/rewards.md (the placeholder string)
so the document reflects the real numeric value before merging.
| - Lens Chain: $$\min\{0.15 ~\textrm{GHO}, 6 ~\textrm{COW}\}$$ | ||
| - BNB Chain: $$\min\{0.001 ~\textrm{BNB}, 6 ~\textrm{COW}\}$$ | ||
| - Linea: $$\min\{0.00003 ~\textrm{ETH}, 6 ~\textrm{COW}\}$$. | ||
| - Plasma: $$\min\{0.XXX ~\textrm{XPL}, 6 ~\textrm{COW}\}$$. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Placeholder value needs to be replaced before merge.
The price estimation reward value 0.XXX XPL is a placeholder. This should be updated with the actual value before merging, consistent with other networks that have specific amounts defined.
🤖 Prompt for AI Agents
In @docs/cow-protocol/reference/core/auctions/rewards.md at line 99, Replace the
placeholder price-estimation reward "0.XXX" in the LaTeX expression for Plasma
(the line containing "Plasma: $$\min\{0.XXX ~\textrm{XPL}, 6 ~\textrm{COW}\}$$")
with the actual numeric XPL value used for other networks, keeping the existing
LaTeX formatting and units intact so the line becomes e.g. "Plasma:
$$\min\{<actual_value> ~\textrm{XPL}, 6 ~\textrm{COW}\}$$".
Description
Add Plasma chain related data
Changes
Summary by CodeRabbit
Documentation
Bug Fixes
✏️ Tip: You can customize this high-level summary in your review settings.