Toolkit for building apps that interact with Vega
Go to file
Matthew Russell 29cd7dd2e4
Feat/104 withdraws (#263)
* add withdraw page

* add create page and withdraws lib with basic components

* add create withdrawal functionality, add withdrawal dialog

* re arrange pages so we have a pending page with a list of withdrawals and a withdraw page with the form

* handle withdrawal completion

* add withdraw dialog so withdraw is completed in one flow

* rename and arrange prop getter function to avoid use of any

* tidy up and make eth transaction and vega transaction hooks follow similar patterns

* make complete withdraw hook fetch approval, combine hooks for full flow

* delete unused file

* add accounts to query to get use max withdraw button

* use ag grid fro withdrawals list

* format amount in grid

* ensure party has id field for cache

* update to use t i18n function

* change complete status to better match values of WithdrawalStatus

* add asset lib file for type guard

* share queries for withdraws lib

* move web3 related hooks to the web3 lib and make web3 lib buildable

* add unit test for use-complete-withdraw

* add test for use-withdraw

* add e2e scenarios for withdrawals

* don render custom no withdrawals message and use ag grid prop

* make withdraw form take ethereum account as prop

* add test config, update withdraw form to handle min/max amounts, add unit test for withdraw form

* fix rendering 0 if not pending withdrawals

* use controlled component for select box

* tidy up async parts of tests, add test for withdraw-manager

* update withdraw dialog to use map for different tx states

* add fallback etherscan link, add test for withdraw-dialog.spec.tsx

* rename erc20 query in token app, change page structure to /withdraw and /withdrawals

* change linked vegawallet-service-api-client to newly published version

* ignore not implemented withdrawals e2e tests

* make vega tx pending and requested states the same, for now, until tx confirmation work is done

* Add some unit tests for determine-ids and remove0x

Neither are critical, but both are libs expected to be shared between
projects so some unit tests will hopefully ensure projects all have the
same expectations about how the functions act.

- Add 1 determine-ids test
- Add a few remove-0x tests
- Update determine-ids to use remove-0x
- Add a comment describing why i18n is what it is

* modify cache with client only field for tracking foreign chain progress

* move withdrawals-list to lib, add useWithdrawals hook

* add container component for withdrawals page

* add unit tests for withdrawals-table

* add some tests for use-withdrawals hook

* revert changes to generated files in other libs and apps

* update withdrawals scenarios

* resolve pr comments

* update page containers to use render prop rather than children

* delete unused files

* remove transaction dialog story

Co-authored-by: Ditmir-Vega <ditmir@vega.xyz>
Co-authored-by: Edd <edd@vega.xyz>
2022-04-26 19:51:39 -07:00
.github/workflows run nx format (#295) 2022-04-25 15:03:58 +01:00
.husky rrun nx commands through yarn 2022-03-02 12:21:58 +00:00
.storybook Add storybook/addon-a11y 2022-03-07 13:57:06 -08:00
.vscode [#185] Add accounts table (#193) 2022-04-06 10:48:05 -07:00
apps Feat/104 withdraws (#263) 2022-04-26 19:51:39 -07:00
libs Feat/104 withdraws (#263) 2022-04-26 19:51:39 -07:00
tools Fix IPFS change detection 2022-04-13 09:35:09 +00:00
.editorconfig Normalize line endings (#207) 2022-04-06 11:59:51 +01:00
.eslintrc.json Test for market table (#238) 2022-04-11 16:35:38 +01:00
.gitattributes Normalize line endings (#207) 2022-04-06 11:59:51 +01:00
.gitignore #29 Add market-list-table 2022-03-18 13:13:14 +01:00
.nvmrc Add .nvmrc and engine, set node version to 16.14.0 2022-02-17 13:43:41 +01:00
.prettierignore #29 Add market-list-table 2022-03-18 13:13:14 +01:00
.prettierrc Create a Mono-repo for DeFiUI + ui toolkit using nx 2022-02-11 15:02:11 +01:00
.sentryclirc Chore/sentry (#163) 2022-03-29 18:29:29 +01:00
babel.config.json Create a Mono-repo for DeFiUI + ui toolkit using nx 2022-02-11 15:02:11 +01:00
CODEOWNERS add code owners 2022-02-23 08:53:57 +00:00
jest.config.js Create a Mono-repo for DeFiUI + ui toolkit using nx 2022-02-11 15:02:11 +01:00
jest.preset.js Create a Mono-repo for DeFiUI + ui toolkit using nx 2022-02-11 15:02:11 +01:00
LICENSE Create a Mono-repo for DeFiUI + ui toolkit using nx 2022-02-11 15:02:11 +01:00
migrations.json Fixes for workflows (#291) 2022-04-22 17:51:18 -07:00
netlify.toml Remove custom ignore (#221) 2022-04-07 12:24:04 +01:00
nx.json [#168] Add static app to host AlphaLyrae font 2022-03-31 09:11:29 +02:00
package.json Feat/104 withdraws (#263) 2022-04-26 19:51:39 -07:00
README.md Update README with set up instructions (#279) 2022-04-25 10:35:01 -07:00
tsconfig.base.json Feat/104 withdraws (#263) 2022-04-26 19:51:39 -07:00
workspace.json Feat/104 withdraws (#263) 2022-04-26 19:51:39 -07:00
yarn.lock Feat/104 withdraws (#263) 2022-04-26 19:51:39 -07:00

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.

🧱 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.

Tailwind CSS config

The Tailwind CSS config contains theme that align default config with Vega design system.

💻 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 lauch app with different network.

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 http://localhost:4200/. The app will automatically reload if you change any of the source files.

Running tests

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.

Similarly nx e2e my-app will execute the end-to-end tests with Cypress., and nx affected:e2e will execute just the end-to-end tests affected by a change.

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:

  1. Prepare vegacapsule. Follow the Vegacapsule instructions
  2. Build the explorer frontend application
  3. Start the explorer frontend application with the .env.vegacapsule env file
  4. Go to http://localhost:3000 in your browser

📑 License

MIT