Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Blockchain.com's open source, non-custodial Wallet

License

NotificationsYou must be signed in to change notification settings

Dzojtek1/blockchain-wallet-v4-frontend

 
 

Repository files navigation

License: AGPL v3js-standard-stylecode style: prettierCodechecks

Blockchain.com Wallet

Be Your Own Bank atlogin.blockchain.com.Pleasecontact support if you have any issues using the wallet.

About

This repo contains the three codebases/packages listed below.

Packages

Local Development

  1. Ensure Node version >= 14.16 is installed. UsingNVM is recommended.
  2. From the project root, run the following command to install dependencies:./setup.sh.
  3. Start the application in development mode:yarn start
  4. The frontend application will now be accessible via browser atlocalhost:8080

If you require the application to run locally over HTTPS, follow the instructionshere.You can disable SSL by setting theDISABLE_SSL env param totrue with any start command. (e.g.DISABLE_SSL=true yarn start:staging)

Windows Support

To ensure proper support for Windows, please take the following actions before running the above setup instructions.

  1. Open a Powershell window with rights elevated to an Administrator.
  2. Runnpm install -g windows-build-tools. This will install Python 2.7 and Visual C++ Build Tools which are required to compile some native Node modules.
  3. Ensure Python has been added to your environment variables by opening a cmd prompt and typingpython. If you get aCommandNotFoundException message, add the folder%USERPROFILE%\.windows-build-tools\python27 to your environment variables.

Tips & Useful Commands

  1. To completely remove all dependencies and artifacts runyarn clean
  2. To add/remove an NPM package runyarn add oryarn remove in the package folder. After installing or uninstalling a NPM package, runyarn in the root folder to re-init the project
  3. All development specific dependencies should be installed as adev-dependency in the top levelpackage.json viayarn i --save-dev [package-name]
  4. All application specific dependencies should be installed in the specific packagespackage.json viayarn i --save [package-name]

Running Environments Locally

The frontend application can be ran locally with different build configurations found inconfig/env. The following commands are available:

  • yarn start Runs the application with thedevelopment.js configuration file
  • yarn start:dev Runs the application with thedevelopment.js configuration file
  • yarn start:staging Runs the application with thestaging.js configuration file
  • yarn start:prod Runs the application with theproduction.js configuration file
  • yarn run:prod Runs the application mimicking the production environment entirely (i.e. code is bundled and minified, HMR is disabled,Express server is used (./server.js) and theproduction.js configuration file is loaded)

Notes:

  • Developers will need to manually create thedevelopment.js andstaging.js files
  • Custom application runtimes are possible by modifying the corresponding environment files found in theconfig/env folder

Useful Chrome Extensions

Release Process

Prerequisites

To be able to create a release follow these steps starting with "Obtain a personal access token...":https://github.com/release-it/release-it#github-releases

GITHUB_TOKEN should be saved asRELEASE_IT_TOKEN instead in your bash_profile or wherever you keep env variables

You'll need git changelog to generate the history since the last release:

Release Steps

  1. From the tip of thedevelopment branch, runyarn release
  2. Answer the questions prompted via CLI, accepting the defaults for each
  3. Once completed, this will create a new tag which will trigger a builds
  4. Once builds have finished, deploy the images to desired environments
  5. Test and verify the latest changes in desired environments
  6. Create PR to merge the HEAD ofdevelopment intomaster
  7. Merge PR tomaster so thatmaster always reflects what is currently in production

Code Quality

  • yarn vet Runs Prettier, lint JS, lint CSS and finally all unit tests

Linting

We follow the rules outlined by theJavascript Standard Style as well as a few React specific rules.

Code linting is handled byESLint. The following commands are available:

These IDE plugins/packages assist with complying with these lint rules while developing:

Prettier

We follow all standard rules that are provided by Prettier. The following commands are available:

It is recommended to setup a Prettier plugin for your IDE plugins/packages that will automatically prettify your files on save.

When installing the plugin for VS Code make sure you are onv3.7.0 or lower

Unit Tests

Testing is done viaJest andEnzyme.

Running Tests

Note: if you see errors that Jest cannot resolve package imports, you may need to runyarn test before testing specific packages (eg,yarn test:frontend)

Running Tests via Watch

Debugging Tests

To enable debugging for unit tests via the Chrome browser, run the following commands:

After running one of the above commands, Node will wait for a debugger to attach before starting the tests.To attach, simply open your browser and go tochrome://inspect and click on "Open Dedicated DevTools for Node",which will give you a list of available node instances you can connect to. Click on the address displayed in the terminal(usually localhost:9229) and you will be able to debug tests using Chrome's DevTools.

Updating Snapshot Tests

We are snapshot testing UI some components. Here are the commands to update them when necessary:

Code Coverage

To generate code coverage reports viaIstanbul, the following commands are available:

Depending upon which coverage report was ran, the results can be found in the following directories:

  • coverage/index.html
  • coverage/blockchain-info-components/index.html
  • coverage/blockchain-wallet-v4/index.html
  • coverage/blockchain-wallet-v4-frontend/index.htmlSimply open theindex.html file in your browser to view.

TypeScript

TypeScript is supported and should be used when adding new code. It's also recommended to replace legacy JS with TS when time allows.

TS Coverage

We are usingCodechecks andTypecov for coverage reporting. Coverage is automatically analyzed for PRs and the following command is available.

  • yarn codechecks

Code Bundle Analysis/Reports

To visualize and interact with the tree of the production code bundles files:

  • yarn analyzeOnce completed, a browser will automatically open with the results.

Storybook

Storybook is used by theblockchain-info-components andblockchain-wallet-v4-frontend packages to interactively view, develop and test components.The following commands are available:

  • storybook:build-wallet: Builds the static storybook assets for wallet specific components (if base components is running locally, storybook will put wallet and base components into the same storybook UI)
  • storybook:build-base: Builds the static storybook assets for base shared components
  • storybook:serve-wallet Builds storybook assets and then serves them locally atlocalhost:6006
  • storybook:serve-base Builds storybook assets and then serves them locally atlocalhost:6007
  • storybook:deploy-wallet Builds storybook assets and then serves them togithub pages.You will probably need to runcd ./packages/blockchain-info-components && git remote add origin git@github.com:blockchain/blockchain-wallet-v4-frontend.git first.
  • storybook:deploy-base Builds storybook assets and then serves them togithub pages.You will probably need to runcd ./packages/blockchain-info-components && git remote add origin git@github.com:blockchain/blockchain-wallet-v4-frontend.git first.

If the deploy begins to fail, deleting the static build file before redeploy will likely help.

Contribute

Please review to theWiki

Security

Security issues can be reported to us in the following venues:

About

Blockchain.com's open source, non-custodial Wallet

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript75.7%
  • JavaScript21.3%
  • CSS2.8%
  • Other0.2%

[8]ページ先頭

©2009-2025 Movatter.jp