@cowprotocol/cow-sdk 6.3.2 → 7.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/README.md +276 -192
  2. package/dist/CHANGELOG.md +24 -0
  3. package/dist/README.md +276 -192
  4. package/dist/index.d.mts +73 -0
  5. package/dist/index.d.ts +73 -11
  6. package/dist/index.js +86 -27
  7. package/dist/index.mjs +49 -0
  8. package/dist/package.json +71 -91
  9. package/package.json +71 -91
  10. package/LICENSE-APACHE +0 -201
  11. package/LICENSE-MIT +0 -21
  12. package/dist/COPYRIGHT.md +0 -13
  13. package/dist/bridging/BridgingSdk/BridgingSdk.d.ts +0 -87
  14. package/dist/bridging/BridgingSdk/findBridgeProviderFromHook.d.ts +0 -2
  15. package/dist/bridging/BridgingSdk/getBridgeSignedHook.d.ts +0 -8
  16. package/dist/bridging/BridgingSdk/getCrossChainOrder.d.ts +0 -16
  17. package/dist/bridging/BridgingSdk/getQuoteWithBridge.d.ts +0 -3
  18. package/dist/bridging/BridgingSdk/getQuoteWithoutBridge.d.ts +0 -7
  19. package/dist/bridging/BridgingSdk/mock/bridgeRequestMocks.d.ts +0 -21
  20. package/dist/bridging/BridgingSdk/types.d.ts +0 -43
  21. package/dist/bridging/const.d.ts +0 -6
  22. package/dist/bridging/errors.d.ts +0 -22
  23. package/dist/bridging/index.d.ts +0 -8
  24. package/dist/bridging/providers/across/AcrossApi.d.ts +0 -30
  25. package/dist/bridging/providers/across/AcrossBridgeProvider.d.ts +0 -44
  26. package/dist/bridging/providers/across/abi.d.ts +0 -154
  27. package/dist/bridging/providers/across/const/contracts.d.ts +0 -3
  28. package/dist/bridging/providers/across/const/interfaces.d.ts +0 -3
  29. package/dist/bridging/providers/across/const/misc.d.ts +0 -2
  30. package/dist/bridging/providers/across/const/tokens.d.ts +0 -11
  31. package/dist/bridging/providers/across/createAcrossDepositCall.d.ts +0 -9
  32. package/dist/bridging/providers/across/getDepositParams.d.ts +0 -4
  33. package/dist/bridging/providers/across/types.d.ts +0 -242
  34. package/dist/bridging/providers/across/util.d.ts +0 -43
  35. package/dist/bridging/providers/bungee/BungeeApi.d.ts +0 -68
  36. package/dist/bridging/providers/bungee/BungeeBridgeProvider.d.ts +0 -45
  37. package/dist/bridging/providers/bungee/abi.d.ts +0 -203
  38. package/dist/bridging/providers/bungee/const/contracts.d.ts +0 -4
  39. package/dist/bridging/providers/bungee/const/misc.d.ts +0 -8
  40. package/dist/bridging/providers/bungee/createBungeeDepositCall.d.ts +0 -7
  41. package/dist/bridging/providers/bungee/getBridgingStatusFromEvents.d.ts +0 -3
  42. package/dist/bridging/providers/bungee/types.d.ts +0 -268
  43. package/dist/bridging/providers/bungee/util.d.ts +0 -62
  44. package/dist/bridging/providers/mock/MockBridgeProvider.d.ts +0 -26
  45. package/dist/bridging/providers/utils/getGasLimitEstimationForHook.d.ts +0 -10
  46. package/dist/bridging/types.d.ts +0 -333
  47. package/dist/bridging/utils.d.ts +0 -9
  48. package/dist/chains/const/index.d.ts +0 -25
  49. package/dist/chains/const/path.d.ts +0 -1
  50. package/dist/chains/details/arbitrum.d.ts +0 -7
  51. package/dist/chains/details/avalanche.d.ts +0 -2
  52. package/dist/chains/details/base.d.ts +0 -7
  53. package/dist/chains/details/bnb.d.ts +0 -2
  54. package/dist/chains/details/gnosis.d.ts +0 -7
  55. package/dist/chains/details/index.d.ts +0 -10
  56. package/dist/chains/details/lens.d.ts +0 -2
  57. package/dist/chains/details/mainnet.d.ts +0 -7
  58. package/dist/chains/details/optimism.d.ts +0 -2
  59. package/dist/chains/details/polygon.d.ts +0 -2
  60. package/dist/chains/details/sepolia.d.ts +0 -7
  61. package/dist/chains/index.d.ts +0 -4
  62. package/dist/chains/types.d.ts +0 -133
  63. package/dist/chains/utils.d.ts +0 -19
  64. package/dist/common/consts/config.d.ts +0 -9
  65. package/dist/common/consts/contracts.d.ts +0 -45
  66. package/dist/common/consts/ipfs.d.ts +0 -2
  67. package/dist/common/consts/order.d.ts +0 -1
  68. package/dist/common/consts/path.d.ts +0 -1
  69. package/dist/common/consts/tokens.d.ts +0 -9
  70. package/dist/common/generated/CoWShed.d.ts +0 -219
  71. package/dist/common/generated/CoWShedFactory.d.ts +0 -191
  72. package/dist/common/generated/ComposableCoW.d.ts +0 -340
  73. package/dist/common/generated/EthFlow.d.ts +0 -117
  74. package/dist/common/generated/ExtensibleFallbackHandler.d.ts +0 -282
  75. package/dist/common/generated/GPv2Settlement.d.ts +0 -107
  76. package/dist/common/generated/TWAP.d.ts +0 -141
  77. package/dist/common/generated/common.d.ts +0 -21
  78. package/dist/common/generated/factories/CoWShedFactory__factory.d.ts +0 -250
  79. package/dist/common/generated/factories/CoWShed__factory.d.ts +0 -254
  80. package/dist/common/generated/factories/ComposableCoW__factory.d.ts +0 -475
  81. package/dist/common/generated/factories/EthFlow__factory.d.ts +0 -124
  82. package/dist/common/generated/factories/ExtensibleFallbackHandler__factory.d.ts +0 -389
  83. package/dist/common/generated/factories/GPv2Settlement__factory.d.ts +0 -81
  84. package/dist/common/generated/factories/TWAP__factory.d.ts +0 -260
  85. package/dist/common/generated/factories/index.d.ts +0 -7
  86. package/dist/common/generated/index.d.ts +0 -15
  87. package/dist/common/index.d.ts +0 -12
  88. package/dist/common/types/config.d.ts +0 -70
  89. package/dist/common/types/cow-error.d.ts +0 -4
  90. package/dist/common/types/ethereum.d.ts +0 -5
  91. package/dist/common/types/tokens.d.ts +0 -12
  92. package/dist/common/types/wallets.d.ts +0 -5
  93. package/dist/common/utils/common.d.ts +0 -1
  94. package/dist/common/utils/config.d.ts +0 -4
  95. package/dist/common/utils/log.d.ts +0 -2
  96. package/dist/common/utils/math.d.ts +0 -19
  97. package/dist/common/utils/order.d.ts +0 -4
  98. package/dist/common/utils/serialize.d.ts +0 -1
  99. package/dist/common/utils/wallet.d.ts +0 -3
  100. package/dist/composable/ConditionalOrder.d.ts +0 -206
  101. package/dist/composable/ConditionalOrderFactory.d.ts +0 -19
  102. package/dist/composable/Multiplexer.d.ts +0 -174
  103. package/dist/composable/contracts.d.ts +0 -6
  104. package/dist/composable/generated/ComposableCoW.d.ts +0 -340
  105. package/dist/composable/generated/ExtensibleFallbackHandler.d.ts +0 -282
  106. package/dist/composable/generated/TWAP.d.ts +0 -141
  107. package/dist/composable/generated/common.d.ts +0 -21
  108. package/dist/composable/generated/factories/ComposableCoW__factory.d.ts +0 -475
  109. package/dist/composable/generated/factories/ExtensibleFallbackHandler__factory.d.ts +0 -389
  110. package/dist/composable/generated/factories/TWAP__factory.d.ts +0 -260
  111. package/dist/composable/generated/factories/index.d.ts +0 -3
  112. package/dist/composable/generated/index.d.ts +0 -7
  113. package/dist/composable/index.d.ts +0 -6
  114. package/dist/composable/orderTypes/Twap.d.ts +0 -242
  115. package/dist/composable/orderTypes/index.d.ts +0 -3
  116. package/dist/composable/orderTypes/test/TestConditionalOrder.d.ts +0 -25
  117. package/dist/composable/types.d.ts +0 -133
  118. package/dist/composable/utils.d.ts +0 -37
  119. package/dist/cow-shed/CowShedSdk.d.ts +0 -74
  120. package/dist/cow-shed/contracts/CoWShedHooks.d.ts +0 -46
  121. package/dist/cow-shed/contracts/utils.d.ts +0 -4
  122. package/dist/cow-shed/index.d.ts +0 -3
  123. package/dist/cow-shed/types.d.ts +0 -17
  124. package/dist/docs/architecture.md +0 -353
  125. package/dist/examples/cra/README.md +0 -21
  126. package/dist/hooks/utils.d.ts +0 -3
  127. package/dist/index-ba4aa036.js +0 -29
  128. package/dist/index-ba4aa036.js.map +0 -1
  129. package/dist/index.js.map +0 -1
  130. package/dist/index.modern.mjs +0 -2
  131. package/dist/index.modern.mjs.map +0 -1
  132. package/dist/index.module.js +0 -29
  133. package/dist/index.module.js.map +0 -1
  134. package/dist/order-book/api.d.ts +0 -235
  135. package/dist/order-book/generated/index.d.ts +0 -55
  136. package/dist/order-book/generated/models/Address.d.ts +0 -4
  137. package/dist/order-book/generated/models/AppData.d.ts +0 -7
  138. package/dist/order-book/generated/models/AppDataHash.d.ts +0 -6
  139. package/dist/order-book/generated/models/AppDataObject.d.ts +0 -7
  140. package/dist/order-book/generated/models/Auction.d.ts +0 -30
  141. package/dist/order-book/generated/models/AuctionOrder.d.ts +0 -92
  142. package/dist/order-book/generated/models/AuctionPrices.d.ts +0 -6
  143. package/dist/order-book/generated/models/BigUint.d.ts +0 -4
  144. package/dist/order-book/generated/models/BuyTokenDestination.d.ts +0 -7
  145. package/dist/order-book/generated/models/CallData.d.ts +0 -4
  146. package/dist/order-book/generated/models/CompetitionAuction.d.ts +0 -14
  147. package/dist/order-book/generated/models/CompetitionOrderStatus.d.ts +0 -29
  148. package/dist/order-book/generated/models/EcdsaSignature.d.ts +0 -4
  149. package/dist/order-book/generated/models/EcdsaSigningScheme.d.ts +0 -7
  150. package/dist/order-book/generated/models/EthflowData.d.ts +0 -20
  151. package/dist/order-book/generated/models/ExecutedAmounts.d.ts +0 -5
  152. package/dist/order-book/generated/models/ExecutedProtocolFee.d.ts +0 -8
  153. package/dist/order-book/generated/models/FeePolicy.d.ts +0 -7
  154. package/dist/order-book/generated/models/InteractionData.d.ts +0 -11
  155. package/dist/order-book/generated/models/NativePriceResponse.d.ts +0 -10
  156. package/dist/order-book/generated/models/OnchainOrderData.d.ts +0 -24
  157. package/dist/order-book/generated/models/Order.d.ts +0 -3
  158. package/dist/order-book/generated/models/OrderCancellation.d.ts +0 -14
  159. package/dist/order-book/generated/models/OrderCancellationError.d.ts +0 -15
  160. package/dist/order-book/generated/models/OrderCancellations.d.ts +0 -18
  161. package/dist/order-book/generated/models/OrderClass.d.ts +0 -8
  162. package/dist/order-book/generated/models/OrderCreation.d.ts +0 -80
  163. package/dist/order-book/generated/models/OrderKind.d.ts +0 -7
  164. package/dist/order-book/generated/models/OrderMetaData.d.ts +0 -100
  165. package/dist/order-book/generated/models/OrderParameters.d.ts +0 -53
  166. package/dist/order-book/generated/models/OrderPostError.d.ts +0 -35
  167. package/dist/order-book/generated/models/OrderQuoteRequest.d.ts +0 -58
  168. package/dist/order-book/generated/models/OrderQuoteResponse.d.ts +0 -27
  169. package/dist/order-book/generated/models/OrderQuoteSide.d.ts +0 -26
  170. package/dist/order-book/generated/models/OrderQuoteSideKindBuy.d.ts +0 -3
  171. package/dist/order-book/generated/models/OrderQuoteSideKindSell.d.ts +0 -3
  172. package/dist/order-book/generated/models/OrderQuoteValidity.d.ts +0 -14
  173. package/dist/order-book/generated/models/OrderStatus.d.ts +0 -10
  174. package/dist/order-book/generated/models/PreSignature.d.ts +0 -4
  175. package/dist/order-book/generated/models/PriceEstimationError.d.ts +0 -12
  176. package/dist/order-book/generated/models/PriceImprovement.d.ts +0 -12
  177. package/dist/order-book/generated/models/PriceQuality.d.ts +0 -16
  178. package/dist/order-book/generated/models/Quote.d.ts +0 -19
  179. package/dist/order-book/generated/models/SellTokenSource.d.ts +0 -8
  180. package/dist/order-book/generated/models/Signature.d.ts +0 -6
  181. package/dist/order-book/generated/models/SigningScheme.d.ts +0 -9
  182. package/dist/order-book/generated/models/SolverCompetitionResponse.d.ts +0 -30
  183. package/dist/order-book/generated/models/SolverSettlement.d.ts +0 -47
  184. package/dist/order-book/generated/models/Surplus.d.ts +0 -7
  185. package/dist/order-book/generated/models/TokenAmount.d.ts +0 -4
  186. package/dist/order-book/generated/models/TotalSurplus.d.ts +0 -10
  187. package/dist/order-book/generated/models/Trade.d.ts +0 -57
  188. package/dist/order-book/generated/models/TransactionHash.d.ts +0 -4
  189. package/dist/order-book/generated/models/UID.d.ts +0 -8
  190. package/dist/order-book/generated/models/Volume.d.ts +0 -6
  191. package/dist/order-book/index.d.ts +0 -5
  192. package/dist/order-book/mock.d.ts +0 -63
  193. package/dist/order-book/quoteAmountsAndCostsUtils.d.ts +0 -35
  194. package/dist/order-book/request.d.ts +0 -49
  195. package/dist/order-book/transformOrder.d.ts +0 -10
  196. package/dist/order-book/types.d.ts +0 -74
  197. package/dist/order-signing/index.d.ts +0 -2
  198. package/dist/order-signing/orderSigningUtils.d.ts +0 -97
  199. package/dist/order-signing/types.d.ts +0 -55
  200. package/dist/order-signing/utils.d.ts +0 -49
  201. package/dist/schemas/trading/LimitOrderAdvancedSettings.ts +0 -422
  202. package/dist/schemas/trading/LimitTradeParameters.ts +0 -229
  203. package/dist/schemas/trading/QuoteResultsSerialized.ts +0 -1151
  204. package/dist/schemas/trading/QuoterParameters.ts +0 -43
  205. package/dist/schemas/trading/SwapAdvancedSettings.ts +0 -708
  206. package/dist/schemas/trading/TradeParameters.ts +0 -217
  207. package/dist/src/bridging/PROVIDER_README.md +0 -796
  208. package/dist/src/bridging/README.md +0 -718
  209. package/dist/src/cow-shed/README.md +0 -60
  210. package/dist/src/trading/README.md +0 -544
  211. package/dist/src/weiroll/README.md +0 -58
  212. package/dist/subgraph/api.d.ts +0 -77
  213. package/dist/subgraph/graphql.d.ts +0 -3203
  214. package/dist/subgraph/index.d.ts +0 -1
  215. package/dist/subgraph/queries.d.ts +0 -14
  216. package/dist/test/getWallet.d.ts +0 -5
  217. package/dist/test/utils.d.ts +0 -1
  218. package/dist/trading/appDataUtils.d.ts +0 -5
  219. package/dist/trading/calculateUniqueOrderId.d.ts +0 -5
  220. package/dist/trading/consts.d.ts +0 -6
  221. package/dist/trading/getEthFlowTransaction.d.ts +0 -12
  222. package/dist/trading/getOrderToSign.d.ts +0 -11
  223. package/dist/trading/getOrderTypedData.d.ts +0 -4
  224. package/dist/trading/getPreSignTransaction.d.ts +0 -4
  225. package/dist/trading/getQuote.d.ts +0 -26
  226. package/dist/trading/index.d.ts +0 -21
  227. package/dist/trading/postCoWProtocolTrade.d.ts +0 -4
  228. package/dist/trading/postLimitOrder.d.ts +0 -3
  229. package/dist/trading/postSellNativeCurrencyOrder.d.ts +0 -4
  230. package/dist/trading/postSwapOrder.d.ts +0 -5
  231. package/dist/trading/suggestSlippageBps.d.ts +0 -13
  232. package/dist/trading/suggestSlippageFromFee.d.ts +0 -19
  233. package/dist/trading/suggestSlippageFromVolume.d.ts +0 -10
  234. package/dist/trading/tradingSdk.d.ts +0 -26
  235. package/dist/trading/types.d.ts +0 -221
  236. package/dist/trading/utils/getPartnerFeeBps.d.ts +0 -2
  237. package/dist/trading/utils/misc.d.ts +0 -27
  238. package/dist/trading/utils/slippage.d.ts +0 -16
  239. package/dist/utils-5a0554e7.js +0 -2
  240. package/dist/utils-5a0554e7.js.map +0 -1
  241. package/dist/utils-6b3b66e7.js +0 -2
  242. package/dist/utils-6b3b66e7.js.map +0 -1
  243. package/dist/utils-c9bb9a82.js +0 -2
  244. package/dist/utils-c9bb9a82.js.map +0 -1
  245. package/dist/utils.d.ts +0 -3
  246. package/dist/weiroll/index.d.ts +0 -23
