import CodeBlock from "@theme/CodeBlock"; import a_get_address_outputs from "!!raw-loader!./../../../../../bindings/nodejs/examples/05a_get_address_outputs.js"; import b_get_output from "!!raw-loader!./../../../../../bindings/nodejs/examples/05b_get_output.js"; import c_find_outputs from "!!raw-loader!./../../../../../bindings/nodejs/examples/05c_find_outputs.js"; - [`Client.getAddressOutputs(str)`](#clientgetoutputstr) - [`Client.getOutput(str)`](#clientgetoutputstr) - [`Client.findOutputs(output_ids (optional), addresses (optional))`](#clientfindoutputsoutput_ids-optional-addresses-optional): ## Client.getAddressOutputs(str) This [`Client.getAddressOutputs(str)`](./../libraries/nodejs/api_reference#getaddressoutputsaddress-options-promisestring) expects an address in Bech32 format and returns a `str[]` of `output_ids`. {a_get_address_outputs} **Output example**: ```json [ "0f2d5d2651f8061a9f5417d0658009f32b2e3f77f9706b0be3b4b3f466171f360000", "7614ba900a90b130707766a660a454942ac7cc4adea3fb9ad0cdca90114417c20000", "768c20c15a290e02a43b83263a98501b9d7eb0b57da40a9247289c672de63ea60000" ] ``` ## Client.getOutput(str) You can use the [`Client.getOutput(str)`](./../libraries/nodejs/api_reference#getoutputoutputid-promise) function to get metadata about the an `output_id`: {b_get_output} **Output example**: ```json { "messageId": "f303bc90a5ed3ef15af5fc6aa81a739978c59458a71e68ce8e380f1f534da1e6", "transactionId": "0f2d5d2651f8061a9f5417d0658009f32b2e3f77f9706b0be3b4b3f466171f36", "outputIndex": 0, "isSpent": false, "address": "atoi1qzt0nhsf38nh6rs4p6zs5knqp6psgha9wsv74uajqgjmwc75ugupx3y7x0r", "amount": 1000000 } ``` ## Client.findOutputs(output_ids (optional), addresses (optional)) The function [`Client.findOutputs()`](./../libraries/nodejs/api_reference#findoutputsoutputids-addresses-promiseoutputmetadata) is a convenient shortcut combining both `Client.getAddressOutputs(str)` and `Client.getOutput(str)` methods in a single call. It supports two arguments, a list of `output_ids` or a list of `addresses`. {c_find_outputs} **Output example**: ```json [ { "messageId": "f303bc90a5ed3ef15af5fc6aa81a739978c59458a71e68ce8e380f1f534da1e6", "transactionId": "0f2d5d2651f8061a9f5417d0658009f32b2e3f77f9706b0be3b4b3f466171f36", "outputIndex": 0, "isSpent": false, "address": "atoi1qzt0nhsf38nh6rs4p6zs5knqp6psgha9wsv74uajqgjmwc75ugupx3y7x0r", "amount": 1000000 }, { "messageId": "825266a79c0ffb6001ed263eb150357863b7d0052627c5766e8ef5acd6fed533", "transactionId": "768c20c15a290e02a43b83263a98501b9d7eb0b57da40a9247289c672de63ea6", "outputIndex": 0, "isSpent": false, "address": "atoi1qzt0nhsf38nh6rs4p6zs5knqp6psgha9wsv74uajqgjmwc75ugupx3y7x0r", "amount": 1000000 } ] ``` - `messageId`: Refers to the encapsulating message in which the transaction was sent. - `transactionId`, `outputIndex`: Refers to the output within the `SignedTransaction` payload. There may be several `outputs` involved in a single transaction, so the `transactionId` by itself would not be enough. - `output`: This section provides details about the iota address to which the given [unspent transaction output](../../../explanations/messages_payloads_and_transactions.md#unspent-transaction-output-utxo) is coupled with. - `amount`: States an amount of tokens related to the `output`. - `isSpent`: Indicates whether the given `output` is a part of the actual ledger state or not. As mentioned in the [Messages, Payloads, and Transactions section](../../../explanations/messages_payloads_and_transactions.md#unspent-transaction-output-utxo), if an output was already spent it is not part of the ledger state any more and is replaced by some other `output(s)` in the process. Notice that the `outputId` that was used in a function call to get output details is the same as a combination of the `transactionId` and `outputIndex`. This way a transaction is tightly coupled with `outputs` since the `SignedTransaction` payload is a main vehicle to create and spend `outputs`, and everything is encapsulated in a [message](../../../explanations/messages_payloads_and_transactions.md#Messages).