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

25 lines
861 B
JavaScript

// Generated, do not edit. sha256:ae316d9b957c83f15f4beedd3c718d48727175efe4b7a269554f9584d612e439
import { CONFIG } from './config.js';
export function originOf(url) {
try { return new URL(url).origin; } catch { return null; }
}
const NETWORK_ORIGIN = /^(https?|wss?):\/\/[^\s;,'"]+$/;
const networkOriginOf = (url) => {
const o = originOf(url);
return o && NETWORK_ORIGIN.test(o) ? o : null;
};
export function connectSrcOrigins(explorerUrls = []) {
return [...new Set([CONFIG.PRICE_SOURCES.MEMPOOL_PUBLIC_BASE, ...explorerUrls]
.map(networkOriginOf).filter(Boolean))];
}
export function originAllowedByCsp(url, eigenOrigin = null, explorerUrls = []) {
const origin = originOf(url);
if (!origin) return false;
if (eigenOrigin && origin === originOf(eigenOrigin)) return true;
return connectSrcOrigins(explorerUrls).includes(origin);
}