2014-03-19 09:17:18 -07:00
<!doctype html>
< html lang = "en" >
2014-03-14 13:38:27 -07:00
< head >
< meta charset = "utf-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" >
< meta name = "viewport" content = "width=device-width" >
2014-03-28 11:08:14 -07:00
< title > Copay - Multisignature Wallet< / title >
2014-03-27 08:07:10 -07:00
< link rel = "stylesheet" href = "css/foundation.min.css" >
2014-03-28 12:39:58 -07:00
< link rel = "stylesheet" href = "css/foundation-icons.css" >
2014-03-14 13:38:27 -07:00
< link rel = "stylesheet" href = "css/main.css" >
< / head >
< body >
2014-04-09 07:05:25 -07:00
< div data-ng-init = "init()" data-ng-controller = "HeaderController" >
< div class = "header" >
2014-03-28 08:32:29 -07:00
< div class = "header-content" >
2014-03-31 14:06:44 -07:00
< figure class = "left" >
< img src = "./img/logo-negative.svg" alt = "" width = "130" >
< / figure >
2014-04-15 08:17:28 -07:00
< div class = "text-right" ng-show = "$root.wallet" >
2014-03-28 08:32:29 -07:00
< h5 > Company Funds< / h5 >
2014-04-17 02:43:30 -07:00
< p ng-show = "totalBalance" > {{totalBalance}} BTC< / p >
< p ng-show = "!totalBalance" > 0 BTC< / p >
2014-03-28 08:32:29 -07:00
< / div >
< / div >
2014-04-15 08:17:28 -07:00
< nav class = "top-bar" data-topbar ng-show = "$root.wallet" >
2014-04-15 07:46:19 -07:00
< ul class = "title-area" >
2014-03-28 08:32:29 -07:00
< li class = "name" > < / li >
< li class = "toggle-topbar menu-icon" >
2014-04-15 07:46:19 -07:00
< a href = "#" > Menu< / a >
2014-03-28 08:32:29 -07:00
< / li >
< / ul >
< section class = "top-bar-section" >
2014-04-11 09:26:36 -07:00
< ul >
2014-04-15 08:33:00 -07:00
< li data-ng-repeat = "item in menu" ui-route = "/{{item.link}}" class = "large-2 text-center" data-ng-class = "{active: isActive(item)}" >
< a href = "{{item.link}}" > < i class = "{{item.icon}}" > < / i > {{item.title}}< / a >
2014-03-28 08:32:29 -07:00
< / li >
2014-04-15 10:02:45 -07:00
< li class = "large-2 text-center" >
< a href = "#" ng-click = "signout()" > < i class = "fi-power" > < / i > Signout< / a >
< / li >
2014-03-28 08:32:29 -07:00
< / ul >
< / section >
< / nav >
2014-04-09 07:05:25 -07:00
2014-03-25 07:35:04 -07:00
< / div >
2014-03-28 08:32:29 -07:00
2014-04-09 07:05:25 -07:00
< div ng-if = '$root.flashMessage.message' class = "panel callout radius" style = "color:red" >
{{$root.flashMessage.type}}:
{{$root.flashMessage.message}}
< a href = "#" ng-click = "clearFlashMessage()" class = "button tiny" > Dismiss< / a >
< / div >
2014-04-17 09:43:34 -07:00
< div ng-if = '$root.wallet && !$root.wallet.publicKeyRing.isComplete() && !loading' class = "panel callout radius" >
< p class = "panel panel-sign" > < i class = "fi-alert size-40" > < / i >
NOTE: Your wallet is not complete yet.
{{$root.wallet.publicKeyRing.totalCopayers - $root.wallet.publicKeyRing.registeredCopayers() }} keys are missing. Ask your copayers to join your session: < b > {{$root.wallet.network.peerId}}< / b >
< / p >
< / div >
2014-04-09 07:05:25 -07:00
< / div >
2014-03-27 08:07:10 -07:00
< div class = "row" >
< div class = "large-12 columns" ng-view > < / div >
2014-03-26 05:18:42 -07:00
< / div >
2014-03-19 09:17:18 -07:00
<!-- Templates -->
< script type = "text/ng-template" id = "signin.html" >
2014-03-31 08:48:35 -07:00
< div ng-controller = "SigninController" >
< div class = "panel callout radius" ng-show = "loading" >
Connecting to wallet...
< / div >
< div ng-show = "!loading" >
2014-04-08 22:20:28 -07:00
< div class = "row" >
< div class = "large-6 columns" >
< h3 > Join a Network Wallet< / h3 >
2014-03-27 12:31:42 -07:00
< input type = "text" class = "form-control" placeholder = "Peer ID" ng-model = "connectionId" autofocus >
< / div >
2014-03-31 14:28:59 -07:00
< div class = "large-3 columns" >
< button class = "button primary expand round" type = "button" ng-click = "join(connectionId)" > Join< / button >
2014-03-31 14:05:35 -07:00
< / div >
2014-03-27 12:31:42 -07:00
< / div >
2014-04-17 10:28:50 -07:00
2014-03-31 14:05:35 -07:00
< hr >
2014-04-17 08:58:54 -07:00
< div ng-show = "!walletIds.length" >
2014-04-17 08:37:10 -07:00
< div class = "row" >
< div class = "large-6 columns" >
< h3 > Create a New Wallet< / h3 >
< / div >
< div class = "large-3 columns" >
< button class = "button secondary expand round" ng-click = "create()" > Create< / button >
< / div >
2014-03-31 14:05:35 -07:00
< / div >
2014-04-17 10:28:50 -07:00
< hr >
< div class = "row" >
< div class = "text-center" >
< a ng-click = "import()" > Import from file< / a >
< / div >
< / div >
2014-04-17 08:37:10 -07:00
< / div >
< div ng-show = "walletIds.length>0" >
< div class = "row" >
< div class = "large-6 columns" >
< h3 > Open a Existing Wallet< / h3 >
< select class = "form-control" ng-model = "selectedWalletId" ng-options = "walletId for walletId in walletIds" >
< / select >
< / div >
< div class = "large-3 columns" >
< button class = "button primary expand round" type = "button" ng-click = "open(selectedWalletId)" > Open< / button >
< / div >
< / div >
< div class = "row" >
< div class = "text-center" >
2014-04-17 10:28:50 -07:00
< a ng-click = "create()" > Create a new wallet< / a >
· < a ng-click = "import()" > Import from file< / a >
2014-04-17 08:37:10 -07:00
< / div >
2014-03-31 14:05:35 -07:00
< / div >
2014-03-27 12:31:42 -07:00
< / div >
2014-04-17 08:37:10 -07:00
< hr >
2014-03-27 12:31:42 -07:00
< / div >
< / div >
< / script >
2014-04-16 13:07:14 -07:00
< script type = "text/ng-template" id = "setup.html" >
< div ng-controller = "SetupController" >
< div class = "panel callout radius" ng-show = "loading" >
Connecting to wallet...
< / div >
< div ng-show = "!loading" >
2014-04-16 15:45:22 -07:00
< h2 > Create new multisig wallet< / h2 >
2014-04-16 13:07:14 -07:00
< div class = "row" >
< div class = "large-6 columns" >
< h3 > Select total number of copayers< / h3 >
< select ng-model = "totalCopayers"
ng-options="totalCopayers as totalCopayers for totalCopayers in TCValues">
< / select >
< / div >
< / div >
< hr >
< div class = "row" >
< div class = "large-6 columns" >
< h3 > Select required number of copayers< / h3 >
< select ng-model = "requiredCopayers"
ng-options="requiredCopayers as requiredCopayers for requiredCopayers in RCValues">
< / select >
< / div >
< div class = "large-3 columns" >
< button class = "button primary expand round" type = "button"
2014-04-16 15:45:22 -07:00
ng-click="create(totalCopayers, requiredCopayers)">
Create {{requiredCopayers}}-of-{{totalCopayers}} wallet
< / button >
2014-04-16 13:07:14 -07:00
< / div >
< / div >
2014-04-17 08:37:10 -07:00
< div class = "row" >
< div class = "text-center" >
< a href = "#signin" > Go back< / a >
< / div >
< / div >
2014-04-16 13:07:14 -07:00
< / div >
< / div >
< / script >
2014-03-31 08:48:35 -07:00
< script type = "text/ng-template" id = "peer.html" >
2014-03-31 14:06:44 -07:00
< div class = "row" ng-controller = "PeerController" ng-init = "init()" >
2014-04-16 13:25:33 -07:00
< div class = "large-6 columns p70r line-dashed-v" >
< h3 > I am < / h3 >
< div class = "row" >
< div class = "large-10 columns p0r" >
< p class = "panel share-wallet" > {{$root.wallet.network.peerId}}< / p >
< / div >
< div class = "large-2 columns" >
< p class = "panel panel-sign" > < i class = "fi-page-copy size-22" > < / i > < / p >
< / div >
< / div >
2014-03-27 12:31:42 -07:00
< / div >
2014-04-16 13:25:33 -07:00
< div class = "large-6 columns p70l" >
2014-04-17 08:37:10 -07:00
< h3 class = "panel-title" > Online Copayers: {{$root.wallet.network.connectedPeers.length}}< / h3 >
2014-04-17 09:43:34 -07:00
< p class = "panel panel-sign" ng-show = "$root.wallet.publicKeyRing.requiredCopayers > $root.wallet.network.connectedPeers.length" > < i class = "fi-alert size-28" > < / i >
{{$root.wallet.publicKeyRing.requiredCopayers}} copayers needed for signning transactions
2014-03-31 14:06:44 -07:00
< ul class = "no-bullet" >
2014-04-16 18:12:30 -07:00
< li class = "panel" ng-repeat = "copayer in $root.wallet.network.connectedPeers" >
2014-04-17 08:37:10 -07:00
< span ng-if = "copayer == $root.wallet.network.peerId" > You ({{copayer}})< i class = "fi-check size-24" > < / i > < / span >
< span ng-if = "copayer !== $root.wallet.network.peerId" > {{copayer}}< / span >
2014-04-16 13:25:33 -07:00
< span >
< i class = "fi-check size-16 panel-sign right p5h br100" > < / i >
< / span >
2014-03-31 14:06:44 -07:00
< / li >
< / ul >
2014-03-31 08:48:35 -07:00
< / div >
2014-03-27 12:31:42 -07:00
< / div >
2014-03-19 09:17:18 -07:00
< / script >
2014-04-07 11:05:53 -07:00
2014-03-19 09:17:18 -07:00
2014-03-26 13:56:11 -07:00
<!-- HOME -->
2014-03-19 09:17:18 -07:00
< script type = "text/ng-template" id = "home.html" >
2014-03-26 05:18:42 -07:00
< div class = "home" data-ng-controller = "HomeController" >
2014-04-16 08:06:42 -07:00
< h3 > Address< / h3 >
2014-03-26 13:56:11 -07:00
2014-04-07 11:05:53 -07:00
< div class = "row" >
< div class = "large-6 columns" >
2014-04-16 14:01:37 -07:00
< a class = "panel db" ng-repeat = "addr in addrs" ng-click = "selectAddr(addr)" > {{addr}} < span class = "right" > ({{addrBalance[addr]}} BTC) > < / span > < / a >
2014-04-07 11:05:53 -07:00
< / div >
2014-04-16 08:06:42 -07:00
< div class = "large-3 columns line-dashed-v text-center" >
2014-04-14 12:48:12 -07:00
< qrcode size = "160" data = "{{selectedAddr}}" > < / qrcode >
2014-04-17 07:52:42 -07:00
< p class = "m10t" ng-repeat = "addr in addrs" ng-if = "selectedAddr==addr" > < strong > {{addrBalance[addr]}} BTC < / strong > < / p >
2014-04-16 08:06:42 -07:00
< / div >
< div class = "large-1 columns" > < / div >
< div class = "large-2 columns" >
< p > Create a New < strong > Address < / strong > < / p >
< button class = "secondary round expand" ng-click = "newAddr()" > Create < / button >
2014-04-07 11:05:53 -07:00
< / div >
< / div >
2014-03-26 05:18:42 -07:00
< / div >
< / script >
2014-03-26 13:56:11 -07:00
2014-04-08 10:16:38 -07:00
2014-03-26 13:56:11 -07:00
<!-- TRANSACTIONS -->
2014-03-26 05:18:42 -07:00
< script type = "text/ng-template" id = "transactions.html" >
< div class = "transactions" data-ng-controller = "TransactionsController" >
2014-04-08 10:16:38 -07:00
< div class = "row" >
2014-04-14 13:58:12 -07:00
< div class = "large-12 columns" >
2014-04-15 13:45:53 -07:00
< h3 > Pending Transactions < small > ({{txsoutput.length}})< / small > < / h3 >
2014-04-16 13:50:10 -07:00
< div class = "panel pending" ng-repeat = "txp in txsoutput" >
2014-04-14 13:58:12 -07:00
{{txp}}
2014-04-08 10:16:38 -07:00
< div class = "row" >
< p class = "large-5 columns" > Address 1< / p >
< i class = "large-2 columns fi-arrow-right size-16 text-center" > < / i >
2014-04-14 13:58:12 -07:00
< p class = "large-5 columns" > Address 2< / p >
2014-04-16 13:50:10 -07:00
< div class = "large-12 columns m0" ng-show = "txp.signedByUs" > YOU SIGNED! < / div >
< div class = "large-12 columns m0" ng-show = "!txp.signedByUs" >
2014-04-08 10:16:38 -07:00
< div class = "line" > < / div >
< button class = "primary round large-4 columns" > < i class = "large-2 columns fi-x size-16 text-center" > < / i > Ignore< / button >
< small class = "large-4 columns text-center" > Faltan 3 cosigners< / small >
2014-04-16 13:50:10 -07:00
< button class = "secondary round large-4 columns" ng-click = "sign(txp.ntxid)" > < i class = "large-2 columns fi-check size-16 text-center" > < / i > Sign< / button >
2014-04-08 10:16:38 -07:00
< / div >
< / div > <!-- end of row -->
< / div > <!-- end of pending -->
2014-04-15 13:45:53 -07:00
< div class = "line-dashed-h" > < / div >
2014-04-08 10:16:38 -07:00
< / div >
2014-04-15 13:45:53 -07:00
2014-04-14 13:58:12 -07:00
< div class = "large-12 columns" >
2014-04-15 13:45:53 -07:00
< h3 > Last Transactions< / h3 >
2014-04-08 10:16:38 -07:00
< div class = "panel" >
< div class = "row" >
2014-04-15 13:45:53 -07:00
< p class = "large-5 columns" > Address 1 < small class = "right" > 1231 BTC < / small > < / p >
< i class = "large-1 columns fi-arrow-left size-16 text-center" > < / i >
< p class = "large-5 columns" > Adress 2 < small class = "right" > 1231 BTC < / small > < / p >
< span class = "panel-res panel-sign" >
< i class = "fi-check size-16" > < / i >
< / span >
2014-04-08 10:16:38 -07:00
< / div >
< / div >
< div class = "panel" >
< div class = "row" >
2014-04-15 13:45:53 -07:00
< p class = "large-5 columns" > Address 1 < small class = "right" > 1231 BTC < / small > < / p >
< i class = "large-1 columns fi-arrow-left size-16 text-center" > < / i >
< p class = "large-5 columns" > Adress 2 < small class = "right" > 1231 BTC < / small > < / p >
< span class = "panel-res panel-sign" >
< i class = "fi-check size-16" > < / i >
< / span >
2014-04-08 10:16:38 -07:00
< / div >
< / div >
< div class = "panel" >
< div class = "row" >
2014-04-15 13:45:53 -07:00
< p class = "large-5 columns" > Address 1 < small class = "right" > 1231 BTC < / small > < / p >
< i class = "large-1 columns fi-arrow-left size-16 text-center" > < / i >
< p class = "large-5 columns" > Adress 2 < small class = "right" > 1231 BTC < / small > < / p >
< span class = "panel-res panel-ignore" >
< i class = "fi-x size-16" > < / i >
< / span >
2014-04-08 10:16:38 -07:00
< / div >
< / div >
< / div >
< / div >
2014-03-26 05:18:42 -07:00
< / div >
< / script >
2014-03-26 13:56:11 -07:00
<!-- SEND -->
2014-03-26 05:18:42 -07:00
< script type = "text/ng-template" id = "send.html" >
< div class = "send" data-ng-controller = "SendController" >
2014-04-16 06:52:13 -07:00
< h3 > {{title}}< / h3 >
< div class = "row" >
< div class = "large-8 columns" >
< form >
< label for = "address" > To
< input type = "text" id = "address" placeholder = "Send to" >
< / label >
< label for = "amount" > Amount
< input type = "text" id = "amount" placeholder = "Amount" >
< select class = "form-control" >
< option > mBTC< / option >
< option > BTC< / option >
< / select >
< / label >
< button class = "button primary round" type = "button" ng-click = "sendTest()" > sendTest< / button >
< button type = "submit" class = "button secondary round right" > send< / button >
< / form >
< / div >
< / div >
2014-03-26 05:18:42 -07:00
< / div >
< / script >
2014-03-26 13:56:11 -07:00
<!-- BACKUP -->
2014-03-26 05:18:42 -07:00
< script type = "text/ng-template" id = "backup.html" >
< div class = "backup" data-ng-controller = "BackupController" >
2014-04-03 12:32:17 -07:00
< h2 > {{title}}< / h2 >
< div class = "row text-center" >
< div class = "large-4 columns" >
2014-04-07 11:05:53 -07:00
< a href = "/" class = "panel box-backup" >
2014-04-03 12:32:17 -07:00
< i class = "fi-download size-72" > < / i >
< p > Download File < / p >
< / a >
< / div >
< div class = "large-4 columns" >
2014-04-07 11:05:53 -07:00
< a href = "/" class = "panel box-backup" >
2014-04-03 12:32:17 -07:00
< i class = "fi-social-dropbox size-72" > < / i >
< p > Backup to Dropbox < / p >
< / a >
< / div >
< div class = "large-4 columns" >
2014-04-07 11:05:53 -07:00
< a href = "/" class = "panel box-backup" >
2014-04-03 12:32:17 -07:00
< i class = "fi-mail size-72" > < / i >
< p > Backup to email < / p >
< / a >
< / div >
< / div >
2014-03-26 05:18:42 -07:00
< / div >
2014-03-19 09:17:18 -07:00
< / script >
2014-04-17 09:43:34 -07:00
< div ng-show = "$root.wallet" style = "margin-top:200px" >
< hr >
< p >
[DEBUG] WalletId: {{$root.wallet.id}}
< ul class = "no-bullet" >
< li class = "panel" style = "word-wrap: break-word;" ng-repeat = "pub in $root.wallet.publicKeyRing.copayersBIP32" >
${{pub.extendedPublicKeyString()}}
< / ul >
< / div >
2014-04-03 12:32:17 -07:00
<!-- / <div class="large - 4 columns box - backup">Backup to Dropbox</div>
// < div class = "large-4 columns box-backup" > Backup to email< / div > -->
2014-03-26 13:56:11 -07:00
<!-- NOT FOUND -->
2014-03-19 09:17:18 -07:00
< script type = "text/ng-template" id = "404.html" >
2014-03-26 05:18:42 -07:00
< h2 class = "text-center" > 404< / h2 >
< h3 class = "text-center" > Page not found< / h3 >
< p class = "text-center" > < a href = "#/" > go back...< / a > < / p >
2014-03-19 09:17:18 -07:00
< / script >
< script src = "lib/angular/angular.min.js" > < / script >
2014-03-26 13:56:11 -07:00
< script src = "lib/qrcode-generator/js/qrcode.js" > < / script >
< script src = "lib/angular-qrcode/qrcode.js" > < / script >
2014-03-19 09:17:18 -07:00
< script src = "lib/angular-route/angular-route.min.js" > < / script >
2014-03-27 08:07:10 -07:00
< script src = "lib/angular-foundation/mm-foundation.min.js" > < / script >
< script src = "lib/angular-foundation/mm-foundation-tpls.min.js" > < / script >
2014-03-21 14:45:59 -07:00
< script src = "lib/peerjs/peer.js" > < / script >
2014-04-07 11:31:41 -07:00
< script src = "lib/bitcore.js" > < / script >
2014-04-15 14:13:25 -07:00
< script src = "lib/crypto-js/rollups/aes.js" > < / script >
2014-04-16 20:36:08 -07:00
< script src = "lib/socket.io.js" > < / script >
2014-04-11 11:58:53 -07:00
< script src = "js/copayBundle.js" > < / script >
2014-04-07 11:31:41 -07:00
2014-03-19 09:17:18 -07:00
< script src = "js/app.js" > < / script >
< script src = "js/config.js" > < / script >
2014-04-07 20:54:38 -07:00
< script src = "js/routes.js" > < / script >
2014-03-19 09:17:18 -07:00
< script src = "js/directives.js" > < / script >
< script src = "js/filters.js" > < / script >
2014-04-16 20:36:08 -07:00
< script src = "js/services/socket.js" > < / script >
2014-04-16 15:14:58 -07:00
< script src = "js/services/walletFactory.js" > < / script >
2014-04-17 07:46:49 -07:00
< script src = "js/services/controllerUtils.js" > < / script >
2014-03-27 12:31:42 -07:00
2014-03-25 07:35:04 -07:00
< script src = "js/controllers/header.js" > < / script >
2014-03-26 05:18:42 -07:00
< script src = "js/controllers/home.js" > < / script >
< script src = "js/controllers/transactions.js" > < / script >
< script src = "js/controllers/send.js" > < / script >
< script src = "js/controllers/backup.js" > < / script >
2014-03-27 12:31:42 -07:00
< script src = "js/controllers/signin.js" > < / script >
2014-04-16 13:07:14 -07:00
< script src = "js/controllers/setup.js" > < / script >
2014-03-31 08:48:35 -07:00
< script src = "js/controllers/peer.js" > < / script >
2014-03-25 07:35:04 -07:00
2014-03-19 09:17:18 -07:00
< script src = "js/init.js" > < / script >
2014-03-14 13:38:27 -07:00
< / body >
< / html >