2014-03-25 12:16:53 -03:00
|
|
|
'use strict';
|
|
|
|
|
|
2014-03-28 14:08:14 -04:00
|
|
|
angular.module('copay.network')
|
2014-04-15 12:17:28 -03:00
|
|
|
.factory('Network', function($rootScope) {
|
2014-03-27 16:31:42 -03:00
|
|
|
var peer;
|
|
|
|
|
|
2014-04-09 02:20:28 -03:00
|
|
|
var _refreshUx = function() {
|
2014-04-15 12:17:28 -03:00
|
|
|
var net = $rootScope.wallet.network;
|
2014-04-15 14:28:49 -03:00
|
|
|
log('*** UPDATING UX'); //TODO
|
2014-04-15 12:17:28 -03:00
|
|
|
$rootScope.peedId = net.peerId;
|
|
|
|
|
$rootScope.connectedPeers = net.connectedPeers;
|
2014-04-09 02:20:28 -03:00
|
|
|
$rootScope.$digest();
|
|
|
|
|
};
|
2014-04-07 13:26:29 -03:00
|
|
|
|
2014-04-16 17:50:10 -03:00
|
|
|
var closeWallet = function() {
|
2014-04-15 12:17:28 -03:00
|
|
|
var w = $rootScope.wallet;
|
2014-04-16 17:50:10 -03:00
|
|
|
if (w && w.id) w.store();
|
2014-04-08 00:54:38 -03:00
|
|
|
|
2014-04-16 17:50:10 -03:00
|
|
|
log('### CLOSING WALLET');
|
|
|
|
|
delete $rootScope['wallet'];
|
2014-04-09 02:20:28 -03:00
|
|
|
};
|
2014-04-08 00:54:38 -03:00
|
|
|
|
2014-04-16 17:50:10 -03:00
|
|
|
// public methods
|
|
|
|
|
var init = function(walletId, cb) {
|
|
|
|
|
if (!$rootScope.wallet) {
|
|
|
|
|
// create an empty Wallet
|
|
|
|
|
$rootScope.wallet = new copay.Wallet(config);
|
|
|
|
|
}
|
|
|
|
|
var w = $rootScope.wallet;
|
|
|
|
|
console.log('[network.js.30:walletId:]',walletId); //TODO
|
|
|
|
|
if (!walletId) w.openWalletId();
|
|
|
|
|
w.on('created', _refreshUx);
|
|
|
|
|
w.on('txProposals', _refreshUx);
|
|
|
|
|
w.on('publicKeyRing', _refreshUx);
|
|
|
|
|
w.on('abort', function() {
|
|
|
|
|
disconnect();
|
2014-04-15 12:17:28 -03:00
|
|
|
_refreshUx();
|
2014-04-16 17:50:10 -03:00
|
|
|
});
|
|
|
|
|
w.netStart(cb);
|
2014-03-27 16:31:42 -03:00
|
|
|
};
|
|
|
|
|
|
2014-04-09 11:05:25 -03:00
|
|
|
var disconnect = function() {
|
2014-04-15 12:17:28 -03:00
|
|
|
var w = $rootScope.wallet;
|
|
|
|
|
var net = w.network;
|
|
|
|
|
|
|
|
|
|
if (net) {
|
|
|
|
|
net.disconnect();
|
2014-04-09 02:20:28 -03:00
|
|
|
}
|
2014-04-12 13:37:41 -03:00
|
|
|
closeWallet();
|
2014-03-27 16:31:42 -03:00
|
|
|
};
|
|
|
|
|
|
2014-04-10 02:16:57 -03:00
|
|
|
var connect = function(peerId, openCallback, failCallback) {
|
2014-04-16 17:50:10 -03:00
|
|
|
$rootScope.wallet.connectTo(peerId);
|
|
|
|
|
$rootScope.wallet.on('open', openCallback);
|
|
|
|
|
$rootScope.wallet.on('close', failCallback);
|
2014-04-08 18:35:43 -03:00
|
|
|
};
|
2014-03-31 12:48:35 -03:00
|
|
|
|
2014-04-15 12:17:28 -03:00
|
|
|
var sendTxProposals = function(recipients) {
|
|
|
|
|
var w = $rootScope.wallet;
|
|
|
|
|
w.sendTxProposals(recipients);
|
|
|
|
|
};
|
|
|
|
|
|
2014-03-27 16:31:42 -03:00
|
|
|
return {
|
2014-04-07 13:26:29 -03:00
|
|
|
init: init,
|
|
|
|
|
connect: connect,
|
2014-04-09 02:20:28 -03:00
|
|
|
disconnect: disconnect,
|
2014-04-15 12:17:28 -03:00
|
|
|
sendTxProposals: sendTxProposals,
|
2014-03-27 16:31:42 -03:00
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|