Files
tom goriunovandGitHub ca4c8d6633 OP Superchain Explorer: MVP (#2786)
* context for storing subchain config and tx view for subchain

* address page and block page for subchain

* address aggregated page: local txs tab

* connect MultichainSelect to context

* home page placeholder

* refactor subchain select state

* envs for demo

* fix ts

* clear value for l2 review

* subchain widgets on home page

* csp policies

* sockets, duck and goose

* fix socket on subchain address page

* link builder for subchain views

* update home widget

* fix time increment

* enable tx interpretator and metadata service

* generate multichain config based on every chain app config

* Fix the multichain config to work in Docker

* multichain socket test

* rename subchain-id to subchain-slug path param

* refactoring

* update chain icons on entities

* home page: latest local txs

* latest cross-chain txs

* minor improvements

* renaming, pt. 1

* rename chain routes

* enable blockchain interaction

* add loading state to icon shield

* fix build

* fix tests

* update types package
2025-07-03 15:07:00 +02:00

44 lines
1003 B
TypeScript

import type { MultichainConfig } from 'types/multichain';
let value: MultichainConfig | undefined = undefined;
function readFileConfig() {
// eslint-disable-next-line no-restricted-properties
if (process.env.NEXT_RUNTIME !== 'nodejs') {
throw new Error('NEXT_RUNTIME is not nodejs');
}
try {
const path = require('path');
const { readFileSync } = require('fs');
const publicFolder = path.resolve('public');
const configPath = path.resolve(publicFolder, 'assets/multichain/config.json');
const config = readFileSync(configPath, 'utf8');
value = JSON.parse(config) as MultichainConfig;
return value;
} catch (error) {
return;
}
}
export async function load() {
if (!value) {
return new Promise<MultichainConfig | undefined>((resolve) => {
const value = readFileConfig();
resolve(value);
});
}
return Promise.resolve(value);
}
export function getValue() {
if (!value) {
return readFileConfig();
}
return value;
}