mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
* fix: correct optional chaining in label-issues-in-release workflow - Updated the filter condition to ensure proper handling of optional chaining for issue labels when label doesn't have a description * add reown to ignored origins of errors in rollbar monitoring * export HintProps * add recipe for Code component and adjust select component props * fix screenshots * fix validator schema for multichain explorer * fix mobile lists in safari * screenshot update * deprecate NEXT_PUBLIC_ROLLUP_L1_BASE_URL env * add support of new Tac operation type * remove recaptcha token from query params * add skin for multichain * update multichain config * fix: og meta tags were not rendered on the server * enable NEXT_PUBLIC_VIEWS_ADDRESS_IDENTICON_TYPE var for multichain * disable e2e test job
76 lines
2.2 KiB
TypeScript
76 lines
2.2 KiB
TypeScript
import type { Feature } from './types';
|
|
import type { ParentChain, RollupType } from 'types/client/rollup';
|
|
import { ROLLUP_TYPES } from 'types/client/rollup';
|
|
|
|
import { stripTrailingSlash } from 'toolkit/utils/url';
|
|
|
|
import { getEnvValue, parseEnvJson } from '../utils';
|
|
|
|
const type = (() => {
|
|
const envValue = getEnvValue('NEXT_PUBLIC_ROLLUP_TYPE');
|
|
return ROLLUP_TYPES.find((type) => type === envValue);
|
|
})();
|
|
|
|
const L2WithdrawalUrl = getEnvValue('NEXT_PUBLIC_ROLLUP_L2_WITHDRAWAL_URL');
|
|
|
|
const parentChain: ParentChain | undefined = (() => {
|
|
const envValue = parseEnvJson<ParentChain>(getEnvValue('NEXT_PUBLIC_ROLLUP_PARENT_CHAIN'));
|
|
if (!envValue?.baseUrl) {
|
|
return;
|
|
}
|
|
|
|
return {
|
|
...envValue,
|
|
baseUrl: stripTrailingSlash(envValue.baseUrl),
|
|
};
|
|
})();
|
|
|
|
const title = 'Rollup (L2) chain';
|
|
|
|
const config: Feature<{
|
|
type: RollupType;
|
|
stageIndex: string | undefined;
|
|
layerNumber: number;
|
|
homepage: { showLatestBlocks: boolean };
|
|
outputRootsEnabled: boolean;
|
|
interopEnabled: boolean;
|
|
L2WithdrawalUrl: string | undefined;
|
|
parentChain: ParentChain;
|
|
DA: {
|
|
celestia: {
|
|
namespace: string | undefined;
|
|
celeniumUrl: string | undefined;
|
|
};
|
|
};
|
|
}> = (() => {
|
|
if (type && parentChain) {
|
|
return Object.freeze({
|
|
title,
|
|
isEnabled: true,
|
|
type,
|
|
stageIndex: getEnvValue('NEXT_PUBLIC_ROLLUP_STAGE_INDEX'),
|
|
layerNumber: Number(getEnvValue('NEXT_PUBLIC_ROLLUP_LAYER_NUMBER') || 2),
|
|
L2WithdrawalUrl: type === 'optimistic' ? L2WithdrawalUrl : undefined,
|
|
outputRootsEnabled: type === 'optimistic' && getEnvValue('NEXT_PUBLIC_ROLLUP_OUTPUT_ROOTS_ENABLED') === 'true',
|
|
interopEnabled: type === 'optimistic' && getEnvValue('NEXT_PUBLIC_INTEROP_ENABLED') === 'true',
|
|
homepage: {
|
|
showLatestBlocks: getEnvValue('NEXT_PUBLIC_ROLLUP_HOMEPAGE_SHOW_LATEST_BLOCKS') === 'true',
|
|
},
|
|
parentChain,
|
|
DA: {
|
|
celestia: {
|
|
namespace: type === 'arbitrum' ? getEnvValue('NEXT_PUBLIC_ROLLUP_DA_CELESTIA_NAMESPACE') : undefined,
|
|
celeniumUrl: getEnvValue('NEXT_PUBLIC_ROLLUP_DA_CELESTIA_CELENIUM_URL'),
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
return Object.freeze({
|
|
title,
|
|
isEnabled: false,
|
|
});
|
|
})();
|
|
|
|
export default config;
|