/ethereum-staking-widget

Ethereum Liquid Staking widget based on the Lido Frontend Template

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

Lido Ethereum Liquid Staking Widget

A widget for submitting Ether to the pool based on Lido Frontend Template.

Prerequisites

  • Node.js v20+
  • Yarn package manager v1

This project requires an .env file which is distributed via private communication channels. A sample can be found in .env.example

Development

Step 1. Copy the contents of .env.example to .env.local

cp .env.example .env.local

Step 2. Fill out the .env.local. You will need to provide RPC provider urls with keys included.

Step 3. Install dependencies

yarn install

Step 4. Start the development server

yarn dev

for IPFS mode below:

yarn dev:ipfs # will start with HMR

Environment variables

Note! Avoid using NEXT_PUBLIC_ environment variables as it hinders our CI pipeline. Please use server-side environment variables and pass them to the client using getInitialProps in _app.js.

Automatic versioning

Note! This repo uses automatic versioning, please follow the commit message conventions.

e.g.

git commit -m "fix: a bug in calculation"
git commit -m "feat: dark theme"

Production

yarn build && yarn start

for IPFS mode below:

yarn build:ipfs

Adding a new route API

  • create a new file in pages/api/ folder
  • use wrapRequest function from @lidofinance/next-api-wrapper package.
  • use default wrappers from utilsApi/nextApiWrappers.ts if needed (e.g. defaultErrorHandler for handle errors)

Example:

const someRequest: API = async (req, res) => await fetch();

export default wrapRequest([defaultErrorHandler])(someRequest);

Release flow

To create a new release:

  1. Merge all changes to the main branch.
  2. After the merge, the Prepare release draft action will run automatically. When the action is complete, a release draft is created.
  3. When you need to release, go to Repo → Releases.
  4. Publish the desired release draft manually by clicking the edit button - this release is now the Latest Published.
  5. After publication, the action to create a release bump will be triggered automatically.

Learn more about App Release Flow.