package/README.md CHANGED
@@ -2,287 +2,371 @@
2
2
  <img width="400" src="https://github.com/cowprotocol/cow-sdk/raw/main/docs/images/CoW.png" />
3
3
  </p>
4
4
 
5
- # CoW SDK
5
+ # CoW SDK - Umbrella Package
6
6
 
7
- ## 📚 [Docs website](https://docs.cow.fi/)
7
+ The **CoW SDK Umbrella Package** is the comprehensive entry point for developers who want to access all CoW Protocol functionalities in a single, unified package. This is the recommended way to interact with CoW Protocol as it provides seamless integration across all SDK modules.
8
8
 
9
- ## Test coverage
9
+ ## 🎯 **Why Use the Umbrella Package?**
10
10
 
11
- | Statements | Branches | Functions | Lines |
12
- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
13
- | ![Statements](https://img.shields.io/badge/statements-94.77%25-brightgreen.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-76.78%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-97.43%25-brightgreen.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-97.67%25-brightgreen.svg?style=flat) |
11
+ - **All-in-One Solution** - Single installation gives you access to all CoW Protocol features
12
+ - **Unified API** - Access all modules through one `CowSdk` instance or import them individually
13
+ - **Simplified Setup** - Adapter configuration is handled once and shared across all modules
14
+ - **Future-Proof** - Automatically includes new features and modules as they're added
14
15
 
15
- ## Getting started
16
+ ## 📚 **Documentation Hub**
16
17
 
17
- **Usage examples: [VanillaJS](https://github.com/cowprotocol/cow-sdk/blob/main/examples/vanilla/src/index.ts), [Create React App](https://github.com/cowprotocol/cow-sdk/blob/main/examples/cra/src/pages/getOrders/index.tsx), [NodeJS](https://github.com/cowprotocol/cow-sdk/blob/main/examples/nodejs/src/index.ts)**
18
+ This package serves as the **main entry point** for all CoW Protocol SDK documentation. Each individual package has its own detailed documentation, but everything starts here.
19
+
20
+ ### 📂 **SDK Structure**
21
+
22
+ ```
23
+ ├── @cowprotocol/cow-sdk (Umbrella - All packages included) 🏠
24
+
25
+ ├── Provider Adapters
26
+ │ ├── @cowprotocol/sdk-ethers-v5-adapter
27
+ │ ├── @cowprotocol/sdk-ethers-v6-adapter
28
+ │ └── @cowprotocol/sdk-viem-adapter
29
+
30
+ ├── Core Utilities
31
+ │ ├── @cowprotocol/sdk-common
32
+ │ ├── @cowprotocol/sdk-config
33
+ │ └── @cowprotocol/sdk-contracts-ts
34
+
35
+ ├── Protocol Components
36
+ │ ├── @cowprotocol/sdk-order-signing
37
+ │ ├── @cowprotocol/sdk-order-book
38
+ │ ├── @cowprotocol/sdk-app-data
39
+ │ ├── @cowprotocol/sdk-trading
40
+ │ ├── @cowprotocol/sdk-composable
41
+ │ ├── @cowprotocol/sdk-cow-shed
42
+ │ ├── @cowprotocol/sdk-subgraph
43
+ │ └── @cowprotocol/sdk-bridging
44
+
45
+ └── Additional Packages
46
+ └── @cowprotocol/app-data
47
+ ```
48
+
49
+ ## 🚀 **Getting Started**
18
50
 
19
51
  ### Installation
20
52
 
21
53
  ```bash
54
+ npm install @cowprotocol/cow-sdk
55
+ # or
56
+ pnpm add @cowprotocol/cow-sdk
57
+ # or
22
58
  yarn add @cowprotocol/cow-sdk
23
59
  ```
24
60
 
25
- ## [Trading SDK](https://github.com/cowprotocol/cow-sdk/blob/main/src/trading/README.md)
61
+ You'll also need one of the adapter packages:
62
+
63
+ ```bash
64
+ # Choose one based on your Web3 library preference
65
+ npm install @cowprotocol/sdk-ethers-v6-adapter
66
+ npm install @cowprotocol/sdk-ethers-v5-adapter
67
+ npm install @cowprotocol/sdk-viem-adapter
68
+ ```
69
+
70
+ ## 💡 **Usage Patterns**
26
71
 
27
- CoW Protocol is intent based, decentralized trading protocol that allows users to trade ERC-20 tokens.
72
+ The umbrella package offers three flexible usage patterns:
28
73
 
29
- The basic swap flow:
30
- 1. 🔎 Get a quote (price) for a trade (_or define your own price with a limit order_)
31
- 2. ✍️ Sign the order
32
- 3. ✅ Post the order to the order-book
74
+ ### 1. **Unified CowSdk Instance** (Recommended)
33
75
 
34
- The easiest way to start trading is to use the `TradingSdk`:
76
+ Access all modules through a single SDK instance:
35
77
 
36
78
  ```typescript
37
- import { SupportedChainId, OrderKind, TradeParameters, TradingSdk } from '@cowprotocol/cow-sdk'
79
+ import {
80
+ CowSdk,
81
+ TradingSdk,
82
+ OrderBookApi,
83
+ OrderSigningUtils,
84
+ setGlobalAdapter,
85
+ SupportedChainId
86
+ } from '@cowprotocol/cow-sdk'
87
+ import { ViemAdapter } from '@cowprotocol/sdk-viem-adapter'
88
+ import { createPublicClient, http, privateKeyToAccount } from 'viem'
89
+ import { sepolia } from 'viem/chains'
90
+
91
+ // Create and configure adapter
92
+ // There are EthersV5Adapter and EthersV6Adapter as well
93
+ // @cowprotocol/sdk-ethers-v5-adapter, @cowprotocol/sdk-ethers-v6-adapter
94
+ const adapter = new ViemAdapter({
95
+ provider: createPublicClient({
96
+ chain: sepolia,
97
+ transport: http('YOUR_RPC_URL')
98
+ }),
99
+ signer: privateKeyToAccount('YOUR_PRIVATE_KEY' as `0x${string}`)
100
+ })
38
101
 
39
- // Initialize the SDK
40
- const sdk = new TradingSdk({
102
+ // Initialize the unified SDK
103
+ const sdk = new CowSdk({
41
104
  chainId: SupportedChainId.SEPOLIA,
42
- signer: '<privateKeyOrEthersSigner>',
43
- appCode: '<YOUR_APP_CODE>',
105
+ adapter,
106
+ tradingOptions: {
107
+ traderParams: {
108
+ appCode: 'YOUR_APP_CODE',
109
+ ...
110
+ },
111
+ ...
112
+ },
44
113
  })
45
114
 
46
- // Define trade parameters
47
- const parameters: TradeParameters = {
48
- kind: OrderKind.BUY,
49
- sellToken: '0xfff9976782d46cc05630d1f6ebab18b2324d6b14',
50
- sellTokenDecimals: 18,
51
- buyToken: '0x0625afb445c3b6b7b929342a04a22599fd5dbb59',
52
- buyTokenDecimals: 18,
53
- amount: '120000000000000000'
54
- }
115
+ // Use all modules seamlessly
116
+ const orderId = await sdk.trading.postSwapOrder(parameters)
117
+ const orders = await sdk.orderBook.getOrders({ owner: address })
118
+ const totals = await sdk.subgraph?.getTotals()
119
+ const signature = await sdk.orderSigning.signOrder(order, chainId, signer)
120
+ ```
55
121
 
56
- // Post the order
57
- const orderId = await sdk.postSwapOrder(parameters)
122
+ ### 2. **Direct Module Import** (Simplified)
58
123
 
59
- console.log('Order created, id: ', orderId)
60
- ```
124
+ Import modules directly from the umbrella package without the unified instance:
61
125
 
62
- This example is the simplest way to trade on CoW Protocol.
126
+ ```typescript
127
+ import { TradingSdk, OrderBookApi, SupportedChainId, OrderKind, TradeParameters } from '@cowprotocol/cow-sdk'
128
+ import { ViemAdapter } from '@cowprotocol/sdk-viem-adapter'
129
+ import { createPublicClient, http, privateKeyToAccount } from 'viem'
130
+ import { sepolia } from 'viem/chains'
131
+
132
+ // Create and configure adapter
133
+ // There are EthersV5Adapter and EthersV6Adapter as well
134
+ // @cowprotocol/sdk-ethers-v5-adapter, @cowprotocol/sdk-ethers-v6-adapter
135
+ const adapter = new ViemAdapter({
136
+ provider: createPublicClient({
137
+ chain: sepolia,
138
+ transport: http('YOUR_RPC_URL')
139
+ }),
140
+ signer: privateKeyToAccount('YOUR_PRIVATE_KEY' as `0x${string}`)
141
+ })
63
142
 
64
- You might want to use more advanced parameters like `receiver`, `partiallyFillable`, `validTo` and others.
65
- Check the [Trading SDK documentation](https://github.com/cowprotocol/cow-sdk/blob/main/src/trading/README.md) for more details.
143
+ // Use modules individually - adapter configuration is handled automatically
144
+ const trading = new TradingSdk({ appCode: 'YOUR_APP_CODE' }, { chainId: SupportedChainId.SEPOLIA }, adapter)
66
145
 
146
+ const orderBook = new OrderBookApi({ chainId: SupportedChainId.SEPOLIA })
147
+
148
+ // All modules work together seamlessly
149
+ const orderId = await trading.postSwapOrder(parameters)
150
+ const orders = await orderBook.getOrders({ owner: address })
151
+ ```
67
152
 
68
- ## Other utilities
153
+ ### 3. **Global Adapter Configuration**
69
154
 
70
- - `OrderBookApi` - provides the ability to retrieve orders and trades from the CoW Protocol order-book, as well as add and cancel them
71
- - `OrderSigningUtils` - serves to sign orders and cancel them using [EIP-712](https://eips.ethereum.org/EIPS/eip-712)
72
- - `SubgraphApi` - provides statistics data about CoW protocol from [Subgraph](https://github.com/cowprotocol/subgraph), such as trading volume, trade count and others
155
+ Set up the adapter once and use modules without explicit adapter passing:
73
156
 
74
157
  ```typescript
75
- import { OrderBookApi, OrderSigningUtils, SubgraphApi } from '@cowprotocol/cow-sdk'
158
+ import { TradingSdk, OrderBookApi, OrderSigningUtils, setGlobalAdapter, SupportedChainId } from '@cowprotocol/cow-sdk'
159
+ import { ViemAdapter } from '@cowprotocol/sdk-viem-adapter'
160
+ import { createPublicClient, http, privateKeyToAccount } from 'viem'
161
+ import { sepolia } from 'viem/chains'
162
+
163
+ // Create and configure adapter
164
+ // There are EthersV5Adapter and EthersV6Adapter as well
165
+ // @cowprotocol/sdk-ethers-v5-adapter, @cowprotocol/sdk-ethers-v6-adapter
166
+ const adapter = new ViemAdapter({
167
+ provider: createPublicClient({
168
+ chain: sepolia,
169
+ transport: http('YOUR_RPC_URL')
170
+ }),
171
+ signer: privateKeyToAccount('YOUR_PRIVATE_KEY' as `0x${string}`)
172
+ })
76
173
 
77
- const chainId = 100 // Gnosis chain
174
+ setGlobalAdapter(adapter)
78
175
 
79
- const orderBookApi = new OrderBookApi({ chainId })
80
- const subgraphApi = new SubgraphApi({ chainId })
81
- const orderSigningUtils = new OrderSigningUtils()
82
- ```
176
+ // Now use modules without passing adapter each time
177
+ const trading = new TradingSdk({ appCode: 'YOUR_APP_CODE' }, { chainId: SupportedChainId.SEPOLIA })
83
178
 
84
- ### Sign, fetch, post and cancel order
179
+ const orderBook = new OrderBookApi({ chainId: SupportedChainId.SEPOLIA })
85
180
 
86
- For clarity, let's look at the use of the API with a practical example:
87
- Exchanging `0.4 GNO` to `WETH` on `Gnosis chain` network.
181
+ // Use OrderSigningUtils directly - no need to instantiate
182
+ // const orderSigning = OrderSigningUtils // or simply use OrderSigningUtils.signOrder(...)
183
+ ```
88
184
 
89
- We will do the following operations:
185
+ ## 🧩 **Available Modules**
90
186
 
91
- 1. Get a quote
92
- 2. Sign the order
93
- 3. Send the order to the order-book
94
- 4. Get the data of the created order
95
- 5. Get trades of the order
96
- 6. Cancel the order (signing + sending)
187
+ All modules are accessible through the umbrella package:
97
188
 
98
- [You also can check this code in the CRA example](https://github.com/cowprotocol/cow-sdk/blob/main/examples/cra/src/pages/quickStart/index.tsx)
189
+ > **📖 Documentation**: All links below point to the official documentation at [docs.cow.fi](https://docs.cow.fi). For source code, visit the [GitHub repository](https://github.com/cowprotocol/cow-sdk).
190
+
191
+ ### **Trading**
99
192
 
100
193
  ```typescript
101
- import { OrderBookApi, OrderSigningUtils, SupportedChainId } from '@cowprotocol/cow-sdk'
102
- import { Web3Provider } from '@ethersproject/providers'
103
-
104
- const account = 'YOUR_WALLET_ADDRESS'
105
- const chainId = 100 // Gnosis chain
106
- const provider = new Web3Provider(window.ethereum)
107
- const signer = provider.getSigner()
108
-
109
- const quoteRequest = {
110
- sellToken: '0x6a023ccd1ff6f2045c3309768ead9e68f978f6e1', // WETH gnosis chain
111
- buyToken: '0x9c58bacc331c9aa871afd802db6379a98e80cedb', // GNO gnosis chain
112
- from: account,
113
- receiver: account,
114
- sellAmountBeforeFee: (0.4 * 10 ** 18).toString(), // 0.4 WETH
115
- kind: OrderQuoteSide.kind.SELL,
116
- }
194
+ import { TradingSdk } from '@cowprotocol/cow-sdk'
195
+ ```
117
196
 
118
- const orderBookApi = new OrderBookApi({ chainId: SupportedChainId.GNOSIS_CHAIN })
197
+ Create and manage orders, get quotes, handle swaps and limit orders.
198
+ [📖 Trading Documentation](https://docs.cow.fi/cow-protocol/reference/sdks/protocol-components/sdk-trading)
119
199
 
120
- async function main() {
121
- const { quote } = await orderBookApi.getQuote(quoteRequest)
200
+ ### **Order Book**
122
201
 
123
- const orderSigningResult = await OrderSigningUtils.signOrder(quote, chainId, signer)
202
+ ```typescript
203
+ import { OrderBookApi } from '@cowprotocol/cow-sdk'
204
+ ```
124
205
 
125
- const orderId = await orderBookApi.sendOrder({ ...quote, ...orderSigningResult })
206
+ Interact with CoW Protocol's order book API for order management.
207
+ [📖 Order Book Documentation](https://docs.cow.fi/cow-protocol/reference/sdks/protocol-components/sdk-order-book)
126
208
 
127
- const order = await orderBookApi.getOrder(orderId)
209
+ ### **Order Signing**
128
210
 
129
- const trades = await orderBookApi.getTrades({ orderId })
211
+ ```typescript
212
+ import { OrderSigningUtils } from '@cowprotocol/cow-sdk'
213
+ ```
130
214
 
131
- const orderCancellationSigningResult = await OrderSigningUtils.signOrderCancellations([orderId], chainId, signer)
215
+ Handle EIP-712 order signing and cancellations.
216
+ [📖 Order Signing Documentation](https://docs.cow.fi/cow-protocol/reference/sdks/protocol-components/sdk-order-signing)
132
217
 
133
- const cancellationResult = await orderBookApi.sendSignedOrderCancellations({
134
- ...orderCancellationSigningResult,
135
- orderUids: [orderId],
136
- })
218
+ ### **App Data**
137
219
 
138
- console.log('Results: ', { orderId, order, trades, orderCancellationSigningResult, cancellationResult })
139
- }
220
+ ```typescript
221
+ import { MetadataApi } from '@cowprotocol/cow-sdk'
140
222
  ```
141
223
 
142
- ### OrderBookApi
224
+ Manage order metadata and application-specific data.
225
+ [📖 App Data Documentation](https://docs.cow.fi/cow-protocol/reference/sdks/app-data)
143
226
 
144
- `OrderBookApi` - is a main tool for working with [CoW Protocol API](https://api.cow.fi/docs/#/).
145
- Since the API supports different networks and environments, there are some options to configure it.
227
+ ### **Subgraph**
146
228
 
147
- #### Environment configuration
148
-
149
- `chainId` - can be one of `SupportedChainId.MAINNET`, `SupportedChainId.GNOSIS_CHAIN`, `SupportedChainId.ARBITRUM_ONE`, `SupportedChainId.BASE`, `SupportedChainId.AVALANCHE`, `SupportedChainId.POLYGON`, or `SupportedChainId.SEPOLIA`
229
+ ```typescript
230
+ import { SubgraphApi } from '@cowprotocol/cow-sdk'
231
+ ```
150
232
 
151
- `env` - this parameter affects which environment will be used:
233
+ Access CoW Protocol analytics and historical data.
234
+ [📖 Subgraph Documentation](https://docs.cow.fi/cow-protocol/reference/sdks/protocol-components/sdk-subgraph)
152
235
 
153
- - `https://api.cow.fi` for `prod` (default)
154
- - `https://barn.api.cow.fi` for `staging`
236
+ ### **Contracts**
155
237
 
156
238
  ```typescript
157
- import { OrderBookApi } from '@cowprotocol/cow-sdk'
158
-
159
- const orderBookApi = new OrderBookApi({
160
- chainId: SupportedChainId.GNOSIS_CHAIN,
161
- env: 'staging', // <-----
162
- })
239
+ import { ContractsTs } from '@cowprotocol/cow-sdk'
163
240
  ```
164
241
 
165
- #### API urls configuration
242
+ TypeScript contract interfaces for CoW Protocol smart contracts.
243
+ [📖 Contracts Documentation](https://docs.cow.fi/cow-protocol/reference/sdks/core-utilities/sdk-contracts-ts)
166
244
 
167
- In case you need to use custom endpoints (e.g. you use a proxy), you can do it this way:
245
+ ### **Composable CoW**
168
246
 
169
247
  ```typescript
170
- import { OrderBookApi } from '@cowprotocol/cow-sdk'
171
-
172
- const orderBookApi = new OrderBookApi({
173
- chainId: SupportedChainId.GNOSIS_CHAIN,
174
- baseUrls: {
175
- // <-----
176
- [SupportedChainId.MAINNET]: 'https://YOUR_ENDPOINT/mainnet',
177
- [SupportedChainId.GNOSIS_CHAIN]: 'https://YOUR_ENDPOINT/gnosis_chain',
178
- [SupportedChainId.ARBITRUM]: 'https://YOUR_ENDPOINT/arbitrum_one',
179
- [SupportedChainId.BASE]: 'https://YOUR_ENDPOINT/base',
180
- [SupportedChainId.SEPOLIA]: 'https://YOUR_ENDPOINT/sepolia',
181
- [SupportedChainId.POLYGON]: 'https://YOUR_ENDPOINT/polygon',
182
- [SupportedChainId.AVALANCHE]: 'https://YOUR_ENDPOINT/avalanche',
183
- },
184
- })
248
+ import { ConditionalOrderFactory, Multiplexer } from '@cowprotocol/cow-sdk'
185
249
  ```
186
250
 
187
- The [CoW Protocol API](https://api.cow.fi/docs/#/) has restrictions on the backend side to protect against DDOS and other issues.
188
-
189
- > The main restriction is request rate limit of: **5 requests per second for each IP address**
251
+ Advanced conditional and programmable orders.
252
+ [📖 Composable Documentation](https://docs.cow.fi/cow-protocol/reference/sdks/protocol-components/sdk-composable)
190
253
 
191
- The _client's_ limiter settings can be configured as well:
254
+ ### **CoW Shed**
192
255
 
193
256
  ```typescript
194
- import { OrderBookApi } from '@cowprotocol/cow-sdk'
195
- import { BackoffOptions } from 'exponential-backoff'
196
- import { RateLimiterOpts } from 'limiter'
257
+ import { CowShedSdk } from '@cowprotocol/cow-sdk'
258
+ ```
197
259
 
198
- const limiterOpts: RateLimiterOpts = {
199
- tokensPerInterval: 5,
200
- interval: 'second',
201
- }
260
+ Batch transaction and intent management utilities.
261
+ [📖 CoW Shed Documentation](https://docs.cow.fi/cow-protocol/reference/sdks/protocol-components/sdk-cow-shed)
202
262
 
203
- const backOffOpts: BackoffOptions = {
204
- numOfAttempts: 5,
205
- maxDelay: Infinity,
206
- jitter: 'none',
207
- }
263
+ ## ⚙️ **Adapter Support**
264
+
265
+ The umbrella package works with all supported blockchain adapters:
266
+
267
+ ### **Ethers v6**
268
+
269
+ ```typescript
270
+ import { EthersV6Adapter } from '@cowprotocol/sdk-ethers-v6-adapter'
271
+ import { JsonRpcProvider, Wallet } from 'ethers'
208
272
 
209
- const orderBookApi = new OrderBookApi({ chainId: SupportedChainId.GNOSIS_CHAIN, limiterOpts, backOffOpts })
273
+ const provider = new JsonRpcProvider('YOUR_RPC_URL')
274
+ const wallet = new Wallet('YOUR_PRIVATE_KEY', provider)
275
+ const adapter = new EthersV6Adapter({ provider, signer: wallet })
210
276
  ```
211
277
 
212
- ### Querying the CoW Subgraph
278
+ ### **Ethers v5**
213
279
 
214
- The [Subgraph](https://github.com/cowprotocol/subgraph) is constantly indexing the protocol, making all the information more accessible. It provides information about trades, users, tokens and settlements. Additionally, it has some data aggregations which provides insights on the hourly/daily/totals USD volumes, trades, users, etc.
280
+ ```typescript
281
+ import { EthersV5Adapter } from '@cowprotocol/sdk-ethers-v5-adapter'
282
+ import { ethers } from 'ethers'
215
283
 
216
- The SDK provides an easy way to access all this information.
284
+ const provider = new ethers.providers.JsonRpcProvider('YOUR_RPC_URL')
285
+ const wallet = new ethers.Wallet('YOUR_PRIVATE_KEY', provider)
286
+ const adapter = new EthersV5Adapter({ provider, signer: wallet })
287
+ ```
217
288
 
218
- You can query the CoW Subgraph either by running some common queries exposed by the `CowSubgraphApi` or by building your own:
289
+ ### **Viem**
219
290
 
220
291
  ```typescript
221
- import { SubgraphApi, SupportedChainId } from '@cowprotocol/cow-sdk'
222
-
223
- const cowSubgraphApi = new SubgraphApi({ chainId: SupportedChainId.MAINNET })
224
-
225
- // Get CoW Protocol totals
226
- const { tokens, orders, traders, settlements, volumeUsd, volumeEth, feesUsd, feesEth } =
227
- await cowSubgraphApi.getTotals()
228
- console.log({ tokens, orders, traders, settlements, volumeUsd, volumeEth, feesUsd, feesEth })
229
-
230
- // Get last 24 hours volume in usd
231
- const { hourlyTotals } = await cowSubgraphApi.getLastHoursVolume(24)
232
- console.log(hourlyTotals)
233
-
234
- // Get last week volume in usd
235
- const { dailyTotals } = await cowSubgraphApi.getLastDaysVolume(7)
236
- console.log(dailyTotals)
237
-
238
- // Get the last 5 batches
239
- const query = `
240
- query LastBatches($n: Int!) {
241
- settlements(orderBy: firstTradeTimestamp, orderDirection: desc, first: $n) {
242
- txHash
243
- firstTradeTimestamp
244
- }
245
- }
246
- `
247
- const variables = { n: 5 }
248
- const response = await cowSubgraphApi.runQuery(query, variables)
249
- console.log(response)
292
+ import { ViemAdapter } from '@cowprotocol/sdk-viem-adapter'
293
+ import { http, createWalletClient, privateKeyToAccount } from 'viem'
294
+ import { sepolia } from 'viem/chains'
295
+
296
+ const account = privateKeyToAccount('YOUR_PRIVATE_KEY' as `0x${string}`)
297
+ const transport = http('YOUR_RPC_URL')
298
+ const adapter = new ViemAdapter({ chain: sepolia, transport, account })
250
299
  ```
251
300
 
252
- ## Architecture
301
+ ## 🌐 **Supported Networks**
253
302
 
254
- One way to make the most out of the SDK is to get familiar with its architecture.
303
+ The SDK supports all CoW Protocol enabled networks:
255
304
 
256
- > See [SDK Architecture](https://github.com/cowprotocol/cow-sdk/blob/main/docs/architecture.md)
305
+ - **Ethereum** (1) - `SupportedChainId.MAINNET`
306
+ - **Gnosis Chain** (100) - `SupportedChainId.GNOSIS_CHAIN`
307
+ - **Arbitrum One** (42161) - `SupportedChainId.ARBITRUM_ONE`
308
+ - **Base** (8453) - `SupportedChainId.BASE`
309
+ - **Polygon** (137) - `SupportedChainId.POLYGON`
310
+ - **Avalanche** (43114) - `SupportedChainId.AVALANCHE`
311
+ - **Sepolia** (11155111) - `SupportedChainId.SEPOLIA` (Testnet)
257
312
 
258
- ## Development
313
+ ## 📝 **Quick Example: Complete Trading Flow**
259
314
 
260
- ### Install Dependencies
315
+ ```typescript
316
+ import { CowSdk, SupportedChainId, OrderKind, TradeParameters } from '@cowprotocol/cow-sdk'
317
+ import { EthersV6Adapter } from '@cowprotocol/sdk-ethers-v6-adapter'
318
+ import { JsonRpcProvider, Wallet } from 'ethers'
261
319
 
262
- ```bash
263
- yarn
264
- ```
320
+ async function main() {
321
+ // Setup
322
+ const provider = new JsonRpcProvider('YOUR_RPC_URL')
323
+ const wallet = new Wallet('YOUR_PRIVATE_KEY', provider)
324
+ const adapter = new EthersV6Adapter({ provider, signer: wallet })
325
+
326
+ const sdk = new CowSdk({
327
+ chainId: SupportedChainId.SEPOLIA,
328
+ adapter,
329
+ tradingOptions: {
330
+ traderParams: { appCode: 'MY_APP' },
331
+ },
332
+ })
265
333
 
266
- ### Build
334
+ // Define trade
335
+ const tradeParams: TradeParameters = {
336
+ kind: OrderKind.SELL,
337
+ sellToken: '0xfff9976782d46cc05630d1f6ebab18b2324d6b14', // WETH
338
+ sellTokenDecimals: 18,
339
+ buyToken: '0x0625afb445c3b6b7b929342a04a22599fd5dbb59', // GNO
340
+ buyTokenDecimals: 18,
341
+ amount: '100000000000000000', // 0.1 WETH
342
+ }
267
343
 
268
- ```bash
269
- yarn build
344
+ // Execute trade
345
+ const orderId = await sdk.trading.postSwapOrder(tradeParams)
346
+ console.log('Order created:', orderId)
270
347
 
271
- # Build in watch mode
272
- yarn start
273
- ```
348
+ // Monitor order
349
+ const order = await sdk.orderBook.getOrder(orderId)
350
+ console.log('Order status:', order.status)
274
351
 
275
- ### Unit testing
352
+ // Get historical data
353
+ const stats = await sdk.subgraph?.getTotals()
354
+ console.log('Protocol stats:', stats)
355
+ }
276
356
 
277
- ```bash
278
- yarn test
357
+ main().catch(console.error)
279
358
  ```
280
359
 
281
- ### Code generation
360
+ ## 🔗 **Related Resources**
282
361
 
283
- Some parts of the SDK are automatically generated. This is the case for the Order Book API and the Subgraph API
362
+ - **[CoW Protocol Documentation](https://docs.cow.fi/)**
363
+ - **[API Reference](https://api.cow.fi/docs/)**
364
+ - **[CoW Protocol Website](https://cow.fi/)**
365
+ - **[Examples Repository](https://github.com/cowprotocol/cow-sdk/tree/main/examples)**
366
+ - **Issues**: [GitHub Issues](https://github.com/cowprotocol/cow-sdk/issues)
367
+ - **Discord**: [CoW Protocol Discord](https://discord.com/invite/cowprotocol)
368
+ - **Documentation**: [docs.cow.fi](https://docs.cow.fi/)
284
369
 
285
- ```bash
286
- # Re-create automatically generated code
287
- yarn codegen
288
- ```
370
+ ---
371
+
372
+ > **💡 Tip**: Start with the umbrella package and the unified `CowSdk` instance for the best developer experience. You can always optimize later by using individual modules if needed.
@@ -0,0 +1,24 @@
1
+ # Changelog
2
+
3
+ ## [7.0.0-beta.0](https://github.com/cowprotocol/cow-sdk/compare/cow-sdk-v6.3.2...cow-sdk-v7.0.0-beta.0) (2025-08-28)
4
+
5
+
6
+ ### ✨ Features
7
+
8
+ * allow changing backoff and limiter per request ([#208](https://github.com/cowprotocol/cow-sdk/issues/208)) ([ebea5ca](https://github.com/cowprotocol/cow-sdk/commit/ebea5ca0858aeb89ae3e5d5407c8903c3ca5178d))
9
+ * **lib-agnostic:** add nodejs examples for every adapter ([#440](https://github.com/cowprotocol/cow-sdk/issues/440)) ([43972e6](https://github.com/cowprotocol/cow-sdk/commit/43972e68ff728a9a882bbdc667b2c0821b273449))
10
+ * **sdk-agnostic-lib:** create cow trading package ([#368](https://github.com/cowprotocol/cow-sdk/issues/368)) ([0a4534a](https://github.com/cowprotocol/cow-sdk/commit/0a4534aababce4f5d8bab991cd6ae9f51842d719))
11
+ * **sdk-agnostic-lib:** Create weiroll package ([#371](https://github.com/cowprotocol/cow-sdk/issues/371)) ([8f6a2e1](https://github.com/cowprotocol/cow-sdk/commit/8f6a2e16e5e7a43a5afc43cf5faab174be916b2e))
12
+ * simplify OrderSigningUtils to use static methods only ([#417](https://github.com/cowprotocol/cow-sdk/issues/417)) ([899ca43](https://github.com/cowprotocol/cow-sdk/commit/899ca4325be831b6711468d1df3733d98fe913b0))
13
+
14
+
15
+ ### 🐛 Bug Fixes
16
+
17
+ * add adapter param to BridgingSdk and update docs ([#450](https://github.com/cowprotocol/cow-sdk/issues/450)) ([667a36e](https://github.com/cowprotocol/cow-sdk/commit/667a36e4437309e1d292b8f9fd5e8f568922749f))
18
+ * **sdk:** reduce sdks in umbrella ([#433](https://github.com/cowprotocol/cow-sdk/issues/433)) ([22b1cb6](https://github.com/cowprotocol/cow-sdk/commit/22b1cb6e572fcd3a7b3878d725113ac420f470e6))
19
+
20
+
21
+ ### 🔧 Miscellaneous
22
+
23
+ * **docs:** apply PR suggestions and create subgraph README ([#406](https://github.com/cowprotocol/cow-sdk/issues/406)) ([d09a219](https://github.com/cowprotocol/cow-sdk/commit/d09a219c934289a30677be685915d57e9a4451be))
24
+ * **sdk-agnostic-lib:** improve scripts and types ([#407](https://github.com/cowprotocol/cow-sdk/issues/407)) ([c4b5e08](https://github.com/cowprotocol/cow-sdk/commit/c4b5e086ce46086e9430d5f03ed330502349fbf3))