vega-frontend-monorepo/apps/token
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 Feat/224 move token app into monorepo (#229) 2022-04-20 12:37:44 -07:00
.browserslistrc Feat/224 move token app into monorepo (#229) 2022-04-20 12:37:44 -07:00
.env fix: cleanup more env things (#1383) 2022-09-18 11:15:05 +00:00
.env.capsule fix: cleanup more env things (#1383) 2022-09-18 11:15:05 +00:00
.env.devnet Feat/800 better proposal ux round 1 (#1223) 2022-09-23 11:10:13 +01:00
.env.mainnet Feat/800 better proposal ux round 1 (#1223) 2022-09-23 11:10:13 +01:00
.env.stagnet3 Feat/800 better proposal ux round 1 (#1223) 2022-09-23 11:10:13 +01:00
.env.testnet Feat/800 better proposal ux round 1 (#1223) 2022-09-23 11:10:13 +01:00
.eslintrc.json Fix/1083: Update type generator (#1219) 2022-09-06 10:03:10 +01:00
client.graphql 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 add build netlify command and netlify.toml for token dapp (#302) 2022-04-26 07:32:23 -07:00
postcss.config.js Feat/224 move token app into monorepo (#229) 2022-04-20 12:37:44 -07: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 Feat/224 move token app into monorepo (#229) 2022-04-20 12:37:44 -07:00

The Vega token website

Control panel for your VEGA tokens

Screenshot 2021-12-11 at 06 32 51

Features

  • View vesting progress
  • Redeem VEGA tokens
  • Stake VEGA tokens
  • Withdraw tokens
  • Vote on proposals

Development

Starting the app:

yarn nx serve token

Configuration

Example configurations are provided here:

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

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

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

Flag Purpose
NX_APP_SENTRY_DSN The sentry endpoint to report to. Should be off in dev but set in live.
NX_APP_CHAIN The ETH chain for the app to work on. Should be mainnet for live, but ropsten for preview deploys.
NX_APP_VEGA_URL The GraphQL query endpoint of a Vega data node
NX_APP_DEX_STAKING_DISABLED Disable the dex liquidity page an show a coming soon message
NX_APP_FAIRGROUND Change styling to be themed as the fairground version of the website
NX_APP_INFURA_ID Infura fallback for if the user does not have a web3 compatible browser
NX_APP_HOSTED_WALLET_ENABLED If the hosted wallet is enabled or not. If so then allow users to login using the hosted wallet
NX_APP_ENV Change network to connect to. When set to CUSTOM use CUSTOM_* vars for network parameters
NX_ETH_URL_CONNECT (optional) If set to true the below two must also be set. This allows siging transactions in brower to allow to connect to a local ganache node through cypress
NX_ETH_WALLET_MNEMONIC (optional) The mnemonic to be used to sign transactions with in browser
NX_LOCAL_PROVIDER_URL (optional) The local node to use to send transaction to when signing in browser

Example configs:

For example configurations, check out our netlify.toml.

Testing

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

yarn nx test token

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

yarn nx run token-e2e:e2e

See also