Files
xrpl-dev-portal/_code-samples/nft-modular-tutorials/broker-nfts.js

44 lines
1.7 KiB
JavaScript

// *******************************************************
// ******************* Broker Sale ***********************
// *******************************************************
async function brokerSale() {
const wallet = xrpl.Wallet.fromSeed(accountSeedField.value);
const net = getNet();
const client = new xrpl.Client(net);
let results = `\n=== Connected. Brokering the sale. ===`;
resultField.value = results;
try {
await client.connect();
// Prepare transaction -------------------------------------------------------
const brokerTx = {
"TransactionType": "NFTokenAcceptOffer",
"Account": wallet.classicAddress,
"NFTokenSellOffer": nftSellOfferIndexField.value,
"NFTokenBuyOffer": nftBuyOfferIndexField.value,
"NFTokenBrokerFee": brokerFeeField.value
}
console.log(JSON.stringify(brokerTx, null, 2));
// Submit transaction --------------------------------------------------------
const tx = await client.submitAndWait(brokerTx, { wallet: wallet })
// 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)
xrpBalanceField.value = (await client.getXrpBalance(wallet.address))
resultField.value += results
} catch (error) {
console.error("Error in broker sale:", error);
results = `\n\n=== Error in broker sale: ${error.message} ===`; // User friendly
resultField.value += results;
}
finally {
if (client && client.isConnected()) {
await client.disconnect();
}
}
}// End of brokerSale()