This commit is contained in:
jonathanlei
2022-11-06 17:47:28 -08:00
parent 0f92626ebc
commit a1ed26c1f6

View File

@@ -1,48 +1,48 @@
async function wait_for_seq(network_url, address) { async function wait_for_seq(network_url, address) {
const api = new xrpl.Client(network_url); const api = new xrpl.Client(network_url)
await api.connect(); await api.connect()
let response; let response;
while (true) { while (true) {
try { try {
response = await api.request({ response = await api.request({
command: "account_info", command: "account_info",
account: address, account: address,
ledger_index: "validated", ledger_index: "validated"
}); })
break; break
} catch (e) { } catch(e) {
await new Promise((resolve) => setTimeout(resolve, 1000)); await new Promise(resolve => setTimeout(resolve, 1000))
} }
} }
console.log(response); console.log(response)
$("#sequence").html( $("#sequence").html('<h3>Sequence Number</h3> '+response.result.account_data.Sequence)
"<h3>Sequence Number</h3> " + response.result.account_data.Sequence
);
$("#balance").html( $("#balance").html(
"<h3>Balance</h3> " + "<h3>Balance</h3> " +
(Number(response.result.account_data.Balance) * 0.000001).toLocaleString( (Number(response.result.account_data.Balance) * 0.000001).toLocaleString(
"en" "en"
) + ) +
" XRP" " XRP"
); )
api.disconnect(); api.disconnect()
} }
function rippleTestNetCredentials(url, altnet_name) { function rippleTestNetCredentials(url, altnet_name) {
const credentials = $("#your-credentials");
const address = $("#address"); const credentials = $('#your-credentials')
const secret = $("#secret"); const address = $('#address')
const balance = $("#balance"); const secret = $('#secret')
const sequence = $("#sequence"); const balance = $('#balance')
const loader = $("#loader"); const sequence = $('#sequence')
const loader = $('#loader')
//reset the fields initially and for re-generation //reset the fields initially and for re-generation
credentials.hide(); credentials.hide()
address.html(""); address.html('')
secret.html(""); secret.html('')
balance.html(""); balance.html('')
sequence.html(""); sequence.html('')
loader.css("display", "inline"); loader.css('display', 'inline')
// generate the test wallet // generate the test wallet
const test_wallet = xrpl.Wallet.generate(); const test_wallet = xrpl.Wallet.generate();
@@ -50,7 +50,7 @@ function rippleTestNetCredentials(url, altnet_name) {
//call the alt-net and get key generations //call the alt-net and get key generations
$.ajax({ $.ajax({
url: url, url: url,
type: "POST", type: 'POST',
contentType: "application/json; charset=utf-8", contentType: "application/json; charset=utf-8",
data: JSON.stringify({ data: JSON.stringify({
destination: test_wallet.address, destination: test_wallet.address,
@@ -60,84 +60,49 @@ function rippleTestNetCredentials(url, altnet_name) {
}, },
], ],
}), }),
success: function (data) { success: function(data) {
//hide the loader and show results //hide the loader and show results
loader.hide(); loader.hide();
credentials credentials.hide().html('<h2>Your '+altnet_name+' Credentials</h2>').fadeIn('fast')
.hide() address.hide().html('<h3>Address</h3> ' +
.html("<h2>Your " + altnet_name + " Credentials</h2>") test_wallet.address).fadeIn('fast')
.fadeIn("fast"); secret.hide().html('<h3>Secret</h3> ' +
address test_wallet.seed).fadeIn('fast')
.hide() // TODO: currently the faucet api doesn't return balance unless the account is generated server side, need to make upates when faucet repo is updated.
.html("<h3>Address</h3> " + test_wallet.address) balance.hide().html('<h3>Balance</h3> ' +
.fadeIn("fast"); Number(data.amount).toLocaleString('en') + ' XRP').fadeIn('fast')
secret sequence.html('<h3>Sequence</h3> <img class="throbber" src="assets/img/xrp-loader-96.png"> Waiting...').fadeIn('fast')
.hide() if (altnet_name=="Testnet") {
.html("<h3>Secret</h3> " + test_wallet.seed) wait_for_seq("wss://s.altnet.rippletest.net:51233", test_wallet.address)
.fadeIn("fast"); } else if (altnet_name=="NFT-Devnet") {
// TODO: currently the faucet api doesn't return balance unless the account is generated server side, need to make upates when faucet repo is updated. wait_for_seq("wss://xls20-sandbox.rippletest.net:51233", test_wallet.address)
balance
.hide()
.html(
"<h3>Balance</h3> " +
Number(data.amount).toLocaleString("en") +
" XRP"
)
.fadeIn("fast");
sequence
.html(
'<h3>Sequence</h3> <img class="throbber" src="assets/img/xrp-loader-96.png"> Waiting...'
)
.fadeIn("fast");
if (altnet_name == "Testnet") {
wait_for_seq(
"wss://s.altnet.rippletest.net:51233",
test_wallet.address
);
} else if (altnet_name == "NFT-Devnet") {
wait_for_seq(
"wss://xls20-sandbox.rippletest.net:51233",
test_wallet.address
);
} else { } else {
wait_for_seq( wait_for_seq("wss://s.devnet.rippletest.net:51233", test_wallet.address)
"wss://s.devnet.rippletest.net:51233",
test_wallet.address
);
} }
}, },
error: function () { error: function() {
loader.hide(); loader.hide();
alert( alert("There was an error with the "+altnet_name+" faucet. Please try again.");
"There was an error with the " + }
altnet_name + })
" faucet. Please try again."
);
},
});
} }
$(document).ready(function () { $(document).ready(function() {
function testnet_click(evt) { function testnet_click(evt) {
rippleTestNetCredentials( rippleTestNetCredentials("https://faucet.altnet.rippletest.net/accounts",
"https://faucet.altnet.rippletest.net/accounts", "Testnet")
"Testnet"
);
} }
function devnet_click(evt) { function devnet_click(evt) {
rippleTestNetCredentials( rippleTestNetCredentials("https://faucet.devnet.rippletest.net/accounts",
"https://faucet.devnet.rippletest.net/accounts", "Devnet")
"Devnet"
);
} }
function nftnet_click(evt) { function nftnet_click(evt) {
rippleTestNetCredentials( rippleTestNetCredentials("https://faucet-nft.ripple.com/accounts",
"https://faucet-nft.ripple.com/accounts", "NFT-Devnet")
"NFT-Devnet"
);
} }
$("#testnet-creds-button").click(testnet_click); $('#testnet-creds-button').click(testnet_click)
$("#devnet-creds-button").click(devnet_click); $('#devnet-creds-button').click(devnet_click)
$("#nftnet-creds-button").click(nftnet_click); $('#nftnet-creds-button').click(nftnet_click)
}); })