Exemplo n.º 1
0
    def tvSellDoubleClicked(self):
        selected = self.tvSell.selectedIndexes()
        if not selected:
            return
        index = self.proxyModelSell.index(selected[0].row(), 3)
        oid = str(self.proxyModelSell.data(index).toString())
        if oid in wallet.p2p_agent.their_offers:
            offer = wallet.p2p_agent.their_offers[oid]
            moniker = str(self.cbMoniker.currentText())
            asset = wallet.get_asset_definition(moniker)
            if wallet.get_balance(asset) < offer.get_data()['A']['value']:
                QtGui.QMessageBox.warning(self, '', "Not enough money...",
                                          QtGui.QMessageBox.Cancel)
                return
            message = "Buy <b>{value}</b> {moniker} for <b>{course}</b> \
bitcoin (Total: <b>{total}</b> bitcoin)".format(
                **{
                    'value': self.proxyModelSell.data(selected[1]).toString(),
                    'moniker': moniker,
                    'course': self.proxyModelSell.data(selected[0]).toString(),
                    'total': self.proxyModelSell.data(selected[2]).toString(),
                })
            retval = QtGui.QMessageBox.question(
                self, "Confirm buy coins", message,
                QtGui.QMessageBox.Yes | QtGui.QMessageBox.Cancel,
                QtGui.QMessageBox.Cancel)
            if retval != QtGui.QMessageBox.Yes:
                return
            new_offer = wallet.p2ptrade_make_mirror_offer(offer)
            wallet.p2p_agent.register_my_offer(new_offer)
        else:
            offer = wallet.p2p_agent.my_offers[oid]
            wallet.p2p_agent.cancel_my_offer(offer)
        self.update_offers()
Exemplo n.º 2
0
    def cbMonikerIndexChanged(self):
        moniker = str(self.cbMoniker.currentText())
        if moniker == '':
            return

        asset = wallet.get_asset_definition('bitcoin')
        value = asset.format_value(wallet.get_balance(asset))
        text = '<b>Buy</b> {0} (Available: {1} bitcoin)'.format(moniker, value)
        self.lblBuy.setText(text)

        asset = wallet.get_asset_definition(moniker)
        value = asset.format_value(wallet.get_balance(asset))
        text = '<b>Sell</b> {0} (Available: {1} {0})'.format(moniker, value)
        self.lblSell.setText(text)

        self.update_offers()
Exemplo n.º 3
0
 def btnSellClicked(self):
     valid = True
     if not self.edtSellQuantity.text().toDouble()[1]:
         self.edtSellQuantity.setStyleSheet('background:#FF8080')
         valid = False
     if not self.edtSellPrice.text().toDouble()[1]:
         self.edtSellPrice.setStyleSheet('background:#FF8080')
         valid = False
     if not valid:
         return
     moniker = str(self.cbMoniker.currentText())
     asset = wallet.get_asset_definition(moniker)
     value = self.edtSellQuantity.text().toDouble()[0]
     bitcoin = wallet.get_asset_definition('bitcoin')
     price = self.edtSellPrice.text().toDouble()[0]
     delta = wallet.get_balance(asset) - asset.parse_value(value)
     if delta < 0:
         message = 'The transaction amount exceeds the balance by %s %s' % \
             (asset.format_value(-delta), moniker)
         QtGui.QMessageBox.critical(self, '', message, QtGui.QMessageBox.Ok)
         return
     offer = wallet.p2ptrade_make_offer(True, {
         'moniker': moniker,
         'value': value,
         'price': price,
     })
     wallet.p2p_agent.register_my_offer(offer)
     self.update_offers()
     self.edtSellQuantity.setText('')
     self.edtSellPrice.setText('')
Exemplo n.º 4
0
 def btnSellClicked(self):
     valid = True
     if not self.edtSellQuantity.text().toDouble()[1]:
         self.edtSellQuantity.setStyleSheet('background:#FF8080')
         valid = False
     if not self.edtSellPrice.text().toDouble()[1]:
         self.edtSellPrice.setStyleSheet('background:#FF8080')
         valid = False
     if not valid:
         return
     moniker = str(self.cbMoniker.currentText())
     asset = wallet.get_asset_definition(moniker)
     value = self.edtSellQuantity.text().toDouble()[0]
     bitcoin = wallet.get_asset_definition('bitcoin')
     price = self.edtSellPrice.text().toDouble()[0]
     delta = wallet.get_balance(asset) - asset.parse_value(value)
     if delta < 0:
         message = 'The transaction amount exceeds the balance by %s %s' % \
             (asset.format_value(-delta), moniker)
         QtGui.QMessageBox.critical(
             self, '', message,
             QtGui.QMessageBox.Ok, QtGui.QMessageBox.Ok)
         return
     offer = wallet.p2ptrade_make_offer(True, {
         'moniker': moniker,
         'value': value,
         'price': price,
     })
     wallet.p2p_agent.register_my_offer(offer)
     self.update_offers()
     self.edtSellQuantity.setText('')
     self.edtSellPrice.setText('')
