Merge pull request #287 from jhaaaa/escrow-lookup

updated escrow tut & samples - look up by receiver
This commit is contained in:
Jennifer Hasegawa
2017-12-12 10:29:13 -08:00
committed by GitHub
4 changed files with 117 additions and 34 deletions

View File

@@ -1,7 +1,7 @@
{
"id": 5,
"command": "account_objects",
"account": "rEhw9vD98ZrkY4tZPvkZst5H18RysqFdaB",
"account": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm",
"ledger_index": "validated",
"type": "escrow"
}

View File

@@ -1,26 +0,0 @@
{
"id": 5,
"status": "success",
"type": "response",
"result": {
"account": "rEhw9vD98ZrkY4tZPvkZst5H18RysqFdaB",
"account_objects": [
{
"Account": "rEhw9vD98ZrkY4tZPvkZst5H18RysqFdaB",
"Amount": "100000",
"CancelAfter": 556927412,
"Condition": "A0258020E24D9E1473D4DF774F6D8E089067282034E4FA7ECACA2AD2E547953B2C113CBD810120",
"Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
"Flags": 0,
"LedgerEntryType": "Escrow",
"OwnerNode": "0000000000000000",
"PreviousTxnID": "E22D1F6EB006CAD35E0DBD3B4F3748427055E4C143EBE95AA6603823AEEAD324",
"PreviousTxnLgrSeq": 1772019,
"index": "E2CF730A31FD419382350C9DBD8DB7CD775BA5AA9B97A9BE9AB07304AA217A75"
}
],
"ledger_hash": "F2ABEA175F4AB871845B01CB51E4324DBA2C2553EC34448D4AB1EB0A3F2D8EFB",
"ledger_index": 1772020,
"validated": true
}
}

View File

@@ -0,0 +1,60 @@
{
"id": 5,
"result": {
"account": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm",
"account_objects": [{
"Account": "rafD3taonqdnVpaxCCT6sjnScZUeFGf1JG",
"Amount": "250",
"Destination": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm",
"DestinationNode": "0000000000000000",
"FinishAfter": 570672000,
"Flags": 0,
"LedgerEntryType": "Escrow",
"OwnerNode": "0000000000000000",
"PreviousTxnID": "A0951691DF3BCBEEB3108F2229A702D078BBBF848268BC601E59B68A2E390AAC",
"PreviousTxnLgrSeq": 4602906,
"index": "2BF3226ACCA8FF7ACB7201F20A701F51D8666A2FA2FBFBE6A05C9161F9228A18"
}, {
"Account": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm",
"Amount": "250",
"Destination": "r9gyNNzhMtfwZara61u3ycfMLdkTpKJZHX",
"DestinationNode": "0000000000000000",
"FinishAfter": 570672000,
"Flags": 0,
"LedgerEntryType": "Escrow",
"OwnerNode": "0000000000000000",
"PreviousTxnID": "463D5A3CF09F4890B8471027F80414B3B438E6907425B71DC324D7118E90A107",
"PreviousTxnLgrSeq": 4603003,
"index": "35462CDC28AD830B29D101E8307AF5B6BFBC262F1BDCCA7EB45D1CA3F8B44F53"
}, {
"Account": "r9gyNNzhMtfwZara61u3ycfMLdkTpKJZHX",
"Amount": "250",
"Destination": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm",
"DestinationNode": "0000000000000000",
"FinishAfter": 570672000,
"Flags": 0,
"LedgerEntryType": "Escrow",
"OwnerNode": "0000000000000000",
"PreviousTxnID": "08C9B20AC9EB191238038A108CC4CBBC0243672484B466FB42DED0A7DF6A31A1",
"PreviousTxnLgrSeq": 4602954,
"index": "A7B0983A1B53D92278E21499064A4F8BBE08CB8D14DB6BBBA8F688AB1D3FDA45"
}, {
"Account": "rfztBskAVszuS3s5Kq7zDS74QtHrw893fm",
"Amount": "250",
"Destination": "rafD3taonqdnVpaxCCT6sjnScZUeFGf1JG",
"DestinationNode": "0000000000000000",
"FinishAfter": 570672000,
"Flags": 0,
"LedgerEntryType": "Escrow",
"OwnerNode": "0000000000000000",
"PreviousTxnID": "F4778F528AB3CB945BDB88036EF9FE6C0E899F1629D9E51129E3B93CD488395A",
"PreviousTxnLgrSeq": 4602977,
"index": "F99A4DDADDDF623908C9A048170AB107AFF78684AB8F3110E9F00BBBC606ABD2"
}],
"ledger_hash": "1D4850035F175CA6F1CD5CE3B53C01AA83E4F086C13085E4FBC1EEFCCB345A9B",
"ledger_index": 4603176,
"validated": true
},
"status": "success",
"type": "response"
}

View File

