#!/usr/bin/env node // Laedt den BIP110-Live-Tracker (eine einzelne HTML-Datei) nach Arweave. // Eigener App-Name, damit der kiel-site-Zeiger (GraphQL sucht App-Name // kiel-site) NICHT gekapert wird. Ergebnis in last-upload-bip110-live.json. const fs = require('fs'); const path = require('path'); const { TurboFactory, EthereumSigner } = require('@ardrive/turbo-sdk'); const KEYFILE = path.join(__dirname, 'signing-key.json'); const FILE = path.join(__dirname, '..', 'werkzeug', 'bip110-live.html'); async function main() { const key = JSON.parse(fs.readFileSync(KEYFILE, 'utf8')).privateKey; const signer = new EthereumSigner(key); const turbo = TurboFactory.authenticated({ signer, token: 'ethereum' }); const result = await turbo.uploadFile({ fileStreamFactory: () => fs.createReadStream(FILE), fileSizeFactory: () => fs.statSync(FILE).size, dataItemOpts: { tags: [ { name: 'App-Name', value: 'kiel-bip110-live' }, { name: 'Content-Type', value: 'text/html; charset=utf-8' }, { name: 'Published-At', value: String(Math.floor(Date.now() / 1000)) }, ], }, }); console.log('TxID:', result.id); fs.writeFileSync(path.join(__dirname, 'last-upload-bip110-live.json'), JSON.stringify(result, null, 2)); console.log('URL: https://arweave.net/' + result.id); } main().catch(e => { console.error('FEHLER:', e.message || e); process.exit(1); });