mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-12-03 10:05:49 +00:00
Update look up escrows to remove redundant info about lookups via sender/destination. Modify cancel expired escrow for brevity.
This commit is contained in:
@@ -8,9 +8,11 @@ labels:
|
||||
---
|
||||
# Cancel an Expired Escrow
|
||||
|
||||
## 1. Confirm the expired escrow
|
||||
An escrow in the XRP Ledger is expired when its `CancelAfter` time is lower than the `close_time` of the latest validated ledger. Escrows without a `CancelAfter` time never expire.
|
||||
|
||||
An escrow in the XRP Ledger is expired when its `CancelAfter` time is lower than the `close_time` of a validated ledger version. (If the escrow does not have a `CancelAfter` time, it never expires.) You can look up the close time of the latest validated ledger with the [ledger method][]:
|
||||
## 1. Get the latest validated ledger
|
||||
|
||||
Use the [ledger method][] to look up the latest validated ledger and get the `close_time` value.
|
||||
|
||||
Request:
|
||||
|
||||
@@ -36,8 +38,10 @@ _Websocket_
|
||||
|
||||
<!-- MULTICODE_BLOCK_END -->
|
||||
|
||||
## 2. Look up the escrow
|
||||
|
||||
You can look up the escrow and compare to the `CancelAfter` time using the [account_objects method][]:
|
||||
<!--> Note to Dennis: Maybe include the look up escrows info here and remove the corresponding page entirely? <-->
|
||||
Use the [account_objects method][] and compare `CancelAfter` to `close_time`:
|
||||
|
||||
Request:
|
||||
|
||||
@@ -63,7 +67,7 @@ _Websocket_
|
||||
|
||||
<!-- MULTICODE_BLOCK_END -->
|
||||
|
||||
## 2. Submit EscrowCancel transaction
|
||||
## 3. Submit EscrowCancel transaction
|
||||
|
||||
***Anyone*** can cancel an expired escrow in the XRP Ledger by [signing and submitting](transaction-basics.html#signing-and-submitting-transactions) an [EscrowCancel transaction][]. Set the `Owner` field of the transaction to the `Account` of the `EscrowCreate` transaction that created this escrow. Set the `OfferSequence` field to the `Sequence` of the `EscrowCreate` transaction.
|
||||
|
||||
@@ -95,13 +99,13 @@ _Websocket_
|
||||
|
||||
Take note of the transaction's identifying `hash` value so you can check its final status when it is included in a validated ledger version.
|
||||
|
||||
## 3. Wait for validation
|
||||
## 4. Wait for validation
|
||||
|
||||
{% include '_snippets/wait-for-validation.md' %} <!--#{ fix md highlighting_ #}-->
|
||||
|
||||
## 4. Confirm final result
|
||||
## 5. Confirm final result
|
||||
|
||||
Use the [tx method][] with the EscrowCancel transaction's identifying hash to check its final status. Look in the transaction metadata for a `DeletedNode` with `LedgerEntryType` of `Escrow`. Also look for a `ModifiedNode` of type `AccountRoot` for the sender of the escrowed payment. The `FinalFields` of the object should show the increase in XRP in the `Balance` field for the returned XRP.
|
||||
Use the [tx method][] with the `EscrowCancel` transaction's identifying hash to check its final status. Look in the transaction metadata for a `DeletedNode` with `LedgerEntryType` of `Escrow`. Also look for a `ModifiedNode` of type `AccountRoot` for the sender of the escrowed payment. The `FinalFields` of the object should show the increase in XRP in the `Balance` field for the returned XRP.
|
||||
|
||||
Request:
|
||||
|
||||
@@ -129,7 +133,7 @@ _Websocket_
|
||||
<!-- MULTICODE_BLOCK_END -->
|
||||
|
||||
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).
|
||||
|
||||
***TODO: Figure out why EscrowFinish is mentioned here. I'm not seeing how it relates to canceling escrows.***
|
||||
**Tip:** If you don't know what `OfferSequence` to use in the [EscrowFinish transaction][] to execute an escrow, use the [tx method][] 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.
|
||||
|
||||
|
||||
|
||||
@@ -6,54 +6,14 @@ labels:
|
||||
- Escrow
|
||||
- Smart Contracts
|
||||
---
|
||||
# Look up escrows
|
||||
# Look up Escrows
|
||||
|
||||
All pending escrows are stored in the ledger as [Escrow objects](escrow.html).
|
||||
|
||||
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 method][].
|
||||
|
||||
## Look up escrows by sender address
|
||||
|
||||
You can use the [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:
|
||||
|
||||
<!-- 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 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 -->
|
||||
|
||||
_Websocket_
|
||||
|
||||
```json
|
||||
{% include '_code-samples/escrow/websocket/account_objects-response.json' %}
|
||||
```
|
||||
|
||||
<!-- MULTICODE_BLOCK_END -->
|
||||
|
||||
## Look up escrows by destination address
|
||||
|
||||
You can use the [account_objects method][] to look up escrow objects by destination address.
|
||||
All pending escrows are stored in the ledger as [Escrow objects](escrow.html), and you can look them up by the sender's address or the destination address.
|
||||
|
||||
<!--> Note to Dennis: Is anyone going to be looking up escrows created before 2017? Seems like an extremely niche case to be taking up page space. Remove this maybe? <-->
|
||||
**Note:** You can only look up pending escrow objects by destination address if those escrows were created after the [fix1523 amendment][] 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.
|
||||
Use the [account_objects][] method, where the sender or destination address is the `account` value.
|
||||
|
||||
Request:
|
||||
|
||||
@@ -67,10 +27,7 @@ _Websocket_
|
||||
|
||||
<!-- 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`.
|
||||
The response includes all pending escrow objects with `rfztBskAVszuS3s5Kq7zDS74QtHrw893fm`, where the sender address is the `Account` value, or the destination address is the `Destination` value.
|
||||
|
||||
Response:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user