-
Notifications
You must be signed in to change notification settings - Fork 15
docs: add example of SC limit order #302
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?
Conversation
WalkthroughThe documentation for the Trading SDK was updated to improve code examples, ensuring consistent object destructuring for order creation methods and adding detailed usage instructions for smart-contract wallets with the Changes
Poem
Tip ⚡️ Faster reviews with caching
Enjoy the performance boost—your workflow just got faster. 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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
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: 1
🧹 Nitpick comments (2)
src/trading/README.md (2)
375-375
: Typo in inline comment
Correct “bellow” → “below” in the owner-parameter comment to avoid confusion.
391-393
: Clarify and correct SC wallet note
The note can be tightened and spelling corrected:> **Note:** It’s important to specify the `owner` parameter when creating an order with a smart-contract wallet that differs from the signer (e.g., a Safe). > CoW Protocol uses `owner` to verify the owner’s balance, allowances, and other relevant parameters.🧰 Tools
🪛 LanguageTool
[style] ~392-~392: Consider a more concise word here.
Context: ... Safe). > CoW Protocol will useowner
in order to check the order owner balance, allowanc...(IN_ORDER_TO_PREMIUM)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/trading/README.md
(7 hunks)
🧰 Additional context used
🪛 LanguageTool
src/trading/README.md
[style] ~392-~392: Consider a more concise word here.
Context: ... Safe). > CoW Protocol will use owner
in order to check the order owner balance, allowanc...
(IN_ORDER_TO_PREMIUM)
🪛 Gitleaks (8.21.2)
src/trading/README.md
369-369: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.
(generic-api-key)
371-371: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.
(generic-api-key)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Build Package
- GitHub Check: test
- GitHub Check: eslint
🔇 Additional comments (5)
src/trading/README.md (5)
169-169
: DestructuringpostSwapOrder
response
The updated example now extractsorderId
from the SDK response, aligning with the destructuring pattern used elsewhere.
215-215
: DestructuringpostLimitOrder
response
This aligns the limit-order snippet with the destructuring approach used across other examples.
252-252
: DestructuringpostSellNativeCurrencyOrder
response
Good—destructuringorderId
here maintains consistency across the three primary order‐creation functions.
307-307
: Swap-order example header addition
The new “Example of Swap order” header clearly segments this smart-contract wallet usage scenario, improving readability.
384-384
: DestructuringpostLimitOrder
for SC wallet
Consistent destructuring oforderId
here continues the pattern—nice improvement.
const { orderId } = await sdk.postSwapOrder(parameters, advancedParameters) | ||
const preSignTransaction = await sdk.getPreSignTransaction({ orderId, account: smartContractWalletAddress }) | ||
|
||
8000 console.log('Order created with "pre-sign" state, id: ', orderId) | ||
console.log('Execute the transaction to sign the order', preSignTransaction) | ||
``` |
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.
Missing imports for advanced swap example
The snippet uses SwapAdvancedSettings
and SigningScheme
but doesn’t import them, which will break compilation. Please adjust the import:
-import { SupportedChainId, OrderKind, TradeParameters, TradingSdk } from '@cowprotocol/cow-sdk'
+import {
+ SupportedChainId,
+ OrderKind,
+ TradeParameters,
+ TradingSdk,
+ SwapAdvancedSettings,
+ SigningScheme
+} from '@cowprotocol/cow-sdk'
📝 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.
const { orderId } = await sdk.postSwapOrder(parameters, advancedParameters) | |
const preSignTransaction = await sdk.getPreSignTransaction({ orderId, account: smartContractWalletAddress }) | |
console.log('Order created with "pre-sign" state, id: ', orderId) | |
console.log('Execute the transaction to sign the order', preSignTransaction) | |
``` | |
// Before: | |
import { SupportedChainId, OrderKind, TradeParameters, TradingSdk } from '@cowprotocol/cow-sdk' | |
// After: | |
import { | |
SupportedChainId, | |
OrderKind, | |
TradeParameters, | |
TradingSdk, | |
SwapAdvancedSettings, | |
SigningScheme, | |
} from '@cowprotocol/cow-sdk' |
Creating limit orders from SC wallet requires some additional parameters, such as signingScheme and owner.
Summary by CodeRabbit