mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-21 20:25:51 +00:00
113 lines
4.7 KiB
JavaScript
113 lines
4.7 KiB
JavaScript
function generateCode() {
|
|
let v_flags = 0
|
|
if (clawbackSlider.checked) {v_flags+=64}
|
|
if (lockSlider.checked) {v_flags+=2}
|
|
if (authTokensSlider.checked) {v_flags +=4}
|
|
if (txrSlider.checked) {v_flags += 32}
|
|
if (tradeSlider.checked) {v_flags += 16}
|
|
if (escrowSlider.checked) {v_flags+=8}
|
|
const mptHexString = xrpl.convertStringToHex(metadataTextArea.value)
|
|
let v_codeBlock = "{\n \"TransactionType\": \"MPTokenIssuanceCreate\",\n \"Account\": \"" + accountField.value +
|
|
"\",\n \"AssetScale\": " + parseInt(assetScaleField.value) + ", \n \"MaximumAmount\": \"" + maximumAmountField.value +
|
|
"\",\n \"TransferFee\": " + transferFeeField.value +
|
|
",\n \"Flags\": " + v_flags + ",\n \"MPTokenMetadata\": \"" + mptHexString + "\"\n}"
|
|
|
|
codeTextArea.value = v_codeBlock
|
|
}
|
|
// ******************************************************
|
|
// ************* Get the Preferred Network **************
|
|
// ******************************************************
|
|
|
|
function getNet() {
|
|
let net
|
|
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
|
|
} // End of getNet()
|
|
|
|
// *******************************************************
|
|
// ************* Get Account *****************************
|
|
// *******************************************************
|
|
|
|
async function getAccount() {
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + net + '....'
|
|
|
|
//-------------------------------This uses the default faucet for Testnet/Devnet.
|
|
let faucetHost = null
|
|
codeTextArea.value = results
|
|
await client.connect()
|
|
results += '\nConnected, funding wallet.'
|
|
// ----------------------------------------Create and fund a test account wallet.
|
|
const my_wallet = (await client.fundWallet(null, { faucetHost })).wallet
|
|
results += '\nGot a wallet.'
|
|
|
|
// ------------------------------------------------------Get the current balance.
|
|
const my_balance = (await client.getXrpBalance(my_wallet.address))
|
|
accountField.value = my_wallet.address
|
|
seedField.value = my_wallet.seed
|
|
results += '\nAccount created.'
|
|
codeTextArea.value = results
|
|
client.disconnect()
|
|
} // End of getAccount()
|
|
|
|
// *******************************************************
|
|
// ************ Get Account from Seed ********************
|
|
// *******************************************************
|
|
|
|
async function getAccountFromSeed() {
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + getNet() + '....'
|
|
await client.connect()
|
|
results += '\nConnected, finding wallets.\n'
|
|
codeTextArea.value = results
|
|
// --------------------------------------------------Find the test account wallet.
|
|
const my_wallet = xrpl.Wallet.fromSeed(seedField.value)
|
|
|
|
// -------------------------------------------------------Get the current balance.
|
|
accountField.value = my_wallet.address
|
|
seedField.value = my_wallet.seed
|
|
client.disconnect()
|
|
} // End of getAccountFromSeed()
|
|
|
|
// *******************************************************
|
|
// *************** Send Transaction **********************
|
|
// *******************************************************
|
|
|
|
async function sendTransaction() {
|
|
let v_flags = 0
|
|
if (clawbackSlider.checked) {v_flags+=64}
|
|
if (lockSlider.checked) {v_flags+=2}
|
|
if (authTokensSlider.checked) {v_flags +=4}
|
|
if (txrSlider.checked) {v_flags += 32}
|
|
if (tradeSlider.checked) {v_flags += 16}
|
|
if (escrowSlider.checked) {v_flags+=8}
|
|
results = 'Connecting to ' + getNet() + '....'
|
|
console.log(results)
|
|
let net = getNet()
|
|
const my_wallet = xrpl.Wallet.fromSeed(seedField.value)
|
|
const client = new xrpl.Client(net)
|
|
await client.connect()
|
|
|
|
const metadataHexString = xrpl.convertStringToHex(metadataTextArea.value)
|
|
|
|
const transactionJson = {
|
|
"TransactionType": "MPTokenIssuanceCreate",
|
|
"Account": accountField.value,
|
|
"AssetScale": parseInt(assetScaleField.value),
|
|
"MaximumAmount": maximumAmountField.value,
|
|
"TransferFee": parseInt(transferFeeField.value),
|
|
"Flags": v_flags,
|
|
"MPTokenMetadata": metadataHexString
|
|
}
|
|
const tx = await client.submitAndWait(transactionJson, { wallet: my_wallet} )
|
|
if (document.getElementById("tn").checked) {
|
|
codeTextArea.value += "\n Success! Ledger Index: " + tx.result.ledger_index + "\nSee https://testnet.xrpl.org/ledgers/" + tx.result.ledger_index
|
|
} else {
|
|
codeTextArea.value += "\n Success! Ledger Index: " + tx.result.ledger_index + "\nSee https://devnet.xrpl.org/ledgers/" + tx.result.ledger_index
|
|
}
|
|
urlField.value = "https://devnet.xrpl.org/ledgers/" + tx.result.ledger_index
|
|
}
|