mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-23 05:05:50 +00:00
Escrow tutorial [WIP]
This commit is contained in:
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
@@ -131,6 +132,7 @@
|
|||||||
<li class="level-2"><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li class="level-2"><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li class="level-2"><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li class="level-2"><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li class="level-2"><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li class="level-2"><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li class="level-2"><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<hr />
|
<hr />
|
||||||
<h5>In this page:</h5>
|
<h5>In this page:</h5>
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
@@ -164,9 +165,10 @@
|
|||||||
<h3 id="owner-reserves">Owner Reserves</h3>
|
<h3 id="owner-reserves">Owner Reserves</h3>
|
||||||
<p>Many objects in the ledger are owned by a particular address, and count toward the reserve requirement of that address. When objects are removed from the ledger, they no longer count against their owner's reserve requirement.</p>
|
<p>Many objects in the ledger are owned by a particular address, and count toward the reserve requirement of that address. When objects are removed from the ledger, they no longer count against their owner's reserve requirement.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="reference-ledger-format.html#offer">Offers</a> are owned by the address that placed them. Transaction automatically removes Offers that are fully consumed or found to be unfunded. Alternatively, the owner can cancel an Offer by sending an <a href="reference-transaction-format.html#offercancel">OfferCancel transaction</a>, or by sending an <a href="reference-transaction-format.html#offercreate">OfferCreate transaction</a> that contains an <code>OfferSequence</code> parameter.</li>
|
<li><a href="reference-ledger-format.html#offer">Offers</a> are owned by the address that placed them. Transaction processing automatically removes Offers that are fully consumed or found to be unfunded. Alternatively, the owner can cancel an Offer by sending an <a href="reference-transaction-format.html#offercancel">OfferCancel transaction</a>, or by sending an <a href="reference-transaction-format.html#offercreate">OfferCreate transaction</a> that contains an <code>OfferSequence</code> parameter.</li>
|
||||||
<li><a href="reference-ledger-format.html#ripplestate">Trust lines</a> are shared between two addresses. The owner reserve can apply to one or both of the addresses, depending on whether the fields that address controls are in their default state. See <a href="reference-ledger-format.html#contributing-to-the-owner-reserve">Contributing to the Owner Reserve</a> for details.</li>
|
<li><a href="reference-ledger-format.html#ripplestate">Trust lines</a> are shared between two addresses. The owner reserve can apply to one or both of the addresses, depending on whether the fields that address controls are in their default state. See <a href="reference-ledger-format.html#contributing-to-the-owner-reserve">Contributing to the Owner Reserve</a> for details.</li>
|
||||||
<li>A single <a href="reference-ledger-format.html#signerlist">SignerList</a> counts as 3 to 10 objects for purposes of the owner reserve, depending on how many members it has. See also: <a href="reference-ledger-format.html#signerlists-and-reserves">SignerLists and Reserves</a>.</li>
|
<li>A single <a href="reference-ledger-format.html#signerlist">SignerList</a> counts as 3 to 10 objects for purposes of the owner reserve, depending on how many members it has. See also: <a href="reference-ledger-format.html#signerlists-and-reserves">SignerLists and Reserves</a>.</li>
|
||||||
|
<li><a href="reference-ledger-format.html#escrow">Held Payments (Escrow)</a> are owned by the address that placed them.</li>
|
||||||
<li><a href="reference-ledger-format.html#directorynode">Owner directories</a> list all the ledger nodes that contribute to an address's owner reserve. However, the owner directory itself does not count towards the reserve.</li>
|
<li><a href="reference-ledger-format.html#directorynode">Owner directories</a> list all the ledger nodes that contribute to an address's owner reserve. However, the owner directory itself does not count towards the reserve.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h4 id="owner-reserve-edge-cases">Owner Reserve Edge Cases</h4>
|
<h4 id="owner-reserve-edge-cases">Owner Reserve Edge Cases</h4>
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
@@ -175,6 +176,7 @@
|
|||||||
<p><strong>Address:</strong> <code>rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh</code></p>
|
<p><strong>Address:</strong> <code>rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh</code></p>
|
||||||
<p><strong>Secret:</strong> <code>snoPBrXtMeMyMHUVTgbuqAfg1SUTb</code> ("masterpassphrase")</p>
|
<p><strong>Secret:</strong> <code>snoPBrXtMeMyMHUVTgbuqAfg1SUTb</code> ("masterpassphrase")</p>
|
||||||
<p class="devportal-callout caution"><strong>Caution:</strong> If you create a new genesis ledger, the hard-coded default <a href="concept-reserves.html">Reserve</a> is <strong>200 XRP</strong> minimum for funding a new address, with an increment of <strong>50 XRP</strong> per object in the ledger. These values are higher than the current reserve requirements of the production network. (See also: <a href="concept-fee-voting.html">Fee Voting</a>)</p>
|
<p class="devportal-callout caution"><strong>Caution:</strong> If you create a new genesis ledger, the hard-coded default <a href="concept-reserves.html">Reserve</a> is <strong>200 XRP</strong> minimum for funding a new address, with an increment of <strong>50 XRP</strong> per object in the ledger. These values are higher than the current reserve requirements of the production network. (See also: <a href="concept-fee-voting.html">Fee Voting</a>)</p>
|
||||||
|
<p>[New in: rippled 0.50.0][] If you start a new genesis ledger with <code>--start</code>, all The genesis ledger contains an <a href="reference-transaction-format.html#enableamendment">EnableAmendment pseudo-transaction</a> to turn on all <a href="concept-amendments.html">Amendments</a> natively supported by the <code>rippled</code> server, except for amendments that you explicitly disable in the configuration file. The effects of those amendments are available starting from the very next ledger version.</p>
|
||||||
<h2 id="load-saved-ledger">Load Saved Ledger</h2>
|
<h2 id="load-saved-ledger">Load Saved Ledger</h2>
|
||||||
<p>You can start with a ledger version that was saved to disk if your <code>rippled</code> server was previously synced with the Ripple peer-to-peer network (either the production network or the <a href="tutorial-rippled-setup.html#parallel-networks">Test Net</a>).</p>
|
<p>You can start with a ledger version that was saved to disk if your <code>rippled</code> server was previously synced with the Ripple peer-to-peer network (either the production network or the <a href="tutorial-rippled-setup.html#parallel-networks">Test Net</a>).</p>
|
||||||
<h3 id="1-start-rippled-normally">1. Start <code>rippled</code> normally.</h3>
|
<h3 id="1-start-rippled-normally">1. Start <code>rippled</code> normally.</h3>
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
@@ -226,7 +227,7 @@
|
|||||||
<li>Transactions must be properly-formed and <a href="reference-transaction-format.html#authorizing-transactions">authorized</a> with valid signatures.</li>
|
<li>Transactions must be properly-formed and <a href="reference-transaction-format.html#authorizing-transactions">authorized</a> with valid signatures.</li>
|
||||||
<li>Transactions with an <code>AccountTxnID</code> field cannot be queued.</li>
|
<li>Transactions with an <code>AccountTxnID</code> field cannot be queued.</li>
|
||||||
<li>A single sending address can have at most 10 transactions queued at the same time. In order for a transaction to be queued, the sender must have enough XRP to pay all the XRP costs of all the sender's queued transactions including both the <code>Fee</code> fields and the sum of the XRP that each transaction could send. <a href="https://github.com/ripple/rippled/releases/tag/0.32.0" title="New in: rippled 0.32.0"><img alt="New in: rippled 0.32.0" class="dactyl_badge" src="https://img.shields.io/badge/New%20in-rippled%200.32.0-blue.svg"/></a></li>
|
<li>A single sending address can have at most 10 transactions queued at the same time. In order for a transaction to be queued, the sender must have enough XRP to pay all the XRP costs of all the sender's queued transactions including both the <code>Fee</code> fields and the sum of the XRP that each transaction could send. <a href="https://github.com/ripple/rippled/releases/tag/0.32.0" title="New in: rippled 0.32.0"><img alt="New in: rippled 0.32.0" class="dactyl_badge" src="https://img.shields.io/badge/New%20in-rippled%200.32.0-blue.svg"/></a></li>
|
||||||
<li>If a transaction affects how the sending address authorizes accounts, no other transactions from the same address can be queued behind it. <a href="https://github.com/ripple/rippled/releases/tag/0.32.0" title="New in: rippled 0.32.0"><img alt="New in: rippled 0.32.0" class="dactyl_badge" src="https://img.shields.io/badge/New%20in-rippled%200.32.0-blue.svg"/></a></li>
|
<li>If a transaction affects how the sending address authorizes transactions, no other transactions from the same address can be queued behind it. <a href="https://github.com/ripple/rippled/releases/tag/0.32.0" title="New in: rippled 0.32.0"><img alt="New in: rippled 0.32.0" class="dactyl_badge" src="https://img.shields.io/badge/New%20in-rippled%200.32.0-blue.svg"/></a></li>
|
||||||
<li>If the transaction includes a <code>LastLedgerSequence</code> field, the value of that field must be at least <strong>the current ledger index + 2</strong>.</li>
|
<li>If the transaction includes a <code>LastLedgerSequence</code> field, the value of that field must be at least <strong>the current ledger index + 2</strong>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h4 id="fee-averaging">Fee Averaging</h4>
|
<h4 id="fee-averaging">Fee Averaging</h4>
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
9
content/code_samples/escrow/makecondition.js
Normal file
9
content/code_samples/escrow/makecondition.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
const cc = require('five-bells-condition')
|
||||||
|
const crypto = require('crypto')
|
||||||
|
|
||||||
|
const preimageData = crypto.randomBytes(32)
|
||||||
|
const myFulfillment = new cc.PreimageSha256()
|
||||||
|
myFulfillment.setPreimage(preimageData)
|
||||||
|
|
||||||
|
console.log('Condition:', myFulfillment.getConditionBinary().toString('hex').toUpperCase())
|
||||||
|
console.log('Fulfillment:', myFulfillment.serializeBinary().toString('hex').toUpperCase())
|
||||||
8
content/code_samples/escrow/package.json
Normal file
8
content/code_samples/escrow/package.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"name": "escrow-examples",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"five-bells-condition": "*"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -19,14 +19,15 @@ The reserve requirement is divided into two parts:
|
|||||||
|
|
||||||
Many objects in the ledger are owned by a particular address, and count toward the reserve requirement of that address. When objects are removed from the ledger, they no longer count against their owner's reserve requirement.
|
Many objects in the ledger are owned by a particular address, and count toward the reserve requirement of that address. When objects are removed from the ledger, they no longer count against their owner's reserve requirement.
|
||||||
|
|
||||||
* [Offers](reference-ledger-format.html#offer) are owned by the address that placed them. Transaction automatically removes Offers that are fully consumed or found to be unfunded. Alternatively, the owner can cancel an Offer by sending an [OfferCancel transaction](reference-transaction-format.html#offercancel), or by sending an [OfferCreate transaction](reference-transaction-format.html#offercreate) that contains an `OfferSequence` parameter.
|
- [Offers](reference-ledger-format.html#offer) are owned by the address that placed them. Transaction processing automatically removes Offers that are fully consumed or found to be unfunded. Alternatively, the owner can cancel an Offer by sending an [OfferCancel transaction][], or by sending an [OfferCreate transaction][] that contains an `OfferSequence` parameter.
|
||||||
* [Trust lines](reference-ledger-format.html#ripplestate) are shared between two addresses. The owner reserve can apply to one or both of the addresses, depending on whether the fields that address controls are in their default state. See [Contributing to the Owner Reserve](reference-ledger-format.html#contributing-to-the-owner-reserve) for details.
|
- [Trust lines](reference-ledger-format.html#ripplestate) are shared between two addresses. The owner reserve can apply to one or both of the addresses, depending on whether the fields that address controls are in their default state. See [Contributing to the Owner Reserve](reference-ledger-format.html#contributing-to-the-owner-reserve) for details.
|
||||||
* A single [SignerList](reference-ledger-format.html#signerlist) counts as 3 to 10 objects for purposes of the owner reserve, depending on how many members it has. See also: [SignerLists and Reserves](reference-ledger-format.html#signerlists-and-reserves).
|
- A single [SignerList](reference-ledger-format.html#signerlist) counts as 3 to 10 objects for purposes of the owner reserve, depending on how many members it has. See also: [SignerLists and Reserves](reference-ledger-format.html#signerlists-and-reserves).
|
||||||
* [Owner directories](reference-ledger-format.html#directorynode) list all the ledger nodes that contribute to an address's owner reserve. However, the owner directory itself does not count towards the reserve.
|
- [Held Payments (Escrow)](reference-ledger-format.html#escrow) are owned by the address that placed them.
|
||||||
|
- [Owner directories](reference-ledger-format.html#directorynode) list all the ledger nodes that contribute to an address's owner reserve. However, the owner directory itself does not count towards the reserve.
|
||||||
|
|
||||||
#### Owner Reserve Edge Cases ####
|
#### Owner Reserve Edge Cases ####
|
||||||
|
|
||||||
The Ripple Consensus Ledger considers an [OfferCreate transaction](reference-transaction-format.html#offercreate) to be an explicit statement of willingness to hold an asset. Consuming the offer automatically creates a trust line (with limit 0, and a balance above that limit) for the `taker_pays` currency if such a trust line does not exist. However, if the offer's owner does not hold enough XRP to also meet the owner reserve requirement of the new trust line, the offer is considered unfunded. See also: [Lifecycle of an Offer](reference-transaction-format.html#lifecycle-of-an-offer).
|
The Ripple Consensus Ledger considers an [OfferCreate transaction][] to be an explicit statement of willingness to hold an asset. Consuming the offer automatically creates a trust line (with limit 0, and a balance above that limit) for the `taker_pays` currency if such a trust line does not exist. However, if the offer's owner does not hold enough XRP to also meet the owner reserve requirement of the new trust line, the offer is considered unfunded. See also: [Lifecycle of an Offer](reference-transaction-format.html#lifecycle-of-an-offer).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -36,8 +37,10 @@ During transaction processing, the [transaction cost](concept-transaction-cost.h
|
|||||||
|
|
||||||
When an address holds less XRP than its current reserve requirement, it cannot send new transactions that would transfer XRP to others, or increase its own reserve. Even so, the address continues to exist in the ledger and can send other transactions as long as it has enough XRP to pay the transaction cost. The address can become able to send all types of transactions again if it receives enough XRP to meet its reserve requirement again, or if the [reserve requirement decreases](#changing-the-reserve-requirements) to less than the address's XRP holdings.
|
When an address holds less XRP than its current reserve requirement, it cannot send new transactions that would transfer XRP to others, or increase its own reserve. Even so, the address continues to exist in the ledger and can send other transactions as long as it has enough XRP to pay the transaction cost. The address can become able to send all types of transactions again if it receives enough XRP to meet its reserve requirement again, or if the [reserve requirement decreases](#changing-the-reserve-requirements) to less than the address's XRP holdings.
|
||||||
|
|
||||||
**Tip:** When an address is below the reserve requirement, it can send new [OfferCreate transactions](reference-transaction-format.html#offercreate) to acquire more XRP, or other currencies on its existing trust lines. These transactions cannot create new [trust lines](reference-ledger-format.html#ripplestate), or [Offer nodes in the ledger](reference-ledger-format.html#offer), so they can only execute trades that consume Offers that are already in the order books.
|
**Tip:** When an address is below the reserve requirement, it can send new [OfferCreate transactions][] to acquire more XRP, or other currencies on its existing trust lines. These transactions cannot create new [trust lines](reference-ledger-format.html#ripplestate), or [Offer nodes in the ledger](reference-ledger-format.html#offer), so they can only execute trades that consume Offers that are already in the order books.
|
||||||
|
|
||||||
## Changing the Reserve Requirements ##
|
## Changing the Reserve Requirements ##
|
||||||
|
|
||||||
The Ripple Consensus Ledger has a mechanism to adjust the reserve requirements for long-term changes in the value of XRP. Any changes have to be approved by the consensus process. See [Fee Voting](concept-fee-voting.html) for more information.
|
The Ripple Consensus Ledger has a mechanism to adjust the reserve requirements for long-term changes in the value of XRP. Any changes have to be approved by the consensus process. See [Fee Voting](concept-fee-voting.html) for more information.
|
||||||
|
|
||||||
|
{% include 'snippets/tx-type-links.md' %}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ In a genesis ledger, the [genesis address](reference-rippled.html#special-addres
|
|||||||
|
|
||||||
**Caution:** If you create a new genesis ledger, the hard-coded default [Reserve](concept-reserves.html) is **200 XRP** minimum for funding a new address, with an increment of **50 XRP** per object in the ledger. These values are higher than the current reserve requirements of the production network. (See also: [Fee Voting](concept-fee-voting.html))
|
**Caution:** If you create a new genesis ledger, the hard-coded default [Reserve](concept-reserves.html) is **200 XRP** minimum for funding a new address, with an increment of **50 XRP** per object in the ledger. These values are higher than the current reserve requirements of the production network. (See also: [Fee Voting](concept-fee-voting.html))
|
||||||
|
|
||||||
|
[New in: rippled 0.50.0][] If you start a new genesis ledger with `--start`, all The genesis ledger contains an [EnableAmendment pseudo-transaction](reference-transaction-format.html#enableamendment) to turn on all [Amendments](concept-amendments.html) natively supported by the `rippled` server, except for amendments that you explicitly disable in the configuration file. The effects of those amendments are available starting from the very next ledger version.
|
||||||
|
|
||||||
|
|
||||||
Load Saved Ledger
|
Load Saved Ledger
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ The `rippled` server uses a variety of heuristics to estimate which transactions
|
|||||||
* Transactions must be properly-formed and [authorized](reference-transaction-format.html#authorizing-transactions) with valid signatures.
|
* Transactions must be properly-formed and [authorized](reference-transaction-format.html#authorizing-transactions) with valid signatures.
|
||||||
* Transactions with an `AccountTxnID` field cannot be queued.
|
* Transactions with an `AccountTxnID` field cannot be queued.
|
||||||
* A single sending address can have at most 10 transactions queued at the same time. In order for a transaction to be queued, the sender must have enough XRP to pay all the XRP costs of all the sender's queued transactions including both the `Fee` fields and the sum of the XRP that each transaction could send. [New in: rippled 0.32.0][]
|
* A single sending address can have at most 10 transactions queued at the same time. In order for a transaction to be queued, the sender must have enough XRP to pay all the XRP costs of all the sender's queued transactions including both the `Fee` fields and the sum of the XRP that each transaction could send. [New in: rippled 0.32.0][]
|
||||||
* If a transaction affects how the sending address authorizes accounts, no other transactions from the same address can be queued behind it. [New in: rippled 0.32.0][]
|
* If a transaction affects how the sending address authorizes transactions, no other transactions from the same address can be queued behind it. [New in: rippled 0.32.0][]
|
||||||
* If the transaction includes a `LastLedgerSequence` field, the value of that field must be at least **the current ledger index + 2**.
|
* If the transaction includes a `LastLedgerSequence` field, the value of that field must be at least **the current ledger index + 2**.
|
||||||
|
|
||||||
#### Fee Averaging ####
|
#### Fee Averaging ####
|
||||||
|
|||||||
21
content/snippets/tx-type-links.md
Normal file
21
content/snippets/tx-type-links.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{% set txtypes = [
|
||||||
|
"AccountSet",
|
||||||
|
"EscrowCancel",
|
||||||
|
"EscrowCreate",
|
||||||
|
"EscrowFinish",
|
||||||
|
"OfferCancel",
|
||||||
|
"OfferCreate",
|
||||||
|
"Payment",
|
||||||
|
"PaymentChannelClaim",
|
||||||
|
"PaymentChannelCreate",
|
||||||
|
"PaymentChannelFund",
|
||||||
|
"SetRegularKey",
|
||||||
|
"SignerListSet",
|
||||||
|
"TrustSet"
|
||||||
|
] %}
|
||||||
|
|
||||||
|
{% for tx in txtypes %}
|
||||||
|
[{{tx}}]: reference-transaction-format.html#{{tx|lower}}
|
||||||
|
[{{tx}} transaction]: reference-transaction-format.html#{{tx|lower}}
|
||||||
|
[{{tx}} transactions]: reference-transaction-format.html#{{tx|lower}}
|
||||||
|
{% endfor %}
|
||||||
24
content/tutorial-escrow.md
Normal file
24
content/tutorial-escrow.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Escrow Tutorials
|
||||||
|
|
||||||
|
The Ripple Consensus Ledger supports held payments that can be executed only after a certain time has passed or a cryptographic condition has been fulfilled. You can use these simple features to build publicly-provable smart contracts. This article explains basic tasks relating to held payments.
|
||||||
|
|
||||||
|
- Send a time-held payment
|
||||||
|
- Send a conditionally-held payment
|
||||||
|
- Look up held payments where you are the destination
|
||||||
|
- Look up held payments where you are the sender/owner
|
||||||
|
|
||||||
|
## Availability of Held Payments
|
||||||
|
|
||||||
|
Held payments have been enabled by the ["Escrow" Amendment](concept-amendments.html#escrow) to the Ripple Consensus Protocol since 2017-03-31. A previous version of the same functionality was available on the [Ripple Test Net](https://ripple.com/build/ripple-test-net/) by the name "Suspended Payments" (SusPay) in 2016.
|
||||||
|
|
||||||
|
When testing in [stand-alone mode](concept-stand-alone-mode.html), you can force the Escrow feature to be enabled locally regardless of the amendment status. Add the following stanza to your `rippled.cfg`:
|
||||||
|
|
||||||
|
[features]
|
||||||
|
Escrow
|
||||||
|
|
||||||
|
You can check the status of the Escrow amendment using the [`feature` command](reference-rippled.html#feature).
|
||||||
|
|
||||||
|
|
||||||
|
## TODO
|
||||||
|
|
||||||
|
{% include 'snippets/tx-type-links.md' %}
|
||||||
@@ -59,6 +59,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -69,6 +69,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
@@ -154,6 +155,7 @@ Ripple’s distributed settlement network is built on open-source technology tha
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -59,6 +59,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -59,6 +59,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
|
|||||||
@@ -192,6 +192,13 @@ pages:
|
|||||||
- local
|
- local
|
||||||
- ripple.com
|
- ripple.com
|
||||||
|
|
||||||
|
- md: tutorial-escrow.md
|
||||||
|
html: tutorial-escrow.html
|
||||||
|
category: Tutorials
|
||||||
|
targets:
|
||||||
|
- local
|
||||||
|
- ripple.com
|
||||||
|
|
||||||
#RCL Features describe how the RCL works in a mostly conceptual manner
|
#RCL Features describe how the RCL works in a mostly conceptual manner
|
||||||
- name: Amendments
|
- name: Amendments
|
||||||
category: RCL Features
|
category: RCL Features
|
||||||
|
|||||||
220
tutorial-escrow.html
Normal file
220
tutorial-escrow.html
Normal file
@@ -0,0 +1,220 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
|
||||||
|
<title>Escrow Tutorials - Ripple Developer Portal</title>
|
||||||
|
|
||||||
|
<!-- favicon -->
|
||||||
|
<link rel="icon" href="favicon.ico" type="image/x-icon">
|
||||||
|
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
|
||||||
|
|
||||||
|
<!-- jQuery -->
|
||||||
|
<script src="assets/vendor/jquery-1.11.1.min.js"></script>
|
||||||
|
|
||||||
|
<!-- Custom Stylesheets. ripple.css includes bootstrap, font stuff -->
|
||||||
|
<link href="assets/css/ripple.css" rel="stylesheet" />
|
||||||
|
<link href="assets/css/devportal.css" rel="stylesheet" />
|
||||||
|
|
||||||
|
<!-- Bootstrap JS -->
|
||||||
|
<script src="assets/vendor/bootstrap.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- syntax highlighting -->
|
||||||
|
<link rel="stylesheet" href="assets/vendor/docco.min.css" />
|
||||||
|
<script src="assets/vendor/highlight.min.js"></script>
|
||||||
|
|
||||||
|
<!-- syntax selection js -->
|
||||||
|
<script src="assets/js/multicodetab.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$(".multicode").minitabs();
|
||||||
|
hljs.initHighlighting();
|
||||||
|
make_code_expandable();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script src="assets/js/expandcode.js"></script>
|
||||||
|
<script src="assets/js/fixsidebarscroll.js"></script>
|
||||||
|
|
||||||
|
<!-- fontawesome icons -->
|
||||||
|
<link rel="stylesheet" href="assets/vendor/fontawesome/css/font-awesome.min.css" />
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="page page-template page-template-template-dev-portal page-template-template-dev-portal-php sidebar-primary wpb-js-composer js-comp-ver-3.6.2 vc_responsive">
|
||||||
|
<header role="banner" class="banner navbar navbar-default navbar-fixed-top initial_header">
|
||||||
|
<div class="container">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<a href="index.html" class="navbar-brand"><img src="assets/img/ripple-logo-color.png" class="logo"></a>
|
||||||
|
</div><!-- /.navbar-header -->
|
||||||
|
<div class="nav">
|
||||||
|
<div class="draft-warning">DRAFT PAGE</div>
|
||||||
|
</div><!-- /.nav -->
|
||||||
|
|
||||||
|
</div><!-- /.container -->
|
||||||
|
|
||||||
|
<div class="subnav dev_nav">
|
||||||
|
<div class="container">
|
||||||
|
<ul id="menu-dev-menu" class="menu">
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">References <span class="caret"></span></a>
|
||||||
|
<ul class="dropdown-menu" role="menu">
|
||||||
|
<li><a href="reference-rippleapi.html">RippleAPI</a></li>
|
||||||
|
<li><a href="reference-rippled.html">rippled</a></li>
|
||||||
|
<li><a href="reference-transaction-format.html">Transaction Format</a></li>
|
||||||
|
<li><a href="reference-ledger-format.html">Ledger Format</a></li>
|
||||||
|
<li><a href="reference-data-api.html">Ripple Data API v2</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Tutorials <span class="caret"></span></a>
|
||||||
|
<ul class="dropdown-menu" role="menu">
|
||||||
|
<li><a href="tutorial-multisign.html">How to Multi-Sign</a></li>
|
||||||
|
<li><a href="concept-issuing-and-operational-addresses.html">Issuing and Operational Addresses</a></li>
|
||||||
|
<li><a href="tutorial-reliable-transaction-submission.html">Reliable Transaction Submission</a></li>
|
||||||
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">RCL Features <span class="caret"></span></a>
|
||||||
|
<ul class="dropdown-menu" role="menu">
|
||||||
|
<li><a href="concept-amendments.html">Amendments</a></li>
|
||||||
|
<li><a href="concept-fee-voting.html">Fee Voting</a></li>
|
||||||
|
<li><a href="concept-fees.html">Fees (Disambiguation)</a></li>
|
||||||
|
<li><a href="concept-freeze.html">Freeze</a></li>
|
||||||
|
<li><a href="concept-paths.html">Paths</a></li>
|
||||||
|
<li><a href="concept-reserves.html">Reserves</a></li>
|
||||||
|
<li><a href="concept-stand-alone-mode.html">Stand-Alone Mode</a></li>
|
||||||
|
<li><a href="concept-transaction-cost.html">Transaction Cost</a></li>
|
||||||
|
<li><a href="concept-transfer-fees.html">Transfer Fees</a></li>
|
||||||
|
<li><a href="concept-noripple.html">Understanding the NoRipple flag</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Gateway Bulletins <span class="caret"></span></a>
|
||||||
|
<ul class="dropdown-menu" role="menu">
|
||||||
|
<li><a href="gb-2015-06.html">GB-2015-06: Corrections to Autobridging</a></li>
|
||||||
|
<li><a href="gb-2015-05.html">GB-2015-05: Historical Ledger Query Migration</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">API Tools <span class="caret"></span></a>
|
||||||
|
<ul class="dropdown-menu" role="menu">
|
||||||
|
<li><a href="ripple-api-tool.html">WebSocket API Tool</a></li>
|
||||||
|
<li><a href="data-api-v2-tool.html">Data API v2 Tool</a></li>
|
||||||
|
<li><a href="tool-jsonrpc.html">rippled JSON-RPC Tool</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><a href="https://github.com/ripple/ripple-dev-portal" title="GitHub">Site Source</a></li>
|
||||||
|
</ul><!-- /#dev-menu -->
|
||||||
|
</div><!-- /.subnav .container -->
|
||||||
|
</div><!-- /.subnav -->
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="wrap container" role="document">
|
||||||
|
<aside class="sidebar" role="complementary">
|
||||||
|
<div class="dev_nav_wrapper">
|
||||||
|
<div id="cont">
|
||||||
|
<h5>In this category:</h5>
|
||||||
|
<ul class="dev_nav_sidebar">
|
||||||
|
<li class="level-1"><a href="index.html">Category: Tutorials</a></li>
|
||||||
|
<li class="level-2"><a href="tutorial-multisign.html">How to Multi-Sign</a></li>
|
||||||
|
<li class="level-2"><a href="concept-issuing-and-operational-addresses.html">Issuing and Operational Addresses</a></li>
|
||||||
|
<li class="level-2"><a href="tutorial-reliable-transaction-submission.html">Reliable Transaction Submission</a></li>
|
||||||
|
<li class="level-2"><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
|
<li class="level-2"><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
|
<li class="level-2"><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li class="level-2"><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
|
</ul>
|
||||||
|
<hr />
|
||||||
|
<h5>In this page:</h5>
|
||||||
|
<ul class="dev_nav_sidebar" id="dactyl_toc_sidebar">
|
||||||
|
<li class="level-1"><a href="#escrow-tutorials">Escrow Tutorials</a></li>
|
||||||
|
<li class="level-2"><a href="#availability-of-held-payments">Availability of Held Payments</a></li>
|
||||||
|
<li class="level-2"><a href="#todo">TODO</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
<main class="main" role="main">
|
||||||
|
<div class='content'>
|
||||||
|
<h1 id="escrow-tutorials">Escrow Tutorials</h1>
|
||||||
|
<p>The Ripple Consensus Ledger supports held payments that can be executed only after a certain time has passed or a cryptographic condition has been fulfilled. You can use these simple features to build publicly-provable smart contracts. This article explains basic tasks relating to held payments.</p>
|
||||||
|
<ul>
|
||||||
|
<li>Send a time-held payment</li>
|
||||||
|
<li>Send a conditionally-held payment</li>
|
||||||
|
<li>Look up held payments where you are the destination</li>
|
||||||
|
<li>Look up held payments where you are the sender/owner</li>
|
||||||
|
</ul>
|
||||||
|
<h2 id="availability-of-held-payments">Availability of Held Payments</h2>
|
||||||
|
<p>Held payments have been enabled by the <a href="concept-amendments.html#escrow">"Escrow" Amendment</a> to the Ripple Consensus Protocol since 2017-03-31. A previous version of the same functionality was available on the <a href="https://ripple.com/build/ripple-test-net/">Ripple Test Net</a> by the name "Suspended Payments" (SusPay) in 2016.</p>
|
||||||
|
<p>When testing in <a href="concept-stand-alone-mode.html">stand-alone mode</a>, you can force the Escrow feature to be enabled locally regardless of the amendment status. Add the following stanza to your <code>rippled.cfg</code>:</p>
|
||||||
|
<pre><code>[features]
|
||||||
|
Escrow
|
||||||
|
</code></pre>
|
||||||
|
<p>You can check the status of the Escrow amendment using the <a href="reference-rippled.html#feature"><code>feature</code> command</a>.</p>
|
||||||
|
<h2 id="todo">TODO</h2>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="content-info" role="contentinfo">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<section class="col-sm-3 widget nav_menu-3 widget_nav_menu">
|
||||||
|
<h4>Resources<hr></h4>
|
||||||
|
<ul id="menu-resources" class="menu">
|
||||||
|
<li class="menu-insights"><a href="https://ripple.com/insights/">Insights</a></li>
|
||||||
|
<li class="menu-events"><a href="https://ripple.com/events/">Events</a></li>
|
||||||
|
<li class="menu-collateral"><a href="https://ripple.com/collateral/">Collateral</a></li>
|
||||||
|
<li class="menu-press-center"><a href="https://ripple.com/press-center/">Press Center</a></li>
|
||||||
|
<li class="menu-media-kit"><a href="https://ripple.com/media-kit/">Media Kit</a></li>
|
||||||
|
<li class="menu-xrp-portal"><a href="https://ripple.com/xrp-portal/">XRP Portal</a></li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
<section class="col-sm-3 widget nav_menu-5 widget_nav_menu">
|
||||||
|
<h4>Regulators<hr></h4>
|
||||||
|
<ul id="menu-compliance-regulatory-relations" class="menu">
|
||||||
|
<li class="menu-compliance"><a href="https://ripple.com/compliance/">Compliance</a></li>
|
||||||
|
<li class="menu-policy-framework"><a href="https://ripple.com/policy-framework/">Policy Framework</a></li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
<section class="col-sm-3 widget nav_menu-4 widget_nav_menu">
|
||||||
|
<h4>Support<hr></h4>
|
||||||
|
<ul id="menu-dev-footer-menu" class="menu">
|
||||||
|
<li class="menu-contact-us"><a href="https://ripple.com/contact/">Contact Us</a></li>
|
||||||
|
<li class="active menu-developer-center"><a href="https://ripple.com/build/">Developer Center</a></li>
|
||||||
|
<li class="menu-knowledge-center"><a href="https://ripple.com/learn/">Knowledge Center</a></li>
|
||||||
|
<li class="menu-ripple-forum"><a target="_blank" href="https://forum.ripple.com/">Ripple Forum</a></li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
<section class="col-sm-3 widget nav_menu-2 widget_nav_menu">
|
||||||
|
<h4>About<hr></h4>
|
||||||
|
<ul id="menu-company-footer" class="menu">
|
||||||
|
<li class="menu-our-company"><a href="https://ripple.com/company/">Our Company</a></li>
|
||||||
|
<li class="menu-careers"><a href="https://ripple.com/company/careers/">Careers</a></li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="col-sm-12 absolute_bottom_footer">
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<span>© 2013 - 2016 Ripple Labs, Inc. All Rights Reserved.</span>
|
||||||
|
<span><a href="/terms-of-use/">Terms</a></span>
|
||||||
|
<span><a href="/privacy-policy/">Privacy</a></span>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.absolute_bottom_footer -->
|
||||||
|
|
||||||
|
</div><!-- /.row -->
|
||||||
|
</div><!-- /.container -->
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
@@ -131,6 +132,7 @@
|
|||||||
<li class="level-2"><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li class="level-2"><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li class="level-2"><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li class="level-2"><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li class="level-2"><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li class="level-2"><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li class="level-2"><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<hr />
|
<hr />
|
||||||
<h5>In this page:</h5>
|
<h5>In this page:</h5>
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
@@ -131,6 +132,7 @@
|
|||||||
<li class="level-2"><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li class="level-2"><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li class="level-2"><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li class="level-2"><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li class="level-2"><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li class="level-2"><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li class="level-2"><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<hr />
|
<hr />
|
||||||
<h5>In this page:</h5>
|
<h5>In this page:</h5>
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
@@ -131,6 +132,7 @@
|
|||||||
<li class="level-2"><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li class="level-2"><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li class="level-2"><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li class="level-2"><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li class="level-2"><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li class="level-2"><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li class="level-2"><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<hr />
|
<hr />
|
||||||
<h5>In this page:</h5>
|
<h5>In this page:</h5>
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
@@ -131,6 +132,7 @@
|
|||||||
<li class="level-2"><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li class="level-2"><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li class="level-2"><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li class="level-2"><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li class="level-2"><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li class="level-2"><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li class="level-2"><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<hr />
|
<hr />
|
||||||
<h5>In this page:</h5>
|
<h5>In this page:</h5>
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
@@ -131,6 +132,7 @@
|
|||||||
<li class="level-2"><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
<li class="level-2"><a href="tutorial-rippleapi-beginners-guide.html">RippleAPI Beginners Guide</a></li>
|
||||||
<li class="level-2"><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
<li class="level-2"><a href="tutorial-rippled-setup.html">rippled Setup</a></li>
|
||||||
<li class="level-2"><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
<li class="level-2"><a href="tutorial-gateway-guide.html">Gateway Guide</a></li>
|
||||||
|
<li class="level-2"><a href="tutorial-escrow.html">Escrow Tutorials</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<hr />
|
<hr />
|
||||||
<h5>In this page:</h5>
|
<h5>In this page:</h5>
|
||||||
|
|||||||
Reference in New Issue
Block a user