70 lines
1.7 KiB
JavaScript
70 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
angular.module('copay.network')
|
|
.factory('Network', function($rootScope) {
|
|
var peer;
|
|
|
|
var _refreshUx = function() {
|
|
var net = $rootScope.wallet.network;
|
|
log('*** UPDATING UX'); //TODO
|
|
$rootScope.peedId = net.peerId;
|
|
$rootScope.connectedPeers = net.connectedPeers;
|
|
$rootScope.$digest();
|
|
};
|
|
|
|
var closeWallet = function() {
|
|
var w = $rootScope.wallet;
|
|
if (w && w.id) w.store();
|
|
|
|
log('### CLOSING WALLET');
|
|
delete $rootScope['wallet'];
|
|
};
|
|
|
|
// 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();
|
|
_refreshUx();
|
|
});
|
|
w.netStart(cb);
|
|
};
|
|
|
|
var disconnect = function() {
|
|
var w = $rootScope.wallet;
|
|
var net = w.network;
|
|
|
|
if (net) {
|
|
net.disconnect();
|
|
}
|
|
closeWallet();
|
|
};
|
|
|
|
var connect = function(peerId, openCallback, failCallback) {
|
|
$rootScope.wallet.connectTo(peerId);
|
|
$rootScope.wallet.on('open', openCallback);
|
|
$rootScope.wallet.on('close', failCallback);
|
|
};
|
|
|
|
var sendTxProposals = function(recipients) {
|
|
var w = $rootScope.wallet;
|
|
w.sendTxProposals(recipients);
|
|
};
|
|
|
|
return {
|
|
init: init,
|
|
connect: connect,
|
|
disconnect: disconnect,
|
|
sendTxProposals: sendTxProposals,
|
|
}
|
|
});
|
|
|