Please use https://github.com/pertinaxwallet/web-extension
This repository contains source code for web-extension that allow interaction with Free Ton (freeTON) blockchain from your browser.
- 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
Testing system is based on selenium and mochajs for e2e testing and testing-library for components
To test need to run:
npm run test
- rollup.js for building processes
- svelte.js for javascript framework
- chota for style
- idb for internal db
- ton-client-js for interaction with Free TON blockchain
- safemultisig for multisig wallet smart contract
- webextension-polyfill for cross browser supporting
- gulp.js for building distributives for browsers
- selenium for e2e testing
- testing-library for component testing
Anyone can participate in contribution. Pull request (PR) is welcome.
This repository provides by Apache License 2.0
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
All documentation you can find by this link
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
- 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
- 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