@@ -5,8 +5,7 @@ The XRP Ledger supports held payments, or _escrows_, that can be executed only a
- [Send a time-held escrow](#send-a-time-held-escrow)
- [Send a conditionally-held escrow](#send-a-conditionally-held-escrow)
- [Cancel an expired escrow](#cancel-an-expired-escrow)
- [Look up escrows by sender](#look-up-escrows-by-sender)
<!-- {# Doesn't work yet:- Look up escrows by destination #}-->
- [Look up escrows](#look-up-escrows)
## Send a Time-Held Escrow
@@ -511,9 +510,19 @@ _Websocket_
In the above example, `r3wN3v2vTUkr5qd6daqDc2xE4LSysdVjkT` is the sender of the escrow, and the increase in `Balance` from 99999**8**9990 drops to 99999**9**9990 drops represents the return of the escrowed 10,000 drops of XRP (0.01 XRP).
## Look up escrows by sender
**Tip:** If you don't know what `OfferSequence` to use in the [EscrowFinish transaction][] to execute an escrow, use the [`tx` method](reference-rippled.html) to look up the transaction that created the escrow, using the identifying hash of the transaction in the Escrow's `PreviousTxnID` field. Use the `Sequence` value of that transaction as the `OfferSequence` value when finishing the escrow.
All pending escrows are stored in the ledger as [Escrow objects](reference-ledger-format.html#escrow). You can look up escrow nodes owned by your address using the [`account_objects` method](reference-rippled.html#account-objects).
## Look up escrows
All pending escrows are stored in the ledger as [Escrow objects](reference-ledger-format.html#escrow).
You can look up escrow objects by the [sender's address](#look-up-escrows-by-sender-address) or the [destination address](#look-up-escrows-by-destination-address) using the [`account_objects`](reference-rippled.html#account-objects) method.
###Look up escrows by sender address
You can use the [`account_objects`](reference-rippled.html#account-objects) method to look up escrow objects by sender address.
Let's say that you want to look up all pending escrow objects with a sender address of `rfztBskAVszuS3s5Kq7zDS74QtHrw893fm`. You can do this using the following example request, where the sender address is the `account` value.
Request:
@@ -522,11 +531,16 @@ Request:
_Websocket_
```json
{% include 'code_samples/escrow/websocket/account_objects-request-sender.json' %}
{% include 'code_samples/escrow/websocket/account_objects-request.json' %}
```
<!-- MULTICODE_BLOCK_END -->
The response resembles the following example. Note that the response includes all pending escrow objects with `rfztBskAVszuS3s5Kq7zDS74QtHrw893fm` as the sender or destination address, where the sender address is the `Account` value and the destination address is the `Destination` value.
In this example, the second and fourth escrow objects meet our lookup criteria because their `Account` (sender address) values are set to `rfztBskAVszuS3s5Kq7zDS74QtHrw893fm`.
Response:
<!-- MULTICODE_BLOCK_START -->
@@ -534,11 +548,46 @@ Response:
_Websocket_
```json
{% include 'code_samples/escrow/websocket/account_objects-response-sender.json' %}
{% include 'code_samples/escrow/websocket/account_objects-response.json' %}
```
<!-- MULTICODE_BLOCK_END -->
**Tip:** If you don't know what `OfferSequence` to use in the [EscrowFinish transaction][] to execute an escrow, use the [`tx` method](reference-rippled.html) to look up the transaction that created the escrow, using the identifying hash of the transaction in the Escrow's `PreviousTxnID` field. Use the `Sequence` value of that transaction as the `OfferSequence` value when finishing the escrow.
###Look up escrows by destination address
You can use the [`account_objects`](reference-rippled.html#account-objects) method to look up escrow objects by destination address.
**Note:** You can only look up pending escrow objects by destination address if those escrows were created after the [fix1523 amendment](concept-amendments.html#fix1523) was enabled on 2017-11-14.
Let's say that you want to look up all pending escrow objects with a destination address of `rfztBskAVszuS3s5Kq7zDS74QtHrw893fm`. You can do this using the following example request, where the destination address is the `account` value.
Request:
<!-- MULTICODE_BLOCK_START -->
_Websocket_
```json
{% include 'code_samples/escrow/websocket/account_objects-request.json' %}
```
<!-- MULTICODE_BLOCK_END -->
The response resembles the following example. Note that the response includes all pending escrow objects with `rfztBskAVszuS3s5Kq7zDS74QtHrw893fm` as the destination or sender address, where the destination address is the `Destination` value and the sender address is the `Account` value.
In this example, the first and third escrow objects meet our lookup criteria because their `Destination` (destination address) values are set to `rfztBskAVszuS3s5Kq7zDS74QtHrw893fm`.
Response:
<!-- MULTICODE_BLOCK_START -->
_Websocket_
```json
{% include 'code_samples/escrow/websocket/account_objects-response.json' %}
```
<!-- MULTICODE_BLOCK_END -->
{% include 'snippets/tx-type-links.md' %}