'Getting 500 Internal Server Error when calling /mint_nft NEAR REST API
I have cloned this NEAR REST API SERVER repo into my local system and haven't made any changes to its original code. Only added console logs for debugging purpose. Using its API, I have successfully deployed a contract to testnet account and also called that contract.
But when comes to NFT part, its not working.
I'm calling /mint_nft API and getting 500 Internal Server Error.
It's breaking here:
let create_token = await token.ViewNFT(tokenId, contract);
create_token is null.
If I do minting with NEAR CLI, its working fine and I can see that NFT in my testnet wallet..
near call $ID nft_mint '{"token_id": "02", "receiver_id": "'$ID'", "token_metadata": { "title": "Design #2", "description": "Art Design", "media": "https://ipfs.io/ipfs/Qme7ss3ARVgxv6rXqVPiikMJ8u2NLgmgszg13pYrDKEoiu", "copies": 1}}' --accountId $ID --deposit 0.1
near-api-server.config.json
{
"server_host": "localhost",
"server_port": 9000,
"rpc_node": "https://rpc.testnet.near.org",
"init_disabled": false,
"master_account_id": "parimal9.testnet",
"master_key": "ed25519:2bUSD2v88RiwznraL1ZYtduH2rsJqbrE8K6QT2asnsPnXHc171Qj4khvxFxZqb6AN6zyiZzo4j7f9amooFi7kJX1",
"nft_contract": "nft.parimal9.testnet"
}
I have also tried this way but still not working.
server.route({
method: 'POST',
path: '/mint_nft',
handler: async (request) => {
console.log('\n\n\nMINT_NFT_PAYLOAD:', request.payload);
let {min, max} = request.payload;
if (!min || !max) min = max = 0;
let response = [];
request = processRequest(request);
for (let i = min; i <= max; i++) {
const tokenId = request.payload.token_id.replace('{inc}', i);
console.log('tokenId:', tokenId);
let {account_id, private_key, metadata, contract} = request.payload;
const tx = await token.MintNFT(
tokenId,
metadata,
contract,
account_id,
private_key
);
if (tx) {
if (min === max) {
console.log('tokenId:', tokenId);
let create_token = await token.ViewNFT(tokenId, contract);
console.log('create_token:', create_token, '\n\n\n');
create_token.token_id = tokenId;
console.log('create_token.token_id:', tokenId, '\n\n\n');
response.push({token: create_token, tx: tx});
} else {
response.push({tx: tx});
}
} else {
response.push({text: 'Error. Check backend logs.'});
}
}
return response;
},
});
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|




