mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-10 14:55:49 +00:00
44 lines
1.7 KiB
JavaScript
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()
|