diff --git a/content/_code-samples/require-destination-tags/require-destination-tags.js b/content/_code-samples/require-destination-tags/require-destination-tags.js index e073294f67..10b8433ad7 100644 --- a/content/_code-samples/require-destination-tags/require-destination-tags.js +++ b/content/_code-samples/require-destination-tags/require-destination-tags.js @@ -25,7 +25,6 @@ async function main() { "SetFlag": xrpl.AccountSetAsfFlags.asfRequireDest }) console.log("Prepared transaction:", prepared) - const max_ledger = prepared.LastLedgerSequence const signed = wallet.sign(prepared) console.log("Transaction hash:", signed.hash) diff --git a/content/references/xrpljs2-migration-guide.md b/content/references/xrpljs2-migration-guide.md index ff9474af80..111a2cd10d 100644 --- a/content/references/xrpljs2-migration-guide.md +++ b/content/references/xrpljs2-migration-guide.md @@ -39,16 +39,40 @@ const ripple = require('ripple-lib'); const xrpl = require("xrpl"); (async function() { - const api = new xrpl.Client('wss://xrplcluster.com'); + const client = new xrpl.Client('wss://xrplcluster.com'); - await api.connect(); + await client.connect(); // Your code here - api.disconnect(); + client.disconnect(); })(); ``` +## Transaction Submission + +In xrpl.js there are specific helper functions for signing and submitting transactions and waiting for the XRP Ledger blockchain to confirm those transactions' final outcomes. Use the `submitReliable(tx_json, wallet)` method to sign a prepared transaction with the given wallet and submit it, like in this example: + +```js +const tx_json = await client.autofill({ + "TransactionType": "AccountSet", + "Account": wallet.address, // "wallet" is an instance of the Wallet class + "SetFlag": xrpl.AccountSetAsfFlags.asfRequireDest +}) +try { + const submit_result = await client.submitReliable(tx_json, wallet) + // submitReliable() doesn't return until the transaction has a final result. + // Raises XrplError if the transaction doesn't get confirmed by the network. + console.log("Transaction result:", submit_result) +} catch(err) { + console.log("Error submitting transaction:", err) +} +``` + +Alternatively, you can use the `sign` method of a wallet to sign a transaction and then use `submitSignedReliable(tx_blob)` to submit it. This can be useful for building [reliable transaction submission](reliable-transaction-submission.html) that can recover from power outages and other disasters. (The library does not handle disaster recovery on its own.) + + + ## Quick Reference of Equivalents In ripple-lib 1.x all methods and properties were on instances of the `RippleAPI` class. In xrpl.js 2.x, some methods are static methods of the library and some methods belong to specific classes. @@ -59,11 +83,9 @@ In ripple-lib 1.x all methods and properties were on instances of the `RippleAPI | `request(command, options)` | `Client.request(options)` | The `command` field moved into the `options` object for consistency with the WebSocket API. | | `hasNextPage(response)` | ***TODO (check for marker?)*** | See also: `Client.requestNextPage()` and `Client.requestAll()` | | `requestNextPage(command, options, response)` | `Client.requestNextPage(response)` | | -| `computeBinaryTransactionHash(tx_blob)` | `computeSignedTransactionHash(tx_blob)` | | -| `classicAddressToXAddress(address)` | ***TBD moving to utils?*** | | -| `xAddressToClassicAddress(xAddress)` | ***TBD moving to utils?*** | | +| `computeBinaryTransactionHash(tx_blob)` | `xrpl.hashes.hashTx(tx_blob)` | | | `renameCounterpartyToIssuer(object)` | (None) | xrpl.js always uses `issuer` already. | -| `formatBidsAndAsks(base, counter)` | ***TBD moving to utils?*** | | +| `formatBidsAndAsks(base, counter)` | ***TBD?*** | | | `connect()` | `Client.connect()` | | | `disconnect()` | `Client.disconnect()` | | `isConnected()` | `Client.isConnected()` |