mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-22 20:55:50 +00:00
235 lines
8.4 KiB
JavaScript
235 lines
8.4 KiB
JavaScript
// *******************************************************
|
|
// ********************* Send MPT ************************
|
|
// *******************************************************
|
|
|
|
async function sendMPT() {
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + getNet() + '....'
|
|
document.getElementById('leftResultField').value = results
|
|
|
|
await client.connect()
|
|
|
|
results += '\nConnected.'
|
|
leftResultField.value = results
|
|
|
|
const left_wallet = xrpl.Wallet.fromSeed(leftSeedField.value)
|
|
const mpt_issuance_id = leftIssuanceIdField.value
|
|
const mpt_quantity = leftQuantityField.value
|
|
|
|
const send_mpt_tx = {
|
|
"TransactionType": "Payment",
|
|
"Account": left_wallet.address,
|
|
"Amount": {
|
|
"mpt_issuance_id": mpt_issuance_id,
|
|
"value": mpt_quantity,
|
|
},
|
|
"Destination": leftDestinationField.value,
|
|
}
|
|
|
|
const pay_prepared = await client.autofill(send_mpt_tx)
|
|
const pay_signed = left_wallet.sign(pay_prepared)
|
|
results += `\n\nSending ${mpt_quantity} ${mpt_issuance_id} to ${leftDestinationField.value} ...`
|
|
leftResultField.value = results
|
|
const pay_result = await client.submitAndWait(pay_signed.tx_blob)
|
|
if (pay_result.result.meta.TransactionResult == "tesSUCCESS") {
|
|
|
|
results += 'Transaction succeeded.\n\n'
|
|
results += JSON.stringify(pay_result.result, null, 2)
|
|
leftResultField.value = results
|
|
} else {
|
|
results += 'Transaction failed: See JavaScript console for details.'
|
|
results += JSON.stringify(pay_result.result, null, 2)
|
|
leftResultField.value = results
|
|
}
|
|
client.disconnect()
|
|
} // end of sendMPT()
|
|
|
|
// *******************************************************
|
|
// ******************** Get MPTs *************************
|
|
// *******************************************************
|
|
|
|
async function getMPTs() {
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + getNet() + '....'
|
|
leftResultField.value = results
|
|
|
|
await client.connect()
|
|
const left_wallet = xrpl.Wallet.fromSeed(leftSeedField.value)
|
|
results += '\nConnected.'
|
|
leftResultField.value = results
|
|
const left_mpts = await client.request({
|
|
command: "account_objects",
|
|
account: left_wallet.address,
|
|
ledger_index: "validated",
|
|
type: "mptoken"
|
|
})
|
|
let JSONString = JSON.stringify(left_mpts.result, null, 2)
|
|
let JSONParse = JSON.parse(JSONString)
|
|
let numberOfMPTs = JSONParse.account_objects.length
|
|
console.log("length: " + numberOfMPTs)
|
|
let x = 0
|
|
while (x < numberOfMPTs){
|
|
results += "\n\nMPT Issuance ID: " + JSONParse.account_objects[x].MPTokenIssuanceID
|
|
+ "\nMPT Amount: " + JSONParse.account_objects[x].MPTAmount
|
|
x++
|
|
}
|
|
results += "\n\n" + JSONString
|
|
leftResultField.value = results
|
|
client.disconnect()
|
|
} // End of getMPTs()
|
|
|
|
// **********************************************************************
|
|
// ****** MPTAuthorize Transaction ***************************************
|
|
// **********************************************************************
|
|
|
|
async function MPTAuthorize() {
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + getNet() + '....'
|
|
document.getElementById('leftResultField').value = results
|
|
await client.connect()
|
|
|
|
const left_wallet = xrpl.Wallet.fromSeed(leftSeedField.value)
|
|
const mpt_issuance_id = leftIssuanceIdField.value
|
|
|
|
const auth_mpt_tx = {
|
|
"TransactionType": "MPTokenAuthorize",
|
|
"Account": left_wallet.address,
|
|
"MPTokenIssuanceID": mpt_issuance_id,
|
|
}
|
|
const auth_prepared = await client.autofill(auth_mpt_tx)
|
|
const auth_signed = left_wallet.sign(auth_prepared)
|
|
results += `\n\nSending authorization...`
|
|
leftResultField.value = results
|
|
const auth_result = await client.submitAndWait(auth_signed.tx_blob)
|
|
|
|
if (auth_result.result.meta.TransactionResult == "tesSUCCESS") {
|
|
results += `Transaction succeeded`
|
|
leftResultField.value = results
|
|
} else {
|
|
results += 'Transaction failed: See JavaScript console for details.'
|
|
leftResultField.value = results
|
|
}
|
|
client.disconnect()
|
|
} // end of MPTAuthorize()
|
|
|
|
// **********************************************************************
|
|
// ****** Reciprocal Transactions ***************************************
|
|
// **********************************************************************
|
|
|
|
// *******************************************************
|
|
// ************* Right Send MPT ********
|
|
// *******************************************************
|
|
|
|
async function rightSendMPT() {
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + getNet() + '....'
|
|
rightResultField.value = results
|
|
|
|
await client.connect()
|
|
|
|
results += '\nConnected.'
|
|
rightResultField.value = results
|
|
|
|
const right_wallet = xrpl.Wallet.fromSeed(rightSeedField.value)
|
|
const mpt_issuance_id = rightIssuanceIdField.value
|
|
const mpt_quantity = rightQuantityField.value
|
|
|
|
const send_mpt_tx = {
|
|
"TransactionType": "Payment",
|
|
"Account": right_wallet.address,
|
|
"Amount": {
|
|
"mpt_issuance_id": mpt_issuance_id,
|
|
"value": mpt_quantity,
|
|
},
|
|
"Destination": rightDestinationField.value,
|
|
}
|
|
|
|
const pay_prepared = await client.autofill(send_mpt_tx)
|
|
const pay_signed = right_wallet.sign(pay_prepared)
|
|
results += `\n\nSending ${mpt_quantity} ${mpt_issuance_id} to ${rightDestinationField.value} ...`
|
|
rightResultField.value = results
|
|
const pay_result = await client.submitAndWait(pay_signed.tx_blob)
|
|
if (pay_result.result.meta.TransactionResult == "tesSUCCESS") {
|
|
results += 'Transaction succeeded.\n\n'
|
|
results += JSON.stringify(pay_result.result, null, 2)
|
|
rightResultField.value = results
|
|
} else {
|
|
results += 'Transaction failed: See JavaScript console for details.'
|
|
results += JSON.stringify(pay_result.result, null, 2)
|
|
rightResultField.value = results
|
|
}
|
|
client.disconnect()
|
|
} // end of rightSendMPT()
|
|
|
|
// **********************************************************************
|
|
// ****** MPTAuthorize Transaction ***************************************
|
|
// **********************************************************************
|
|
|
|
async function rightMPTAuthorize() {
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + getNet() + '....'
|
|
document.getElementById('rightResultField').value = results
|
|
await client.connect()
|
|
|
|
const right_wallet = xrpl.Wallet.fromSeed(rightSeedField.value)
|
|
const mpt_issuance_id = rightIssuanceIdField.value
|
|
const auth_mpt_tx = {
|
|
"TransactionType": "MPTokenAuthorize",
|
|
"Account": right_wallet.address,
|
|
"MPTokenIssuanceID": mpt_issuance_id,
|
|
}
|
|
const auth_prepared = await client.autofill(auth_mpt_tx)
|
|
const auth_signed = right_wallet.sign(auth_prepared)
|
|
results += `\n\nSending authorization...`
|
|
rightResultField.value = results
|
|
const auth_result = await client.submitAndWait(auth_signed.tx_blob)
|
|
console.log(JSON.stringify(auth_result.result, null, 2))
|
|
|
|
if (auth_result.result.meta.TransactionResult == "tesSUCCESS") {
|
|
results += `Transaction succeeded`
|
|
rightResultField.value = results
|
|
} else {
|
|
results += 'Transaction failed: See JavaScript console for details.'
|
|
rightResultField.value = results
|
|
}
|
|
client.disconnect()
|
|
} // end of rightMPTAuthorize()
|
|
|
|
// **********************************************************************
|
|
// ****** Right Get MPTs ***************************************
|
|
// **********************************************************************
|
|
|
|
async function rightGetMPTs() {
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + getNet() + '....'
|
|
rightResultField.value = results
|
|
|
|
await client.connect()
|
|
const right_wallet = xrpl.Wallet.fromSeed(rightSeedField.value)
|
|
results += '\nConnected.'
|
|
rightResultField.value = results
|
|
const right_mpts = await client.request({
|
|
command: "account_objects",
|
|
account: right_wallet.address,
|
|
ledger_index: "validated",
|
|
type: "mptoken"
|
|
})
|
|
let JSONString = JSON.stringify(right_mpts.result, null, 2)
|
|
let JSONParse = JSON.parse(JSONString)
|
|
let numberOfMPTs = JSONParse.account_objects.length
|
|
let x = 0
|
|
while (x < numberOfMPTs){
|
|
results += "\n\nMPT Issuance ID: " + JSONParse.account_objects[x].MPTokenIssuanceID
|
|
+ "\nMPT Amount: " + JSONParse.account_objects[x].MPTAmount
|
|
x++
|
|
}
|
|
results += "\n\n" + JSONString
|
|
rightResultField.value = results
|
|
client.disconnect()
|
|
} // End of rightGetMPTs()
|