// Next.js API route support: https://nextjs.org/docs/api-routes/introduction import type { NextApiRequest, NextApiResponse } from 'next' interface ErrorResponse { error: string } export interface Faucet { address: string; secret: string; xrp: number; hash: string; code: string; } export default async function handler( req: NextApiRequest, res: NextApiResponse ) { if (req.method !== 'POST') { return res.status(405).json({ error: 'Method not allowed!' }) } const { account } = req.query; const ip = Array.isArray(req?.headers?.["x-real-ip"]) ? req?.headers?.["x-real-ip"][0] : req?.headers?.["x-real-ip"]; try { const response = await fetch(`https://${process.env.NEXT_PUBLIC_TESTNET_URL}/newcreds?account=${account ? account : ''}`, { method: 'POST', headers: { 'x-forwarded-for': ip || '', }, }); const json: Faucet | ErrorResponse = await response.json(); if ("error" in json) { return res.status(429).json(json) } return res.status(200).json(json); } catch (err) { console.log(err) return res.status(500).json({ error: 'Server error' }) } return res.status(500).json({ error: 'Not able to create faucet, try again' }) }