Browse Source

Merge pull request #1269 from kyuupichan/COIN

Create a constant for 100000000 and use it
283
ThomasV 10 years ago
parent
commit
ed256e064a
  1. 14
      gui/android.py
  2. 14
      gui/gtk.py
  3. 2
      gui/qt/lite_window.py
  4. 4
      gui/qt/main_window.py
  5. 12
      gui/stdio.py
  6. 15
      gui/text.py
  7. 1
      lib/bitcoin.py
  8. 22
      lib/commands.py
  9. 2
      lib/util.py
  10. 15
      plugins/exchange_rate.py

14
gui/android.py

@ -23,7 +23,7 @@ from __future__ import absolute_import
import android
from electrum import SimpleConfig, Wallet, WalletStorage, format_satoshis
from electrum.bitcoin import is_address
from electrum.bitcoin import is_address, COIN
from electrum import util
from decimal import Decimal
import datetime, re
@ -585,7 +585,7 @@ def payto_loop():
continue
try:
amount = int( 100000000 * Decimal(amount) )
amount = int(COIN * Decimal(amount))
except Exception:
modal_dialog('Error','Invalid amount')
continue
@ -608,7 +608,7 @@ def payto_loop():
if re.match('^bitcoin:', data):
payto, amount, label, message, _ = util.parse_URI(data)
if amount:
amount = str(amount/100000000)
amount = str(amount / COIN)
droid.fullSetProperty("recipient", "text", payto)
droid.fullSetProperty("amount", "text", amount)
droid.fullSetProperty("message", "text", message)
@ -662,7 +662,7 @@ def receive_loop():
elif event["name"]=="amount":
amount = modal_input('Amount', 'Amount you want to receive (in BTC). ', format_satoshis(receive_amount) if receive_amount else None, "numberDecimal")
if amount is not None:
receive_amount = int(100000000 * Decimal(amount)) if amount else None
receive_amount = int(COIN * Decimal(amount)) if amount else None
out = 'receive'
elif event["name"]=="message":
@ -770,7 +770,7 @@ def settings_loop():
def set_listview():
host, port, p, proxy_config, auto_connect = network.get_parameters()
fee = str( Decimal( wallet.fee_per_kb)/100000000 )
fee = str(Decimal(wallet.fee_per_kb) / COIN)
is_encrypted = 'yes' if wallet.use_encryption else 'no'
protocol = protocol_name(p)
droid.fullShow(settings_layout)
@ -818,10 +818,10 @@ def settings_loop():
elif pos == "3": #fee
fee = modal_input('Transaction fee', 'The fee will be this amount multiplied by the number of inputs in your transaction. ',
str(Decimal(wallet.fee_per_kb)/100000000 ), "numberDecimal")
str(Decimal(wallet.fee_per_kb) / COIN), "numberDecimal")
if fee:
try:
fee = int( 100000000 * Decimal(fee) )
fee = int(COIN * Decimal(fee))
except Exception:
modal_dialog('error','invalid fee value')
wallet.set_fee(fee)

14
gui/gtk.py

@ -25,7 +25,7 @@ gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk, GObject, cairo
from decimal import Decimal
from electrum.util import print_error, InvalidPassword
from electrum.bitcoin import is_valid
from electrum.bitcoin import is_valid, COIN
from electrum.wallet import NotEnoughFunds
from electrum import WalletStorage, Wallet
@ -48,7 +48,7 @@ def numbify(entry, is_int = False):
s = s.replace('.','')
s = s[:p] + '.' + s[p:p+8]
try:
amount = int( Decimal(s) * 100000000 )
amount = int(Decimal(s) * COIN)
except Exception:
amount = None
else:
@ -164,7 +164,7 @@ def run_settings_dialog(self):
fee_label.set_size_request(150,10)
fee_label.show()
fee.pack_start(fee_label,False, False, 10)
fee_entry.set_text( str( Decimal(self.wallet.fee_per_kb) /100000000 ) )
fee_entry.set_text(str(Decimal(self.wallet.fee_per_kb) / COIN))
fee_entry.connect('changed', numbify, False)
fee_entry.show()
fee.pack_start(fee_entry,False,False, 10)
@ -196,7 +196,7 @@ def run_settings_dialog(self):
return
try:
fee = int( 100000000 * Decimal(fee) )
fee = int(COIN * Decimal(fee))
except Exception:
show_message("error")
return
@ -698,7 +698,7 @@ class ElectrumWindow:
if not self.funds_error:
if not is_fee:
fee = tx.get_fee()
fee_entry.set_text( str( Decimal( fee ) / 100000000 ) )
fee_entry.set_text(str(Decimal(fee) / COIN))
self.fee_box.show()
amount_entry.modify_text(Gtk.StateType.NORMAL, Gdk.color_parse("#000000"))
fee_entry.modify_text(Gtk.StateType.NORMAL, Gdk.color_parse("#000000"))
@ -791,12 +791,12 @@ class ElectrumWindow:
return
try:
amount = int( Decimal(amount_entry.get_text()) * 100000000 )
amount = int(Decimal(amount_entry.get_text()) * COIN)
except Exception:
self.show_message( "invalid amount")
return
try:
fee = int( Decimal(fee_entry.get_text()) * 100000000 )
fee = int(Decimal(fee_entry.get_text()) * COIN)
except Exception:
self.show_message( "invalid fee")
return

