Files
2026-01-23 20:20:58 +07:00

57 lines
2.0 KiB
TypeScript

import { NextResponse } from "next/server";
import fs from "fs";
import path from "path";
const CONFIG_PATH = path.join(process.cwd(), "..", "hardhat", "scripts", "oracle-bot", "config.json");
export async function POST(request: Request) {
try {
const body = await request.json();
const { value, nodeAddress } = body;
if (typeof value !== "number" || value < 0 || value > 1) {
return NextResponse.json({ error: "Value must be a number between 0 and 1" }, { status: 400 });
}
// Read current config
const configContent = await fs.promises.readFile(CONFIG_PATH, "utf-8");
const config = JSON.parse(configContent);
// Update node-specific config
if (!config.NODE_CONFIGS[nodeAddress]) {
config.NODE_CONFIGS[nodeAddress] = { ...config.NODE_CONFIGS.default };
}
config.NODE_CONFIGS[nodeAddress].PROBABILITY_OF_SKIPPING_REPORT = value;
// Write back to file
await fs.promises.writeFile(CONFIG_PATH, JSON.stringify(config, null, 2));
return NextResponse.json({ success: true, value });
} catch (error) {
console.error("Error updating skip probability:", error);
return NextResponse.json({ error: "Failed to update configuration" }, { status: 500 });
}
}
export async function GET(request: Request) {
try {
const { searchParams } = new URL(request.url);
const nodeAddress = searchParams.get("nodeAddress");
if (!nodeAddress) {
return NextResponse.json({ error: "nodeAddress parameter is required" }, { status: 400 });
}
const configContent = await fs.promises.readFile(CONFIG_PATH, "utf-8");
const config = JSON.parse(configContent);
const nodeConfig = config.NODE_CONFIGS[nodeAddress] || config.NODE_CONFIGS.default;
return NextResponse.json({
value: nodeConfig.PROBABILITY_OF_SKIPPING_REPORT,
});
} catch (error) {
console.error("Error reading skip probability:", error);
return NextResponse.json({ error: "Failed to read configuration" }, { status: 500 });
}
}