mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-17 02:05:50 +00:00
111 lines
4.8 KiB
JavaScript
111 lines
4.8 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}"
|
|
resultField.value = v_codeBlock
|
|
} //End of generateCode()
|
|
// ******************************************************
|
|
// ************* 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)
|
|
accountField.value = "Getting new account...."
|
|
let faucetHost = null
|
|
await client.connect()
|
|
let results = '\nConnected, funding wallet.'
|
|
resultField.value = results
|
|
// ----------------------------------------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.'
|
|
resultField.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'
|
|
resultField.value = results
|
|
// --------------------------------------------------Find the account wallet.
|
|
const my_wallet = xrpl.Wallet.fromSeed(seedField.value)
|
|
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() + '....'
|
|
mptIssuanceIdField.value = 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) {
|
|
resultField.value += "\n Success! Ledger Index: " + tx.result.ledger_index + "\nSee https://testnet.xrpl.org/ledgers/" + tx.result.ledger_index
|
|
} else {
|
|
resultField.value += "\n Success! Ledger Index: " + tx.result.ledger_index + "\nSee https://devnet.xrpl.org/ledgers/" + tx.result.ledger_index
|
|
}
|
|
mptIssuanceIdField.value = JSON.stringify(tx.result.meta.mpt_issuance_id)
|
|
}
|
|
// *****************************************************
|
|
// ************ Gather MPT Info ********************
|
|
// *****************************************************
|
|
|
|
function gatherMptInfo() {
|
|
let mptInfo = accountNameField.value + "\n" + accountField.value + "\n" + seedField.value + "\n" + mptIssuanceIdField.value
|
|
resultField.value = mptInfo
|
|
} |