e0bcfe7bbe
* Making a start with react-window-infinite-loader for the blocks infinite scrolling
* WIP block explorer infinte scroll
* WIP pairing
* pairing tidying
* Applied refetch url params more cleanly, moved useFetch to react-helpers lib
* Add notice of new blocks created since page load, some cleanup of blocks-infinite-list.tsx component
* Attempting a refresh of the 'new blocks' value in blocks-refetch.tsx
* Correctly updating state based on previous value
* Update libs/react-helpers/src/hooks/use-fetch.ts
Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
* Update libs/react-helpers/src/hooks/use-fetch.ts
Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
* Update apps/explorer/src/app/components/blocks/blocks-refetch.tsx
Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
* Cleanup from convos and PR
* Prettier formatting
* struggling with websocket tests
* struggling with websocket tests
* Progress on websocket tests for blocks-refetch.tsx
* Tests for blocks-refetch
* Tests for blocks-infinite-list
* Scroll test for blocks-infinite-list
* Defined NOOP in blocks-infinite-list.tsx
* Separate web sockets for each test
* Separate web sockets for each test
* Tweaked e2e tests to account for blocks taking longer to load
* fix tests
* Removed nx knowledge of empty simple-trading-app-e2e for now
* mock at use fetch level instead of at fetch level
* fix edge cases and add further tests
* fix failing e2e tests
* rename test
* Update apps/explorer-e2e/src/support/pages/blocks-page.ts
* Update apps/explorer-e2e/src/support/pages/blocks-page.ts
* rename
* test: use explicit wait for rather than times
* style: remove console
* test: correct env file
* Revert "test: correct env file"
This reverts commit
|
||
---|---|---|
.github | ||
.husky | ||
.storybook | ||
.vscode | ||
apps | ||
libs | ||
scripts | ||
tools | ||
.editorconfig | ||
.eslintrc.json | ||
.gitattributes | ||
.gitignore | ||
.nvmrc | ||
.prettierignore | ||
.prettierrc | ||
.sentryclirc | ||
babel.config.json | ||
CODEOWNERS | ||
jest.config.js | ||
jest.preset.js | ||
LICENSE | ||
migrations.json | ||
netlify.toml | ||
nx.json | ||
package.json | ||
README.md | ||
tsconfig.base.json | ||
workspace.json | ||
yarn.lock |
Vega front-end monorepo
The front-end monorepo provides a toolkit for building apps that interact with Vega, as well as the apps themselves.
This repository is managed using Nx.
🔎 Applications in this repo
Block explorer
The Vega block explorer provides an interface that allows users to search for and see transactions, blocks, parties, assets, markets and more on the Vega chain.
Trading UI
The trading interface built based on a component toolkit. It will provide a way for participants to interact with markets and provide resources for others to build additional open-source user interfaces.
Token
The utlity dApp for interacting with the Vega token and using its' utility. This includes; delegation, nomination, governance and redemption of tokens.
Explorer
The block explorer for the Vega network, showing details of raw chain states and the state of markets on the Vega network.
Stats
An application for the status of the Vega network. Showing block height and other network activity.
Static
Hosting for static content being shared across apps, for example fonts.
🧱 Libraries in this repo
UI toolkit
The UI toolkit contains a set of components used to build interfaces that can interact with the Vega protocol, and follow the design style of the project.
It contains a storybook that can be served with yarn nx run ui-toolkit:storybook
.
Tailwind CSS config
The Tailwind CSS config contains theme that align default config with Vega design system.
Cypress
For shared Cypress logic, commands and steps.
Web3
A ulitity library for connecting to the Ethereum network and interacting with Vega Web3 contracts.
React Helpers
Generic react helpers that can be used across multilpe applications, along with other utilties.
💻 Develop
Set up
Check you have the correct version of Node. You can install NVM to switch between node versions. Then NVM install
.
Before you build you will need to yarn install
in the root directory.
The repository includes a number of template .env files for different networks. Copy from these to the .env file before serve
to launch app with different network. You can serve any application with yarn nx run <name-of-app>:serve
.
Build
Run nx build my-app
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run nx serve my-app
for a dev server. Navigate to the port specified in app/<project-name>/project.json
. The app will automatically reload if you change any of the source files.
Running tests
Run yarn nx run <my-app>-e2e:e2e
to execute the e2e tests with cypress, or nx affected:e2e
will execute just the end-to-end tests affected by a change. You can use the --watch
flag to open the cypress tests UI in watch mode, see cypress executor for all CLI flags.
Run nx test my-app
to execute the unit tests with Jest, or nx affected:test
to execute just unit tests affected by a change. You can also use --watch
with these test to run jest in watch mode, see Jest executor for all CLI flags.
Formatting
In CI linting, formatting and also run. These checks can be seen in the CI workflow file.
- To fix linting errors locally run
yarn nx lint --fix
- To fix formatting errors local run
yarn nx format
- For either command you may use
--all
to run across the entire repository
Further help with Nx
Visit the Nx Documentation to learn more.
Vegacapsule
Explorer
Follow the following steps to start using a local network with the Vega Explorer:
- Prepare vegacapsule. Follow the Vegacapsule instructions
- Build the explorer frontend application
- Start the explorer frontend application with the
.env.vegacapsule
env file - Go to http://localhost:3000 in your browser
If you simply want to run Explorer locally, without using a local network:
cd apps/explorer && cp .env.testnet .env.local
yarn nx run explorer:serve