2
gui/qt/lite_window.py

@ -36,7 +36,7 @@ import shutil
from util import *
bitcoin = lambda v: v * 100000000
bitcoin = lambda v: v * COIN
def IconButton(filename, parent=None):
pixmap = QPixmap(filename)

4
gui/qt/main_window.py

@ -30,7 +30,7 @@ from PyQt4.QtGui import *
from PyQt4.QtCore import *
import PyQt4.QtCore as QtCore
from electrum.bitcoin import MIN_RELAY_TX_FEE, is_valid
from electrum.bitcoin import MIN_RELAY_TX_FEE, COIN, is_valid
from electrum.plugins import run_hook
import icons_rc
@ -1092,7 +1092,7 @@ class ElectrumWindow(QMainWindow):
return
amount = sum(map(lambda x:x[2], outputs))
confirm_amount = self.config.get('confirm_amount', 100000000)
confirm_amount = self.config.get('confirm_amount', COIN)
if amount >= confirm_amount:
o = '\n'.join(map(lambda x:x[1], outputs))
if not self.question(_("send %(amount)s to %(address)s?")%{ 'amount' : self.format_amount(amount) + ' '+ self.base_unit(), 'address' : o}):

12
gui/stdio.py

@ -3,7 +3,7 @@ _ = lambda x:x
#from i18n import _
from electrum.wallet import WalletStorage, Wallet
from electrum.util import format_satoshis, set_verbosity, StoreDict
from electrum.bitcoin import is_valid
from electrum.bitcoin import is_valid, COIN
from electrum.network import filter_protocol
import sys, getpass, datetime
@ -125,11 +125,11 @@ class ElectrumGui:
msg = _( "Synchronizing..." )
else:
c, u, x = self.wallet.get_balance()
msg = _("Balance")+": %f "%(Decimal(c) / 100000000)
msg = _("Balance")+": %f "%(Decimal(c) / COIN)
if u:
msg += " [%f unconfirmed]"%(Decimal(u) / 100000000)
msg += " [%f unconfirmed]"%(Decimal(u) / COIN)
if x:
msg += " [%f unmatured]"%(Decimal(x) / 100000000)
msg += " [%f unmatured]"%(Decimal(x) / COIN)
else:
msg = _( "Not connected" )
@ -178,12 +178,12 @@ class ElectrumGui:
print(_('Invalid Bitcoin address'))
return
try:
amount = int( Decimal( self.str_amount) * 100000000 )
amount = int(Decimal(self.str_amount) * COIN)
except Exception:
print(_('Invalid Amount'))
return
try:
fee = int( Decimal( self.str_fee) * 100000000 )
fee = int(Decimal(self.str_fee) * COIN)
except Exception:
print(_('Invalid Fee'))
return

15
gui/text.py

@ -1,10 +1,9 @@
import curses, datetime, locale
from decimal import Decimal
_ = lambda x:x
#from i18n import _
from electrum.util import format_satoshis, set_verbosity
from electrum.util import StoreDict
from electrum.bitcoin import is_valid
from electrum.bitcoin import is_valid, COIN
from electrum import Wallet, WalletStorage
@ -133,11 +132,11 @@ class ElectrumGui:
msg = _("Synchronizing...")
else:
c, u, x = self.wallet.get_balance()
msg = _("Balance")+": %f "%(Decimal(c) / 100000000)
msg = _("Balance")+": %f "%(Decimal(c) / COIN)
if u:
msg += " [%f unconfirmed]"%(Decimal(u) / 100000000)
msg += " [%f unconfirmed]"%(Decimal(u) / COIN)
if x:
msg += " [%f unmatured]"%(Decimal(x) / 100000000)
msg += " [%f unmatured]"%(Decimal(x) / COIN)
else:
msg = _("Not connected")
@ -297,12 +296,12 @@ class ElectrumGui:
self.show_message(_('Invalid Bitcoin address'))
return
try:
amount = int( Decimal( self.str_amount) * 100000000 )
amount = int(Decimal(self.str_amount) * COIN)
except Exception:
self.show_message(_('Invalid Amount'))
return
try:
fee = int( Decimal( self.str_fee) * 100000000 )
fee = int(Decimal(self.str_fee) * COIN)
except Exception:
self.show_message(_('Invalid Fee'))
return
@ -388,7 +387,7 @@ class ElectrumGui:
if out.get('Default GUI'):
self.config.set_key('gui', out['Default GUI'], True)
if out.get('Default fee'):
fee = int ( Decimal( out['Default fee']) *10000000 )
fee = int(Decimal(out['Default fee']) * COIN)
self.config.set_key('fee_per_kb', fee, True)

