eb2-website/scripts/upload-data.js

58 řádky
1.9 KiB
JavaScript

import Arweave from "arweave";
import dotenv from 'dotenv';
import fs from 'fs';
dotenv.config();
const arweave = Arweave.init({
host: "arweave.net", // Hostname or IP address for a Arweave host
port: 443, // Port
protocol: "https", // Network protocol http or https
timeout: 20000, // Network request timeouts in milliseconds
logging: false, // Enable network request logging
});
const datajson = fs.readFileSync('./static/data.json', 'utf8');
const datamarkdown = fs.readFileSync('./static/hacker-manual.md', 'utf8');
const key = JSON.parse(process.env.AR);
if (!datajson || !datamarkdown || !key) { console.error("datafiles or key missing"); }
let uploadJSON = await arweave.createTransaction({
data: datajson
}, key);
uploadJSON.addTag('Content-Type', 'application/json');
uploadJSON.addTag("AppName", "ETHBrno");
uploadJSON.addTag("DataTag", "json");
await arweave.transactions.sign(uploadJSON, key);
//console.log(uploadJSON);
let uploader = await arweave.transactions.getUploader(uploadJSON);
while (!uploader.isComplete) {
await uploader.uploadChunk();
console.log(`${uploader.pctComplete}% complete, ${uploader.uploadedChunks}/${uploader.totalChunks}`);
}
console.log("Data JSON uploaded in transaction:", uploadJSON.id);
let uploadMD = await arweave.createTransaction({
data: datamarkdown
}, key);
uploadMD.addTag('Content-Type', 'text/plain');
uploadMD.addTag('charset', 'UTF-8');
uploadMD.addTag("AppName", "ETHBrno");
uploadMD.addTag("DataTag", "markdown");
await arweave.transactions.sign(uploadMD, key);
//console.log(uploadJSON);
let uploader2 = await arweave.transactions.getUploader(uploadMD);
while (!uploader2.isComplete) {
await uploader2.uploadChunk();
console.log(`${uploader2.pctComplete}% complete, ${uploader2.uploadedChunks}/${uploader2.totalChunks}`);
}
console.log("Content markdown uploaded in transaction:", uploadMD.id);