Wallet/js/services/network.js
Matias Alejo Garcia 536fe90431 new WalletFactory
2014-04-16 17:51:42 -03:00

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,
}
});