mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2026-07-27 00:50:30 +00:00
657 lines
24 KiB
JavaScript
657 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()
|