BirthdayResearch / defiscan.live

DeFi Scan, everything one-stop location for DeFi Blockchain. Powered by jellyfish & ocean network.
https://defiscan.live
MIT License
44 stars 17 forks source link
bitcoin blockchain decentralized defi defiscan dfi explorer finance index ocean scan

CI scan codecov Maintainability

DeFi Scan

https://defiscan.live

Netlify Status

DeFi Scan, everything one-stop location for DeFi Blockchain. Powered by DeFi Jellyfish & ocean network.

Developing & Contributing

Thanks for contributing, appreciate all the help we can get. Feel free to make a pull-request, we will guide you along the way to make it mergeable. Here are some of our documented contributing guidelines.

We use npm 7 for this project, it's required to set up npm workspaces.

npm install

Getting started

First, run the development server:

pnpm run dev

Open http://localhost:3000 with your browser to see the result.

About Next.js

To learn more about Next.js, take a look at the following resources:

Project Structure

scan/
├─ .github/
├─ content/
├─ public/
├─ src/
│  ├─ components/
│  ├─ layouts/
│  ├─ pages/
│  │  ├─ slugs/*.tsx
│  │  └─ index.tsx
│  ├─ store/
│  └─ styles/
└─ cypress/

DeFi Scan project is structured with 2 core directories. Each pull request will likely carry significant changes into those directories.

Directory Description
/.github workflow for shift left automation
/content static code based content management system with type safety
/public static resources
/src/components top level components for a shared design language
/src/layouts top level layouts for shared page layout & components
/src/pages each page is associated with a route based on its file name
/src/store global state that is used in at least more than once
/app/styles tailwind css style configuration
/cypress E2E testing

End-to-end Testing

End-to-end testing; tests the entire lifecycle of DeFi Scan. All components and screen are integrated together as expected for real use cases. As such test are written for real usage narrative as a normal consumer would. They are placed in the /cypress directory, and we use Cypress to facilitate the testing.

Cypress is a modern end-to-end testing framework for web. It uses a sequential jest like approach for testing with automatic wait and retrofitted with many utilities for great testing quality of life. Utilities are further customized for DeFi Scan with our own construct. We set up a web environment to run end-to-end testing together with a local playground.

To facilitate fast and ephemeral testing culture, we use DeFi Playground. DeFi Playground is a specialized testing blockchain isolated from MainNet for testing DeFi applications. It uses regtest under the hood, you can npm run playground for the local playground environment or let it default to remote. Assets are not real, it can be minted by anyone. Blocks are generated every 3 seconds, the chain resets daily on remote playground.

IntelliJ IDEA

IntelliJ IDEA is the IDE of choice for writing and maintaining this library. IntelliJ's files are included for convenience with basic toolchain setup but use of IntelliJ is totally optional.

Security issues

If you discover a security vulnerability in DeFi Scan, please see submit it privately.

License & Disclaimer

By using DeFi Scan (this repo), you (the user) agree to be bound by the terms of this license.