> For the complete documentation index, see [llms.txt](https://docs.mangrove.exchange/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mangrove.exchange/dev/protocol/technical-references/makers/public-data-structures.md).

# 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> |
