# Public data structures

## MgvLib.SingleOrder

<table><thead><tr><th width="326.3333333333333">Type</th><th width="161">Field</th><th>Comments</th></tr></thead><tbody><tr><td><code>address</code></td><td><code>outbound_tkn</code></td><td>outbound token address of the market order</td></tr><tr><td><code>address</code></td><td><code>inbound_tkn</code></td><td>inbound token address of the market order</td></tr><tr><td><code>uint</code></td><td><code>offerId</code></td><td>Id of the offer that is matched by the order</td></tr><tr><td><code>MgvStructs.OfferPacked</code></td><td><code>offer</code></td><td>Offer data of the current state of the offer on the offer list</td></tr><tr><td><code>uint</code></td><td><code>wants</code></td><td>amount of outbound tokens that are required by the order (in max precision units of <code>outbound_tkn</code> ERC20).</td></tr><tr><td><code>uint</code></td><td><code>gives</code></td><td>amount of inbound tokens that are given by the taker (in max precision units of <code>inbound_tkn</code> ERC20).</td></tr><tr><td><code>MgvStructs.OfferDetailPacked</code></td><td><code>offerDetail</code></td><td>packing of the matched offer details</td></tr><tr><td><code>MgvStructs.GlobalPacked</code></td><td><code>global</code></td><td>packing of the global parameters of the Mangrove that apply to this order</td></tr><tr><td><code>MgvStructs.LocalPacked</code></td><td><code>local</code></td><td>packing of the market parameters that apply to this order</td></tr></tbody></table>

## MgvLib.OrderResult

<table><thead><tr><th width="145">Type</th><th width="133.33333333333331">Field</th><th>Description</th></tr></thead><tbody><tr><td><code>bytes32</code></td><td><code>makerData</code></td><td>The returned or reverted value of <code>makerExecute</code>, truncated to fit a <code>bytes32</code> word.</td></tr><tr><td><code>bytes32</code></td><td><code>mgvData</code></td><td><p>Information gathered by Mangrove concerning the offer 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 <a href="/pages/-Me0Gx3iLLRX-isZO7ec">Offer Logic</a> 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 <a href="/pages/-Me0Gx3iLLRX-isZO7ec">Offer Logic</a> (e.g. contract is blacklisted).</li></ul></td></tr></tbody></table>


---

# 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/mangrove-core/technical-references/taking-and-making-offers/reactive-offer/offer-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.
