0.43.0 • Published 13 days ago

@lidofinance/next-pages v0.43.0

Weekly downloads
-
License
MIT
Repository
github
Last release
13 days ago

@lidofinance/next-pages

Common API and UI next pages.

Installation

  • React 17 || 18
yarn add @lidofinance/next-pages

# and additional
yarn add next@^12.3.0 prom-client@^14.0.0 @lidofinance/api-logger@^0.36.0 @lidofinance/api-rpc@^0.36.0 @lidofinance/rpc@^0.36.0 @lidofinance/ui-pages@^0.36.0

Getting started

API pages

Health

import { health } from '@lidofinance/next-pages';
// or import { health } from '@lidofinance/next-pages/api';

export default health;

Metrics

import { registry } from 'utilsApi/metrics';
import { metricsFactory } from '@lidofinance/next-pages';
// or import { metricsFactory } from '@lidofinance/next-pages/api';

const metrics = metricsFactory({
  registry,
});

export default metrics;

RPC

import getConfig from 'next/config';
import { rpcFactory } from '@lidofinance/api-pages';
// or import { rpcFactory } from '@lidofinance/next-pages/api';
import { fetchRPC, serverLogger } from 'utilsApi';
import { registry } from 'utilsApi/metrics';
import { METRICS_PREFIX } from '../../config';

const { publicRuntimeConfig, serverRuntimeConfig } = getConfig();
const { defaultChain } = publicRuntimeConfig;
const { infuraApiKey, alchemyApiKey } = serverRuntimeConfig;

// Should be a separate file
export const enum CHAINS {
  Mainnet = 1,
  Goerli = 5,
}

// Should be a separate file 
export const providers: Record<CHAINS, [string, ...string[]]> = {
  [CHAINS.Mainnet]: [
    `https://mainnet.infura.io/v3/${infuraApiKey}`,
    `https://eth-mainnet.alchemyapi.io/v2/${alchemyApiKey}`,
  ],
  [CHAINS.Goerli]: [
    `https://goerli.infura.io/v3/${infuraApiKey}`,
    `https://eth-goerli.alchemyapi.io/v2/${alchemyApiKey}`,
  ],
};

const rpc = rpcFactory({
  fetchRPC,
  metrics: {
    prefix: METRICS_PREFIX,
    registry,
  },
  allowedRPCMethods: [
    'eth_call',
    'eth_gasPrice',
    // ...
  ],
  defaultChain,
  providers,
});

export default rpc;

UI pages

Page Error (ready implementations)

  • Page404
  • Page500

Example for pages/404.tsx

import { Page404 } from '@lidofinance/next-ui-pages/ui';

export default Page404;

Example for pages/500.tsx

import { Page500 } from '@lidofinance/next-ui-pages/ui';

export default Page500;

Error page as generic component

Example for pages/404.tsx

import { FC } from 'react';
import { PageError } from '@lidofinance/next-ui-pages/ui';

const Page404: FC = () => <PageError title="404" content="Page Not Found" />;

export default Page404;
0.43.0

13 days ago

0.42.0

2 months ago

0.41.0

2 months ago

0.40.0

3 months ago

0.39.1

5 months ago

0.39.0

7 months ago

0.38.0

8 months ago

0.37.1

8 months ago

0.37.0

8 months ago

0.36.0

8 months ago

0.35.0

9 months ago

0.34.0

9 months ago

0.33.0

10 months ago

0.32.0

10 months ago

0.31.0

10 months ago

0.30.0

10 months ago

0.29.0

10 months ago

0.28.0

11 months ago

0.21.0

1 year ago

0.27.0

11 months ago

0.26.0

11 months ago

0.25.0

12 months ago

0.24.0

12 months ago

0.23.0

12 months ago

0.22.0

12 months ago

0.20.0

1 year ago

0.19.0

1 year ago

0.17.0

1 year ago

0.18.0

1 year ago

0.14.0

1 year ago

0.15.0

1 year ago

0.16.0

1 year ago

0.10.0

1 year ago

0.11.0

1 year ago

0.9.0

1 year ago

0.12.0

1 year ago

0.8.0

1 year ago

0.13.0

1 year ago

0.7.0

1 year ago

0.6.0

2 years ago

0.5.0

2 years ago

0.5.1

2 years ago

0.1.0

2 years ago

0.3.0

2 years ago

0.2.0

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago