Files
xrpl-dev-portal/_code-samples/quickstart/js/ripplex6-authorized-minter.js
Mayukha Vadari 0b247281eb run prettier
2026-01-12 14:19:31 -05:00

161 lines
6.0 KiB
JavaScript

// *******************************************************
// **************** Set Minter *************************
// *******************************************************
async function setMinter() {
let net = getNet()
const client = new xrpl.Client(net)
results = 'Connecting to ' + getNet() + '....'
standbyResultField.value = results
await client.connect()
results += '\nConnected, finding wallet.'
standbyResultField.value = results
my_wallet = xrpl.Wallet.fromSeed(standbySeedField.value)
standbyResultField.value = results
tx_json = {
TransactionType: 'AccountSet',
Account: my_wallet.address,
NFTokenMinter: standbyMinterField.value,
SetFlag: xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter,
}
results += '\nSet Minter.'
standbyResultField.value = results
const prepared = await client.autofill(tx_json)
const signed = my_wallet.sign(prepared)
const result = await client.submitAndWait(signed.tx_blob)
if (result.result.meta.TransactionResult == 'tesSUCCESS') {
results += '\nAccount setting succeeded.\n'
results += JSON.stringify(result, null, 2)
standbyResultField.value = results
} else {
throw 'Error sending transaction: ${result}'
results += '\nAccount setting failed.'
standbyResultField.value = results
}
client.disconnect()
} // End of configureAccount()
// *******************************************************
// **************** Mint Other *************************
// *******************************************************
async function mintOther() {
results = 'Connecting to ' + getNet() + '....'
standbyResultField.value = results
let net = getNet()
const standby_wallet = xrpl.Wallet.fromSeed(standbySeedField.value)
const client = new xrpl.Client(net)
await client.connect()
results += '\nConnected. Minting NFT.'
standbyResultField.value = results
// This version adds the "Issuer" field.
// ------------------------------------------------------------------------
const tx_json = {
TransactionType: 'NFTokenMint',
Account: standby_wallet.classicAddress,
URI: xrpl.convertStringToHex(standbyTokenUrlField.value),
Flags: parseInt(standbyFlagsField.value),
TransferFee: parseInt(standbyTransferFeeField.value),
Issuer: standbyIssuerField.value,
NFTokenTaxon: 0, //Required, but if you have no use for it, set to zero.
}
// ----------------------------------------------------- Submit transaction
const tx = await client.submitAndWait(tx_json, { wallet: standby_wallet })
const nfts = await client.request({
method: 'account_nfts',
account: standby_wallet.classicAddress,
})
// ------------------------------------------------------- Report results
results += '\n\nTransaction result: ' + tx.result.meta.TransactionResult
results += '\n\nnfts: ' + JSON.stringify(nfts, null, 2)
standbyResultField.value = results + (await client.getXrpBalance(standby_wallet.address))
standbyResultField.value = results
client.disconnect()
} //End of mintToken()
// *******************************************************
// **************** Set Operational Minter **************
// ********************************************************
async function oPsetMinter() {
let net = getNet()
const client = new xrpl.Client(net)
results = 'Connecting to ' + getNet() + '....'
operationalResultField.value = results
await client.connect()
results += '\nConnected, finding wallet.'
operationalResultField.value = results
my_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value)
operationalResultField.value = results
tx_json = {
TransactionType: 'AccountSet',
Account: my_wallet.address,
NFTokenMinter: operationalMinterField.value,
SetFlag: xrpl.AccountSetAsfFlags.asfAuthorizedNFTokenMinter,
}
results += '\nSet Minter.'
operationalResultField.value = results
const prepared = await client.autofill(tx_json)
const signed = my_wallet.sign(prepared)
const result = await client.submitAndWait(signed.tx_blob)
if (result.result.meta.TransactionResult == 'tesSUCCESS') {
results += '\nAccount setting succeeded.\n'
results += JSON.stringify(result, null, 2)
operationalResultField.value = results
} else {
throw 'Error sending transaction: ${result}'
results += '\nAccount setting failed.'
operationalResultField.value = results
}
client.disconnect()
} // End of oPsetMinter()
// *******************************************************
// ************** Operational Mint Other *****************
// *******************************************************
async function oPmintOther() {
results = 'Connecting to ' + getNet() + '....'
operationalResultField.value = results
let net = getNet()
const operational_wallet = xrpl.Wallet.fromSeed(operationalSeedField.value)
const client = new xrpl.Client(net)
await client.connect()
results += '\nConnected. Minting NFT.'
operationalResultField.value = results
// This version adds the "Issuer" field.
// ------------------------------------------------------------------------
const tx_json = {
TransactionType: 'NFTokenMint',
Account: operational_wallet.classicAddress,
URI: xrpl.convertStringToHex(operationalTokenUrlField.value),
Flags: parseInt(operationalFlagsField.value),
Issuer: operationalIssuerField.value,
TransferFee: parseInt(operationalTransferFeeField.value),
NFTokenTaxon: 0, //Required, but if you have no use for it, set to zero.
}
// ----------------------------------------------------- Submit signed blob
const tx = await client.submitAndWait(tx_json, { wallet: operational_wallet })
const nfts = await client.request({
method: 'account_nfts',
account: operational_wallet.classicAddress,
})
// ------------------------------------------------------- Report results
results += '\n\nTransaction result: ' + tx.result.meta.TransactionResult
results += '\n\nnfts: ' + JSON.stringify(nfts, null, 2)
results += await client.getXrpBalance(operational_wallet.address)
operationalResultField.value = results
client.disconnect()
} //End of oPmintToken