mirror of https://github.com/BTCPrivate/copay.git
resolved upstream merge
This commit is contained in:
commit
5e707ca411
|
@ -40,7 +40,6 @@ lib/*
|
|||
!lib/socket.io.js
|
||||
|
||||
js/copayBundle.js
|
||||
config.js
|
||||
|
||||
webapp/copay-webapp
|
||||
webapp/download
|
||||
|
|
23
README.md
23
README.md
|
@ -1,9 +1,8 @@
|
|||
[![Build Status](https://secure.travis-ci.org/bitpay/copay.png)](http://travis-ci.org/bitpay/copay)
|
||||
|
||||
Copay
|
||||
=====
|
||||
# Copay
|
||||
|
||||
Installation:
|
||||
## Installation:
|
||||
|
||||
```
|
||||
git clone https://github.com/bitpay/copay.git
|
||||
|
@ -21,7 +20,6 @@ Build Copay:
|
|||
npm install
|
||||
bower install
|
||||
grunt shell --target=dev
|
||||
cp config.template.js config.js
|
||||
```
|
||||
|
||||
Open Copay:
|
||||
|
@ -31,6 +29,8 @@ npm start
|
|||
|
||||
Then visit localhost:3000 in your browser.
|
||||
|
||||
|
||||
## Running copay
|
||||
To run on a different port:
|
||||
```
|
||||
PORT=3001 npm start
|
||||
|
@ -45,9 +45,10 @@ PORT=3004 npm start
|
|||
PORT=3005 npm start
|
||||
```
|
||||
|
||||
To open n different instances just run:
|
||||
To open n different instances more easily, just run:
|
||||
```
|
||||
node launch.js n
|
||||
n=5
|
||||
node launch.js $n &
|
||||
```
|
||||
|
||||
To require Copay as a module for use within you application:
|
||||
|
@ -59,8 +60,14 @@ require('copay').start(3000, function(location) {
|
|||
|
||||
```
|
||||
|
||||
About Copay
|
||||
===========
|
||||
|
||||
## Configuration
|
||||
|
||||
Default configuration can be found in the config.js file.
|
||||
See config.js for more info on configuration options.
|
||||
|
||||
|
||||
# About Copay
|
||||
|
||||
General
|
||||
-------
|
||||
|
|
|
@ -1,26 +1,44 @@
|
|||
'use strict';
|
||||
var defaultConfig = {
|
||||
// livenet or testnet
|
||||
networkName: 'testnet',
|
||||
|
||||
// wallet limits
|
||||
limits: {
|
||||
totalCopayers: 12,
|
||||
mPlusN: 100
|
||||
},
|
||||
|
||||
// network layer (PeerJS) config
|
||||
network: {
|
||||
// key: 'lwjd5qra8257b9', //Copay API key for public PeerJS server
|
||||
// This is for running local peerJs with params: ./peerjs -p 10009 -k 'sdfjhwefh'
|
||||
//key: 'sdfjhwefh',
|
||||
//host: 'localhost',
|
||||
//port: 10009,
|
||||
//path: '/',
|
||||
//
|
||||
key: 'satoshirocks', // api key for the peerjs server
|
||||
host: '162.242.219.26', // peerjs server
|
||||
// Use this to run your own local PeerJS server
|
||||
// with params: ./peerjs -p 10009 -k '6d6d751ea61e26f2'
|
||||
/*
|
||||
key: '6d6d751ea61e26f2',
|
||||
host: 'localhost',
|
||||
port: 10009,
|
||||
path: '/',
|
||||
*/
|
||||
|
||||
// Use this to connect to bitpay's PeerJS server
|
||||
key: 'satoshirocks',
|
||||
host: '162.242.219.26',
|
||||
port: 80,
|
||||
path: '/',
|
||||
|
||||
// other PeerJS config
|
||||
maxPeers: 15,
|
||||
debug: 3,
|
||||
|
||||
// Network encryption config
|
||||
sjclParams: {
|
||||
salt: 'mjuBtGybi/4=', // choose your own salt (base64)
|
||||
iter: 1000,
|
||||
mode: 'ccm',
|
||||
ts: parseInt(64),
|
||||
},
|
||||
|
||||
// PeerJS internal config object
|
||||
config: {
|
||||
'iceServers': [
|
||||
// Pass in STUN and TURN servers for maximum network compatibility
|
||||
|
@ -78,28 +96,35 @@ var defaultConfig = {
|
|||
]
|
||||
}
|
||||
},
|
||||
limits: {
|
||||
totalCopayers: 12,
|
||||
mPlusN: 100
|
||||
},
|
||||
|
||||
// wallet default config
|
||||
wallet: {
|
||||
requiredCopayers: 2,
|
||||
totalCopayers: 3,
|
||||
spendUnconfirmed: 1,
|
||||
verbose: 1,
|
||||
},
|
||||
|
||||
// blockchain service API config
|
||||
blockchain: {
|
||||
host: 'test.insight.is',
|
||||
port: 3001
|
||||
},
|
||||
// socket service API config
|
||||
socket: {
|
||||
host: 'test.insight.is',
|
||||
port: 3001
|
||||
},
|
||||
|
||||
// local encryption/security config
|
||||
passphrase: {
|
||||
iterations: 100,
|
||||
storageSalt: 'mjuBtGybi/4=',
|
||||
},
|
||||
|
||||
// theme list
|
||||
themes: ['default'],
|
||||
|
||||
|
||||
verbose: 1,
|
||||
};
|
14
index.html
14
index.html
|
@ -73,6 +73,15 @@
|
|||
|
||||
</div>
|
||||
|
||||
<div class="row" ng-if="updateVersion">
|
||||
<div class="small-9 large-centered columns">
|
||||
<div data-alert class="alert-box radius {{updateVersion}}">
|
||||
A newer version of Copay is now available, please update your wallet to a latest version.
|
||||
Please check <a href="http://www.copay.io">Copay.io</a>.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row" ng-if='$root.$flashMessage.message' notification>
|
||||
<div class="small-8 large-centered columns">
|
||||
<div data-alert class="alert-box radius {{$root.$flashMessage.type}}">
|
||||
|
@ -209,7 +218,7 @@
|
|||
<h3>Join a Wallet in Creation</h3>
|
||||
<form name="joinForm" ng-submit="join(joinForm)" novalidate>
|
||||
<input type="text" class="form-control" placeholder="Paste wallet secret here" name="connectionId" ng-model="connectionId" wallet-secret required>
|
||||
<input type="password" class="form-control" placeholder="Choose your password" name="joinPassword" ng-model="joinPassword" check-strength="joinPassword" required>
|
||||
<input type="password" class="form-control" placeholder="Choose your password" name="joinPassword" ng-model="joinPassword" check-strength="passwordStrength" tooltip="Password strength: {{passwordStrength}}" tooltip-trigger="focus" required>
|
||||
<input type="text" class="form-control" placeholder="Your name (optional)" name="nickname" ng-model="nickname">
|
||||
<button type="submit" class="button primary radius" ng-disabled="joinForm.$invalid || loading" loading="Joining">Join</button>
|
||||
</form>
|
||||
|
@ -300,7 +309,7 @@
|
|||
<div class="small-12 medium-6 medium-centered large-6 large-centered columns m30v">
|
||||
<h6>Your Wallet Password<small>(doesn't need to be shared) Required</small></h6>
|
||||
<input type="password" placeholder="Choose your password" class="form-control"
|
||||
ng-model="walletPassword" check-strength="walletPassword" required>
|
||||
ng-model="walletPassword" check-strength="passwordStrength" tooltip="Password strength: {{passwordStrength}}" tooltip-trigger="focus" required>
|
||||
</div>
|
||||
<div class="small-12 medium-6 medium-centered large-6 large-centered columns m30v">
|
||||
<h6>Wallet name <small>Optional</small></h6>
|
||||
|
@ -725,6 +734,7 @@ on supported browsers please check <a href="http://www.webrtc.org/">http://www.w
|
|||
<p class="text-center"><a href="#/">go back...</a></p>
|
||||
</script>
|
||||
|
||||
|
||||
<script src="config.js"></script>
|
||||
<script src="js/shell.js"></script>
|
||||
<script src="lib/angular/angular.min.js"></script>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('copay.header').controller('HeaderController',
|
||||
function($scope, $rootScope, $location, $notification, walletFactory, controllerUtils) {
|
||||
function($scope, $rootScope, $location, $notification, $http, walletFactory, controllerUtils) {
|
||||
$scope.menu = [
|
||||
{
|
||||
'title': 'Addresses',
|
||||
|
@ -23,6 +23,18 @@ angular.module('copay.header').controller('HeaderController',
|
|||
|
||||
var beep = new Audio('sound/transaction.mp3');
|
||||
|
||||
$http.get('https://api.github.com/repos/bitpay/copay/tags').success(function(data){
|
||||
var toInt = function (s) { return parseInt(s); };
|
||||
var latestVersion = data[0].name.replace('v', '').split('.').map(toInt);
|
||||
var currentVersion = copay.version.split('.').map(toInt);
|
||||
|
||||
if (currentVersion[0] < latestVersion[0]){
|
||||
$scope.updateVersion = 'error';
|
||||
} else if (currentVersion[0] == latestVersion[0] && currentVersion[1] < latestVersion[1]) {
|
||||
$scope.updateVersion = 'info';
|
||||
}
|
||||
});
|
||||
|
||||
// Initialize alert notification (not show when init wallet)
|
||||
$rootScope.txAlertCount = 0;
|
||||
$rootScope.$watch('txAlertCount', function(txAlertCount) {
|
||||
|
|
|
@ -124,7 +124,7 @@ angular.module('copay.directives')
|
|||
return {
|
||||
replace: false,
|
||||
restrict: 'EACM',
|
||||
scope: { model: '=checkStrength' },
|
||||
require: 'ngModel',
|
||||
link: function(scope, element, attrs) {
|
||||
var _grep = function(elems, callback, invert) {
|
||||
var callbackInverse,
|
||||
|
@ -146,6 +146,7 @@ angular.module('copay.directives')
|
|||
};
|
||||
|
||||
var strength = {
|
||||
messages: ['too weak', 'weak', 'weak', 'medium', 'strong'],
|
||||
colors: ['#c0392b', '#e74c3c', '#d35400', '#f39c12', '#27ae60'],
|
||||
mesureStrength: function (p) {
|
||||
var _force = 0;
|
||||
|
@ -178,14 +179,15 @@ angular.module('copay.directives')
|
|||
else if (s <= 40) { idx = 3; }
|
||||
else { idx = 4; }
|
||||
|
||||
return { idx: idx + 1, col: this.colors[idx] };
|
||||
return { idx: idx + 1, col: this.colors[idx], message: this.messages[idx] };
|
||||
}
|
||||
};
|
||||
|
||||
scope.$watch('model', function (newValue, oldValue) {
|
||||
|
||||
scope.$watch(attrs.ngModel, function (newValue, oldValue) {
|
||||
if (newValue && newValue !== '') {
|
||||
var c = strength.getColor(strength.mesureStrength(newValue));
|
||||
element.css({ 'border-color': c.col })
|
||||
element.css({ 'border-color': c.col });
|
||||
scope[attrs.checkStrength] = c.message;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue