iota-client 1.4.0

The official, general-purpose IOTA client library in Rust for interaction with the IOTA network (Tangle)
Documentation
import CodeBlock from "@theme/CodeBlock";
import java_examples from "!!raw-loader!../../../../../bindings/java/examples/java-app/src/main/java/org/iota/client/example/ExampleApp.java";
const javaFunctionName = "public static void getMessageMetadata",
  indexStart = java_examples.indexOf(javaFunctionName);
const nextJavaFunctionName = "public static void getDataMessage",
  indexEnd = java_examples.indexOf(nextJavaFunctionName);
const get_message_data = java_examples.substring(indexStart, indexEnd);

Once a [message](../../../explanations/messages_payloads_and_transactions.md) is broadcast, you can use the
[`GetMessageBuilder`](./../libraries/java/api_reference#getmessagebuilder) helper class that you can instantiate using
the [`Client.getMessage()`](./../libraries/java/api_reference#getmessage-getmessagebuilder) function to retrieve it from
the network. The `GetMessageBuilder` provides helper functions related to the message, such as
[`Client.getMessage().data(str)`](./../libraries/java/api_reference#datamessage_id-message) and
[`Client.getMessage().metadata(str)`](./../libraries/java/api_reference#metadatamessage_id-messagemetadata):

<CodeBlock className="language-java">{get_message_data}</CodeBlock>

**Output example**:

```json
Message meta data:
{
   "messageId":"e52b631bc7500366b90c6e11eb7fd6abaa7527f9bb5b4b512b0b9112bb9e7be8",
   "parentMessageIds": [
      "26d72339ed262c1ec29d6c91de6be26d067b3327191f5e47606df53cc40e334e",
      "6289ea0aecf3830e5e8d9925959bb6e804e324bb6db23c5701f7a538d12831f6",
      "fdbf2d02603235fdff99f0ceb57705ead95041d62de386387f2922e5d9f6c502",
      "ffa26139ca7f9d4849e118ff369fb3a387c8fefd8d15232b8353d4acf334324c"
   ],
   "isSolid":true,
   "shouldPromote":false,
   "shouldReattach":false
}

Message data:
{
   "message": {
      "networkId":"14379272398717627559",
      "parentMessageIds": [
         "27782707e4cbf84ca26b3db881bbf39b6429f9ee736a0cbe5a1c177d7a52b05d",
         "61cdf92c64a3304bbbabaf9fbfb0ea7ef9624e1eedea68efbe08595ccdf853e1",
         "a222d13e3ee51b56b0b0e38140a5f7f813b6d9e29b752d7e1e2424099455080d",
         "ab6bca20091b58dcbb0906438a7e47bfb11621c4a37b8d118b565f7f138a40d6"
      ],
      "payload": {
         "type":2,
         "index":"484f524e4554205370616d6d6572",
         "data":"42696e61727920697320746865206675747572652e0a436f756e743a2031333936393530390a54696d657374616d703a20323032312d30352d33315431353a33363a30392b30323a30300a54697073656c656374696f6e3a203337c2b573"
         },
      "nonce":"246736"
   },
   "messageId":"30d87fa9917602e5685638e37802bde11b260bd2379f6c850704d7babd365b44"
}
```

- `Client.getMessage().metadata()` provides information on how the given message fits to network structures, such as
  `ledger_inclusion_state`, etc.
- `Client.getMessage().data()` provides all the data that relates to the given message and its payload(s).