Skip to content

Latest commit

 

History

History
209 lines (157 loc) · 5.72 KB

README.md

File metadata and controls

209 lines (157 loc) · 5.72 KB

This repository is archived

Please use https://github.com/pertinaxwallet/web-extension

My TON wallet (MTW)

This repository contains source code for web-extension that allow interaction with Free Ton (freeTON) blockchain from your browser.

Security

  • Based on TON SDK with minimal required dependencies
  • Wallet keys decrypt only when needs and via in-memory password, that stores in the one variable
  • IndexedDb stores only common information, like transaction history, etc.
  • Key pair is encrypted with AES-GCM
  • Password checking is provided by the comparison of a random hex key with length 256 that is stored in indexedDb and its encrypted hash that was obtained by AES-GCM with password inclusion. In this case to get master password needs to decrypt encrypted data that must be equal to the hex string by 256 length
  • Code develops accordance with state-of-the-art security standards

Browser supporting

Architecture

Application

User flow

Tests

Testing system is based on selenium and mochajs for e2e testing and testing-library for components

To test need to run:

npm run test

Technical stack

Contribution

Anyone can participate in contribution. Pull request (PR) is welcome.

License

This repository provides by Apache License 2.0

Distribution and mode for developers

To prepare environment need to run:

npm i

To run developer mode:

npm start

To prepare build need to run:

npm run dist

This command will generate a zip file for each browser.

For the best developer environment we recommend to use launch tonlabs/local-node

To run local TON node you have to install docker

To start the local TON node just run:

npm run run-tonos

Documentation

All documentation you can find by this link

Translations

For now the extension is available on the followed languages:

  • English
  • Arabic
  • Amharic
  • Bulgarian
  • Bengali
  • Catalan
  • Czech
  • Danish
  • German
  • Greek
  • Spanish
  • Estonian
  • Persian
  • Finnish
  • Filipino
  • French
  • Gujarati
  • Hebrew
  • Hindi
  • Croatian
  • Hungarian
  • Indonesian
  • Italian
  • Japanese
  • Kannada
  • Korean
  • Lithuanian
  • Latvian
  • Malayalam
  • Marathi
  • Malay
  • Dutch
  • Norwegian
  • Polish
  • Portuguese (Brazil)
  • Portuguese (Portugal)
  • Romanian
  • Russian
  • Slovak
  • Slovenian
  • Serbian
  • Swedish
  • Swahili
  • Tamil
  • Telugu
  • Thai
  • Turkish
  • Ukrainian
  • Vietnamese
  • Chinese (China)
  • Chinese (Taiwan)

If you are native speaker on any other language and can help with translation, please use this file as source

Steps for a new release

  • Run tests
  npm run test
  • Create a commit with a description

  • Increase a version in package.json and manifest.json and update CHANGELOG file

  npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=<prerelease-id>] | from-git]

Usually after common commit needs to use patch

  npm version patch
  • Create builds for browsers
  npm run build

Requested features

  • Multi accounts
  • Dapp connector for the signing transactions, the signing messages, the encrypt/decrypt messages
  • Creating multisign wallet (many owners, requirement count more than 0)
  • Adding tokens and interactions with them
  • DePools supporting
  • Loading ABI for the smart contract interaction
  • Smart contract editing/compiling/deploying right from the web extension
  • Mobile version for IOS/Android platforms with the same functionality as in browsers
  • Qr codes for the payment system via the mobile version (the payment sending, ask payment, the deep link)
  • Onboarding library for Dapp for the quick installation of the web extension or the mobile version
  • Swipe operations
  • DEX supporting
  • Buying on external exchanges
  • Supporting of easy conversion between currencies
  • Hard wallet supporting
  • Fishing blacklist with the voting process on Free TON blockchain