# Public data structures

## MgvLib.SingleOrder

| Type          | Field         | Comments                                                                                                                                                                                                                                                              |
| ------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OLKey`       | `olKey`       | <p>Struct containing:<br>• <code>outbound\_tkn</code> (address of the <em>outbound</em> token)<br>• <code>inbound\_tkn</code> (address of the <em>inbound</em> token)<br>• <code>tickSpacing</code> (number of ticks that should be jumped between allowed ticks)</p> |
| `uint`        | `offerId`     | ID of the offer that is matched by the order                                                                                                                                                                                                                          |
| `Offer`       | `offer`       | The `offer` given to the maker will be cleaned of `prev`/`next` pointers                                                                                                                                                                                              |
| `uint`        | `takerWants`  | The amount of outbound tokens that are required by the order (in max precision units of `outbound_tkn` ERC20).                                                                                                                                                        |
| `uint`        | `takerGives`  | The amount of inbound tokens that are given by the taker (in max precision units of `inbound_tkn` ERC20).                                                                                                                                                             |
| `OfferDetail` | `offerDetail` | <p>Packing of the matched offer's detail. It holds the maker’s address and provision/penalty-related information:<br>• <code>maker</code><br>• <code>gasreq</code><br>• <code>kilo\_offer\_gasbase</code><br>• <code>gasprice</code></p>                              |
| `Global`      | `global`      | Packing of the global parameters of Mangrove that apply to this order                                                                                                                                                                                                 |
| `Local`       | `local`       | Packing of the offer list parameters that apply to this order                                                                                                                                                                                                         |

## MgvLib.OrderResult

| Type      | Field       | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| --------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `bytes32` | `makerData` | The returned or reverted value of `makerExecute`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `bytes32` | `mgvData`   | <p>It holds a message that was either returned by the maker or passed as revert message at the end of the trade execution. If the offer was a success it is equal to:</p><ul><li><code>"mgv/tradeSuccess"</code>: offer execution succeeded.</li></ul><p>If the offer failed (Offer Bounty will be taken from Maker Contract), it will be equal to one the following messages:</p><ul><li><code>"mgv/makerRevert"</code>: offer execution reverted.</li><li><code>"mgv/makerTransferFail"</code>: Mangrove could not transfer <code>order.outbound\_tkn</code> tokens from Maker Contract to itself (e.g. contract has insufficient balance).</li><li><code>"mgv/makerReceiveFail"</code>: Mangrove could not transfer <code>order.inbound\_tkn</code> tokens to Maker Contract (e.g. contract is blacklisted).</li></ul> |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mangrove.exchange/dev/protocol/technical-references/makers/public-data-structures.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
