Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

Web-extension wallet for Everscale blockchain. Fast, secure solution that will help you to interact with Everscale blockchain in the modern format. Web3-like library for Dapp, own secure keystore format, etc.
https://github.com/pertinaxwallet/web-extension

blockchain cryptocurrency cryptowallet dapp decentralized ever everscale web3

Last synced: about 2 months ago
JSON representation

Web-extension wallet for Everscale blockchain. Fast, secure solution that will help you to interact with Everscale blockchain in the modern format. Web3-like library for Dapp, own secure keystore format, etc.

Awesome Lists containing this project

README

        

# Pertinax wallet



This repository contains source code for web-extension that allow interaction with everscale blockchain from your browser.

# Security

* Based on EVER 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](https://developer.chrome.com/docs/extensions/mv3/security/)

# Browser supporting

* Chrome [install](https://chrome.google.com/webstore/detail/mtw/neopaklikggjkdflfmfebibdpcebomfh)
* Firefox [install](https://github.com/pertinaxwallet/web-extension/releases)
* Edge [install](https://microsoftedge.microsoft.com/addons/detail/mtw-%D0%BC%D0%BE%D0%B9-ton-%D0%BA%D0%BE%D1%88%D0%B5%D0%BB%D0%B5%D0%BA/oooiblbdpdlecigodndinbpfopomaegl)
* Opera [install](https://github.com/pertinaxwallet/web-extension/releases)
* Safari [install](https://github.com/pertinaxwallet/web-extension/releases)

# Architecture

## Application

## User flow

# Tests

Testing system is based on [selenium](https://www.selenium.dev/) and [mochajs](https://mochajs.org/) for e2e testing and [testing-library](https://testing-library.com/docs/svelte-testing-library/intro) for components

To test need to run:

```bash
npm run test
```

# Technical stack

* [rollup.js](https://rollupjs.org/guide/en/) for building processes
* [svelte.js](https://svelte.dev/) for javascript framework
* [chota](https://alexxnb.github.io/svelte-chota) for style
* [idb](https://www.npmjs.com/package/idb) for internal db
* [ton-client-js](https://github.com/tonlabs/ton-client-js) for interaction with Everscale blockchain
* [safemultisig](https://github.com/tonlabs/ton-labs-contracts/tree/master/solidity/safemultisig) for multisig wallet smart contract
* [webextension-polyfill](https://github.com/mozilla/webextension-polyfill) for cross browser supporting
* [gulp.js](https://gulpjs.com/) for building distributives for browsers
* [selenium](https://www.selenium.dev/) for e2e testing
* [testing-library](https://testing-library.com/docs/svelte-testing-library/intro) for component testing

# Contribution

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

# License

This repository provides by [Apache License 2.0](LICENSE)

# 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](https://hub.docker.com/r/tonlabs/local-node)

To run local EVER node you have to install [docker](https://docs.docker.com/engine/install/)

To start the local EVER node just run:

```
npm run run-tonos
```

# Documentation

All documentation you can find by this [link](https://pertinaxwallet.com)

# 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](/src/assets/i18n/en.json)

# 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 [ | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=] | from-git]
```

Usually after common commit needs to use `patch`

```
npm version patch
```

* Create builds for browsers

```
npm run build
```

# Requested features

- [x] Multi accounts
- [x] 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
- [ ] 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 Everscale blockchain