Documentation Index
Fetch the complete documentation index at: https://cowswap-mintlify-docs-quality-audit-1774257282.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
@cowprotocol/sdk-contracts-ts
Overview
The@cowprotocol/sdk-contracts-ts package provides TypeScript utilities for interacting with CoW Protocol smart contracts, encoding settlements, and managing orders.
Installation
Core Data Structures
Order Interface
Orders represent Gnosis Protocol v2 transactions with fields for token pairs, amounts, validity periods, and execution parameters. Key properties includesellToken, buyToken, sellAmount, buyAmount, validTo, appData, feeAmount, kind, and balance management options.
OrderKind Enum
Two types exist:SELL- selling a specific token amountBUY- buying a specific token amount
OrderBalance Enum
Balance management strategies:ERC20- standard ERC-20 balancesEXTERNAL- Balancer Vault external balancesINTERNAL- Balancer Vault internal balances
Signing Schemes
Four signing methods are supported:| Scheme | Value | Purpose |
|---|---|---|
| EIP712 | 0b00 | EIP-712 typed data (preferred) |
| ETHSIGN | 0b01 | eth_sign RPC calls |
| EIP1271 | 0b10 | Smart contract signatures |
| PRESIGN | 0b11 | Pre-signed orders |
Utility Functions
hashOrder
Generates a 32-byte signing digest for orders using EIP-712 domain separators.computeOrderUid
Creates a unique 56-byte identifier combining order hash, owner address, and validity time.extractOrderUidParams
Reverses UIDs into component parts (digest, owner, validTo).normalizeOrder
Prepares order data for cryptographic signing operations.Settlement Encoding
SettlementEncoder Class
Primary class managing settlement construction through:encodeTrade()- adds trades with signaturessignEncodeTrade()- signs and encodes trades atomicallyencodeInteraction()- includes contract interactionsencodedSettlement()- generates final encoded output
InteractionStage Enum
Execution timing for contract interactions:PRE(0) - approvals and permitsINTRA(1) - AMM interactionsPOST(2) - cleanup operations
Trade & Flag Encoding
Trade data includes token indices, execution amounts, and bitfield flags. TheencodeTradeFlags() function converts flag objects into numeric representations, while decodeTradeFlags() reverses this process.
Order Cancellation
Functions handle single and batch order cancellations:hashOrderCancellation()- single orderhashOrderCancellations()- multiple orders
Constants
Key values include:BUY_ETH_ADDRESS=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE(ETH marker)ORDER_UID_LENGTH= 56 bytesORDER_TYPE_HASHfor EIP-712 compliance