Files
2026-10-29 11:57:29 +01:00

62 lines
2.3 KiB
JavaScript

// Generated, do not edit. sha256:3babd66c28c9f09e458e639e8c0ca81825c815be279b32e296b0e13ec48e11ca
import { services } from '../../server/registers.mjs';
function pubkeyUit(uri) {
const m = /^nostr\+?walletconnect:\/\/([^?/]+)/i.exec(String(uri || '').trim());
if (!m) throw new Error('Ongeldige NWC-URI (verwacht nostr+walletconnect://…?relay=…&secret=…).');
return m[1].toLowerCase();
}
export function createNwcApiFake() {
const opslag = new Map();
const calls = { setUri: [], purgeUri: [], validateUri: [], call: [] };
const fout = { setUri: null, purgeUri: null };
const exports = {
async validateNwcUri(uri) {
calls.validateUri.push(uri);
return { walletPubkey: pubkeyUit(uri), relays: ['wss://relay.test'] };
},
async setNwcUri(sourceId, uri) {
calls.setUri.push([Number(sourceId), uri]);
if (fout.setUri) throw new Error(fout.setUri);
const walletPubkey = pubkeyUit(uri);
opslag.set(Number(sourceId), String(uri));
return { source: Number(sourceId), uri_set: true, walletPubkey };
},
async deleteNwcUri(sourceId) {
calls.purgeUri.push(Number(sourceId));
if (fout.purgeUri) throw new Error(fout.purgeUri);
opslag.delete(Number(sourceId));
return { source: Number(sourceId), deleted: true };
},
async nwcStatus(sourceId) {
const uri = opslag.get(Number(sourceId));
return { source: Number(sourceId), uri_set: !!uri, walletPubkey: uri ? pubkeyUit(uri) : '' };
},
async nwcCall() { throw new Error('nwc-api-fake: een relay-call hoort niet in een datalaag-test.'); },
async getInfo() { return exports.nwcCall(); },
async getBalance() { return exports.nwcCall(); },
async listTransactions() { return exports.nwcCall(); },
async testNwc() { return exports.nwcCall(); },
};
const api = {
exports,
calls,
registreer() {
services.register({ id: 'nwc', feature: 'lightning', setNwcUri: exports.setNwcUri, deleteNwcUri: exports.deleteNwcUri });
return api;
},
fout,
geheim: sourceId => opslag.get(Number(sourceId)) ?? null,
get ids() { return [...opslag.keys()]; },
leeg() {
opslag.clear();
calls.setUri.length = 0; calls.purgeUri.length = 0; calls.validateUri.length = 0;
fout.setUri = null; fout.purgeUri = null;
},
};
return api;
}