1.2.0 • Published 8 years ago

wallet-generator v1.2.0

Weekly downloads
5
License
-
Repository
-
Last release
8 years ago

unicoisa-wallet-generator

Simple Web UI to generate brand new single digital asset wallet (project Unicoisa based on Copay + Colu).

Installation

Prerequisites

  • MongoDb

Install app

  1. git clone https://bitbucket.org/teamcolu/wallet-generator
  2. npm install
  3. bower install

Configure

App config

Edit config.json to match your settings:

{
  "targetDir": "<folder where to put generated wallets>",
  "templateCopayDir": "<folder with ColuCopay to make copy of>"
}

Template wallet

To prepare ColuCopay (project Unicoisa):

 git clone https://bitbucket.org/teamcolu/wallet-generator copay && cd copay && npm install && bower install && grunt

Permissions

App copies nginx config to the /etc/nginx/wallets and reloads nginx. It uses sudo to do this. To make it work you need the following:

  • app should be running under user with sudo privileges
  • edit /etc/sudoers (use visudo for your safety) to allow certain commands to run without password prompt:
<USERNAME> ALL=NOPASSWD:<PATH_TO_WALLET_GENERATOR>/scripts/copy_nginx_config.sh
<USERNAME> ALL=NOPASSWD:/usr/bin/service nginx reload

Nginx

Create /etc/nginx/wallets folder.

Example nginx config for the generator app (assuming generator app is running on 6000 port):

server {
  listen 80;
	server_name wallet.colu.co;

	include /etc/nginx/wallets/*.conf;

	location / {
	    proxy_pass         http://127.0.0.1:6000;
	    proxy_set_header   X-Real-IP            $remote_addr;
	    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
	    proxy_set_header   Host                   $http_host;
	    proxy_set_header   X-NginX-Proxy    true;
	    proxy_redirect off;
	  }
}

Start app

npm start

or export to upstart using foreman

API

API uses HTTP Basic authentication.

Create wallet

Endpoint: POST /api/wallet Payload:

{
  walletName: "name of the wallet to change (mandatory)",
  assetId: "assetId (mandatory)",
  assetName: "name of the asset (mandatory)",
  mainColor: "#xxxxxx code of the main wallet color",
  secondaryColor: "#xxxxxx code of the secondary wallet color",
  symbol: "symbol/ticker for the asset currency",
  pluralSymbol: "plural form of the symbol",
  logo: "logo could be uploaded only with multipart/form-data requests",
  logoUrl: "logo URL (e.g. from CDN). If both logoUrl and logo bytes supplied, logoUrl will be used",
  coluApiKey: "api key for Colu SDK"
}

Change wallet

Colu API key, assetId and wallet name cannot be changed.

Endpoint: PUT /api/wallet Payload:

{
  walletName: "name of the wallet to change",
  assetName: "name of the asset",
  mainColor: "#xxxxxx code of the main wallet color",
  secondaryColor: "#xxxxxx code of the secondary wallet color",
  symbol: "symbol/ticker for the asset currency",
  pluralSymbol: "plural form of the symbol",
  logo: "logo could be uploaded only with multipart/form-data requests",
  logoUrl: "logo URL (e.g. from CDN). If both logoUrl and logo bytes supplied, logoUrl will be used"
}