1
lib/bitcoin.py

@ -35,6 +35,7 @@ DUST_THRESHOLD = 546
MIN_RELAY_TX_FEE = 1000
RECOMMENDED_FEE = 50000
COINBASE_MATURITY = 100
COIN = 100000000
# AES encryption
EncodeAES = lambda secret, s: base64.b64encode(aes.encryptData(secret,s))

22
lib/commands.py

@ -29,7 +29,7 @@ from decimal import Decimal
import util
from util import print_msg, format_satoshis, print_stderr
import bitcoin
from bitcoin import is_address, hash_160_to_bc_address, hash_160
from bitcoin import is_address, hash_160_to_bc_address, hash_160, COIN
from transaction import Transaction
@ -148,7 +148,7 @@ class Commands:
def listunspent(self):
"""List unspent outputs. Returns the list of unspent transaction outputs in your wallet."""
l = copy.deepcopy(self.wallet.get_spendable_coins(exclude_frozen = False))
for i in l: i["value"] = str(Decimal(i["value"])/100000000)
for i in l: i["value"] = str(Decimal(i["value"])/COIN)
return l
@command('n')
@ -178,7 +178,7 @@ class Commands:
break
else:
raise BaseException('Transaction output not in wallet', prevout_hash+":%d"%prevout_n)
outputs = map(lambda x: ('address', x[0], int(1e8*x[1])), outputs.items())
outputs = map(lambda x: ('address', x[0], int(COIN*x[1])), outputs.items())
tx = Transaction.from_io(tx_inputs, outputs)
if not unsigned:
self.wallet.sign_transaction(tx, self.password)
@ -260,19 +260,19 @@ class Commands:
c, u, x = self.wallet.get_balance()
else:
c, u, x = self.wallet.get_account_balance(account)
out = {"confirmed": str(Decimal(c)/100000000)}
out = {"confirmed": str(Decimal(c)/COIN)}
if u:
out["unconfirmed"] = str(Decimal(u)/100000000)
out["unconfirmed"] = str(Decimal(u)/COIN)
if x:
out["unmatured"] = str(Decimal(x)/100000000)
out["unmatured"] = str(Decimal(x)/COIN)
return out
@command('n')
def getaddressbalance(self, address):
"""Return the balance of an address"""
out = self.network.synchronous_get([('blockchain.address.get_balance', [address])])[0]
out["confirmed"] = str(Decimal(out["confirmed"])/100000000)
out["unconfirmed"] = str(Decimal(out["unconfirmed"])/100000000)
out["confirmed"] = str(Decimal(out["confirmed"])/COIN)
out["unconfirmed"] = str(Decimal(out["unconfirmed"])/COIN)
return out
@command('n')
@ -332,7 +332,7 @@ class Commands:
dest = resolver(destination)
if tx_fee is None:
tx_fee = 0.0001
fee = int(Decimal(tx_fee)*100000000)
fee = int(Decimal(tx_fee)*COIN)
return Transaction.sweep([privkey], self.network, dest, fee)
@command('wp')
@ -350,7 +350,7 @@ class Commands:
resolver = lambda x: None if x is None else self.contacts.resolve(x, nocheck)['address']
change_addr = resolver(change_addr)
domain = None if domain is None else map(resolver, domain)
fee = None if fee is None else int(100000000*Decimal(fee))
fee = None if fee is None else int(COIN*Decimal(fee))
final_outputs = []
for address, amount in outputs:
address = resolver(address)
@ -367,7 +367,7 @@ class Commands:
fee = self.wallet.estimated_fee(dummy_tx)
amount -= fee
else:
amount = int(100000000*Decimal(amount))
amount = int(COIN*Decimal(amount))
final_outputs.append(('address', address, amount))
coins = self.wallet.get_spendable_coins(domain)

2
lib/util.py

@ -254,7 +254,7 @@ def parse_URI(uri):
k = int(m.group(2)) - 8
amount = Decimal(m.group(1)) * pow( Decimal(10) , k)
else:
amount = Decimal(am) * 100000000
amount = Decimal(am) * COIN
if 'message' in pq:
message = pq['message'][0].decode('utf8')
if 'label' in pq:

15
plugins/exchange_rate.py

@ -11,6 +11,7 @@ import re
from ssl import SSLError
from decimal import Decimal
from electrum.bitcoin import COIN
from electrum.plugins import BasePlugin, hook
from electrum.i18n import _
from electrum_gui.qt.util import *
@ -220,7 +221,7 @@ class Plugin(BasePlugin):
@hook
def get_fiat_balance_text(self, btc_balance, r):
# return balance as: 1.23 USD
r[0] = self.create_fiat_balance_text(Decimal(btc_balance) / 100000000)
r[0] = self.create_fiat_balance_text(Decimal(btc_balance) / COIN)
def get_fiat_price_text(self, r):
# return BTC price as: 123.45 USD
@ -240,7 +241,7 @@ class Plugin(BasePlugin):
price_text = "1 BTC~%s"%quote
fiat_currency = quote[-3:]
btc_price = self.btc_rate
fiat_balance = Decimal(btc_price) * (Decimal(btc_balance)/100000000)
fiat_balance = Decimal(btc_price) * Decimal(btc_balance) / COIN
balance_text = "(%.2f %s)" % (fiat_balance,fiat_currency)
text = " " + balance_text + " " + price_text + " "
r2[0] = text
@ -338,20 +339,20 @@ class Plugin(BasePlugin):
tx_info = {'timestamp':int(time.time()), 'value': v}
pass
tx_time = int(tx_info['timestamp'])
tx_value = Decimal(str(tx_info['value'])) / 100000000
tx_value = Decimal(str(tx_info['value'])) / COIN
if self.cur_exchange == "CoinDesk":
tx_time_str = datetime.datetime.fromtimestamp(tx_time).strftime('%Y-%m-%d')
try:
tx_fiat_val = "%.2f %s" % (tx_value * Decimal(self.resp_hist['bpi'][tx_time_str]), "USD")
except KeyError:
tx_fiat_val = "%.2f %s" % (self.btc_rate * Decimal(str(tx_info['value']))/100000000 , "USD")
tx_fiat_val = "%.2f %s" % (self.btc_rate * Decimal(str(tx_info['value']))/COIN , "USD")
elif self.cur_exchange == "Winkdex":
tx_time_str = datetime.datetime.fromtimestamp(tx_time).strftime('%Y-%m-%d') + "T16:00:00-04:00"
try:
tx_rate = self.resp_hist[[x['timestamp'] for x in self.resp_hist].index(tx_time_str)]['price']
tx_fiat_val = "%.2f %s" % (tx_value * Decimal(tx_rate)/Decimal("100.0"), "USD")
except ValueError:
tx_fiat_val = "%.2f %s" % (self.btc_rate * Decimal(tx_info['value'])/100000000 , "USD")
tx_fiat_val = "%.2f %s" % (self.btc_rate * Decimal(tx_info['value'])/COIN , "USD")
except KeyError:
tx_fiat_val = _("No data")
elif self.cur_exchange == "BitcoinVenezuela":
@ -520,7 +521,7 @@ class Plugin(BasePlugin):
exchange_rate = self.exchanger.exchange(Decimal("1.0"), self.fiat_unit())
if exchange_rate is not None:
btc_amount = fiat_amount/exchange_rate
btc_e.setAmount(int(btc_amount*Decimal(100000000)))
btc_e.setAmount(int(btc_amount*Decimal(COIN)))
if fee_e: self.win.update_fee(False)
fiat_e.textEdited.connect(fiat_changed)
def btc_changed():
@ -530,7 +531,7 @@ class Plugin(BasePlugin):
if btc_amount is None:
fiat_e.setText("")
return
fiat_amount = self.exchanger.exchange(Decimal(btc_amount)/Decimal(100000000), self.fiat_unit())
fiat_amount = self.exchanger.exchange(Decimal(btc_amount)/Decimal(COIN), self.fiat_unit())
if fiat_amount is not None:
pos = fiat_e.cursorPosition()
fiat_e.setText("%.2f"%fiat_amount)

Loading…
Cancel
Save