Fix explorers, add coinmarketcap, readme instructions
This commit is contained in:
parent
24ba1ce125
commit
24809dc7e7
|
@ -49,15 +49,15 @@ Using Homebrew::
|
|||
# Build .app, .dmg
|
||||
./create-dmg
|
||||
|
||||
# Run
|
||||
|
||||
# Run the .app in dist/, or
|
||||
./electrum-zcl
|
||||
|
||||
For Linux:
|
||||
----------
|
||||
|
||||
Install Dependencies::
|
||||
|
||||
sudo apt-get install $(grep -vE "^\s*#" packages.txt | tr "\n" " ") python-pip
|
||||
sudo apt-get install python-pip pyqt5-dev-tools $(grep -vE "^\s*#" packages.txt | tr "\n" " ")
|
||||
|
||||
pip3 install -r requirements.txt
|
||||
|
||||
|
|
4
config
4
config
|
@ -1,3 +1,3 @@
|
|||
{
|
||||
"server": "35.224.186.7:50001:t"
|
||||
}
|
||||
"server": "35.224.186.7:50001:t"
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
sudo sh ./clean.sh
|
||||
|
||||
VERSION=$(python3 -c "from lib import version; print(version.ELECTRUM_VERSION)")
|
||||
VERSION=${VERSION//ELECTRUM_VERSION=/}
|
||||
echo "Creating package $VERSION"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"CryptoCompare": [
|
||||
"CoinMarketCap": [
|
||||
"USD",
|
||||
"EUR",
|
||||
"CNY"
|
||||
|
|
|
@ -94,6 +94,11 @@ class CryptoCompare(ExchangeBase):
|
|||
"/data/pricehistorical?fsym=ZCL&tsyms=USD")
|
||||
return {'USD': Decimal(json['ZCL']['USD'])}
|
||||
|
||||
class CoinMarketCap(ExchangeBase):
|
||||
def get_rates(self, ccy):
|
||||
json = self.get_json('api.coinmarketcap.com',
|
||||
"/v1/ticker/zclassic?convert=%s")
|
||||
return {'USD': Decimal(json[0]['price_usd'])}
|
||||
|
||||
|
||||
def dictinvert(d):
|
||||
|
@ -199,7 +204,7 @@ class FxThread(ThreadJob):
|
|||
return self.config.get('currency', 'USD')
|
||||
|
||||
def config_exchange(self):
|
||||
return self.config.get('use_exchange', 'CryptoCompare')
|
||||
return self.config.get('use_exchange', 'CoinMarketCap')
|
||||
|
||||
def show_history(self):
|
||||
return self.is_enabled() and self.get_history_config() and self.ccy in self.exchange.history_ccys()
|
||||
|
@ -211,7 +216,7 @@ class FxThread(ThreadJob):
|
|||
self.on_quotes()
|
||||
|
||||
def set_exchange(self, name):
|
||||
class_ = globals().get(name, CryptoCompare)
|
||||
class_ = globals().get(name, CoinMarketCap)
|
||||
self.print_error("using exchange", name)
|
||||
if self.config_exchange() != name:
|
||||
self.config.set_key('use_exchange', name, True)
|
||||
|
|
|
@ -18,9 +18,9 @@ _sym_db = _symbol_database.Default()
|
|||
DESCRIPTOR = _descriptor.FileDescriptor(
|
||||
name='paymentrequest.proto',
|
||||
package='payments',
|
||||
syntax='proto2',
|
||||
serialized_pb=_b('\n\x14paymentrequest.proto\x12\x08payments\"+\n\x06Output\x12\x11\n\x06\x61mount\x18\x01 \x01(\x04:\x01\x30\x12\x0e\n\x06script\x18\x02 \x02(\x0c\"\xa3\x01\n\x0ePaymentDetails\x12\x15\n\x07network\x18\x01 \x01(\t:\x04main\x12!\n\x07outputs\x18\x02 \x03(\x0b\x32\x10.payments.Output\x12\x0c\n\x04time\x18\x03 \x02(\x04\x12\x0f\n\x07\x65xpires\x18\x04 \x01(\x04\x12\x0c\n\x04memo\x18\x05 \x01(\t\x12\x13\n\x0bpayment_url\x18\x06 \x01(\t\x12\x15\n\rmerchant_data\x18\x07 \x01(\x0c\"\x95\x01\n\x0ePaymentRequest\x12\"\n\x17payment_details_version\x18\x01 \x01(\r:\x01\x31\x12\x16\n\x08pki_type\x18\x02 \x01(\t:\x04none\x12\x10\n\x08pki_data\x18\x03 \x01(\x0c\x12\"\n\x1aserialized_payment_details\x18\x04 \x02(\x0c\x12\x11\n\tsignature\x18\x05 \x01(\x0c\"\'\n\x10X509Certificates\x12\x13\n\x0b\x63\x65rtificate\x18\x01 \x03(\x0c\"i\n\x07Payment\x12\x15\n\rmerchant_data\x18\x01 \x01(\x0c\x12\x14\n\x0ctransactions\x18\x02 \x03(\x0c\x12#\n\trefund_to\x18\x03 \x03(\x0b\x32\x10.payments.Output\x12\x0c\n\x04memo\x18\x04 \x01(\t\">\n\nPaymentACK\x12\"\n\x07payment\x18\x01 \x02(\x0b\x32\x11.payments.Payment\x12\x0c\n\x04memo\x18\x02 \x01(\tB(\n\x1eorg.bitcoin.protocols.paymentsB\x06Protos')
|
||||
)
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
|
||||
|
||||
|
@ -38,14 +38,14 @@ _OUTPUT = _descriptor.Descriptor(
|
|||
has_default_value=True, default_value=0,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='script', full_name='payments.Output.script', index=1,
|
||||
number=2, type=12, cpp_type=9, label=2,
|
||||
has_default_value=False, default_value=_b(""),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
|
@ -54,6 +54,7 @@ _OUTPUT = _descriptor.Descriptor(
|
|||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto2',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
|
@ -75,49 +76,49 @@ _PAYMENTDETAILS = _descriptor.Descriptor(
|
|||
has_default_value=True, default_value=_b("main").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='outputs', full_name='payments.PaymentDetails.outputs', index=1,
|
||||
number=2, type=11, cpp_type=10, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='time', full_name='payments.PaymentDetails.time', index=2,
|
||||
number=3, type=4, cpp_type=4, label=2,
|
||||
has_default_value=False, default_value=0,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='expires', full_name='payments.PaymentDetails.expires', index=3,
|
||||
number=4, type=4, cpp_type=4, label=1,
|
||||
has_default_value=False, default_value=0,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='memo', full_name='payments.PaymentDetails.memo', index=4,
|
||||
number=5, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='payment_url', full_name='payments.PaymentDetails.payment_url', index=5,
|
||||
number=6, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='merchant_data', full_name='payments.PaymentDetails.merchant_data', index=6,
|
||||
number=7, type=12, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b(""),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
|
@ -126,6 +127,7 @@ _PAYMENTDETAILS = _descriptor.Descriptor(
|
|||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto2',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
|
@ -147,35 +149,35 @@ _PAYMENTREQUEST = _descriptor.Descriptor(
|
|||
has_default_value=True, default_value=1,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='pki_type', full_name='payments.PaymentRequest.pki_type', index=1,
|
||||
number=2, type=9, cpp_type=9, label=1,
|
||||
has_default_value=True, default_value=_b("none").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='pki_data', full_name='payments.PaymentRequest.pki_data', index=2,
|
||||
number=3, type=12, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b(""),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='serialized_payment_details', full_name='payments.PaymentRequest.serialized_payment_details', index=3,
|
||||
number=4, type=12, cpp_type=9, label=2,
|
||||
has_default_value=False, default_value=_b(""),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='signature', full_name='payments.PaymentRequest.signature', index=4,
|
||||
number=5, type=12, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b(""),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
|
@ -184,6 +186,7 @@ _PAYMENTREQUEST = _descriptor.Descriptor(
|
|||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto2',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
|
@ -205,7 +208,7 @@ _X509CERTIFICATES = _descriptor.Descriptor(
|
|||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
|
@ -214,6 +217,7 @@ _X509CERTIFICATES = _descriptor.Descriptor(
|
|||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto2',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
|
@ -235,28 +239,28 @@ _PAYMENT = _descriptor.Descriptor(
|
|||
has_default_value=False, default_value=_b(""),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='transactions', full_name='payments.Payment.transactions', index=1,
|
||||
number=2, type=12, cpp_type=9, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='refund_to', full_name='payments.Payment.refund_to', index=2,
|
||||
number=3, type=11, cpp_type=10, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='memo', full_name='payments.Payment.memo', index=3,
|
||||
number=4, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
|
@ -265,6 +269,7 @@ _PAYMENT = _descriptor.Descriptor(
|
|||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto2',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
|
@ -286,14 +291,14 @@ _PAYMENTACK = _descriptor.Descriptor(
|
|||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='memo', full_name='payments.PaymentACK.memo', index=1,
|
||||
number=2, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
options=None, file=DESCRIPTOR),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
|
@ -302,6 +307,7 @@ _PAYMENTACK = _descriptor.Descriptor(
|
|||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto2',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
|
@ -318,6 +324,7 @@ DESCRIPTOR.message_types_by_name['PaymentRequest'] = _PAYMENTREQUEST
|
|||
DESCRIPTOR.message_types_by_name['X509Certificates'] = _X509CERTIFICATES
|
||||
DESCRIPTOR.message_types_by_name['Payment'] = _PAYMENT
|
||||
DESCRIPTOR.message_types_by_name['PaymentACK'] = _PAYMENTACK
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
Output = _reflection.GeneratedProtocolMessageType('Output', (_message.Message,), dict(
|
||||
DESCRIPTOR = _OUTPUT,
|
||||
|
|
18
lib/util.py
18
lib/util.py
|
@ -432,19 +432,16 @@ def time_difference(distance_in_time, include_seconds):
|
|||
|
||||
# For raw json, append /insight-api-zcash
|
||||
mainnet_block_explorers = {
|
||||
'Zcl-explorer.com': ('http://zcl-explorer.com/insight/',
|
||||
'zcl-explorer.com': ('https://zcl-explorer.com',
|
||||
{'tx': 'tx', 'addr': 'address'}),
|
||||
'zclzclzcl.com': ('http://zclzclzcl.com',
|
||||
'eu1.zcl-explorer.com': ('https://eu1.zcl-explorer.com',
|
||||
{'tx': 'tx', 'addr': 'address'}),
|
||||
'Zcl-explorer.com - Alternate 1': ('http://as1.zcl-explorer.com',
|
||||
'as1.zcl-explorer.com': ('https://as1.zcl-explorer.com',
|
||||
{'tx': 'tx', 'addr': 'address'}),
|
||||
'Zcl-explorer.com - Alternate 2': ('http://eu1.zcl-explorer.com',
|
||||
'explorer.zclassic.org': ('https://explorer.zclassic.org',
|
||||
{'tx': 'tx', 'addr': 'address'}),
|
||||
'explorer.zclassic.org': ('http://explorer.zclassic.org',
|
||||
'zclzclzcl.com': ('https://zclzclzcl.com',
|
||||
{'tx': 'tx', 'addr': 'address'}),
|
||||
'explorer1.zclassic.org': ('http://explorer1.zclassic.org',
|
||||
{'tx': 'tx', 'addr': 'address'})
|
||||
|
||||
}
|
||||
|
||||
#http://zcl-explorer.com/insight/
|
||||
|
@ -454,9 +451,8 @@ mainnet_block_explorers = {
|
|||
#http://explorer.zclassic.org
|
||||
#http://explorer1.zclassic.org
|
||||
|
||||
# TODO zcl testnet block explorer
|
||||
testnet_block_explorers = {
|
||||
#'Blocktrail.com': ('https://www.blocktrail.com/tBTC',
|
||||
#'testnet.zclassic.org': ('https://testnet.zclassic.org',
|
||||
#{'tx': 'tx', 'addr': 'address'}),
|
||||
'system default': ('blockchain:',
|
||||
{'tx': 'tx', 'addr': 'address'})
|
||||
|
@ -467,7 +463,7 @@ def block_explorer_info():
|
|||
return testnet_block_explorers if bitcoin.NetworkConstants.TESTNET else mainnet_block_explorers
|
||||
|
||||
def block_explorer(config):
|
||||
return config.get('block_explorer', 'Zcl-explorer.com')
|
||||
return config.get('block_explorer', 'zcl-explorer.com')
|
||||
|
||||
def block_explorer_tuple(config):
|
||||
return block_explorer_info().get(block_explorer(config))
|
||||
|
|
Loading…
Reference in New Issue