diff --git a/.github/ISSUE_TEMPLATE/bug-template.md b/.github/ISSUE_TEMPLATE/bug-template.md index 60b340a520..7d42c351ec 100644 --- a/.github/ISSUE_TEMPLATE/bug-template.md +++ b/.github/ISSUE_TEMPLATE/bug-template.md @@ -1,8 +1,8 @@ --- name: Bug Template -about: Bug Template. Every correct-formed issue gets +1 token bonus. +about: Something looks broken title: '' -labels: '' +labels: 'bug' assignees: '' --- @@ -26,6 +26,12 @@ assignees: '' - Browser: - OS: +## Your version + +- [ ] latest +- [ ] not latest (please try to upgrade first) +- [ ] not sure + ## Does this affect atomic swap flow? - [ ] yes diff --git a/.github/ISSUE_TEMPLATE/complex-manual-test.md b/.github/ISSUE_TEMPLATE/complex-manual-test.md deleted file mode 100644 index a3f5adb6bc..0000000000 --- a/.github/ISSUE_TEMPLATE/complex-manual-test.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -name: Complex Manual Test -about: выполнять желательно после каждого билда. Прошел тест? Улучши его, добавь чекбоксы -title: '' -labels: '' -assignees: '' - ---- - -**базовый тест (до 10 минут)** -- [ ] 1. зашел на testnet.swap.online, создал ордер SELL BTC , BUY X (вместо X любой рандомный коин, например ETH) -- [ ] 1.1 увидел сразу собственный ордер в спсике своих ордеров -- [ ] 2.0. с другого браузера этот ордер увиедел перейдя по кнопке share -- [ ] 2.1. напрвления "ю бай" и "ю селл" в обоих браузерах показываются нормально а не перепутано -- [ ] 3. куллер не шумит -- [ ] 4. еслли денег достаточно то доступен "плей" -- [ ] 5. нажали "плей" (с браузера яндекс), пошел свап -- [ ] 5.1. в течении нескольких секунд у маркетмейкера появилось уведомление, что кто то хочет начать свап -- [ ] 6.1. нажали крестик "отменить свап" отмена сработала у обоих корректно -- [ ] 6.2 кто то другой попробовал запустить этот свап и не сммог -- [ ] 7. подождали сколько то секунд, начался свап корректно -- [ ] 8. все шаги свапа выполнились - - - -**тест с мобилой (до 10 минут)** -- [ ] 9.1 в андроиде создается оредр на продажу 1 свап за 0.00015 btc -- [ ] 9.2 в браузере на компе он виден сразу -- [ ] 9.3 клиент вбраузере нажимает плей -- [ ] 9.4 сразу приходит уведолмнеие на андроид -- [ ] 9.5 ждем пока свап закончится -- [ ] 9.6 свап закончисля - -**тест частичного закрытия** -- [ ] 10. маркетмейеер создает ордер указывает галочку частичного закрытия -- [ ] 10.1. ордер появился у второго человека -- [ ] 10.2. если зайти на страницу с партиалскложуре и ввести сумму меньшую чем созданный ордер то появится сумма сколько человек полуит. -- [ ] 10.3. сумма корректная (посчитано в калькуляторе в ручную совпадает с тем что показывает) -- [ ] 10.4 при нажатии на старт приходит уведомление маркетмейкеру, он нажимает на отмену и свап не начинается. пользователь добавляет этот оредр в игнор и котировка пересчитывается опираясь на другой ордер -- [ ] 10.5 при нажатии на галочку (маркетмейкре согласился) начинается и завершается обычный свап -- [ ] 10.6 проверить, что в истории все пришло верно как на калькуляторе - - -**тест маркетмейкера (до 5ти минут)** -- [ ] 10.1 в браузере создается ордер на продажу 1 свап за 0.00015 BTC -- [ ] 10.2 в браузере создается ордер на покупку 1 свап за 0.0001 BTC (дешевле чем на продажу) -- [ ] с browserstack заходит человек и выполняет оредр 10.1 -- [ ] одновременно из андроида пытаемся выполнить ордер 10.2 -- [ ] маркетмейкер ничего не делает по идее должен выполнится ордер 10.1, а 10.2 отказатся - -**тест альтернатив дестинейшин адрес** -//todo - -**прочие тесты (нужно расписать подробнее)** -- [ ] тест с альтернатив дестинейшин адрес -- [ ] тест с отсутсвием биткоина на счету -- [ ] тест с нулевыми балансами -- [ ] элемент "копировать адрес" работает -- [ ] элемент "обновить баланс" работает -- [ ] если двое одновременно пытаются стартануть со мной свап, то один из них отменится? -- [ ] Проверка кнопок социальных сетей -- [ ] Проверка кнопки уведомлений -- [ ] Проверка суммы переводов в историях -- [ ] Проверка возврата средств при истечении 180 минут при отмены подписания контракта -- [ ] Проверка актуальности ссылок в подвале сайта -- [ ] Проверка стандартной операции отправки валюты -- [ ] я добавил 1 чекбокс к этому тесту, чтоб улучшить покрытие -- [ ] я добавил 3 чекбокса к этому тесту, чтоб улучшить покрытие diff --git a/.github/ISSUE_TEMPLATE/improvement-template.md b/.github/ISSUE_TEMPLATE/improvement-template.md index c1d13d56b2..e35d6381a1 100644 --- a/.github/ISSUE_TEMPLATE/improvement-template.md +++ b/.github/ISSUE_TEMPLATE/improvement-template.md @@ -1,6 +1,6 @@ --- name: Improvement Template -about: Improvement Template. Every correct-formed issue gets +1 token bonus. +about: Something needs to be improved title: '' labels: '' assignees: '' @@ -8,14 +8,7 @@ assignees: '' --- -# Problem +# Suggestion for improvement -(What is wrong now? What is working not well?) +(What is working not well? What we need to do in order to implement this feature?) - -# Task - -(What we need to do in order to implement this feature?) - - -# Estimate time of implementation diff --git a/.github/ISSUE_TEMPLATE/main-manual-test.md b/.github/ISSUE_TEMPLATE/main-manual-test.md deleted file mode 100644 index b52ddad63d..0000000000 --- a/.github/ISSUE_TEMPLATE/main-manual-test.md +++ /dev/null @@ -1,23 +0,0 @@ - -**Send all coins with wallet** -- [ ] 1. ethToken -- [ ] 2. eth -- [ ] 3. btc - -**Swap browser2browser** -- [ ] 1. swap - btc2eth (balance - btc: full, eth:full) -- [ ] 2. swap - btc2eth (balance - btc: 0, eth:0) - -- [ ] 3. swap - btc2ethToken (balance - btc: full, eth:full) -- [ ] 4. swap - btc2ethToken (balance - btc: 0, eth:0) - -**Swap browser2bot** -- [ ] 1. swap - btc2eth (balance - btc: full, eth:full) -- [ ] 2. swap - btc2eth (balance - btc: 0, eth:0) -- [ ] 3. swap - eth2btc (balance - btc: full, eth:full) -- [ ] 4. swap - eth2btc (balance - btc: 0, eth:0) - -- [ ] 5. swap - btc2ethToken (balance - btc: full, eth:full) -- [ ] 6. swap - btc2ethToken (balance - btc: 0, eth:0) -- [ ] 7. swap - ethToken2btc (balance - btc: full, eth:full) -- [ ] 8. swap - ethToken2btc (balance - btc: 0, eth:0) diff --git a/.github/ISSUE_TEMPLATE/new-blockchain-manual-test.md b/.github/ISSUE_TEMPLATE/new-blockchain-manual-test.md deleted file mode 100644 index 0293939ee6..0000000000 --- a/.github/ISSUE_TEMPLATE/new-blockchain-manual-test.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -name: New blockchain Manual Test -about: тесткейс который позволяет протестировать полностью работает ли обмен на новом - блокчейне -title: '' -labels: '' -assignees: '' - ---- - -**подготовка к тестированию** -- [ ] максимально очистите данные браузера: кэш, куки, local storage. -- [ ] после сброса данных браузеров откройте в новой вкладке тестируемый адрес. - -**проверка создания адреса** -- [ ] при первом посещении главной станицы появляется модальное окно с приватными ключами и с предложением сохранить их двумя способами: сохранить файл с ключами или сделать скриншот окна. -- [ ] при нажатии на кнопку скачивания ключей браузер начинает автоматическую загрузку файла. -- [ ] при нажатии на кнопку "I saved the keys in a safe place" появляется дополнительное модальное окно для финального подтверждения сохранения ключей. -- [ ] при нажатии на нкопку "No" возвращается предыдущее модальное окно приатными ключами и предложением их сохранить. -- [ ] при нажатии на кнопку "Yes" появляется модальное окно с информацией об отказе от ответстенности в случе утери ключей и с кнопками для их сохранения. -- [ ] при нажатии на кнопку "Next step" открывается форма для проверки сохранненых вами ключей. -- [ ] при вводе ключей и их удачной проверке появляется кнопка "go to the site" -- [ ] при нажатии на кнопку "go to the site" открывается стартовая страница Wallet со списком адресов криптовалюты с 0 балансом. - -**проверка ввода и вывода средств** -- [ ] я отправил деньги извне и они пришли на баланс -- [ ] при нажатии на send показывается форма для ввода адреса и суммы, при этом показано сколько доступно для перевода -- [ ] если ввести сумму меньшую чем минимально возможная отправка то покажется ошибка -- [ ] если ввести сумму большую чем баланс то покажется ошибка -- [ ] форма не принимает левые данные кроме числа -- [ ] при нажатии на кнопку отправки появляется прелоадер -- [ ] как только транзакция замайнится прелоадер исчезает -- [ ] транзакция на отправку видна в истории - -**создание ордера на продажу едениц криптовалюты за биткоин** -- [ ] на странице кошелька есть кнопка SWAP, которая означает что можно поменять эту крипту на другую -- [ ] заходим на в свап и виден ордербук (таблица с обьявлениями на покупку и продажу) -- [ ] видна кнопка create order при нажатии на нее появляется форма для создания ордера -- [ ] в форме виден мой доступный баланс и он корректный -- [ ] я хочу продать 10 едениц за 0.1 биткоин, ввожу данные в sell 10 , в buy 0.1 btc автоматически устанавливается курс 100 едениц / BTC -- [ ] я хочу продать больше чем у меня есть, появляется ошибка -- [ ] если поменять курс то поменяется поле buy, а поле сколько продать (sell) остается неизменным -- [ ] при нажатии далее все данные указаны верно -- [ ] mining fee тоже указан верно -- [ ] если зайти из другого браузера и попробовать найти этот оредр то он будет виден в корректном месте - -**создание ордера на покупку едениц криптовалюты за биткоин** -- [ ] хочу купить 100 едениц криптовалюты за 0.1 BTC ввел 100 едениц в поле buy и 0.1 BTC в поле sell все верно выставилось, курс верный (показывает 1000 едениц за BTC) -- [ ] ордер создается - -**пробуем свпнутся** -- [ ] получилось свопнутся из двух браузеров (обоим в итоге написало "сенкью") - -**прочее** -- [ ] я добавил 1 чекбокс к этому тесту, чтоб улучшить покрытие -- [ ] я добавил 3 чекбокса к этому тесту, чтоб улучшить покрытие diff --git a/.github/ISSUE_TEMPLATE/other-issue-template.md b/.github/ISSUE_TEMPLATE/other-issue-template.md new file mode 100644 index 0000000000..98ddf183b8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/other-issue-template.md @@ -0,0 +1,12 @@ +--- +name: Other Issue Template +about: Any questions, ideas, or anything else +title: '' +labels: '' +assignees: '' + +--- + + +(Please write something / give us feedback) + diff --git a/.github/ISSUE_TEMPLATE/standart-task-template.md b/.github/ISSUE_TEMPLATE/standart-task-template.md deleted file mode 100644 index 9be115325c..0000000000 --- a/.github/ISSUE_TEMPLATE/standart-task-template.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: Standart Task Template -about: шаблон правильного оформления таска (за правильно оформленный таск +1 токен - бонуса) -title: '' -labels: '' -assignees: '' - ---- - - -1. Job. What we need to do in order to implement this feature. Steps - -2. Purpose. What this feature is intended to resolve? -a) Clients benefits - -b) Our benefits - -3. Where -a) What part of our tech resources this feature intercourse (Back, front etc.) - -b) Where’ll we implement this feature (project, space etc.) - -4. Estimate time of implementation this feature - -5. Evidences. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 6a4342d7f3..04f8e3ced4 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,7 +1,6 @@ ## Checklist - [x] I have read the [CONTRIBUTING](https://github.com/swaponline/swap.react/wiki/CONTRIBUTING) guide -- [x] Styleguide check `npm run validate` - [x] Good naming, keep simple - [x] Tested desktop/mobile - [x] Tested bright/dark diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 0e4ca750d1..93035e2491 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -25,7 +25,6 @@ jobs: - name: npm install, build, and test run: | npm run build:mainnet - npm run validate #zip -r mainnet-build.zip ./config env: CI: true diff --git a/docs/CUSTOMIZATION.md b/docs/CUSTOMIZATION.md new file mode 100644 index 0000000000..565c3f0aae --- /dev/null +++ b/docs/CUSTOMIZATION.md @@ -0,0 +1,135 @@ +# Customization guide + +## 1. Change logo + +- copy svg logos to `MultiCurrencyWallet/src/front/shared/components/Logo/images` folder +- in `MultiCurrencyWallet/src/front/client/index.js` set up your url and image + +``` +export default { + colored: { + yourUrl: imageName, + localhost: base, + 'swap.online': swapOnlineColored, + }, + common: { + yourUrl: imageName, + 'swap.online': swapOnline, + }, +} +``` + +(Way to index.html: `MultiCurrencyWallet/src/front/client/index.html`) + +- For change preloader go to `index.html` and change url to tour image + +``` +
+ +
+``` + +- change Cryptocurrency color `MultiCurrencyWallet/src/front/shared/components/ui/CurrencyIcon/images` +- change icon to your (with the same name, e.x. "bitcoin.svg") +- change Cryptocurrency icon `MultiCurrencyWallet/src/front/shared/pages/Exchange/CurrencySlider/images` + + +## 2. Change links to social networks + +Set your own links in `MultiCurrencyWallet/src/front/shared/helpers/links.js` + + +## 3. Change text + +To prevent any conflicts in future (when you will update your source from our branch) + +- find in source text like this: + ` ` + +- go to folder `MultiCurrencyWallet/src/front/shared/localisation` + open en.json + find string with the same id ("Row313") + + ``` + { + "id": "Row313", + "message": "Deposit", + "files": [ + "shared/pages/Currency/Currency.js" + ] + }, + ``` + +- change text in `message` value + + +## 4. Add your ERC20 token + +- go to `MultiCurrencyWallet/src/front/config/mainnet/erc20.js` +- go to `MultiCurrencyWallet/src/core/swap.app/constants/COINS.js` and add token there too +- go to `MultiCurrencyWallet/src/front/shared/redux/reducers/currencies.js` and add token there too + + +## 5. Add token to "Create wallet" screen + +- go to `MultiCurrencyWallet/src/front/shared/redux/reducers/currencies.js` and change `addAssets: false,` to `true` + + +## 6. Change project name in "too many tabs" screen + +0. go to `index.html` +1. add / edit `window.widgetName` to your own + + +## 7. Change title + +0. go to `index.html` +1. add / edit `window.defaultWindowTitle` to your own + + +## 8. Change logo link (default main wallet page) + +0. go to `index.html` +1. add / edit `window.LOGO_REDIRECT_LINK` to your own + + +## 9. Set custom exchange rate + +0. add `customEcxchangeRate` to `window.widgetERC20Tokens` +1. add usd price for `window.widgetERC20Tokens` + + +## 10. Add exit button to your widget + +in `index.html` edit `window.isUserRegisteredAndLoggedIn = false` to `true` + + +## enable/disbale blockchains on domain + +add config named as your domain to `MultiCurrencyWallet/src/front/externalConfigs/swaponline.github.io.js` + +``` +window.buildOptions = { + showWalletBanners: true, // Allow to see banners + showHowItsWork: true, // Allow show block 'How its work' on exchange page + curEnabled: { + btc: true, + eth: true, + ghost: true, + next: true, + }, +} +``` + +Example: [swaponline.github.io.js](https://github.com/swaponline/MultiCurrencyWallet/blob/master/src/front/externalConfigs/swaponline.github.io.js#L43) + + +## How to update your version (fork) to latest version + +0. Make backup and `git push` all your changes to your repository +1. go here https://github.com/swaponline/MultiCurrencyWallet/compare?expand=1 , click Compare across forks +2. select your repository in "base branch" (left) +3. click "Create pull request" (enter any title) +4. click "Merge pull request" + +If you have conflicts (if sources has been changed on your side) click "resolve conflicts". \ No newline at end of file diff --git a/docs/DONATE.md b/docs/DONATE.md new file mode 100644 index 0000000000..a76f7529d0 --- /dev/null +++ b/docs/DONATE.md @@ -0,0 +1,5 @@ +# Donate to MultiCurrencyWallet + +- BTC: (soon) +- LTC: (soon) +- ETH: (soon) diff --git a/docs/INSTALLATION.md b/docs/INSTALLATION.md new file mode 100644 index 0000000000..cfdcc23b5c --- /dev/null +++ b/docs/INSTALLATION.md @@ -0,0 +1,66 @@ +### Installation guide + +1. Fork this repository (Click "Fork" on top of this page) +2. Clone repository + +``` +git clone https://github.com/swaponline/MultiCurrencyWallet.git +``` + +3. Use Node 11 + +(For change Node version on Linux use [nvm](https://github.com/nvm-sh/nvm#installing-and-updating)) +(For Windows use [nvm for Windows](https://github.com/coreybutler/nvm-windows)) + +``` +nvm alias default 11.15.0 +nvm use 11.15.0 +``` + +4. Install modules + +``` +cd MultiCurrencyWallet +npm i +``` + +(Windows? Use [windows-build-tools](https://www.npmjs.com/package/windows-build-tools).) +(Linux? Install `build-essential`, `g++`, `python` and `make`) + +5. Start dev mode + +``` +npm run start +``` + +The dev server is running! (http://localhost:9001) + +To access from other devices on the local network, specify your IP address: + +``` +HOST=X.X.X.X npm run start +``` + +6. Build for prod + +``` +npm run build:mainnet https://yourcoolsite.com/ +``` + +(don't forget to add a slash in the end of url) + + +### Build with your custom ERC20 token (among BTC, ETH) + +1. npm run build:mainnet-widget {erc20contract} {name} {decimals} {ticker} + +Example: + +``` +npm run build:mainnet-widget 0x4E12EB8e506Ccd1427F6b8F7faa3e88fB698EB28 jack 18 JACK full +``` + +2. upload to your domain (https://domain.com/build-mainnet-widget) +3. open in browser + +Remember: you MUST be online for swaps and you can not process more than one exchange at the same time. Otherwise you can use our custodian service for 1% fee and \$50 setup (contact [sashanoxon](https://t.me/sashanoxon) for details). \ No newline at end of file diff --git a/docs/MANUAL_TESTS.md b/docs/MANUAL_TESTS.md new file mode 100644 index 0000000000..7e047f7250 --- /dev/null +++ b/docs/MANUAL_TESTS.md @@ -0,0 +1,149 @@ +# Main manual test + +## Send all coins with wallet +- [ ] 1. ethToken +- [ ] 2. eth +- [ ] 3. btc + +## Swap browser2browser +- [ ] 1. swap - btc2eth (balance - btc: full, eth:full) +- [ ] 2. swap - btc2eth (balance - btc: 0, eth:0) +- [ ] 3. swap - btc2ethToken (balance - btc: full, eth:full) +- [ ] 4. swap - btc2ethToken (balance - btc: 0, eth:0) + +## Swap browser2bot +- [ ] 1. swap - btc2eth (balance - btc: full, eth:full) +- [ ] 2. swap - btc2eth (balance - btc: 0, eth:0) +- [ ] 3. swap - eth2btc (balance - btc: full, eth:full) +- [ ] 4. swap - eth2btc (balance - btc: 0, eth:0) +- [ ] 5. swap - btc2ethToken (balance - btc: full, eth:full) +- [ ] 6. swap - btc2ethToken (balance - btc: 0, eth:0) +- [ ] 7. swap - ethToken2btc (balance - btc: full, eth:full) +- [ ] 8. swap - ethToken2btc (balance - btc: 0, eth:0) + + +--- + + +# Complex manual test + +выполнять желательно после каждого билда. Прошел тест? Улучши его, добавь чекбоксы + +## базовый тест (до 10 минут) +- [ ] 1. зашел на testnet.swap.online, создал ордер SELL BTC , BUY X (вместо X любой рандомный коин, например ETH) +- [ ] 1.1 увидел сразу собственный ордер в спсике своих ордеров +- [ ] 2.0. с другого браузера этот ордер увиедел перейдя по кнопке share +- [ ] 2.1. напрвления "ю бай" и "ю селл" в обоих браузерах показываются нормально а не перепутано +- [ ] 3. куллер не шумит +- [ ] 4. еслли денег достаточно то доступен "плей" +- [ ] 5. нажали "плей" (с браузера яндекс), пошел свап +- [ ] 5.1. в течении нескольких секунд у маркетмейкера появилось уведомление, что кто то хочет начать свап +- [ ] 6.1. нажали крестик "отменить свап" отмена сработала у обоих корректно +- [ ] 6.2 кто то другой попробовал запустить этот свап и не сммог +- [ ] 7. подождали сколько то секунд, начался свап корректно +- [ ] 8. все шаги свапа выполнились + + +## тест с мобилой (до 10 минут) +- [ ] 9.1 в андроиде создается оредр на продажу 1 свап за 0.00015 btc +- [ ] 9.2 в браузере на компе он виден сразу +- [ ] 9.3 клиент вбраузере нажимает плей +- [ ] 9.4 сразу приходит уведолмнеие на андроид +- [ ] 9.5 ждем пока свап закончится +- [ ] 9.6 свап закончисля + + +## тест частичного закрытия +- [ ] 10. маркетмейеер создает ордер указывает галочку частичного закрытия +- [ ] 10.1. ордер появился у второго человека +- [ ] 10.2. если зайти на страницу с партиалскложуре и ввести сумму меньшую чем созданный ордер то появится сумма сколько человек полуит. +- [ ] 10.3. сумма корректная (посчитано в калькуляторе в ручную совпадает с тем что показывает) +- [ ] 10.4 при нажатии на старт приходит уведомление маркетмейкеру, он нажимает на отмену и свап не начинается. пользователь добавляет этот оредр в игнор и котировка пересчитывается опираясь на другой ордер +- [ ] 10.5 при нажатии на галочку (маркетмейкре согласился) начинается и завершается обычный свап +- [ ] 10.6 проверить, что в истории все пришло верно как на калькуляторе + + +## тест маркетмейкера (до 5ти минут) +- [ ] 10.1 в браузере создается ордер на продажу 1 свап за 0.00015 BTC +- [ ] 10.2 в браузере создается ордер на покупку 1 свап за 0.0001 BTC (дешевле чем на продажу) +- [ ] с browserstack заходит человек и выполняет оредр 10.1 +- [ ] одновременно из андроида пытаемся выполнить ордер 10.2 +- [ ] маркетмейкер ничего не делает по идее должен выполнится ордер 10.1, а 10.2 отказатся + + +## тест альтернатив дестинейшин адрес + +//todo + + +## прочие тесты (нужно расписать подробнее) + +- [ ] тест с альтернатив дестинейшин адрес +- [ ] тест с отсутсвием биткоина на счету +- [ ] тест с нулевыми балансами +- [ ] элемент "копировать адрес" работает +- [ ] элемент "обновить баланс" работает +- [ ] если двое одновременно пытаются стартануть со мной свап, то один из них отменится? +- [ ] Проверка кнопок социальных сетей +- [ ] Проверка кнопки уведомлений +- [ ] Проверка суммы переводов в историях +- [ ] Проверка возврата средств при истечении 180 минут при отмены подписания контракта +- [ ] Проверка актуальности ссылок в подвале сайта +- [ ] Проверка стандартной операции отправки валюты + + +--- + + +# New blockchain Manual Test + +тесткейс который позволяет протестировать полностью работает ли обмен на новом блокчейне + + +## подготовка к тестированию +- [ ] максимально очистите данные браузера: кэш, куки, local storage. +- [ ] после сброса данных браузеров откройте в новой вкладке тестируемый адрес. + + +## проверка создания адреса +- [ ] при первом посещении главной станицы появляется модальное окно с приватными ключами и с предложением сохранить их двумя способами: сохранить файл с ключами или сделать скриншот окна. +- [ ] при нажатии на кнопку скачивания ключей браузер начинает автоматическую загрузку файла. +- [ ] при нажатии на кнопку "I saved the keys in a safe place" появляется дополнительное модальное окно для финального подтверждения сохранения ключей. +- [ ] при нажатии на нкопку "No" возвращается предыдущее модальное окно приатными ключами и предложением их сохранить. +- [ ] при нажатии на кнопку "Yes" появляется модальное окно с информацией об отказе от ответстенности в случе утери ключей и с кнопками для их сохранения. +- [ ] при нажатии на кнопку "Next step" открывается форма для проверки сохранненых вами ключей. +- [ ] при вводе ключей и их удачной проверке появляется кнопка "go to the site" +- [ ] при нажатии на кнопку "go to the site" открывается стартовая страница Wallet со списком адресов криптовалюты с 0 балансом. + + +## проверка ввода и вывода средств +- [ ] я отправил деньги извне и они пришли на баланс +- [ ] при нажатии на send показывается форма для ввода адреса и суммы, при этом показано сколько доступно для перевода +- [ ] если ввести сумму меньшую чем минимально возможная отправка то покажется ошибка +- [ ] если ввести сумму большую чем баланс то покажется ошибка +- [ ] форма не принимает левые данные кроме числа +- [ ] при нажатии на кнопку отправки появляется прелоадер +- [ ] как только транзакция замайнится прелоадер исчезает +- [ ] транзакция на отправку видна в истории + + +## создание ордера на продажу едениц криптовалюты за биткоин +- [ ] на странице кошелька есть кнопка SWAP, которая означает что можно поменять эту крипту на другую +- [ ] заходим на в свап и виден ордербук (таблица с обьявлениями на покупку и продажу) +- [ ] видна кнопка create order при нажатии на нее появляется форма для создания ордера +- [ ] в форме виден мой доступный баланс и он корректный +- [ ] я хочу продать 10 едениц за 0.1 биткоин, ввожу данные в sell 10 , в buy 0.1 btc автоматически устанавливается курс 100 едениц / BTC +- [ ] я хочу продать больше чем у меня есть, появляется ошибка +- [ ] если поменять курс то поменяется поле buy, а поле сколько продать (sell) остается неизменным +- [ ] при нажатии далее все данные указаны верно +- [ ] mining fee тоже указан верно +- [ ] если зайти из другого браузера и попробовать найти этот оредр то он будет виден в корректном месте + + +## создание ордера на покупку едениц криптовалюты за биткоин +- [ ] хочу купить 100 едениц криптовалюты за 0.1 BTC ввел 100 едениц в поле buy и 0.1 BTC в поле sell все верно выставилось, курс верный (показывает 1000 едениц за BTC) +- [ ] ордер создается + + +## пробуем свпнутся +- [ ] получилось свопнутся из двух браузеров (обоим в итоге написало "сенкью") diff --git a/docs/README.md b/docs/README.md index c76a43585e..4a0fb900d5 100644 --- a/docs/README.md +++ b/docs/README.md @@ -10,11 +10,11 @@ - 💡 Open-source, client-side - 📦 Embeddable into your site! -Live version here: https://swaponline.github.io +Live version here: https://swaponline.github.io (mirror https://swaponline.io) No coding skills? Use :package: [WordPress plugin with admin panel](https://codecanyon.net/item/multicurrency-crypto-wallet-and-exchange-widgets-for-wordpress/23532064) :package: and installation service for \$100 (send [sashanoxon](https://t.me/sashanoxon) access to your server). -Looking for investment opportunity? Read about [ERC20:SWAP token](https://github.com/swaponline/MultiCurrencyWallet/blob/master/docs/SWAPTOKEN.md) +Looking for investment opportunity? Read about [ERC20:SWAP token](/docs/SWAPTOKEN.md) ### 1. Multi-currency wallet: your users can store Bitcoin and custom assets @@ -45,199 +45,42 @@ Checkout this case: USDT stablecoin wallet (payment system) -## Usage -### Installation / how to start +## Easy to install -1. Fork this repository (Click "Fork" on top of this page) -2. Clone repository +- Install [WordPress plugin](https://codecanyon.net/item/multicurrency-crypto-wallet-and-exchange-widgets-for-wordpress/23532064) +- Or make your own build following the [installation guide](/docs/INSTALLATION.md) -``` -git clone https://github.com/swaponline/MultiCurrencyWallet.git -``` -3. Use Node 11 +## Customizable (images, colors, texts, etc..) for your project -(For change Node version on Linux use [nvm](https://github.com/nvm-sh/nvm#installing-and-updating)) -(For Windows use [nvm for Windows](https://github.com/coreybutler/nvm-windows)) +- Using [WordPress plugin](https://codecanyon.net/item/multicurrency-crypto-wallet-and-exchange-widgets-for-wordpress/23532064)? Сustomize right in the admin panel! +- Using your own build? Follow the [customization guide](/docs/CUSTOMIZATION.md) -``` -nvm alias default 11.15.0 -nvm use 11.15.0 -``` -4. Install modules +## Open for integrations -``` -cd MultiCurrencyWallet -npm i -``` +See the [list of our clients](/docs/CLIENTS.md). -(Windows? Use [windows-build-tools](https://www.npmjs.com/package/windows-build-tools).) -(Linux? Install `build-essential`, `g++`, `python` and `make`) -5. Start dev mode +## International -``` -npm run start -``` +Supported languages: -The dev server is running! (http://localhost:9001) +- 🇬🇧 EN +- 🇷🇺 RU +- 🇳🇱 NL +- 🇪🇸 ES -To access from other devices on the local network, specify your IP address: +Work in progress to add more languages. -``` -HOST=X.X.X.X npm run start -``` -6. Build for prod +## How to support the project? -``` -npm run build:mainnet https://yourcoolsite.com/ -``` - -(don't forget to add a slash in the end of url) - -### Build with your custom ERC20 token (among BTC, ETH) - -1. npm run build:mainnet-widget {erc20contract} {name} {decimals} {ticker} - -Example: - -``` -npm run build:mainnet-widget 0x4E12EB8e506Ccd1427F6b8F7faa3e88fB698EB28 jack 18 JACK full -``` - -2. upload to your domain (https://domain.com/build-mainnet-widget) -3. open in browser - -Remember: you MUST be online and you can not process more than one exchange at the same time. Otherwise you can use our custodian service for 1% fee and \$50 setup (contact [sashanoxon](https://t.me/sashanoxon) for details). - -## How to customize (images, colors, etc..) - -### 1. Change logo - -- copy svg logos to `MultiCurrencyWallet/src/front/shared/components/Logo/images` folder -- in `MultiCurrencyWallet/src/front/client/index.js` set up your url and image - -``` -export default { - colored: { - yourUrl: imageName, - localhost: base, - 'swap.online': swapOnlineColored, - }, - common: { - yourUrl: imageName, - 'swap.online': swapOnline, - }, -} -``` - -(Way to index.html: `MultiCurrencyWallet/src/front/client/index.html`) - -- For change preloader go to `index.html` and change url to tour image - -``` -
- -
-``` - -- change Cryptocurrency color `MultiCurrencyWallet/src/front/shared/components/ui/CurrencyIcon/images` -- change icon to your (with the same name, e.x. "bitcoin.svg") -- change Cryptocurrency icon `MultiCurrencyWallet/src/front/shared/pages/Exchange/CurrencySlider/images` - -### 2. Change links to social networks - -Set your own links in `MultiCurrencyWallet/src/front/shared/helpers/links.js` - -### 3. Change text - -To prevent any conflicts in future (when you will update your source from our branch) - -- find in source text like this: - ` ` - -- go to folder `MultiCurrencyWallet/src/front/shared/localisation` - open en.json - find string with the same id ("Row313") - - ``` - { - "id": "Row313", - "message": "Deposit", - "files": [ - "shared/pages/Currency/Currency.js" - ] - }, - ``` - -- change text in `message` value - -### 4. Add your ERC20 token - -- go to `MultiCurrencyWallet/src/front/config/mainnet/erc20.js` -- go to `MultiCurrencyWallet/src/core/swap.app/constants/COINS.js` and add token there too -- go to `MultiCurrencyWallet/src/front/shared/redux/reducers/currencies.js` and add token there too - -### 5. Add token to "Create wallet" screen - -- go to `MultiCurrencyWallet/src/front/shared/redux/reducers/currencies.js` and change `addAssets: false,` to `true` - -### 6. Change project name in "too many tabs" screen - -0. go to `index.html` -1. add / edit `window.widgetName` to your own - -### 7. Change title - -0. go to `index.html` -1. add / edit `window.defaultWindowTitle` to your own - -### 8. Change logo link (default main wallet page) - -0. go to `index.html` -1. add / edit `window.LOGO_REDIRECT_LINK` to your own - -### 9. Set custom exchange rate - -0. add `customEcxchangeRate` to `window.widgetERC20Tokens` -1. add usd price for `window.widgetERC20Tokens` - -### 10. Add exit button to your widget - -in `index.html` edit `window.isUserRegisteredAndLoggedIn = false` to `true` - -### enable/disbale blockchains on domain - -add config named as your domain to `MultiCurrencyWallet/src/front/externalConfigs/swaponline.github.io.js` - -``` -window.buildOptions = { - showWalletBanners: true, // Allow to see banners - showHowItsWork: true, // Allow show block 'How its work' on exchange page - curEnabled: { - btc: true, - eth: true, - ghost: true, - next: true, - }, -} -``` - -Example: [swaponline.github.io.js](https://github.com/swaponline/MultiCurrencyWallet/blob/master/src/front/externalConfigs/swaponline.github.io.js#L43) - -## How to update your version (fork) to latest version - -0. Make backup and `git push` all your changes to your repository -1. go here https://github.com/swaponline/MultiCurrencyWallet/compare?expand=1 , click Compare across forks -2. select your repository in "base branch" (left) -3. click "Create pull request" (enter any title) -4. click "Merge pull request" - -If you have conflicts (if sources has been changed on your side) click "resolve conflicts". +- Buy [SWAP token](/docs/SWAPTOKEN.md) +- [Donate](/docs/DONATE.md) +- _(the easiest)_ Star the project ⭐ --- -Any questions are welcome: [sashanoxon](https://t.me/mcvchat) +Any questions [are welcome](https://t.me/mcvchat) diff --git a/docs/SWAPTOKEN.md b/docs/SWAPTOKEN.md index 857b36be2a..befce71e21 100644 --- a/docs/SWAPTOKEN.md +++ b/docs/SWAPTOKEN.md @@ -38,6 +38,7 @@ Current - By selling [Wordpress plugin](https://codecanyon.net/item/multicurrency-crypto-wallet-and-exchange-widgets-for-wordpress/23532064) (whitelabel, wallet as a service) - By custom MultiCurrencyWallet integrations +- By [community donations](/docs/DONATE.md) ## Strategy and roadmap diff --git a/package.json b/package.json index cbc6f97b7e..1d60a5a7d1 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,6 @@ "core:build:umd:win": "webpack --config webpack.config.babel.js", "test": "", "eslint": "eslint --fix --cache ./shared --ext js", - "validate": "lint-diff", "start": "npm run dev", "dev": "npm run dev:testnet", "dev-widget": "npm run dev:testnet-widget", @@ -138,7 +137,6 @@ "jest": "^26.5.3", "kraken-api": "^1.0.1", "libp2p-kad-dht": "^0.20.1", - "lint-diff": "^1.2.1", "lint-staged": "^10.4.0", "node-forge": "^0.10.0", "node-localstorage": "^1.3.1",