Exemplo n.º 5
0
    def tvSellDoubleClicked(self):
        selected = self.tvSell.selectedIndexes()
        if not selected:
            return
        index = self.proxyModelSell.index(selected[0].row(), 3)
        oid = str(self.proxyModelSell.data(index).toString())
        if oid in wallet.p2p_agent.their_offers:
            offer = wallet.p2p_agent.their_offers[oid]
            moniker = str(self.cbMoniker.currentText())
            asset = wallet.get_asset_definition(moniker)
            if wallet.get_balance(asset) < offer.get_data()['A']['value']:
                QtGui.QMessageBox.warning(self, '', "Not enough money...",
                    QtGui.QMessageBox.Cancel)
                return
            message = "Sell <b>{value}</b> {moniker} for <b>{course}</b> \
bitcoin (Total: <b>{total}</b> bitcoin)".format(**{
                'value': self.proxyModelSell.data(selected[1]).toString(),
                'moniker': moniker,
                'course': self.proxyModelSell.data(selected[0]).toString(),
                'total': self.proxyModelSell.data(selected[2]).toString(),
            })
            retval = QtGui.QMessageBox.question(
                self, "Confirm sell coins", message,
                QtGui.QMessageBox.Yes | QtGui.QMessageBox.Cancel,
                QtGui.QMessageBox.Cancel)
            if retval != QtGui.QMessageBox.Yes:
                return
            new_offer = wallet.p2ptrade_make_mirror_offer(offer)
            wallet.p2p_agent.register_my_offer(new_offer)
        else:
            offer = wallet.p2p_agent.my_offers[oid]
            wallet.p2p_agent.cancel_my_offer(offer)
        self.update_offers()
Exemplo n.º 6
0
    def cbMonikerIndexChanged(self):
        moniker = str(self.cbMoniker.currentText())
        if moniker == '':
            return

        asset = wallet.get_asset_definition('bitcoin')
        value = asset.format_value(wallet.get_balance(asset))
        text = '<b>Buy</b> {0} (Available: {1} bitcoin)'.format(moniker, value)
        self.lblBuy.setText(text)

        asset = wallet.get_asset_definition(moniker)
        value = asset.format_value(wallet.get_balance(asset))
        text = '<b>Sell</b> {0} (Available: {1} {0})'.format(moniker, value)
        self.lblSell.setText(text)

        self.update_offers()
Exemplo n.º 7
0
 def updateAvailableBalance(self):
     moniker = str(self.cbMoniker.currentText())
     if moniker:
         asset = wallet.get_asset_definition(moniker)
         balance = wallet.get_balance(moniker)
         self.edtAmount.setMaximum(balance)
         self.lblAvailaleBalance.setText(
             '%s %s' % (asset.format_value(balance), moniker))
Exemplo n.º 8
0
 def updateAvailableBalance(self):
     moniker = str(self.cbMoniker.currentText())
     if moniker:
         asset = wallet.get_asset_definition(moniker)
         balance = wallet.get_balance(moniker)
         self.edtAmount.setMaximum(balance)
         self.lblAvailaleBalance.setText(
             '%s %s' % (asset.format_value(balance), moniker))
Exemplo n.º 9
0
 def updateWallet(self):
     moniker = str(self.cb_monikers.currentText())
     if moniker == '':
         return
     asset = wallet.get_asset_definition(moniker)
     balance = wallet.get_balance(asset)
     self.lbl_balance.setText(
         '%s %s' % (asset.format_value(balance), moniker))
     wam = wallet.model.get_address_manager()
     addr = wam.get_some_address(asset.get_color_set()).get_address()
     self.lbl_address.setText(addr)
