UI - Capitalization consistency, clarity
This commit is contained in:
parent
2064a727f4
commit
30c0139d09
|
@ -241,7 +241,7 @@ class ElectrumWindow(App):
|
||||||
|
|
||||||
App.__init__(self)#, **kwargs)
|
App.__init__(self)#, **kwargs)
|
||||||
|
|
||||||
title = _('Electrum App')
|
title = _('Zclassic Electrum')
|
||||||
self.electrum_config = config = kwargs.get('config', None)
|
self.electrum_config = config = kwargs.get('config', None)
|
||||||
self.language = config.get('language', 'en')
|
self.language = config.get('language', 'en')
|
||||||
self.network = network = kwargs.get('network', None)
|
self.network = network = kwargs.get('network', None)
|
||||||
|
@ -282,16 +282,16 @@ class ElectrumWindow(App):
|
||||||
self.invoices_screen.update()
|
self.invoices_screen.update()
|
||||||
status = self.wallet.invoices.get_status(key)
|
status = self.wallet.invoices.get_status(key)
|
||||||
if status == PR_PAID:
|
if status == PR_PAID:
|
||||||
self.show_error("invoice already paid")
|
self.show_error("Invoice already paid")
|
||||||
self.send_screen.do_clear()
|
self.send_screen.do_clear()
|
||||||
else:
|
else:
|
||||||
if pr.has_expired():
|
if pr.has_expired():
|
||||||
self.show_error(_('Payment request has expired'))
|
self.show_error(_('Payment request has expired.'))
|
||||||
else:
|
else:
|
||||||
self.switch_to('send')
|
self.switch_to('send')
|
||||||
self.send_screen.set_request(pr)
|
self.send_screen.set_request(pr)
|
||||||
else:
|
else:
|
||||||
self.show_error("invoice error:" + pr.error)
|
self.show_error("Invoice error:" + pr.error)
|
||||||
self.send_screen.do_clear()
|
self.send_screen.do_clear()
|
||||||
|
|
||||||
def on_qr(self, data):
|
def on_qr(self, data):
|
||||||
|
|
|
@ -244,7 +244,7 @@ class SendScreen(CScreen):
|
||||||
def do_send(self):
|
def do_send(self):
|
||||||
if self.screen.is_pr:
|
if self.screen.is_pr:
|
||||||
if self.payment_request.has_expired():
|
if self.payment_request.has_expired():
|
||||||
self.app.show_error(_('Payment request has expired'))
|
self.app.show_error(_('Payment request has expired.'))
|
||||||
return
|
return
|
||||||
outputs = self.payment_request.get_outputs()
|
outputs = self.payment_request.get_outputs()
|
||||||
else:
|
else:
|
||||||
|
@ -258,7 +258,7 @@ class SendScreen(CScreen):
|
||||||
try:
|
try:
|
||||||
amount = self.app.get_amount(self.screen.amount)
|
amount = self.app.get_amount(self.screen.amount)
|
||||||
except:
|
except:
|
||||||
self.app.show_error(_('Invalid amount') + ':\n' + self.screen.amount)
|
self.app.show_error(_('Invalid Amount') + ':\n' + self.screen.amount)
|
||||||
return
|
return
|
||||||
outputs = [(bitcoin.TYPE_ADDRESS, address, amount)]
|
outputs = [(bitcoin.TYPE_ADDRESS, address, amount)]
|
||||||
message = self.screen.message
|
message = self.screen.message
|
||||||
|
@ -322,7 +322,7 @@ class ReceiveScreen(CScreen):
|
||||||
self.get_new_address()
|
self.get_new_address()
|
||||||
else:
|
else:
|
||||||
status = self.app.wallet.get_request_status(self.screen.address)
|
status = self.app.wallet.get_request_status(self.screen.address)
|
||||||
self.screen.status = _('Payment received') if status == PR_PAID else ''
|
self.screen.status = _('Payment Received') if status == PR_PAID else ''
|
||||||
|
|
||||||
def clear(self):
|
def clear(self):
|
||||||
self.screen.address = ''
|
self.screen.address = ''
|
||||||
|
@ -350,7 +350,7 @@ class ReceiveScreen(CScreen):
|
||||||
amount = req.get('amount')
|
amount = req.get('amount')
|
||||||
self.screen.amount = self.app.format_amount_and_units(amount) if amount else ''
|
self.screen.amount = self.app.format_amount_and_units(amount) if amount else ''
|
||||||
status = req.get('status', PR_UNKNOWN)
|
status = req.get('status', PR_UNKNOWN)
|
||||||
self.screen.status = _('Payment received') if status == PR_PAID else ''
|
self.screen.status = _('Payment Received') if status == PR_PAID else ''
|
||||||
Clock.schedule_once(lambda dt: self.update_qr())
|
Clock.schedule_once(lambda dt: self.update_qr())
|
||||||
|
|
||||||
def get_URI(self):
|
def get_URI(self):
|
||||||
|
|
|
@ -34,10 +34,10 @@ Popup:
|
||||||
text: (_('Status') if popup.amount or popup.is_invoice or popup.isaddr == 'y' else _('Amount received')) if root.status else ''
|
text: (_('Status') if popup.amount or popup.is_invoice or popup.isaddr == 'y' else _('Amount received')) if root.status else ''
|
||||||
value: root.status
|
value: root.status
|
||||||
BoxLabel:
|
BoxLabel:
|
||||||
text: _('Request amount') if root.amount else ''
|
text: _('Request Amount') if root.amount else ''
|
||||||
value: app.format_amount_and_units(root.amount) if root.amount else ''
|
value: app.format_amount_and_units(root.amount) if root.amount else ''
|
||||||
BoxLabel:
|
BoxLabel:
|
||||||
text: _('Requestor') if popup.is_invoice else _('Address')
|
text: _('Requested By') if popup.is_invoice else _('Address')
|
||||||
value: root.requestor
|
value: root.requestor
|
||||||
BoxLabel:
|
BoxLabel:
|
||||||
text: _('Signature') if root.signature else ''
|
text: _('Signature') if root.signature else ''
|
||||||
|
|
|
@ -50,7 +50,7 @@ class AddressList(MyTreeWidget):
|
||||||
self.used_button.addItem(t)
|
self.used_button.addItem(t)
|
||||||
|
|
||||||
def get_list_header(self):
|
def get_list_header(self):
|
||||||
return QLabel(_("Filter:")), self.change_button, self.used_button
|
return QLabel(_("Filter ")), self.change_button, self.used_button
|
||||||
|
|
||||||
def refresh_headers(self):
|
def refresh_headers(self):
|
||||||
headers = [ _('Address'), _('Label'), _('Balance')]
|
headers = [ _('Address'), _('Label'), _('Balance')]
|
||||||
|
|
|
@ -174,7 +174,7 @@ class InstallWizard(QDialog, MessageBoxMixin, BaseWizard):
|
||||||
hbox2.addWidget(self.pw_e)
|
hbox2.addWidget(self.pw_e)
|
||||||
hbox2.addStretch()
|
hbox2.addStretch()
|
||||||
vbox.addLayout(hbox2)
|
vbox.addLayout(hbox2)
|
||||||
self.set_layout(vbox, title=_('Electrum wallet'))
|
self.set_layout(vbox, title=_('Electrum Wallet'))
|
||||||
|
|
||||||
wallet_folder = os.path.dirname(self.storage.path)
|
wallet_folder = os.path.dirname(self.storage.path)
|
||||||
|
|
||||||
|
|
|
@ -29,10 +29,10 @@ from electrum.util import format_time
|
||||||
|
|
||||||
|
|
||||||
class InvoiceList(MyTreeWidget):
|
class InvoiceList(MyTreeWidget):
|
||||||
filter_columns = [0, 1, 2, 3] # Date, Requestor, Description, Amount
|
filter_columns = [0, 1, 2, 3] # Date, Requested By, Description, Amount
|
||||||
|
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
MyTreeWidget.__init__(self, parent, self.create_menu, [_('Expires'), _('Requestor'), _('Description'), _('Amount'), _('Status')], 2)
|
MyTreeWidget.__init__(self, parent, self.create_menu, [_('Expires'), _('Requested By'), _('Description'), _('Amount'), _('Status')], 2)
|
||||||
self.setSortingEnabled(True)
|
self.setSortingEnabled(True)
|
||||||
self.header().setSectionResizeMode(1, QHeaderView.Interactive)
|
self.header().setSectionResizeMode(1, QHeaderView.Interactive)
|
||||||
self.setColumnWidth(1, 200)
|
self.setColumnWidth(1, 200)
|
||||||
|
|
|
@ -447,10 +447,10 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||||
menubar = QMenuBar()
|
menubar = QMenuBar()
|
||||||
|
|
||||||
file_menu = menubar.addMenu(_("&File"))
|
file_menu = menubar.addMenu(_("&File"))
|
||||||
self.recently_visited_menu = file_menu.addMenu(_("&Recently open"))
|
self.recently_visited_menu = file_menu.addMenu(_("&Recently Opened"))
|
||||||
file_menu.addAction(_("&Open"), self.open_wallet).setShortcut(QKeySequence.Open)
|
file_menu.addAction(_("&Open"), self.open_wallet).setShortcut(QKeySequence.Open)
|
||||||
file_menu.addAction(_("&New/Restore"), self.new_wallet).setShortcut(QKeySequence.New)
|
file_menu.addAction(_("&New/Restore"), self.new_wallet).setShortcut(QKeySequence.New)
|
||||||
file_menu.addAction(_("&Save Copy"), self.backup_wallet).setShortcut(QKeySequence.SaveAs)
|
file_menu.addAction(_("&Backup Wallet"), self.backup_wallet).setShortcut(QKeySequence.SaveAs)
|
||||||
file_menu.addAction(_("Delete"), self.remove_wallet)
|
file_menu.addAction(_("Delete"), self.remove_wallet)
|
||||||
file_menu.addSeparator()
|
file_menu.addSeparator()
|
||||||
file_menu.addAction(_("&Quit"), self.close)
|
file_menu.addAction(_("&Quit"), self.close)
|
||||||
|
@ -460,11 +460,11 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||||
wallet_menu.addSeparator()
|
wallet_menu.addSeparator()
|
||||||
self.password_menu = wallet_menu.addAction(_("&Password"), self.change_password_dialog)
|
self.password_menu = wallet_menu.addAction(_("&Password"), self.change_password_dialog)
|
||||||
self.seed_menu = wallet_menu.addAction(_("&Seed"), self.show_seed_dialog)
|
self.seed_menu = wallet_menu.addAction(_("&Seed"), self.show_seed_dialog)
|
||||||
self.private_keys_menu = wallet_menu.addMenu(_("&Private keys"))
|
self.private_keys_menu = wallet_menu.addMenu(_("&Private Keys"))
|
||||||
self.private_keys_menu.addAction(_("&Sweep"), self.sweep_key_dialog)
|
self.private_keys_menu.addAction(_("&Sweep"), self.sweep_key_dialog)
|
||||||
self.import_privkey_menu = self.private_keys_menu.addAction(_("&Import"), self.do_import_privkey)
|
self.import_privkey_menu = self.private_keys_menu.addAction(_("&Import"), self.do_import_privkey)
|
||||||
self.export_menu = self.private_keys_menu.addAction(_("&Export"), self.export_privkeys_dialog)
|
self.export_menu = self.private_keys_menu.addAction(_("&Export"), self.export_privkeys_dialog)
|
||||||
self.import_address_menu = wallet_menu.addAction(_("Import addresses"), self.import_addresses)
|
self.import_address_menu = wallet_menu.addAction(_("Import Addresses"), self.import_addresses)
|
||||||
wallet_menu.addSeparator()
|
wallet_menu.addSeparator()
|
||||||
|
|
||||||
labels_menu = wallet_menu.addMenu(_("&Labels"))
|
labels_menu = wallet_menu.addMenu(_("&Labels"))
|
||||||
|
@ -496,21 +496,21 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||||
tools_menu = menubar.addMenu(_("&Tools"))
|
tools_menu = menubar.addMenu(_("&Tools"))
|
||||||
|
|
||||||
# Settings / Preferences are all reserved keywords in OSX using this as work around
|
# Settings / Preferences are all reserved keywords in OSX using this as work around
|
||||||
tools_menu.addAction(_("Electrum preferences") if sys.platform == 'darwin' else _("Preferences"), self.settings_dialog)
|
tools_menu.addAction(_("Electrum Preferences") if sys.platform == 'darwin' else _("Preferences"), self.settings_dialog)
|
||||||
tools_menu.addAction(_("&Network"), lambda: self.gui_object.show_network_dialog(self))
|
tools_menu.addAction(_("&Network"), lambda: self.gui_object.show_network_dialog(self))
|
||||||
tools_menu.addAction(_("&Plugins"), self.plugins_dialog)
|
tools_menu.addAction(_("&Plugins"), self.plugins_dialog)
|
||||||
tools_menu.addSeparator()
|
tools_menu.addSeparator()
|
||||||
tools_menu.addAction(_("&Sign/verify message"), self.sign_verify_message)
|
tools_menu.addAction(_("&Sign/Verify Message"), self.sign_verify_message)
|
||||||
tools_menu.addAction(_("&Encrypt/decrypt message"), self.encrypt_message)
|
tools_menu.addAction(_("&Encrypt/Decrypt Message"), self.encrypt_message)
|
||||||
tools_menu.addSeparator()
|
tools_menu.addSeparator()
|
||||||
|
|
||||||
paytomany_menu = tools_menu.addAction(_("&Pay to many"), self.paytomany)
|
paytomany_menu = tools_menu.addAction(_("&Pay Multiple Addresses"), self.paytomany)
|
||||||
|
|
||||||
raw_transaction_menu = tools_menu.addMenu(_("&Load transaction"))
|
raw_transaction_menu = tools_menu.addMenu(_("&Load Transaction"))
|
||||||
raw_transaction_menu.addAction(_("&From file"), self.do_process_from_file)
|
raw_transaction_menu.addAction(_("&From File"), self.do_process_from_file)
|
||||||
raw_transaction_menu.addAction(_("&From text"), self.do_process_from_text)
|
raw_transaction_menu.addAction(_("&From Text"), self.do_process_from_text)
|
||||||
raw_transaction_menu.addAction(_("&From the blockchain"), self.do_process_from_txid)
|
raw_transaction_menu.addAction(_("&From the Blockchain"), self.do_process_from_txid)
|
||||||
raw_transaction_menu.addAction(_("&From QR code"), self.read_tx_from_qrcode)
|
raw_transaction_menu.addAction(_("&From QR Code"), self.read_tx_from_qrcode)
|
||||||
self.raw_transaction_menu = raw_transaction_menu
|
self.raw_transaction_menu = raw_transaction_menu
|
||||||
run_hook('init_menubar_tools', self, tools_menu)
|
run_hook('init_menubar_tools', self, tools_menu)
|
||||||
|
|
||||||
|
@ -570,7 +570,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||||
self.tx_notifications.remove(tx)
|
self.tx_notifications.remove(tx)
|
||||||
is_relevant, is_mine, v, fee = self.wallet.get_wallet_delta(tx)
|
is_relevant, is_mine, v, fee = self.wallet.get_wallet_delta(tx)
|
||||||
if(v > 0):
|
if(v > 0):
|
||||||
self.notify(_("New transaction received: %(amount)s") % { 'amount' : self.format_amount_and_units(v)})
|
self.notify(_("Inbound Transaction - %(amount)s") % { 'amount' : self.format_amount_and_units(v)})
|
||||||
|
|
||||||
def notify(self, message):
|
def notify(self, message):
|
||||||
if self.tray:
|
if self.tray:
|
||||||
|
@ -1363,7 +1363,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||||
|
|
||||||
def read_send_tab(self):
|
def read_send_tab(self):
|
||||||
if self.payment_request and self.payment_request.has_expired():
|
if self.payment_request and self.payment_request.has_expired():
|
||||||
self.show_error(_('Payment request has expired'))
|
self.show_error(_('Payment request has expired.'))
|
||||||
return
|
return
|
||||||
label = self.message_e.text()
|
label = self.message_e.text()
|
||||||
|
|
||||||
|
@ -1372,7 +1372,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||||
else:
|
else:
|
||||||
errors = self.payto_e.get_errors()
|
errors = self.payto_e.get_errors()
|
||||||
if errors:
|
if errors:
|
||||||
self.show_warning(_("Invalid Lines found:") + "\n\n" + '\n'.join([ _("Line #") + str(x[0]+1) + ": " + x[1] for x in errors]))
|
self.show_warning(_("Invalid lines found:") + "\n\n" + '\n'.join([ _("Line #") + str(x[0]+1) + ": " + x[1] for x in errors]))
|
||||||
return
|
return
|
||||||
outputs = self.payto_e.get_outputs(self.is_max)
|
outputs = self.payto_e.get_outputs(self.is_max)
|
||||||
|
|
||||||
|
@ -1384,12 +1384,12 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||||
return
|
return
|
||||||
|
|
||||||
if not outputs:
|
if not outputs:
|
||||||
self.show_error(_('No outputs'))
|
self.show_error(_('No Recipients'))
|
||||||
return
|
return
|
||||||
|
|
||||||
for _type, addr, amount in outputs:
|
for _type, addr, amount in outputs:
|
||||||
if addr is None:
|
if addr is None:
|
||||||
self.show_error(_('Zclassic Address is None'))
|
self.show_error(_('No Zclassic Address'))
|
||||||
return
|
return
|
||||||
if _type == TYPE_ADDRESS and not bitcoin.is_address(addr):
|
if _type == TYPE_ADDRESS and not bitcoin.is_address(addr):
|
||||||
self.show_error(_('Invalid Zclassic Address'))
|
self.show_error(_('Invalid Zclassic Address'))
|
||||||
|
@ -1508,7 +1508,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||||
pr = self.payment_request
|
pr = self.payment_request
|
||||||
if pr and pr.has_expired():
|
if pr and pr.has_expired():
|
||||||
self.payment_request = None
|
self.payment_request = None
|
||||||
return False, _("Payment request has expired")
|
return False, _("Payment request has expired.")
|
||||||
status, msg = self.network.broadcast(tx)
|
status, msg = self.network.broadcast(tx)
|
||||||
if pr and status is True:
|
if pr and status is True:
|
||||||
self.invoices.set_paid(pr, tx.txid())
|
self.invoices.set_paid(pr, tx.txid())
|
||||||
|
@ -1754,7 +1754,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
|
||||||
d = WindowModalDialog(self, _("Invoice"))
|
d = WindowModalDialog(self, _("Invoice"))
|
||||||
vbox = QVBoxLayout(d)
|
vbox = QVBoxLayout(d)
|
||||||
grid = QGridLayout()
|
grid = QGridLayout()
|
||||||
grid.addWidget(QLabel(_("Requestor") + ':'), 0, 0)
|
grid.addWidget(QLabel(_("Requested By") + ':'), 0, 0)
|
||||||
grid.addWidget(QLabel(pr.get_requestor()), 0, 1)
|
grid.addWidget(QLabel(pr.get_requestor()), 0, 1)
|
||||||
grid.addWidget(QLabel(_("Amount") + ':'), 1, 0)
|
grid.addWidget(QLabel(_("Amount") + ':'), 1, 0)
|
||||||
outputs_str = '\n'.join(map(lambda x: self.format_amount(x[2])+ self.base_unit() + ' @ ' + x[1], pr.get_outputs()))
|
outputs_str = '\n'.join(map(lambda x: self.format_amount(x[2])+ self.base_unit() + ' @ ' + x[1], pr.get_outputs()))
|
||||||
|
|
|
@ -223,8 +223,8 @@ class NetworkChoiceLayout(object):
|
||||||
grid.addWidget(self.server_host, 1, 1, 1, 2)
|
grid.addWidget(self.server_host, 1, 1, 1, 2)
|
||||||
grid.addWidget(self.server_port, 1, 3)
|
grid.addWidget(self.server_port, 1, 3)
|
||||||
|
|
||||||
label = _('Server peers') if network.is_connected() else _('Default Servers')
|
label = _('Server Peers') if network.is_connected() else _('Default Servers')
|
||||||
grid.addWidget(QLabel(label), 2, 0, 1, 5)
|
grid.addWidget(QLabel(label + ':'), 2, 0, 1, 5)
|
||||||
self.servers_list = ServerListWidget(self)
|
self.servers_list = ServerListWidget(self)
|
||||||
grid.addWidget(self.servers_list, 3, 0, 1, 5)
|
grid.addWidget(self.servers_list, 3, 0, 1, 5)
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ class NetworkChoiceLayout(object):
|
||||||
grid.setSpacing(8)
|
grid.setSpacing(8)
|
||||||
|
|
||||||
# proxy setting
|
# proxy setting
|
||||||
self.proxy_cb = QCheckBox(_('Use proxy'))
|
self.proxy_cb = QCheckBox(_('Use Proxy'))
|
||||||
self.proxy_cb.clicked.connect(self.check_disable_proxy)
|
self.proxy_cb.clicked.connect(self.check_disable_proxy)
|
||||||
self.proxy_cb.clicked.connect(self.set_proxy)
|
self.proxy_cb.clicked.connect(self.set_proxy)
|
||||||
|
|
||||||
|
|
|
@ -222,7 +222,7 @@ class WaitingDialog(WindowModalDialog):
|
||||||
assert parent
|
assert parent
|
||||||
if isinstance(parent, MessageBoxMixin):
|
if isinstance(parent, MessageBoxMixin):
|
||||||
parent = parent.top_level_window()
|
parent = parent.top_level_window()
|
||||||
WindowModalDialog.__init__(self, parent, _("Please wait"))
|
WindowModalDialog.__init__(self, parent, _("Please wait..."))
|
||||||
vbox = QVBoxLayout(self)
|
vbox = QVBoxLayout(self)
|
||||||
vbox.addWidget(QLabel(message))
|
vbox.addWidget(QLabel(message))
|
||||||
self.accepted.connect(self.on_accepted)
|
self.accepted.connect(self.on_accepted)
|
||||||
|
@ -326,13 +326,13 @@ def address_field(addresses):
|
||||||
def filename_field(parent, config, defaultname, select_msg):
|
def filename_field(parent, config, defaultname, select_msg):
|
||||||
|
|
||||||
vbox = QVBoxLayout()
|
vbox = QVBoxLayout()
|
||||||
vbox.addWidget(QLabel(_("Format")))
|
vbox.addWidget(QLabel(_("Export Format")))
|
||||||
gb = QGroupBox("format", parent)
|
gb = QGroupBox("format", parent)
|
||||||
b1 = QRadioButton(gb)
|
b1 = QRadioButton(gb)
|
||||||
b1.setText(_("CSV"))
|
b1.setText(_("CSV"))
|
||||||
b1.setChecked(True)
|
b1.setChecked(True)
|
||||||
b2 = QRadioButton(gb)
|
b2 = QRadioButton(gb)
|
||||||
b2.setText(_("json"))
|
b2.setText(_("JSON"))
|
||||||
vbox.addWidget(b1)
|
vbox.addWidget(b1)
|
||||||
vbox.addWidget(b2)
|
vbox.addWidget(b2)
|
||||||
|
|
||||||
|
|
|
@ -13,13 +13,15 @@ from .util import PrintError, ThreadJob
|
||||||
|
|
||||||
|
|
||||||
# See https://en.wikipedia.org/wiki/ISO_4217
|
# See https://en.wikipedia.org/wiki/ISO_4217
|
||||||
CCY_PRECISIONS = {'BHD': 3, 'BIF': 0, 'BYR': 0, 'CLF': 4, 'CLP': 0,
|
CCY_PRECISIONS = {}
|
||||||
'CVE': 0, 'DJF': 0, 'GNF': 0, 'IQD': 3, 'ISK': 0,
|
'''
|
||||||
'JOD': 3, 'JPY': 0, 'KMF': 0, 'KRW': 0, 'KWD': 3,
|
{'BHD': 3, 'BIF': 0, 'BYR': 0, 'CLF': 4, 'CLP': 0,
|
||||||
'LYD': 3, 'MGA': 1, 'MRO': 1, 'OMR': 3, 'PYG': 0,
|
'CVE': 0, 'DJF': 0, 'GNF': 0, 'IQD': 3, 'ISK': 0,
|
||||||
'RWF': 0, 'TND': 3, 'UGX': 0, 'UYI': 0, 'VND': 0,
|
'JOD': 3, 'JPY': 0, 'KMF': 0, 'KRW': 0, 'KWD': 3,
|
||||||
'VUV': 0, 'XAF': 0, 'XAU': 4, 'XOF': 0, 'XPF': 0}
|
'LYD': 3, 'MGA': 1, 'MRO': 1, 'OMR': 3, 'PYG': 0,
|
||||||
|
'RWF': 0, 'TND': 3, 'UGX': 0, 'UYI': 0, 'VND': 0,
|
||||||
|
'VUV': 0, 'XAF': 0, 'XAU': 4, 'XOF': 0, 'XPF': 0}
|
||||||
|
'''
|
||||||
|
|
||||||
class ExchangeBase(PrintError):
|
class ExchangeBase(PrintError):
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue