Merge pull request #1585 from XRPLF/nft_update_11_14
Update tutorial for testnet
@@ -1,3 +0,0 @@
|
||||
# NFToken Test Harness
|
||||
|
||||
Build an interface that can mint and trade non-fungible tokens (NFTs) on the NFT-Devnet.
|
||||
@@ -1,420 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<script src='https://unpkg.com/xrpl@2.2.1/build/xrpl-latest-min.js'></script>
|
||||
<script>
|
||||
if (typeof module !== "undefined") var xrpl = require('xrpl')
|
||||
|
||||
//***************************
|
||||
//** Mint Token *************
|
||||
//***************************
|
||||
|
||||
async function mintToken() {
|
||||
const wallet = xrpl.Wallet.fromSeed(secret.value)
|
||||
const client = new xrpl.Client("wss://xls20-sandbox.rippletest.net:51233")
|
||||
await client.connect()
|
||||
console.log("Connected to Sandbox")
|
||||
|
||||
// Note that you must convert the token URL to a hexadecimal
|
||||
// value for this transaction.
|
||||
// ----------------------------------------------------------
|
||||
const transactionBlob = {
|
||||
TransactionType: "NFTokenMint",
|
||||
Account: wallet.classicAddress,
|
||||
URI: xrpl.convertStringToHex(tokenUrl.value),
|
||||
Flags: parseInt(flags.value),
|
||||
NFTokenTaxon: 0 //Required, but if you have no use for it, set to zero.
|
||||
}
|
||||
// Submit signed blob --------------------------------------------------------
|
||||
const tx = await client.submitAndWait(transactionBlob,{wallet})
|
||||
|
||||
const nfts = await client.request({
|
||||
method: "account_nfts",
|
||||
account: wallet.classicAddress
|
||||
})
|
||||
console.log(nfts)
|
||||
|
||||
// Check transaction results -------------------------------------------------
|
||||
console.log("Transaction result:", tx.result.meta.TransactionResult)
|
||||
console.log("Balance changes:",
|
||||
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
|
||||
client.disconnect()
|
||||
} //End of mintToken
|
||||
|
||||
//***************************
|
||||
//** Get Tokens *************
|
||||
//***************************
|
||||
|
||||
async function getTokens() {
|
||||
const wallet = xrpl.Wallet.fromSeed(secret.value)
|
||||
const client = new xrpl.Client("wss://xls20-sandbox.rippletest.net:51233")
|
||||
await client.connect()
|
||||
console.log("Connected to Sandbox")
|
||||
const nfts = await client.request({
|
||||
method: "account_nfts",
|
||||
account: wallet.classicAddress
|
||||
})
|
||||
console.log(nfts)
|
||||
client.disconnect()
|
||||
} //End of getTokens
|
||||
|
||||
//***************************
|
||||
//** Burn Token *************
|
||||
//***************************
|
||||
|
||||
async function burnToken() {
|
||||
const wallet = xrpl.Wallet.fromSeed(secret.value)
|
||||
const client = new xrpl.Client("wss://xls20-sandbox.rippletest.net:51233")
|
||||
await client.connect()
|
||||
console.log("Connected to Sandbox")
|
||||
|
||||
// Prepare transaction -------------------------------------------------------
|
||||
const transactionBlob = {
|
||||
"TransactionType": "NFTokenBurn",
|
||||
"Account": wallet.classicAddress,
|
||||
"NFTokenID": tokenId.value
|
||||
}
|
||||
|
||||
// Submit signed blob --------------------------------------------------------
|
||||
const tx = await client.submitAndWait(transactionBlob,{wallet})
|
||||
const nfts = await client.request({
|
||||
method: "account_nfts",
|
||||
account: wallet.classicAddress
|
||||
})
|
||||
console.log(nfts)
|
||||
// Check transaction results -------------------------------------------------
|
||||
console.log("Transaction result:", tx.result.meta.TransactionResult)
|
||||
console.log("Balance changes:",
|
||||
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
|
||||
client.disconnect()
|
||||
}
|
||||
// End of burnToken()
|
||||
|
||||
//********************************
|
||||
//** Create Sell Offer ***********
|
||||
//********************************
|
||||
|
||||
async function createSellOffer() {
|
||||
const wallet = xrpl.Wallet.fromSeed(secret.value)
|
||||
const client = new xrpl.Client("wss://xls20-sandbox.rippletest.net:51233")
|
||||
await client.connect()
|
||||
console.log("Connected to Sandbox")
|
||||
|
||||
// Prepare transaction -------------------------------------------------------
|
||||
const transactionBlob = {
|
||||
"TransactionType": "NFTokenCreateOffer",
|
||||
"Account": wallet.classicAddress,
|
||||
"NFTokenID": tokenId.value,
|
||||
"Amount": amount.value,
|
||||
"Flags": parseInt(flags.value)
|
||||
}
|
||||
|
||||
// Submit signed blob --------------------------------------------------------
|
||||
|
||||
const tx = await client.submitAndWait(transactionBlob,{wallet})//AndWait
|
||||
|
||||
|
||||
console.log("***Sell Offers***")
|
||||
let nftSellOffers
|
||||
try {
|
||||
nftSellOffers = await client.request({
|
||||
method: "nft_sell_offers",
|
||||
nft_id:tokenId.value
|
||||
})
|
||||
} catch (err) {
|
||||
console.log("No sell offers.")
|
||||
}
|
||||
console.log(JSON.stringify(nftSellOffers,null,2))
|
||||
console.log("***Buy Offers***")
|
||||
let nftBuyOffers
|
||||
try {
|
||||
nftBuyOffers = await client.request({
|
||||
method: "nft_buy_offers",
|
||||
nft_id:tokenId.value })
|
||||
} catch (err) {
|
||||
console.log("No buy offers.")
|
||||
}
|
||||
console.log(JSON.stringify(nftBuyOffers,null,2))
|
||||
|
||||
// Check transaction results -------------------------------------------------
|
||||
console.log("Transaction result:",
|
||||
JSON.stringify(tx.result.meta.TransactionResult, null, 2))
|
||||
console.log("Balance changes:",
|
||||
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
|
||||
client.disconnect()
|
||||
// End of createSellOffer()
|
||||
}
|
||||
//********************************
|
||||
//** Create Buy Offer ***********
|
||||
//********************************
|
||||
|
||||
async function createBuyOffer() {
|
||||
|
||||
const wallet = xrpl.Wallet.fromSeed(secret.value)
|
||||
const client = new xrpl.Client("wss://xls20-sandbox.rippletest.net:51233")
|
||||
await client.connect()
|
||||
console.log("Connected to Sandbox")
|
||||
|
||||
// Prepare transaction -------------------------------------------------------
|
||||
const transactionBlob = {
|
||||
"TransactionType": "NFTokenCreateOffer",
|
||||
"Account": wallet.classicAddress,
|
||||
"Owner": owner.value,
|
||||
"NFTokenID": tokenId.value,
|
||||
"Amount": amount.value,
|
||||
"Flags": parseInt(flags.value)
|
||||
}
|
||||
|
||||
// Submit signed blob --------------------------------------------------------
|
||||
const tx = await client.submitAndWait(transactionBlob,{wallet})
|
||||
|
||||
console.log("***Sell Offers***")
|
||||
let nftSellOffers
|
||||
try {
|
||||
nftSellOffers = await client.request({
|
||||
method: "nft_sell_offers",
|
||||
nft_id: tokenId.value
|
||||
})
|
||||
} catch (err) {
|
||||
console.log("No sell offers.")
|
||||
}
|
||||
console.log(JSON.stringify(nftSellOffers,null,2))
|
||||
console.log("***Buy Offers***")
|
||||
let nftBuyOffers
|
||||
try {
|
||||
nftBuyOffers = await client.request({
|
||||
method: "nft_buy_offers",
|
||||
nft_id: tokenId.value })
|
||||
} catch (err) {
|
||||
console.log("No buy offers.")
|
||||
}
|
||||
console.log(JSON.stringify(nftBuyOffers,null,2))
|
||||
|
||||
|
||||
// Check transaction results -------------------------------------------------
|
||||
console.log("Transaction result:",
|
||||
JSON.stringify(tx.result.meta.TransactionResult, null, 2))
|
||||
console.log("Balance changes:",
|
||||
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
|
||||
client.disconnect()
|
||||
// End of createBuyOffer()
|
||||
}
|
||||
|
||||
//***************************
|
||||
//** Cancel Offer ***********
|
||||
//***************************
|
||||
|
||||
async function cancelOffer() {
|
||||
|
||||
const wallet = xrpl.Wallet.fromSeed(secret.value)
|
||||
const client = new xrpl.Client("wss://xls20-sandbox.rippletest.net:51233")
|
||||
await client.connect()
|
||||
console.log("Connected to Sandbox")
|
||||
|
||||
const tokenOfferID = tokenOfferIndex.value
|
||||
const tokenOffers = [tokenOfferID]
|
||||
|
||||
// Prepare transaction -------------------------------------------------------
|
||||
const transactionBlob = {
|
||||
"TransactionType": "NFTokenCancelOffer",
|
||||
"Account": wallet.classicAddress,
|
||||
"NFTokenOffers": tokenOffers
|
||||
}
|
||||
|
||||
// Submit signed blob --------------------------------------------------------
|
||||
const tx = await client.submitAndWait(transactionBlob,{wallet})
|
||||
|
||||
|
||||
console.log("***Sell Offers***")
|
||||
let nftSellOffers
|
||||
try {
|
||||
nftSellOffers = await client.request({
|
||||
method: "nft_sell_offers",
|
||||
nft_id:tokenId.value
|
||||
})
|
||||
} catch (err) {
|
||||
console.log("No sell offers.")
|
||||
}
|
||||
console.log(JSON.stringify(nftSellOffers,null,2))
|
||||
console.log("***Buy Offers***")
|
||||
let nftBuyOffers
|
||||
try {
|
||||
nftBuyOffers = await client.request({
|
||||
method: "nft_buy_offers",
|
||||
nft_id:tokenId.value })
|
||||
} catch (err) {
|
||||
console.log("No buy offers.")
|
||||
}
|
||||
console.log(JSON.stringify(nftBuyOffers,null,2))
|
||||
|
||||
// Check transaction results -------------------------------------------------
|
||||
|
||||
console.log("Transaction result:",
|
||||
JSON.stringify(tx.result.meta.TransactionResult, null, 2))
|
||||
console.log("Balance changes:",
|
||||
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
|
||||
|
||||
client.disconnect()
|
||||
// End of cancelOffer()
|
||||
}
|
||||
//***************************
|
||||
//** Get Offers *************
|
||||
//***************************
|
||||
|
||||
async function getOffers() {
|
||||
|
||||
const wallet = xrpl.Wallet.fromSeed(secret.value)
|
||||
const client = new xrpl.Client("wss://xls20-sandbox.rippletest.net:51233")
|
||||
await client.connect()
|
||||
console.log("Connected to Sandbox")
|
||||
console.log("***Sell Offers***")
|
||||
|
||||
let nftSellOffers
|
||||
try {
|
||||
nftSellOffers = await client.request({
|
||||
method: "nft_sell_offers",
|
||||
nft_id: tokenId.value
|
||||
})
|
||||
} catch (err) {
|
||||
console.log("No sell offers.")
|
||||
}
|
||||
console.log(JSON.stringify(nftSellOffers,null,2))
|
||||
console.log("***Buy Offers***")
|
||||
let nftBuyOffers
|
||||
try {
|
||||
nftBuyOffers = await client.request({
|
||||
method: "nft_buy_offers",
|
||||
nft_id:tokenId.value })
|
||||
} catch (err) {
|
||||
console.log("No buy offers.")
|
||||
}
|
||||
console.log(JSON.stringify(nftBuyOffers,null,2))
|
||||
client.disconnect()
|
||||
// End of getOffers()
|
||||
}
|
||||
//***************************
|
||||
//** Accept Sell Offer ******
|
||||
//***************************
|
||||
|
||||
async function acceptSellOffer() {
|
||||
|
||||
const wallet = xrpl.Wallet.fromSeed(secret.value)
|
||||
const client = new xrpl.Client("wss://xls20-sandbox.rippletest.net:51233")
|
||||
await client.connect()
|
||||
console.log("Connected to Sandbox")
|
||||
|
||||
// Prepare transaction -------------------------------------------------------
|
||||
const transactionBlob = {
|
||||
"TransactionType": "NFTokenAcceptOffer",
|
||||
"Account": wallet.classicAddress,
|
||||
"NFTokenSellOffer": tokenOfferIndex.value,
|
||||
}
|
||||
// Submit signed blob --------------------------------------------------------
|
||||
const tx = await client.submitAndWait(transactionBlob,{wallet})
|
||||
const nfts = await client.request({
|
||||
method: "account_nfts",
|
||||
account: wallet.classicAddress
|
||||
})
|
||||
console.log(JSON.stringify(nfts,null,2))
|
||||
|
||||
// Check transaction results -------------------------------------------------
|
||||
console.log("Transaction result:",
|
||||
JSON.stringify(tx.result.meta.TransactionResult, null, 2))
|
||||
console.log("Balance changes:",
|
||||
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
|
||||
client.disconnect()
|
||||
// End of acceptSellOffer()
|
||||
}
|
||||
//***************************
|
||||
//** Accept Buy Offer ******
|
||||
//***************************
|
||||
|
||||
async function acceptBuyOffer() {
|
||||
|
||||
const wallet = xrpl.Wallet.fromSeed(secret.value)
|
||||
const client = new xrpl.Client("wss://xls20-sandbox.rippletest.net:51233")
|
||||
await client.connect()
|
||||
console.log("Connected to Sandbox")
|
||||
|
||||
// Prepare transaction -------------------------------------------------------
|
||||
const transactionBlob = {
|
||||
"TransactionType": "NFTokenAcceptOffer",
|
||||
"Account": wallet.classicAddress,
|
||||
"NFTokenBuyOffer": tokenOfferIndex.value
|
||||
}
|
||||
// Submit signed blob --------------------------------------------------------
|
||||
const tx = await client.submitAndWait(transactionBlob,{wallet})
|
||||
const nfts = await client.request({
|
||||
method: "account_nfts",
|
||||
account: wallet.classicAddress
|
||||
})
|
||||
console.log(JSON.stringify(nfts,null,2))
|
||||
|
||||
// Check transaction results -------------------------------------------------
|
||||
console.log("Transaction result:",
|
||||
JSON.stringify(tx.result.meta.TransactionResult, null, 2))
|
||||
console.log("Balance changes:",
|
||||
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2))
|
||||
client.disconnect()
|
||||
// End of submitTransaction()
|
||||
}
|
||||
</script>
|
||||
|
||||
<title>NFToken Tester</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>NFToken Tester</h1>
|
||||
<form id="theForm">
|
||||
<p>
|
||||
<button type="button" onClick="mintToken()">Mint Token</button>
|
||||
<button type="button" onClick="getTokens()">Get Tokens</button>
|
||||
<button type="button" onClick="burnToken()">Burn Token</button>
|
||||
</p>
|
||||
<p>
|
||||
<button type="button" onClick="createSellOffer()">Create Sell Offer</button>
|
||||
<button type="button" onClick="createBuyOffer()">Create Buy Offer</button>
|
||||
<button type="button" onClick="getOffers()">Get Offers</button>
|
||||
</p>
|
||||
<p>
|
||||
<button type="button" onClick="acceptSellOffer()">Accept Sell Offer</button>
|
||||
<button type="button" onClick="acceptBuyOffer()">Accept Buy Offer</button>
|
||||
<button type="button" onClick="cancelOffer()">Cancel Offer</button>
|
||||
</p>
|
||||
<table>
|
||||
<tr>
|
||||
<td align="right">Account</td>
|
||||
<td><input type="text" id="account" value="" size="40" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Secret</td>
|
||||
<td><input type="text" id="secret" value="" size="40" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Token URL</td>
|
||||
<td><input type="text" id="tokenUrl"
|
||||
value = "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi" size="80"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Flags</td>
|
||||
<td><input type="text" id="flags" value="1" size="10"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Token ID</td>
|
||||
<td><input type="text" id="tokenId" value="" size="80"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Amount</td>
|
||||
<td><input type="text" id="amount" value="1000000" size="20"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Token Offer Index</td>
|
||||
<td><input type="text" id="tokenOfferIndex" value="" size="80"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Owner</td>
|
||||
<td><input type="text" id="owner" value="" size="80"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -27,11 +27,11 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port
|
||||
## Get Accounts
|
||||
|
||||
1. Open `6.authorized-minter.html` in a browser.
|
||||
2. Get test accounts.
|
||||
1. If you have existing NFT-Devnet account seeds:
|
||||
2. Choose your ledger instance (_Testnet_ or _Devnet_).
|
||||
1. If you have existing test account seeds:
|
||||
1. Paste the account seeds in the **Seeds** field.
|
||||
2. Click **Get Accounts from Seeds**.
|
||||
2. If you do not have existing NFT-Devnet accounts:
|
||||
2. If you do not have existing test accounts:
|
||||
1. Click **Get New Standby Account**.
|
||||
2. Click **Get New Operational Account**.
|
||||
|
||||
@@ -398,9 +398,6 @@ Update the form with fields and buttons to support the new functions.
|
||||
<h1>Token Test Harness</h1>
|
||||
<form id="theForm">
|
||||
Choose your ledger instance:
|
||||
<input type="radio" id="xls" name="server"
|
||||
value="wss://xls20-sandbox.rippletest.net:51233" checked>
|
||||
<label for="xls20">XLS20-NFT</label>
|
||||
|
||||
<input type="radio" id="tn" name="server"
|
||||
value="wss://s.altnet.rippletest.net:51233">
|
||||
|
||||
@@ -23,10 +23,10 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port
|
||||
|
||||
1. Open `7.batch-minting.html` in a browser.
|
||||
2. Get a test account.
|
||||
1. If you want to use an existing NFT-Devnet account seed:
|
||||
1. If you want to use an existing account seed:
|
||||
1. Paste the account seed in the **Seed** field.
|
||||
2. Click **Get Account from Seed**.
|
||||
2. If you do not want to use an existing NFT-Devnet account seed, click **Get New Standby Account**.
|
||||
2. If you do not want to use an existing account seed, click **Get New Standby Account**.
|
||||
|
||||
**Note:** Running this command throws an error in the JavaScript console because the `getAccountsFromSeeds` function in `ripplex1-send-xrp.js` looks for the operational seed field, which is not included in this form. You can ignore the error (or fix it in your own implementation).
|
||||
|
||||
@@ -360,9 +360,6 @@ For this form:
|
||||
<h1>Token Test Harness</h1>
|
||||
<form id="theForm">
|
||||
Choose your ledger instance:
|
||||
<input type="radio" id="xls" name="server"
|
||||
value="wss://xls20-sandbox.rippletest.net:51233" checked>
|
||||
<label for="xls20">XLS20-NFT</label>
|
||||
|
||||
<input type="radio" id="tn" name="server"
|
||||
value="wss://s.altnet.rippletest.net:51233">
|
||||
|
||||
@@ -28,12 +28,12 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port
|
||||
## Get Accounts
|
||||
|
||||
1. Open `5.broker-nfts.html` in a browser.
|
||||
2. Choose **XLS20-NFT** as your ledger instance.
|
||||
2. Choose your ledger instance.
|
||||
3. Get test accounts.
|
||||
1. If you have existing NFT-Devnet account seeds:
|
||||
1. If you have existing account seeds:
|
||||
1. Paste 3 account seeds in the **Seeds** field.
|
||||
2. Click **Get Accounts from Seeds**.
|
||||
2. If you do not have NFT-Devnet account seeds:
|
||||
2. If you do not have account seeds:
|
||||
1. Click **Get New Standby Account**.
|
||||
2. Click **Get New Operational Account**.
|
||||
3. Click **Get New Broker Account**
|
||||
@@ -625,9 +625,6 @@ Revise the HTML form to add a new Broker section at the top.
|
||||
<h1>Token Test Harness</h1>
|
||||
<form id="theForm">
|
||||
Choose your ledger instance:
|
||||
<input type="radio" id="xls" name="server"
|
||||
value="wss://xls20-sandbox.rippletest.net:51233" checked>
|
||||
<label for="xls20">XLS20-NFT</label>
|
||||
|
||||
<input type="radio" id="tn" name="server"
|
||||
value="wss://s.altnet.rippletest.net:51233">
|
||||
|
||||
@@ -10,24 +10,18 @@ labels:
|
||||
---
|
||||
# 1. Create Accounts and Send XRP
|
||||
|
||||
|
||||
This example shows how to:
|
||||
|
||||
|
||||
|
||||
1. Create accounts on the Testnet, funded with 10000 test XRP with no actual value.
|
||||
2. Retrieve the accounts from seed values.
|
||||
3. Transfer XRP between accounts.
|
||||
|
||||
When you create an account, you receive a public/private key pair offline. It does not appear on the ledger until it is funded with XRP. This example shows how to create accounts for Testnet, but not how to create an account that you can use on Mainnet.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
To get started, create a new folder on your local disk and install the JavaScript library using `npm`.
|
||||
@@ -47,7 +41,7 @@ To get test accounts:
|
||||
|
||||
|
||||
1. Open `1.get-accounts-send-xrp.html` in a browser
|
||||
2. Choose **NFT-Devnet**, **Testnet**, or **Devnet**.
|
||||
2. Choose **Testnet** or **Devnet**.
|
||||
3. Click **Get New Standby Account**.
|
||||
4. Click **Get New Operational Account.**
|
||||
5. Copy and paste the **Seeds** field in a persistent location, such as a Notepad, so that you can reuse the accounts after reloading the form.
|
||||
@@ -80,7 +74,7 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port
|
||||
|
||||
## ripplex-1-send-xrp.js
|
||||
|
||||
This example can be used with any XRP Ledger network. Currently, there are _Testnet_ and _Devnet,_ with the experimental _NFT-Devnet_ server with support for NFTokens. You can update the code to choose different or additional XRP Ledger networks.
|
||||
This example can be used with any XRP Ledger network, _Testnet_, or _Devnet_. You can update the code to choose different or additional XRP Ledger networks.
|
||||
|
||||
|
||||
### getNet()
|
||||
@@ -100,7 +94,6 @@ This function uses brute force `if` statements to discover the selected network
|
||||
|
||||
```
|
||||
let net
|
||||
if (document.getElementById("xls").checked) net = "wss://xls20-sandbox.rippletest.net:51233"
|
||||
if (document.getElementById("tn").checked) net = "wss://s.altnet.rippletest.net:51233"
|
||||
if (document.getElementById("dn").checked) net = "wss://s.devnet.rippletest.net:51233"
|
||||
return net
|
||||
@@ -380,7 +373,6 @@ Connect to your selected ledger.
|
||||
|
||||
```
|
||||
|
||||
|
||||
Prepare the transaction. This is a Payment transaction from the standby wallet to the operational wallet.
|
||||
|
||||
The _Payment_ transaction expects the XRP to be expressed in drops, or 1/millionth of an XRP. You can use the xrpToDrops utility to convert the send amount for you (which beats having to type an extra 6 zeroes to send 1 XRP).
|
||||
@@ -542,9 +534,6 @@ Create a standard HTML form to send transactions and requests, then display the
|
||||
<h1>Token Test Harness</h1>
|
||||
<form id="theForm">
|
||||
Choose your ledger instance:
|
||||
<input type="radio" id="xls" name="server"
|
||||
value="wss://xls20-sandbox.rippletest.net:51233" checked>
|
||||
<label for="xls20">XLS20-NFT</label>
|
||||
|
||||
<input type="radio" id="tn" name="server"
|
||||
value="wss://s.altnet.rippletest.net:51233">
|
||||
|
||||
@@ -648,9 +648,6 @@ Update the form to support the new functions.
|
||||
<h1>Token Test Harness</h1>
|
||||
<form id="theForm">
|
||||
Choose your ledger instance:
|
||||
<input type="radio" id="xls" name="server"
|
||||
value="wss://xls20-sandbox.rippletest.net:51233" checked>
|
||||
<label for="xls20">XLS20-NFT</label>
|
||||
|
||||
<input type="radio" id="tn" name="server"
|
||||
value="wss://s.altnet.rippletest.net:51233">
|
||||
|
||||
@@ -12,10 +12,12 @@ labels:
|
||||
|
||||
This example shows how to:
|
||||
|
||||
1. Mint new Non-Fungible Tokens (NFTokens).
|
||||
|
||||
1. Mint new Non-fungible Tokens (NFTokens).
|
||||
2. Get a list of existing NFTokens.
|
||||
3. Delete (Burn) a NFToken.
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -30,10 +32,10 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port
|
||||
|
||||
1. Open `3.mint-nfts.html` in a browser.
|
||||
2. Get test accounts.
|
||||
1. If you have existing NFT-Devnet account seeds:
|
||||
1. If you have existing Testnet account seeds:
|
||||
1. Paste the account seeds in the **Seeds** field.
|
||||
2. Click **Get Accounts from Seeds**.
|
||||
2. If you do not have existing NFT-Devnet accounts:
|
||||
2. If you do not have existing Testnet accounts:
|
||||
1. Click **Get New Standby Account**.
|
||||
2. Click **Get New Operational Account**.
|
||||
|
||||
@@ -480,11 +482,7 @@ Bold text in the following indicates changes to the form that support the new fu
|
||||
<body>
|
||||
<h1>Token Test Harness</h1>
|
||||
<form id="theForm">
|
||||
Choose your ledger instance:
|
||||
<input type="radio" id="xls" name="server"
|
||||
value="wss://xls20-sandbox.rippletest.net:51233" checked>
|
||||
<label for="xls20">XLS20-NFT</label>
|
||||
|
||||
Choose your ledger instance:
|
||||
<input type="radio" id="tn" name="server"
|
||||
value="wss://s.altnet.rippletest.net:51233">
|
||||
<label for="testnet">Testnet</label>
|
||||
|
||||
@@ -10,9 +10,10 @@ labels:
|
||||
|
||||
# 4. Transfer NFTokens
|
||||
|
||||
|
||||
This example shows how to:
|
||||
|
||||
|
||||
|
||||
1. Create NFToken Sell Offers.
|
||||
2. Create NFToken Buy Offers.
|
||||
3. Accept NFToken Sell Offers.
|
||||
@@ -35,12 +36,12 @@ You can download the [Quickstart Samples](https://github.com/XRPLF/xrpl-dev-port
|
||||
|
||||
|
||||
1. Open `4.transfer-nftokens.html` in a browser.
|
||||
2. Choose **XLS20-NFT** as your ledger instance.
|
||||
2. Choose your ledger instance (**Testnet** or **Devnet**).
|
||||
3. Get test accounts.
|
||||
1. If you have existing NFT-Devnet account seeds
|
||||
1. If you have existing test account seeds
|
||||
1. Paste account seeds in the **Seeds** field.
|
||||
2. Click **Get Accounts from Seeds**.
|
||||
2. If you do not have NFT-Devnet account seeds:
|
||||
2. If you do not have test account seeds:
|
||||
1. Click **Get New Standby Account**.
|
||||
2. Click **Get New Operational Account**.
|
||||
|
||||
@@ -1189,9 +1190,6 @@ Update the form with fields and buttons to support the new functions.
|
||||
<h1>Token Test Harness</h1>
|
||||
<form id="theForm">
|
||||
Choose your ledger instance:
|
||||
<input type="radio" id="xls" name="server"
|
||||
value="wss://xls20-sandbox.rippletest.net:51233" checked>
|
||||
<label for="xls20">XLS20-NFT</label>
|
||||
|
||||
<input type="radio" id="tn" name="server"
|
||||
value="wss://s.altnet.rippletest.net:51233">
|
||||
|
||||
@@ -1595,12 +1595,6 @@ pages:
|
||||
- en
|
||||
- ja
|
||||
|
||||
# TODO: translate
|
||||
- md: tutorials/use-tokens/nftoken-tester-tutorial.md
|
||||
targets:
|
||||
- en
|
||||
- ja
|
||||
|
||||
# TODO: translate this page & blurb
|
||||
- md: tutorials/use-tokens/enable-no-freeze.md
|
||||
targets:
|
||||
|
||||
|
Before Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 144 KiB |
|
Before Width: | Height: | Size: 209 KiB After Width: | Height: | Size: 224 KiB |
|
Before Width: | Height: | Size: 209 KiB After Width: | Height: | Size: 199 KiB |
|
Before Width: | Height: | Size: 200 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 106 KiB |
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 190 KiB |
|
Before Width: | Height: | Size: 185 KiB After Width: | Height: | Size: 178 KiB |
|
Before Width: | Height: | Size: 198 KiB After Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 223 KiB After Width: | Height: | Size: 219 KiB |
|
Before Width: | Height: | Size: 212 KiB After Width: | Height: | Size: 206 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 189 KiB After Width: | Height: | Size: 182 KiB |
|
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 153 KiB After Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 191 KiB |
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 171 KiB |
|
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 225 KiB |
|
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 207 KiB |
|
Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 255 KiB |
|
Before Width: | Height: | Size: 287 KiB After Width: | Height: | Size: 316 KiB |
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 106 KiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 286 KiB |
|
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 285 KiB |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 136 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 117 KiB |
|
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 184 KiB |
@@ -101,7 +101,6 @@
|
||||
<ul class="nav flex-column">
|
||||
<li class="nav-item"><a href="nft-conceptual-overview.html" class="nav-link">NFT Conceptual Overview</a></li>
|
||||
<li class="nav-item"><a href="nftoken.html" class="nav-link">NFToken Format</a></li>
|
||||
<li class="nav-item"><a href="nftoken-tester-tutorial.html" class="nav-link">NFToken Tester Tutorial</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||