Exemplo n.º 10
0
    def update(self):
        allowTextSelection = (
            QtCore.Qt.LinksAccessibleByMouse |
            QtCore.Qt.TextSelectableByKeyboard |
            QtCore.Qt.TextSelectableByMouse)

        self.scrollAreaContents = QtGui.QWidget()
        self.scrollArea.setWidget(self.scrollAreaContents)
        self.scrollAreaLayout = QtGui.QVBoxLayout(self.scrollAreaContents)

        hbox = QtGui.QHBoxLayout()
        hbox.addItem(QtGui.QSpacerItem(20, 0))
        hbox.setStretch(0, 1)
        updateButton = QtGui.QPushButton('Update', self.scrollAreaContents)
        updateButton.clicked.connect(self.updateButtonClicked)
        hbox.addWidget(updateButton)
        self.scrollAreaLayout.addLayout(hbox)

        for moniker in wallet.get_all_monikers():
            asset = wallet.get_asset_definition(moniker)
            address = wallet.get_some_address(asset)
            balance = wallet.get_balance(asset)

            groupBox = QtGui.QGroupBox(moniker, self.scrollAreaContents)
            layout = QtGui.QFormLayout(groupBox)

            label = QtGui.QLabel(groupBox)
            label.setText('Balance:')
            layout.setWidget(0, QtGui.QFormLayout.LabelRole, label)

            label = QtGui.QLabel(groupBox)
            label.setTextInteractionFlags(allowTextSelection)
            label.setCursor(QtGui.QCursor(QtCore.Qt.IBeamCursor))
            label.setText(asset.format_value(balance))
            layout.setWidget(0, QtGui.QFormLayout.FieldRole, label)

            label = QtGui.QLabel(groupBox)
            label.setText('Address:')
            layout.setWidget(1, QtGui.QFormLayout.LabelRole, label)

            label = QtGui.QLabel(groupBox)
            label.setTextInteractionFlags(allowTextSelection)
            label.setCursor(QtGui.QCursor(QtCore.Qt.IBeamCursor))
            label.setText(address)
            layout.setWidget(1, QtGui.QFormLayout.FieldRole, label)

            self.scrollAreaLayout.addWidget(groupBox)

        self.scrollAreaLayout.addItem(QtGui.QSpacerItem(20, 0))
        self.scrollAreaLayout.setStretch(self.scrollAreaLayout.count()-1, 1)
Exemplo n.º 11
0
    def update(self):
        allowTextSelection = (QtCore.Qt.LinksAccessibleByMouse
                              | QtCore.Qt.TextSelectableByKeyboard
                              | QtCore.Qt.TextSelectableByMouse)

        self.scrollAreaContents = QtGui.QWidget()
        self.scrollArea.setWidget(self.scrollAreaContents)
        self.scrollAreaLayout = QtGui.QVBoxLayout(self.scrollAreaContents)

        hbox = QtGui.QHBoxLayout()
        hbox.addItem(QtGui.QSpacerItem(20, 0))
        hbox.setStretch(0, 1)
        updateButton = QtGui.QPushButton('Update', self.scrollAreaContents)
        updateButton.clicked.connect(self.updateButtonClicked)
        hbox.addWidget(updateButton)
        self.scrollAreaLayout.addLayout(hbox)

        for moniker in wallet.get_all_monikers():
            asset = wallet.get_asset_definition(moniker)
            address = wallet.get_some_address(asset)
            balance = wallet.get_balance(asset)

            groupBox = QtGui.QGroupBox(moniker, self.scrollAreaContents)
            layout = QtGui.QFormLayout(groupBox)

            label = QtGui.QLabel(groupBox)
            label.setText('Balance:')
            layout.setWidget(0, QtGui.QFormLayout.LabelRole, label)

            label = QtGui.QLabel(groupBox)
            label.setTextInteractionFlags(allowTextSelection)
            label.setCursor(QtGui.QCursor(QtCore.Qt.IBeamCursor))
            label.setText(asset.format_value(balance))
            layout.setWidget(0, QtGui.QFormLayout.FieldRole, label)

            label = QtGui.QLabel(groupBox)
            label.setText('Address:')
            layout.setWidget(1, QtGui.QFormLayout.LabelRole, label)

            label = QtGui.QLabel(groupBox)
            label.setTextInteractionFlags(allowTextSelection)
            label.setCursor(QtGui.QCursor(QtCore.Qt.IBeamCursor))
            label.setText(address)
            layout.setWidget(1, QtGui.QFormLayout.FieldRole, label)

            self.scrollAreaLayout.addWidget(groupBox)

        self.scrollAreaLayout.addItem(QtGui.QSpacerItem(20, 0))
        self.scrollAreaLayout.setStretch(self.scrollAreaLayout.count() - 1, 1)
Exemplo n.º 12
0
    def __init__(self, parent):
        QtGui.QDialog.__init__(self, parent)
        uic.loadUi(uic.getUiPath('issuedialog.ui'), self)

        self.cbScheme.addItem('obc')

        for wname in ['edtMoniker', 'edtUnits', 'edtAtoms']:
            getattr(self, wname).focusInEvent = \
                lambda e, name=wname: getattr(self, name).setStyleSheet('')

        self.edtUnits.textChanged.connect(self.changeTotalBTC)
        self.edtAtoms.textChanged.connect(self.changeTotalBTC)

        self.availableBTC = wallet.get_balance('bitcoin')
        self.lblTotalBTC.setToolTip('Available: %s bitcoin' % \
            wallet.get_asset_definition('bitcoin').format_value(self.availableBTC))
