/MultiCurrencyWallet

Bitcoin, Ethereum, ERC20 crypto wallets with Atomic Swap exchange. Live: https://swaponline.github.io

Primary LanguageJavaScriptMIT LicenseMIT

Deploy to swaponline.github.io

Open-source Multicurrency wallet for Bitcoin and custom assets, and p2p exchange

Live version here: https://swaponline.github.io

No coding skills? We offer you 📦 WordPress plugin with admin panel 📦 and installation service for $100 (send sashanoxon access to your server).

1. Multi-currency wallet: your users can store Bitcoin and custom assets

Add many assets to your wallet:


Checkout this case: https://twitter.com/Atomic_Wallet (our real client)

2. ERC20 token wallet

Wallet demo (custom asset "SWAP")

3. Buy/Sell assets (exchange widget)

Exchange widget live demo

4. Secondary market (trading between users)

  1. Demo (orderbook)
  2. Real client: https://sonm.com/swap-online/

5. Other demos

USDT stablecoin wallet (payment system)

Usage

Install

  1. Fork this repository (Click "Fork" on top of this page)
  2. Clone repository with submodules (such as swap.core)
git clone --recurse-submodules https://github.com/swaponline/MultiCurrencyWallet.git
cd MultiCurrencyWallet
  1. Use Node 10, not 12!
nvm use 10.18.1 or 11.15.0
  1. Install modules
npm i

(Windows? Use windows-build-tools.)

  1. Do git submodule update
git submodule init
git submodule sync
git submodule update --remote
  1. Start dev mode
npm run start

or build for prod

npm run build

If you need to deploy it on your own (site) origin - run build like: npm run build:mainnet https://yourcoolsite.com/

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
  1. upoad to your domain (https://domain.com/build-mainnet-widget)
  2. open in browser

Remember: you MUST be online and you can not prosess more than one exchange at the same time. Otherwise you can use our custodian service for 1% fee and $50 setup (contact sashanoxon for details).

How to customize (images, colors, etc..)

1. Change logo

  • copy svg logos to MultiCurrencyWallet/shared/components/Logo/images folder
  • in index.js set up your url and image
export default {
  colored: {
    yourUrl: imagename,
    localhost: base,
    'swap.online': swapOnlineColored,
  },
  common: {
    сyourUrl: imageName,
    'swap.online': swapOnline,
  },
}
  • For change preloader go to client/index.html and change url to tour image
  <div id="loader">
      <img src="https://wiki.swap.online/assets/swap-logo.png" />
  </div>
  • change Cryptocurrency color MultiCurrencyWallet/shared/components/ui/CurrencyIcon/images
  • change icon to your (with the same name, e.x. "bitcoin.svg")
  • change cryptocurrency icon MultiCurrencyWallet/shared/pages/PartialClosure/CurrencySlider/images

2. Change links to social networks

Set your own links in MultiCurrencyWallet/shared/helpers/links.js

3. Change text

To prevent any conflicts in future (when you will update your source from our branch)

  • find in sourse text like this: <FormattedMessage id="Row313" defaultMessage="Deposit" />

  • go to folder MultiCurrencyWallet/shared/localisation open en.js find string with the same id ("Row313")

      {
          "id": "Row313",
          "message": "Deposit",
          "files": [
          "shared/pages/Currency/Currency.js",
          "shared/pages/CurrencyWallet/CurrencyWallet.js",
          ]
      },
    
  • change text in message var

4. Add your ERC20 token

  • go to MultiCurrencyWallet/config/mainnet/erc20.js
  • go to MultiCurrencyWallet/swap.core/src/swap.app/constants/COINS.js and add token there too
  • go to MultiCurrencyWallet/shared/redux/reducers/currencies.js and add token there too

5. Add token to "Create wallet" screen

  • go to shared/redux/reducers/currencies.js and change addAssets: false, to true

6. Change project name in "too many tabs" screen

  1. go to index.html
  2. add / edit window.widgetName to your own

7. Change title

  1. go to index.html
  2. add / edit window.defaultWindowTitle to your own

8. Change logo link (default main wallet page)

  1. go to index.html
  2. add / edit window.LOGO_REDIRECT_LINK to your own

9. Set custom exchange rate

  1. add customEcxchangeRate to window.widgetERC20Tokens
  2. add usd price for window.widgetERC20Tokens

10. Add exit button to your widget

in index.html edit isUserRegisteredAndLoggedIn=false to isUserRegisteredAndLoggedIn=true

Update swap.core submodules

If you have changed swap.core submodule don't forget to pull new "link"

cd swap.core
git checkout master
git fetch
git pull

How to update your version (fork) to latest version

  1. Make backup and git push all your changes to your repository
  2. go here https://github.com/swaponline/MultiCurrencyWallet/compare?expand=1 , click Compare across forks
  3. select your repository in "base branch" (left)
  4. click "Create pull request" (enter any title)
  5. click "Merge pull request"

If you have conflicts (if sources has been changed on your side) click "resolve conflicts".

Any questions are welcome: sashanoxon