mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-06 12:55:50 +00:00
677 lines
24 KiB
JavaScript
677 lines
24 KiB
JavaScript
// *******************************************************
|
|
// ****************** Create Sell Offer ******************
|
|
// *******************************************************
|
|
|
|
async function createSellOffer() {
|
|
const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value)
|
|
const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value)
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + net + '...'
|
|
standbyResultField.value = results
|
|
await client.connect()
|
|
results += '\nConnected. Creating sell offer...'
|
|
standbyResultField.value = results
|
|
|
|
//------------------------------------- Prepare Expiration Date
|
|
var expirationDate = null
|
|
if (standbyExpirationField.value !="") {
|
|
var days = standbyExpirationField.value
|
|
let d = new Date()
|
|
d.setDate(d.getDate() + parseInt(days))
|
|
expirationDate = xrpl.isoTimeToRippleTime(d)
|
|
}
|
|
// Prepare transaction -------------------------------------------------------
|
|
let transactionBlob = {
|
|
"TransactionType": "NFTokenCreateOffer",
|
|
"Account": standby_wallet.classicAddress,
|
|
"NFTokenID": standbyTokenIdField.value,
|
|
"Amount": standbyAmountField.value,
|
|
"Flags": parseInt(standbyFlagsField.value),
|
|
}
|
|
if (expirationDate != null) {
|
|
transactionBlob.Expiration = expirationDate
|
|
}
|
|
if(standbyDestinationField.value !== '') {
|
|
transactionBlob.Destination = standbyDestinationField.value
|
|
}
|
|
|
|
// Submit transaction --------------------------------------------------------
|
|
|
|
const tx = await client.submitAndWait(transactionBlob,{wallet: standby_wallet})
|
|
|
|
results += '\n\n***Sell Offers***\n'
|
|
|
|
let nftSellOffers
|
|
try {
|
|
nftSellOffers = await client.request({
|
|
method: "nft_sell_offers",
|
|
nft_id: standbyTokenIdField.value})
|
|
} catch (err) {
|
|
nftSellOffers = "No sell offers."
|
|
}
|
|
results += JSON.stringify(nftSellOffers,null,2)
|
|
results += '\n\n***Buy Offers***\n'
|
|
let nftBuyOffers
|
|
try {
|
|
nftBuyOffers = await client.request({
|
|
method: "nft_buy_offers",
|
|
nft_id: standbyTokenIdField.value })
|
|
results += JSON.stringify(nftBuyOffers,null,2)
|
|
} catch (err) {
|
|
results += 'No buy offers.'
|
|
}
|
|
|
|
// Check transaction results -------------------------------------------------
|
|
results += '\n\nTransaction result:\n' +
|
|
JSON.stringify(tx.result.meta.TransactionResult, null, 2)
|
|
results += '\n\nBalance changes:\n' +
|
|
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2)
|
|
operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address))
|
|
standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address))
|
|
standbyResultField.value = results
|
|
client.disconnect()
|
|
}// End of createSellOffer()
|
|
|
|
// *******************************************************
|
|
// ***************** Create Buy Offer ********************
|
|
// *******************************************************
|
|
|
|
async function createBuyOffer() {
|
|
|
|
const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value)
|
|
const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value)
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
let results = 'Connecting to ' + net + '...'
|
|
standbyResultField.value = results
|
|
await client.connect()
|
|
results = '\nConnected. Creating buy offer...'
|
|
standbyResultField.value = results
|
|
|
|
//------------------------------------- Prepare Expiration Date
|
|
var expirationDate = null
|
|
if (standbyExpirationField.value !="") {
|
|
var days = standbyExpirationField.value
|
|
let d = new Date()
|
|
d.setDate(d.getDate() + parseInt(days))
|
|
var expirationDate = xrpl.isoTimeToRippleTime(d)
|
|
}
|
|
|
|
// Prepare transaction -------------------------------------------------------
|
|
const transactionBlob = {
|
|
"TransactionType": "NFTokenCreateOffer",
|
|
"Account": standby_wallet.classicAddress,
|
|
"Owner": standbyOwnerField.value,
|
|
"NFTokenID": standbyTokenIdField.value,
|
|
"Amount": standbyAmountField.value,
|
|
"Flags": null
|
|
}
|
|
if (expirationDate != null) {
|
|
transactionBlob.Expiration = expirationDate
|
|
}
|
|
|
|
// Submit transaction --------------------------------------------------------
|
|
const tx = await client.submitAndWait(transactionBlob,{wallet: standby_wallet})
|
|
|
|
results += "\n\n***Sell Offers***\n"
|
|
let nftSellOffers
|
|
try {
|
|
nftSellOffers = await client.request({
|
|
method: "nft_sell_offers",
|
|
nft_id: standbyTokenIdField.value })
|
|
} catch (err) {
|
|
nftSellOffers = "No sell offers."
|
|
}
|
|
results += JSON.stringify(nftSellOffers,null,2)
|
|
results += "\n\n***Buy Offers***\n"
|
|
let nftBuyOffers
|
|
try {
|
|
nftBuyOffers = await client.request({
|
|
method: "nft_buy_offers",
|
|
nft_id: standbyTokenIdField.value })
|
|
results += JSON.stringify(nftBuyOffers,null,2)
|
|
} catch (err) {
|
|
results += "No buy offers."
|
|
}
|
|
|
|
// Check transaction results -------------------------------------------------
|
|
results += "\n\nTransaction result:\n" +
|
|
JSON.stringify(tx.result.meta.TransactionResult, null, 2)
|
|
results += "\n\nBalance changes:\n" +
|
|
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2)
|
|
standbyResultField.value = results
|
|
|
|
client.disconnect()
|
|
}// End of createBuyOffer()
|
|
|
|
// *******************************************************
|
|
// ******************** Cancel Offer *********************
|
|
// *******************************************************
|
|
|
|
async function cancelOffer() {
|
|
const wallet = xrpl.Wallet.fromSeed(standbySeedField.value)
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + net + '...' + standbyResultField.value
|
|
await client.connect()
|
|
results += "\nConnected. Cancelling offer..."
|
|
standbyResultField.value = results
|
|
|
|
const tokenOfferIDs = [standbyTokenOfferIndexField.value]
|
|
|
|
// Prepare transaction -------------------------------------------------------
|
|
const transactionBlob = {
|
|
"TransactionType": "NFTokenCancelOffer",
|
|
"Account": wallet.classicAddress,
|
|
"NFTokenOffers": tokenOfferIDs
|
|
}
|
|
// Submit transaction --------------------------------------------------------
|
|
const tx = await client.submitAndWait(transactionBlob,{wallet})
|
|
|
|
results += "\n\n***Sell Offers***\n"
|
|
let nftSellOffers
|
|
try {
|
|
nftSellOffers = await client.request({
|
|
method: "nft_sell_offers",
|
|
nft_id: standbyTokenIdField.value
|
|
})
|
|
} catch (err) {
|
|
nftSellOffers = "No sell offers."
|
|
}
|
|
results += JSON.stringify(nftSellOffers,null,2)
|
|
results += "\n\n***Buy Offers***\n"
|
|
let nftBuyOffers
|
|
try {
|
|
nftBuyOffers = await client.request({
|
|
method: "nft_buy_offers",
|
|
nft_id: standbyTokenIdField.value
|
|
})
|
|
results += JSON.stringify(nftBuyOffers,null,2)
|
|
} catch (err) {
|
|
nftBuyOffers = "No buy offers."
|
|
}
|
|
|
|
// Check transaction results -------------------------------------------------
|
|
|
|
results += "\nTransaction result:\n" +
|
|
JSON.stringify(tx.result.meta.TransactionResult, null, 2)
|
|
results += "\nBalance changes:\n" +
|
|
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2)
|
|
standbyResultField.value = results
|
|
|
|
client.disconnect() // End of cancelOffer()
|
|
}
|
|
|
|
// *******************************************************
|
|
// ******************** Get Offers ***********************
|
|
// *******************************************************
|
|
|
|
async function getOffers() {
|
|
const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value)
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + net + '...'
|
|
standbyResultField.value = results
|
|
await client.connect()
|
|
results += '\nConnected. Getting offers...'
|
|
standbyResultField.value = results
|
|
|
|
results += '\n\n***Sell Offers***\n'
|
|
let nftSellOffers
|
|
try {
|
|
nftSellOffers = await client.request({
|
|
method: "nft_sell_offers",
|
|
nft_id: standbyTokenIdField.value
|
|
})
|
|
} catch (err) {
|
|
nftSellOffers = 'No sell offers.'
|
|
}
|
|
results += JSON.stringify(nftSellOffers,null,2)
|
|
standbyResultField.value = results
|
|
|
|
results += '\n\n***Buy Offers***\n'
|
|
let nftBuyOffers
|
|
try {
|
|
nftBuyOffers = await client.request({
|
|
method: "nft_buy_offers",
|
|
nft_id: standbyTokenIdField.value
|
|
})
|
|
} catch (err) {
|
|
nftBuyOffers = 'No buy offers.'
|
|
}
|
|
results += JSON.stringify(nftBuyOffers,null,2)
|
|
standbyResultField.value = results
|
|
|
|
client.disconnect()
|
|
}// End of getOffers()
|
|
|
|
// *******************************************************
|
|
// ****************** Accept Sell Offer ******************
|
|
// *******************************************************
|
|
|
|
async function acceptSellOffer() {
|
|
const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value)
|
|
const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value)
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + net + '...'
|
|
standbyResultField.value = results
|
|
await client.connect()
|
|
results += '\nConnected. Accepting sell offer...\n\n'
|
|
standbyResultField.value = results
|
|
|
|
// Prepare transaction -------------------------------------------------------
|
|
const transactionBlob = {
|
|
"TransactionType": "NFTokenAcceptOffer",
|
|
"Account": standby_wallet.classicAddress,
|
|
"NFTokenSellOffer": standbyTokenOfferIndexField.value,
|
|
}
|
|
// Submit transaction --------------------------------------------------------
|
|
const tx = await client.submitAndWait(transactionBlob,{wallet: standby_wallet})
|
|
const nfts = await client.request({
|
|
method: "account_nfts",
|
|
account: standby_wallet.classicAddress
|
|
})
|
|
|
|
// Check transaction results -------------------------------------------------
|
|
|
|
standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address))
|
|
operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address))
|
|
|
|
results += 'Transaction result:\n'
|
|
results += JSON.stringify(tx.result.meta.TransactionResult, null, 2)
|
|
results += '\nBalance changes:'
|
|
results += JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2)
|
|
results += JSON.stringify(nfts,null,2)
|
|
standbyResultField.value = results
|
|
|
|
client.disconnect()
|
|
}// End of acceptSellOffer()
|
|
|
|
// *******************************************************
|
|
// ******************* Accept Buy Offer ******************
|
|
// *******************************************************
|
|
|
|
async function acceptBuyOffer() {
|
|
const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value)
|
|
const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value)
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + net + '...'
|
|
standbyResultField.value = results
|
|
await client.connect()
|
|
results += '\nConnected. Accepting buy offer...'
|
|
standbyResultField.value = results
|
|
|
|
// Prepare transaction -------------------------------------------------------
|
|
const transactionBlob = {
|
|
"TransactionType": "NFTokenAcceptOffer",
|
|
"Account": standby_wallet.classicAddress,
|
|
"NFTokenBuyOffer": standbyTokenOfferIndexField.value
|
|
}
|
|
// Submit transaction --------------------------------------------------------
|
|
const tx = await client.submitAndWait(transactionBlob,{wallet: standby_wallet})
|
|
const nfts = await client.request({
|
|
method: "account_nfts",
|
|
account: standby_wallet.classicAddress
|
|
})
|
|
results += JSON.stringify(nfts,null,2)
|
|
standbyResultField.value = results
|
|
|
|
// Check transaction results -------------------------------------------------
|
|
results += "\n\nTransaction result:\n" +
|
|
JSON.stringify(tx.result.meta.TransactionResult, null, 2)
|
|
results += "\nBalance changes:\n" +
|
|
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2)
|
|
operationalBalanceField.value =
|
|
(await client.getXrpBalance(operational_wallet.address))
|
|
standbyBalanceField.value =
|
|
(await client.getXrpBalance(standby_wallet.address))
|
|
standbyResultField.value = results
|
|
client.disconnect()
|
|
}// End of acceptBuyOffer()
|
|
|
|
// **********************************************************************
|
|
// ****** Reciprocal Transactions ***************************************
|
|
// **********************************************************************
|
|
|
|
// *******************************************************
|
|
// *********** Operational Create Sell Offer *************
|
|
// *******************************************************
|
|
|
|
async function oPcreateSellOffer() {
|
|
const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value)
|
|
const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value)
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + net + '...'
|
|
operationalResultField.value = results
|
|
await client.connect()
|
|
results += '\nConnected. Creating sell offer...'
|
|
operationalResultField.value = results
|
|
|
|
//------------------------------------- Prepare Expiration Date
|
|
var expirationDate = null
|
|
if (operationalExpirationField.value !="") {
|
|
var days = operationalExpirationField.value
|
|
let d = new Date()
|
|
d.setDate(d.getDate() + parseInt(days))
|
|
var expirationDate = xrpl.isoTimeToRippleTime(d)
|
|
}
|
|
// Prepare transaction -------------------------------------------------------
|
|
let transactionBlob = {
|
|
"TransactionType": "NFTokenCreateOffer",
|
|
"Account": operational_wallet.classicAddress,
|
|
"NFTokenID": operationalTokenIdField.value,
|
|
"Amount": operationalAmountField.value,
|
|
"Flags": parseInt(operationalFlagsField.value)
|
|
}
|
|
if (expirationDate != null) {
|
|
transactionBlob.Expiration = expirationDate
|
|
}
|
|
if(standbyDestinationField.value !== '') {
|
|
transactionBlob.Destination = operationalDestinationField.value
|
|
}
|
|
|
|
// Submit transaction --------------------------------------------------------
|
|
|
|
const tx = await client.submitAndWait(transactionBlob,{wallet: operational_wallet})
|
|
|
|
results += '\n\n***Sell Offers***\n'
|
|
|
|
let nftSellOffers
|
|
try {
|
|
nftSellOffers = await client.request({
|
|
method: "nft_sell_offers",
|
|
nft_id: operationalTokenIdField.value
|
|
})
|
|
} catch (err) {
|
|
nftSellOffers = "No sell offers."
|
|
}
|
|
results += JSON.stringify(nftSellOffers,null,2)
|
|
results += '\n\n***Buy Offers***\n'
|
|
let nftBuyOffers
|
|
try {
|
|
nftBuyOffers = await client.request({
|
|
method: "nft_buy_offers",
|
|
nft_id: operationalTokenIdField.value
|
|
})
|
|
results += JSON.stringify(nftBuyOffers,null,2)
|
|
} catch (err) {
|
|
results += 'No buy offers.'
|
|
}
|
|
|
|
// Check transaction results -------------------------------------------------
|
|
results += '\n\nTransaction result:\n' +
|
|
JSON.stringify(tx.result.meta.TransactionResult, null, 2)
|
|
results += '\n\nBalance changes:\n' +
|
|
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2)
|
|
operationalBalanceField.value =
|
|
(await client.getXrpBalance(operational_wallet.address))
|
|
standbyBalanceField.value =
|
|
(await client.getXrpBalance(standby_wallet.address))
|
|
operationalResultField.value = results
|
|
|
|
client.disconnect()
|
|
} // End of oPcreateSellOffer()
|
|
|
|
// *******************************************************
|
|
// ************** Operational Create Buy Offer ***********
|
|
// *******************************************************
|
|
|
|
async function oPcreateBuyOffer() {
|
|
|
|
const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value)
|
|
const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value)
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
let results = 'Connecting to ' + net + '...'
|
|
operationalResultField.value = results
|
|
await client.connect()
|
|
results = '\nConnected. Creating buy offer...'
|
|
operationalResultField.value = results
|
|
|
|
//------------------------------------- Prepare Expiration Date
|
|
var expirationDate = null
|
|
if (operationalExpirationField.value !="") {
|
|
var days = operationalExpirationField.value
|
|
let d = new Date()
|
|
d.setDate(d.getDate() + parseInt(days))
|
|
var expirationDate = xrpl.isoTimeToRippleTime(d)
|
|
}
|
|
|
|
// Prepare transaction -------------------------------------------------------
|
|
const transactionBlob = {
|
|
"TransactionType": "NFTokenCreateOffer",
|
|
"Account": operational_wallet.classicAddress,
|
|
"Owner": operationalOwnerField.value,
|
|
"NFTokenID": operationalTokenIdField.value,
|
|
"Amount": operationalAmountField.value,
|
|
"Flags": null,
|
|
}
|
|
if (expirationDate != null) {
|
|
transactionBlob.Expiration = expirationDate
|
|
}
|
|
// Submit transaction --------------------------------------------------------
|
|
const tx = await client.submitAndWait(transactionBlob,{wallet: operational_wallet})
|
|
|
|
results += "\n\n***Sell Offers***\n"
|
|
let nftSellOffers
|
|
try {
|
|
nftSellOffers = await client.request({
|
|
method: "nft_sell_offers",
|
|
nft_id: operationalTokenIdField.value
|
|
})
|
|
} catch (err) {
|
|
nftSellOffers = "No sell offers."
|
|
}
|
|
results += JSON.stringify(nftSellOffers,null,2)
|
|
results += "\n\n***Buy Offers***\n"
|
|
let nftBuyOffers
|
|
try {
|
|
nftBuyOffers = await client.request({
|
|
method: "nft_buy_offers",
|
|
nft_id: operationalTokenIdField.value
|
|
})
|
|
} catch (err) {
|
|
results += "No buy offers."
|
|
}
|
|
results += JSON.stringify(nftBuyOffers,null,2)
|
|
|
|
// Check transaction results -------------------------------------------------
|
|
results += "\n\nTransaction result:\n" +
|
|
JSON.stringify(tx.result.meta.TransactionResult, null, 2)
|
|
results += "\n\nBalance changes:\n" +
|
|
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2)
|
|
operationalResultField.value = results
|
|
|
|
client.disconnect()
|
|
}// End of oPcreateBuyOffer()
|
|
|
|
// *******************************************************
|
|
// ************* Operational Cancel Offer ****************
|
|
// *******************************************************
|
|
|
|
async function oPcancelOffer() {
|
|
|
|
const wallet = xrpl.Wallet.fromSeed(operationalSeedField.value)
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + net + '...'
|
|
operationalResultField.value = results
|
|
await client.connect()
|
|
results += "\nConnected. Cancelling offer..."
|
|
operationalResultField.value = results
|
|
|
|
const tokenOfferIDs = [operationalTokenOfferIndexField.value]
|
|
|
|
// Prepare transaction -------------------------------------------------------
|
|
const transactionBlob = {
|
|
"TransactionType": "NFTokenCancelOffer",
|
|
"Account": wallet.classicAddress,
|
|
"NFTokenOffers": tokenOfferIDs
|
|
}
|
|
// Submit transaction --------------------------------------------------------
|
|
const tx = await client.submitAndWait(transactionBlob,{wallet})
|
|
|
|
results += "\n\n***Sell Offers***\n"
|
|
let nftSellOffers
|
|
try {
|
|
nftSellOffers = await client.request({
|
|
method: "nft_sell_offers",
|
|
nft_id: operationalTokenIdField.value
|
|
})
|
|
} catch (err) {
|
|
nftSellOffers = "No sell offers."
|
|
}
|
|
results += JSON.stringify(nftSellOffers,null,2)
|
|
results += "\n\n***Buy Offers***\n"
|
|
let nftBuyOffers
|
|
try {
|
|
nftBuyOffers = await client.request({
|
|
method: "nft_buy_offers",
|
|
nft_id: operationalTokenIdField.value
|
|
})
|
|
} catch (err) {
|
|
nftBuyOffers = "No buy offers."
|
|
}
|
|
results += JSON.stringify(nftBuyOffers,null,2)
|
|
|
|
// Check transaction results -------------------------------------------------
|
|
|
|
results += "\nTransaction result:\n" +
|
|
JSON.stringify(tx.result.meta.TransactionResult, null, 2)
|
|
results += "\nBalance changes:\n" +
|
|
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2)
|
|
operationalResultField.value = results
|
|
|
|
client.disconnect()
|
|
}// End of oPcancelOffer()
|
|
|
|
// *******************************************************
|
|
// **************** Operational Get Offers ***************
|
|
// *******************************************************
|
|
|
|
async function oPgetOffers() {
|
|
// const standby_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value)
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + net + '...'
|
|
operationalResultField.value = results
|
|
await client.connect()
|
|
results += '\nConnected. Getting offers...'
|
|
|
|
results += '\n\n***Sell Offers***\n'
|
|
|
|
let nftSellOffers
|
|
try {
|
|
nftSellOffers = await client.request({
|
|
method: "nft_sell_offers",
|
|
nft_id: operationalTokenIdField.value
|
|
})
|
|
} catch (err) {
|
|
nftSellOffers = 'No sell offers.'
|
|
}
|
|
results += JSON.stringify(nftSellOffers,null,2)
|
|
|
|
results += '\n\n***Buy Offers***\n'
|
|
let nftBuyOffers
|
|
try {
|
|
nftBuyOffers = await client.request({
|
|
method: "nft_buy_offers",
|
|
nft_id: operationalTokenIdField.value
|
|
})
|
|
} catch (err) {
|
|
nftBuyOffers = 'No buy offers.'
|
|
}
|
|
results += JSON.stringify(nftBuyOffers,null,2)
|
|
operationalResultField.value = results
|
|
|
|
client.disconnect()
|
|
}// End of oPgetOffers()
|
|
|
|
// *******************************************************
|
|
// *************** Operational Accept Sell Offer *********
|
|
// *******************************************************
|
|
|
|
async function oPacceptSellOffer() {
|
|
const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value)
|
|
const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value)
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + net + '...'
|
|
operationalResultField.value = results
|
|
await client.connect()
|
|
results += '\nConnected. Accepting sell offer...\n\n'
|
|
operationalResultField.value = results
|
|
|
|
// Prepare transaction -------------------------------------------------------
|
|
const transactionBlob = {
|
|
"TransactionType": "NFTokenAcceptOffer",
|
|
"Account": operational_wallet.classicAddress,
|
|
"NFTokenSellOffer": operationalTokenOfferIndexField.value,
|
|
}
|
|
// Submit transaction --------------------------------------------------------
|
|
const tx = await client.submitAndWait(transactionBlob,{wallet: operational_wallet})
|
|
const nfts = await client.request({
|
|
method: "account_nfts",
|
|
account: operational_wallet.classicAddress
|
|
})
|
|
|
|
// Check transaction results -------------------------------------------------
|
|
|
|
standbyBalanceField.value = (await client.getXrpBalance(standby_wallet.address))
|
|
operationalBalanceField.value = (await client.getXrpBalance(operational_wallet.address))
|
|
|
|
results += 'Transaction result:\n'
|
|
results += JSON.stringify(tx.result.meta.TransactionResult, null, 2)
|
|
results += '\nBalance changes:'
|
|
results += JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2)
|
|
results += JSON.stringify(nfts,null,2)
|
|
operationalResultField.value = results
|
|
client.disconnect()
|
|
}// End of acceptSellOffer()
|
|
|
|
// *******************************************************
|
|
// ********* Operational Accept Buy Offer ****************
|
|
// *******************************************************
|
|
|
|
async function oPacceptBuyOffer() {
|
|
const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value)
|
|
const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value)
|
|
let net = getNet()
|
|
const client = new xrpl.Client(net)
|
|
results = 'Connecting to ' + net + '...'
|
|
operationalResultField.value = results
|
|
await client.connect()
|
|
results += '\nConnected. Accepting buy offer...'
|
|
operationalResultField.value = results
|
|
|
|
// Prepare transaction -------------------------------------------------------
|
|
const transactionBlob = {
|
|
"TransactionType": "NFTokenAcceptOffer",
|
|
"Account": operational_wallet.classicAddress,
|
|
"NFTokenBuyOffer": operationalTokenOfferIndexField.value
|
|
}
|
|
// Submit transaction --------------------------------------------------------
|
|
const tx = await client.submitAndWait(transactionBlob,{wallet: operational_wallet})
|
|
const nfts = await client.request({
|
|
method: "account_nfts",
|
|
account: operational_wallet.classicAddress
|
|
})
|
|
results += JSON.stringify(nfts,null,2)
|
|
operationalResultField.value = results
|
|
|
|
// Check transaction results -------------------------------------------------
|
|
results += "\n\nTransaction result:\n" +
|
|
JSON.stringify(tx.result.meta.TransactionResult, null, 2)
|
|
results += "\nBalance changes:\n" +
|
|
JSON.stringify(xrpl.getBalanceChanges(tx.result.meta), null, 2)
|
|
operationalBalanceField.value =
|
|
(await client.getXrpBalance(operational_wallet.address))
|
|
operationalBalanceField.value =
|
|
(await client.getXrpBalance(standby_wallet.address))
|
|
operationalResultField.value = results
|
|
client.disconnect()
|
|
}// End of acceptBuyOffer()
|