Exemplo n.º 13
0
    def __init__(self, parent):
        QtGui.QDialog.__init__(self, parent)
        uic.loadUi(uic.getUiPath('issuedialog.ui'), self)

        self.cbScheme.addItem('obc')

        for wname in ['edtMoniker', 'edtUnits', 'edtAtoms']:
            def clearBackground(event, wname=wname):
                getattr(self, wname).setStyleSheet('')
                QtGui.QLineEdit.focusInEvent(getattr(self, wname), event)
            getattr(self, wname).focusInEvent = clearBackground

        self.edtUnits.textChanged.connect(self.changeTotalBTC)
        self.edtAtoms.textChanged.connect(self.changeTotalBTC)

        self.availableBTC = wallet.get_balance('bitcoin')
        self.lblTotalBTC.setToolTip('Available: %s bitcoin' % \
            wallet.get_asset_definition('bitcoin').format_value(self.availableBTC))
Exemplo n.º 14
0
    def __init__(self, parent):
        QtGui.QDialog.__init__(self, parent)
        uic.loadUi(uic.getUiPath("issuedialog.ui"), self)

        self.cbScheme.addItem("obc")

        for wname in ["edtMoniker", "edtUnits", "edtAtoms"]:

            def clearBackground(event, wname=wname):
                getattr(self, wname).setStyleSheet("")
                QtGui.QLineEdit.focusInEvent(getattr(self, wname), event)

            getattr(self, wname).focusInEvent = clearBackground

        self.edtUnits.textChanged.connect(self.changeTotalBTC)
        self.edtAtoms.textChanged.connect(self.changeTotalBTC)

        self.availableBTC = wallet.get_balance("bitcoin")
        self.lblTotalBTC.setToolTip(
            "Available: %s bitcoin" % wallet.get_asset_definition("bitcoin").format_value(self.availableBTC)
        )
Exemplo n.º 15
0
 def btnSendClicked(self):
     entries = [
         self.entries.itemAt(i).widget()
         for i in xrange(self.entries.count())
     ]
     if not all([entry.isValid() for entry in entries]):
         return
     data = [entry.getData() for entry in entries]
     message = 'Are you sure you want to send'
     for recipient in data:
         asset = wallet.get_asset_definition(recipient['moniker'])
         value = asset.format_value(recipient['value'])
         message += '<br><b>{value} {moniker}</b> to {address}'.format(**{
             'value': value,
             'moniker': 'BTC' if recipient['moniker'] == 'bitcoin' \
                 else recipient['moniker'],
             'address': recipient['address'],
         })
     message += '?'
     retval = QtGui.QMessageBox.question(
         self, 'Confirm send coins', message,
         QtGui.QMessageBox.Yes | QtGui.QMessageBox.Cancel,
         QtGui.QMessageBox.Cancel)
     if retval != QtGui.QMessageBox.Yes:
         return
     # check value exceeds balance
     currency = collections.defaultdict(float)
     for recipient in data:
         currency[recipient['moniker']] += recipient['value']
     for moniker, value in currency.items():
         if value > wallet.get_balance(moniker):
             QtGui.QMessageBox.warning(
                 self, 'Send coins',
                 'The amount for <b>%s</b> exceeds your balance.' % moniker,
                 QtGui.QMessageBox.Ok)
             return
     wallet.send_coins(data)
     self.parent().parent().parent().update()
Exemplo n.º 16
0
 def btnSendClicked(self):
     entries = [self.entries.itemAt(i).widget()
                 for i in xrange(self.entries.count())]
     if not all([entry.isValid() for entry in entries]):
         return
     data = [entry.getData() for entry in entries]
     message = 'Are you sure you want to send'
     for recipient in data:
         asset = wallet.get_asset_definition(recipient['moniker'])
         value = asset.format_value(recipient['value'])
         message += '<br><b>{value} {moniker}</b> to {address}'.format(**{
             'value': value,
             'moniker': 'BTC' if recipient['moniker'] == 'bitcoin' \
                 else recipient['moniker'],
             'address': recipient['address'],
         })
     message += '?'
     retval = QtGui.QMessageBox.question(
         self, 'Confirm send coins',
         message,
         QtGui.QMessageBox.Yes | QtGui.QMessageBox.Cancel,
         QtGui.QMessageBox.Cancel)
     if retval != QtGui.QMessageBox.Yes:
         return
     # check value exceeds balance
     currency = collections.defaultdict(float)
     for recipient in data:
         currency[recipient['moniker']] += recipient['value']
     for moniker, value in currency.items():
         if value > wallet.get_balance(moniker):
             QtGui.QMessageBox.warning(
                 self, 'Send coins',
                 'The amount for <b>%s</b> exceeds your balance.' % moniker,
                 QtGui.QMessageBox.Ok)
             return
     wallet.send_coins(data)
     self.parent().parent().parent().update()