vega-frontend-monorepo/apps/explorer
Sam Keen 4ef8218267
Feat/800 better proposal ux round 1 (#1223)
* Feat/800: Configured routes for different proposal types

* Feat/800: Refactored propose.tsx to be a hub for the new proposal routes

* Feat/800: Link style tweak for proposals guide

* Feat/927: Hydrating the new proposal forms

* chore: fix typings for shared components

* Feat/927: Proposal forms built with reusable components

* Feat/800: Updated network params, added new method to get param keys as well as values, updated generated types

* Feat/800: Updated and built more reusable proposal form components

* Feat/800: Removed old catchall file of reusable proposal form components

* Feat/800: Added utils for vote deadline and enactment timestamps

* Feat/800: Readded necessary 'color-scheme-dark' class for dark-theme date and datetime inputs

* Feat/800: Tweak to icon positioning on the dialog component

* Feat/800: Regenerated types for network params

* Feat/800: Added iso8601-duration package for working with API vote deadline and enactment data

* Feat/800: Reworked the proposal forms

* Feat/800: Couple of translation additions

* Feat/800: Another translation addition

* Feat/800: Raw proposal test (tests as per old proposal form test)

* Feat/800: Some basic proposal form tests

* Feat/800: Fixing small types error in test

* Feat/800: Updating simple proposal form tests

* Feat/800: Set up env-specific proposal docs links

* Feat/800: Deadlines to the bottom of proposal forms

* Feat/800: Another type error from API changes fixed

* Feat/800: Added the spam protection min tokens network param to proposal forms requests, and the min requirements now displays the larger value of spam protection or min proposer balance

* Feat/800: Network param value change now a textarea

* Feat/800: Improved way to pass docs url

* Feat/800: Added useful explorer links to proposal forms

* Feat/800: Show current value of selected network param in proposal form

* Feat/800: Removed wallet-confirmation buffer, suspect it is not necessary

* Feat/800: Condense vote and enactment ui into single component for simpler state management, memoised some stuff

* Feat/800: Set a default select option for the market selector

* Feat/800: For network params that aren't JSON, display the network param current value in a readonly text input rather than the syntax highlighter

* Feat/800: Corrected network param form network params

* Feat/800: Timestamp functions for closing, enactment and validation, with tests

* Feat/800: More translations

* Feat/800: Added validation options to proposal-form-vote-and-enactment-deadline.tsx, generally improved the component and added tests

* Feat/800: Improved workings of proposal-form-min-requirements.tsx and wrote tests

* Feat/800: Tests for the other reusable form components

* Feat/800: Improved tests for the proposal forms

* Feat/800: Corrected mistake in get-enactment-timestamp.ts

* Feat/800: Fixed type issues that were preventing spotting an error

* Feat/800: Added some extra docs links

* Feat/800: Using renamed Dialog passed in from useProposalSubmit

* refactor: network params to return an object

* fix: update net param form, remove old net params obj

* fix: check for params before rendering

* Feat/800: Rename and simplify isJson based off PR comment

* Feat/800: Small tweaks to timestamp helpers based on PR comments

* Feat/800: Removed proposal-docs-link.tsx

* Feat/800: Used bignumber for min-requirements calculation

* Feat/800: Update tests to work with merged network params branch

* Feat/800: Removed unnecessary translations splitting

* Feat/800: Removed unwanted test

* Feat/800: Removed unwanted tests

* Feat/800: Consistent arrow functions

* Feat/800: Sorted links

* Feat/800: Removed unnecessary typecasting

* Feat/800: Refactored routing

* Feat/800: Refactored mocking of proposal forms to use MockedProvider

* Feat/800: Correct response from the raw proposal submission test

* Feat/800: Removed console.logs added for debugging

* Feat/800: Result of running 'nx format:write'

* Feat/800: Cleaning up lint warnings

* Update apps/token/.env.stagnet3

Co-authored-by: Dexter Edwards <dexter.edwards93@gmail.com>

* Feat/800: Added extra test for docs link in the proposal-form-terms component

* Feat/800: Removed stray console.log

* Feat/800: Added basic render test for proposal-form-terms and cleaned up a bit

* Feat/800: Added tests for the correct form components for the different forms

* Feat/800: Split up the proposal-form-vote-and-enactment-deadline components inside the file to make things a bit more readable

* Feat/800: router config webpack chunk name tweak

* Feat/800: Lint issue fixed

* Feat/800: Fixed timing issue with get-[deadline]-timestamp tests

* Feat/800: Setting a system time in proposal-form-vote-and-enactment-deadline.spec.tsx that doesn't get affected by British Summer Time

* Feat/800: Skipping a cypress test as the newProposalButton no longer takes a user directly to a proposal form. Leaving it in the codebase as the test is very likely to be updated.

* Feat/800: Adding comment on why I've skipped a cypress test

Co-authored-by: Dexter <dexter@vega.xyz>
Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
Co-authored-by: Dexter Edwards <dexter.edwards93@gmail.com>
2022-09-23 11:10:13 +01:00
..
src Feat/800 better proposal ux round 1 (#1223) 2022-09-23 11:10:13 +01:00
.babelrc migrate stuff into new NX 2022-02-23 08:53:57 +00:00
.browserslistrc migrate stuff into new NX 2022-02-23 08:53:57 +00:00
.env Chore/more env config (#1363) 2022-09-16 12:32:44 +01:00
.env.capsule chore: sort out environement stuff (#1345) 2022-09-15 16:39:11 +00:00
.env.devnet chore: remove stagnet1, fix env vars for api endpoints (#1163) 2022-08-25 17:07:27 -07:00
.env.mainnet fix: cleanup more env things (#1383) 2022-09-18 11:15:05 +00:00
.env.stagnet3 chore: remove stagnet1, fix env vars for api endpoints (#1163) 2022-08-25 17:07:27 -07:00
.env.testnet Chore/more env config (#1363) 2022-09-16 12:32:44 +01:00
.env.vegacapsule fix (#1117): Network stats env (#1122) 2022-08-25 14:46:17 -07:00
.eslintrc.json Fix/1083: Update type generator (#1219) 2022-09-06 10:03:10 +01:00
index.d.ts Feat/dockerize frontends (#388) 2022-06-13 15:39:17 +01:00
jest.config.ts feat(#927) design update (#1201) 2022-08-30 21:35:46 -07:00
netlify.toml remove old explorer logic 2022-02-23 08:53:57 +00:00
postcss.config.js add basic tailwind setup 2022-03-04 17:11:56 +00:00
project.json feat(#927) design update (#1201) 2022-08-30 21:35:46 -07:00
README.md chore: remove stagnet1, fix env vars for api endpoints (#1163) 2022-08-25 17:07:27 -07:00
tailwind.config.js feat(#927) design update (#1201) 2022-08-30 21:35:46 -07:00
tsconfig.app.json feat(#927) design update (#1201) 2022-08-30 21:35:46 -07:00
tsconfig.json feat(#175): ui-toolkit links (#453) 2022-05-31 17:30:02 -07:00
tsconfig.spec.json feat(#927) design update (#1201) 2022-08-30 21:35:46 -07:00
webpack.config.js fix: remove redundant env settings from explorer (#732) 2022-07-08 15:23:28 +01:00

Explorer

Features

  • Transactions - Showing all transactions and decoded individual transactions
  • Search - Search for block number or transaction hash
  • Blocks - A list of the blocks on our chain and the transactions within each block
  • Assets - List of all assets on the Vega chain
  • Genesis - The initial Genesis configuration the network was started with
  • Governance - Current and past governance proposals
  • Markets - The markets currently open and expired on the Vega network
  • Network Parameters - The current network parameters
  • Parties - Searching for a specific party and the details for that party
  • Validators - The validator information in Vega and Tendermint

Development

First copy the configuration of the application you are starting:

cp .env.[environment] .env.local

Starting the app:

yarn nx serve explorer

Configuration

Example configurations are provided here:

For convenience, you can boot the app injecting one of the configurations above by running:

yarn nx run explorer:serve --env={env} # e.g. stagnet3

There are a few different configuration options offered for this app:

Flag Purpose
NX_CHAIN_EXPLORER_URL The URL of the chain explorer service for decoding transactions
NX_TENDERMINT_URL The Tendermint REST URL for the Vega consesus engine
NX_TENDERMINT_WEBSOCKET_URL The Tendermint Websocket URL for the Vega consensus engine
NX_VEGA_URL The GraphQl query endpoint of a Vega data node
NX_VEGA_ENV The name of the currently connected vega environment
NX_EXPLORER_ASSETS Enable the assets page for the explorer
NX_EXPLORER_GENESIS Enable the genesis page for the explorer
NX_EXPLORER_GOVERNANCE Enable the governance page for the explorer
NX_EXPLORER_MARKETS Enable the markets page for the explorer
NX_EXPLORER_ORACLES Enable the oracles page for the explorer
NX_EXPLORER_TXS_LIST Enable the transactions list page for the explorer
NX_EXPLORER_NETWORK_PARAMETERS Enable the network parameters page for the explorer
NX_EXPLORER_PARTIES Enable the parties page for the explorer
NX_EXPLORER_VALIDATORS Enable the validators page for the explorer

Testing

To run the minimal set of unit tests, run the following:

yarn nx test explorer

To run the UI automation tests with a mocked API, run:

yarn nx run explorer-e2e:e2e