# TradeMath

## computeTradeStep

Computes the result of swapping some collateral amount in, or options token amount out, given the parameters of the swap.

```javascript
  function computeTradeStep(ComputeTradeStepParams memory params)
        internal
        pure
        returns (uint160 sqrtRatioNextX96, uint256 amountIn, uint256 amountOut)
```

**Params:**

| **Name**               | **Type** | **Description**                                                                                                                              |
| ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| ComputeTradeStepParams | params   | Params for computing a trade step. See [Params](https://docs.divergence-protocol.com/technical-reference/core/params#ComputeTradeStepParams) |

**Returns:**

| **Name**         | **Type** | **Description**                                                                                |
| ---------------- | -------- | ---------------------------------------------------------------------------------------------- |
| sqrtRatioNextX96 | uint160  | The price after swapping the amount in/out, not to exceed the price target                     |
| amountIn         | uint256  | The collateral amount to be swapped in based on the direction of the swap                      |
| amountOut        | uint256  | The amount to be received, of either spear or shield token, based on the direction of the swap |
