diff --git a/electrum/currencies.json b/electrum/currencies.json index f0fabafa..fc9eda52 100644 --- a/electrum/currencies.json +++ b/electrum/currencies.json @@ -1,823 +1,44 @@ { - "BitFlyer": [ - "JPY" - ], - "BitPay": [ + "CoinMarketcap": [ "AED", - "AFN", "ALL", - "AMD", - "ANG", - "AOA", "ARS", "AUD", - "AWG", - "AZN", - "BAM", - "BBD", - "BCH", - "BDT", - "BGN", "BHD", - "BIF", - "BMD", - "BND", "BOB", "BRL", - "BSD", - "BTC", - "BTN", - "BWP", - "BZD", + "KHR", "CAD", - "CDF", - "CHF", - "CLF", "CLP", "CNY", "COP", - "CRC", "CUP", - "CVE", "CZK", - "DJF", - "DKK", - "DOP", - "DZD", "EGP", - "ETB", "EUR", - "FJD", - "FKP", - "GBP", - "GEL", - "GHS", - "GIP", - "GMD", - "GNF", - "GTQ", - "GYD", "HKD", - "HNL", - "HRK", - "HTG", "HUF", - "IDR", - "ILS", - "INR", - "IQD", - "IRR", "ISK", - "JEP", - "JMD", - "JOD", + "INR", + "IDR", + "IQD", + "ILS", "JPY", - "KES", - "KGS", - "KHR", - "KMF", - "KPW", - "KRW", - "KWD", - "KYD", - "KZT", - "LAK", "LBP", - "LKR", - "LRD", - "LSL", - "LYD", - "MAD", - "MDL", - "MGA", - "MKD", - "MMK", - "MNT", - "MOP", - "MRU", - "MUR", - "MVR", - "MWK", - "MXN", "MYR", - "MZN", - "NAD", - "NGN", - "NIO", - "NOK", + "MXN", "NPR", "NZD", - "OMR", - "PAB", - "PEN", - "PGK", - "PHP", - "PKR", - "PLN", - "PYG", - "QAR", - "RON", - "RSD", - "RUB", - "RWF", - "SAR", - "SBD", - "SCR", - "SDG", - "SEK", - "SGD", - "SHP", - "SLL", - "SOS", - "SRD", - "STN", - "SVC", - "SYP", - "SZL", - "THB", - "TJS", - "TMT", - "TND", - "TOP", - "TRY", - "TTD", - "TWD", - "TZS", - "UAH", - "UGX", - "USD", - "UYU", - "UZS", - "VEF", - "VND", - "VUV", - "WST", - "XAF", - "XAG", - "XAU", - "XCD", - "XOF", - "XPF", - "YER", - "ZAR", - "ZMW", - "ZWL" - ], - "BitStamp": [ - "USD" - ], - "Bitbank": [ - "JPY" - ], - "BitcoinAverage": [ - "AED", - "AFN", - "ALL", - "AMD", - "ANG", - "AOA", - "ARS", - "AUD", - "AWG", - "AZN", - "BAM", - "BBD", - "BDT", - "BGN", - "BHD", - "BIF", - "BMD", - "BND", - "BOB", - "BRL", - "BSD", - "BTN", - "BWP", - "BYN", - "BZD", - "CAD", - "CDF", - "CHF", - "CLF", - "CLP", - "CNH", - "CNY", - "COP", - "CRC", - "CUC", - "CUP", - "CVE", - "CZK", - "DJF", - "DKK", - "DOP", - "DZD", - "EGP", - "ERN", - "ETB", - "EUR", - "FJD", - "FKP", - "GBP", - "GEL", - "GGP", - "GHS", - "GIP", - "GMD", - "GNF", - "GTQ", - "GYD", - "HKD", - "HNL", - "HRK", - "HTG", - "HUF", - "IDR", - "ILS", - "IMP", - "INR", - "IQD", - "IRR", - "ISK", - "JEP", - "JMD", - "JOD", - "JPY", - "KES", - "KGS", - "KHR", - "KMF", - "KPW", - "KRW", - "KWD", - "KYD", - "KZT", - "LAK", - "LBP", - "LKR", - "LRD", - "LSL", - "LYD", - "MAD", - "MDL", - "MGA", - "MKD", - "MMK", - "MNT", - "MOP", - "MRO", - "MUR", - "MVR", - "MWK", - "MXN", - "MYR", - "MZN", - "NAD", - "NGN", - "NIO", - "NOK", - "NPR", - "NZD", - "OMR", - "PAB", - "PEN", - "PGK", - "PHP", - "PKR", - "PLN", - "PYG", - "QAR", - "RON", - "RSD", - "RUB", - "RWF", - "SAR", - "SBD", - "SCR", - "SDG", - "SEK", - "SGD", - "SHP", - "SLL", - "SOS", - "SRD", - "SSP", - "STD", - "SVC", - "SYP", - "SZL", - "THB", - "TJS", - "TMT", - "TND", - "TOP", - "TRY", - "TTD", - "TWD", - "TZS", - "UAH", - "UGX", - "USD", - "UYU", - "UZS", - "VEF", - "VND", - "VUV", - "WST", - "XAF", - "XAG", - "XAU", - "XCD", - "XDR", - "XOF", - "XPD", - "XPF", - "XPT", - "YER", - "ZAR", - "ZMW", - "ZWL" - ], - "Bitcointoyou": [ - "BRL" - ], - "BitcoinVenezuela": [ - "ARS", - "EUR", - "USD", - "VEF" - ], - "Bitmarket": [ - "PLN" - ], - "Bitso": [ - "MXN" - ], - "Bitvalor": [ - "BRL" - ], - "BlockchainInfo": [ - "AUD", - "BRL", - "CAD", - "CHF", - "CLP", - "CNY", - "DKK", - "EUR", - "GBP", - "HKD", - "INR", - "ISK", - "JPY", - "KRW", - "NZD", - "PLN", - "RUB", - "SEK", - "SGD", - "THB", - "TWD", - "USD" - ], - "CoinDesk": [ - "AED", - "AFN", - "ALL", - "AMD", - "ANG", - "AOA", - "ARS", - "AUD", - "AWG", - "AZN", - "BAM", - "BBD", - "BDT", - "BGN", - "BHD", - "BIF", - "BMD", - "BND", - "BOB", - "BRL", - "BSD", - "BTC", - "BTN", - "BWP", - "BYR", - "BZD", - "CAD", - "CDF", - "CHF", - "CLF", - "CLP", - "CNY", - "COP", - "CRC", - "CUP", - "CVE", - "CZK", - "DJF", - "DKK", - "DOP", - "DZD", - "EEK", - "EGP", - "ERN", - "ETB", - "EUR", - "FJD", - "FKP", - "GBP", - "GEL", - "GHS", - "GIP", - "GMD", - "GNF", - "GTQ", - "GYD", - "HKD", - "HNL", - "HRK", - "HTG", - "HUF", - "IDR", - "ILS", - "INR", - "IQD", - "IRR", - "ISK", - "JEP", - "JMD", - "JOD", - "JPY", - "KES", - "KGS", - "KHR", - "KMF", - "KPW", - "KRW", - "KWD", - "KYD", - "KZT", - "LAK", - "LBP", - "LKR", - "LRD", - "LSL", - "LTL", - "LVL", - "LYD", - "MAD", - "MDL", - "MGA", - "MKD", - "MMK", - "MNT", - "MOP", - "MRO", - "MTL", - "MUR", - "MVR", - "MWK", - "MXN", - "MYR", - "MZN", - "NAD", - "NGN", - "NIO", - "NOK", - "NPR", - "NZD", - "OMR", - "PAB", - "PEN", - "PGK", - "PHP", - "PKR", - "PLN", - "PYG", - "QAR", - "RON", - "RSD", - "RUB", - "RWF", - "SAR", - "SBD", - "SCR", - "SDG", - "SEK", - "SGD", - "SHP", - "SLL", - "SOS", - "SRD", - "STD", - "SVC", - "SYP", - "SZL", - "THB", - "TJS", - "TMT", - "TND", - "TOP", - "TRY", - "TTD", - "TWD", - "TZS", - "UAH", - "UGX", - "USD", - "UYU", - "UZS", - "VEF", - "VND", - "VUV", - "WST", - "XAF", - "XAG", - "XAU", - "XBT", - "XCD", - "XDR", - "XOF", - "XPF", - "YER", - "ZAR", - "ZMK", - "ZMW", - "ZWL" - ], - "Coinbase": [ - "AED", - "AFN", - "ALL", - "AMD", - "ANG", - "AOA", - "ARS", - "AUD", - "AWG", - "AZN", - "BAM", - "BBD", - "BCH", - "BDT", - "BGN", - "BHD", - "BIF", - "BMD", - "BND", - "BOB", - "BRL", - "BSD", - "BTN", - "BWP", - "BYN", - "BYR", - "BZD", - "CAD", - "CDF", - "CHF", - "CLF", - "CLP", - "CNH", - "CNY", - "COP", - "CRC", - "CUC", - "CVE", - "CZK", - "DJF", - "DKK", - "DOP", - "DZD", - "EEK", - "EGP", - "ERN", - "ETB", - "ETH", - "EUR", - "FJD", - "FKP", - "GBP", - "GEL", - "GGP", - "GHS", - "GIP", - "GMD", - "GNF", - "GTQ", - "GYD", - "HKD", - "HNL", - "HRK", - "HTG", - "HUF", - "IDR", - "ILS", - "IMP", - "INR", - "IQD", - "ISK", - "JEP", - "JMD", - "JOD", - "JPY", - "KES", - "KGS", - "KHR", - "KMF", - "KRW", - "KWD", - "KYD", - "KZT", - "LAK", - "LBP", - "LKR", - "LRD", - "LSL", - "LTC", - "LTL", - "LVL", - "LYD", - "MAD", - "MDL", - "MGA", - "MKD", - "MMK", - "MNT", - "MOP", - "MRO", - "MTL", - "MUR", - "MVR", - "MWK", - "MXN", - "MYR", - "MZN", - "NAD", - "NGN", - "NIO", - "NOK", - "NPR", - "NZD", - "OMR", - "PAB", - "PEN", - "PGK", - "PHP", - "PKR", - "PLN", - "PYG", - "QAR", - "RON", - "RSD", - "RUB", - "RWF", - "SAR", - "SBD", - "SCR", - "SEK", - "SGD", - "SHP", - "SLL", - "SOS", - "SRD", - "SSP", - "STD", - "SVC", - "SZL", - "THB", - "TJS", - "TMT", - "TND", - "TOP", - "TRY", - "TTD", - "TWD", - "TZS", - "UAH", - "UGX", - "USD", - "UYU", - "UZS", - "VEF", - "VND", - "VUV", - "WST", - "XAF", - "XAG", - "XAU", - "XCD", - "XDR", - "XOF", - "XPD", - "XPF", - "XPT", - "YER", - "ZAR", - "ZMK", - "ZMW", - "ZWL" - ], - "Foxbit": [ - "BRL" - ], - "Kraken": [ - "CAD", - "EUR", - "GBP", - "JPY", - "USD" - ], - "LocalBitcoins": [ - "AED", - "ARS", - "AUD", - "BDT", - "BHD", - "BOB", - "BRL", - "BWP", - "BYN", - "CAD", - "CHF", - "CLP", - "CNY", - "COP", - "CRC", - "CZK", - "DKK", - "DOP", - "EGP", - "ETH", - "EUR", - "GBP", - "GEL", - "GHS", - "HKD", - "HRK", - "HUF", - "IDR", - "ILS", - "INR", - "IRR", - "JOD", - "JPY", - "KES", - "KRW", - "KZT", - "LKR", - "LTC", - "MAD", - "MXN", - "MYR", "NGN", "NOK", - "NZD", - "PAB", - "PEN", - "PHP", - "PKR", - "PLN", - "PYG", - "RON", - "RSD", + "GBP", + "QAR", "RUB", - "SAR", - "SEK", "SGD", - "SZL", + "SEK", + "CHF", "THB", - "TRY", - "TWD", - "TZS", - "UAH", - "UGX", "USD", - "UYU", - "VEF", - "VND", - "XAF", - "XRP", - "ZAR", - "ZMW" - ], - "MercadoBitcoin": [ - "BRL" - ], - "NegocieCoins": [ - "BRL" - ], - "TheRockTrading": [ - "EUR" - ], - "WEX": [ - "EUR", - "RUB", - "USD" - ], - "itBit": [] + "VND" + ] } diff --git a/electrum/exchange_rate.py b/electrum/exchange_rate.py index bfe99165..62a9e805 100644 --- a/electrum/exchange_rate.py +++ b/electrum/exchange_rate.py @@ -262,6 +262,7 @@ class CoinDesk(ExchangeBase): json = await self.get_json('api.coindesk.com', '/v1/bpi/currentprice/%s.json' % ccy) result = {ccy: Decimal(json['bpi'][ccy]['rate_float'])} + print(result) return result def history_starts(self): @@ -279,6 +280,13 @@ class CoinDesk(ExchangeBase): json = await self.get_json('api.coindesk.com', query) return json['bpi'] +class CoinMarketcap(ExchangeBase): + + async def get_rates(self, ccy): + json = await self.get_json('pro-api.coinmarketcap.com','/v1/cryptocurrency/quotes/latest?symbol=FLO&CMC_PRO_API_KEY=194ee8a1-5a58-4f3e-ba07-a1d6bc633210&convert=%s' % ccy) + result = {ccy: Decimal(json['data']['FLO']['quote'][ccy]['price'])} + return result + class Coinsecure(ExchangeBase): @@ -520,7 +528,7 @@ class FxThread(ThreadJob): return self.config.get("currency", "EUR") def config_exchange(self): - return self.config.get('use_exchange', 'BitcoinAverage') + 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() diff --git a/electrum/gui/kivy/uix/dialogs/flodata_dialog.py b/electrum/gui/kivy/uix/dialogs/flodata_dialog.py index da92db73..f3ea69ea 100644 --- a/electrum/gui/kivy/uix/dialogs/flodata_dialog.py +++ b/electrum/gui/kivy/uix/dialogs/flodata_dialog.py @@ -14,7 +14,7 @@ Builder.load_string(''' BoxLayout: orientation: 'vertical' Widget: - size_hint: 1, 0.4 + size_hint: 1, 0.1 LimitedInput: id:input padding: '5dp' diff --git a/electrum/util.py b/electrum/util.py index c32d7358..6d69525a 100644 --- a/electrum/util.py +++ b/electrum/util.py @@ -619,56 +619,14 @@ def time_difference(distance_in_time, include_seconds): return "over %d years" % (round(distance_in_minutes / 525600)) mainnet_block_explorers = { - 'Bitupper Explorer': ('https://bitupper.com/en/explorer/bitcoin/', - {'tx': 'transactions/', 'addr': 'addresses/'}), - 'Biteasy.com': ('https://www.biteasy.com/blockchain/', - {'tx': 'transactions/', 'addr': 'addresses/'}), - 'Bitflyer.jp': ('https://chainflyer.bitflyer.jp/', - {'tx': 'Transaction/', 'addr': 'Address/'}), - 'Blockchain.info': ('https://blockchain.info/', - {'tx': 'tx/', 'addr': 'address/'}), - 'blockchainbdgpzk.onion': ('https://blockchainbdgpzk.onion/', - {'tx': 'tx/', 'addr': 'address/'}), - 'Blockr.io': ('https://btc.blockr.io/', - {'tx': 'tx/info/', 'addr': 'address/info/'}), - 'Blockstream.info': ('https://blockstream.info/', - {'tx': 'tx/', 'addr': 'address/'}), - 'Blocktrail.com': ('https://www.blocktrail.com/BTC/', - {'tx': 'tx/', 'addr': 'address/'}), - 'BTC.com': ('https://chain.btc.com/', - {'tx': 'tx/', 'addr': 'address/'}), - 'Chain.so': ('https://www.chain.so/', - {'tx': 'tx/BTC/', 'addr': 'address/BTC/'}), - 'Insight.is': ('https://insight.bitpay.com/', - {'tx': 'tx/', 'addr': 'address/'}), - 'TradeBlock.com': ('https://tradeblock.com/blockchain/', - {'tx': 'tx/', 'addr': 'address/'}), - 'BlockCypher.com': ('https://live.blockcypher.com/btc/', - {'tx': 'tx/', 'addr': 'address/'}), - 'Blockchair.com': ('https://blockchair.com/bitcoin/', - {'tx': 'transaction/', 'addr': 'address/'}), - 'blockonomics.co': ('https://www.blockonomics.co/', - {'tx': 'api/tx?txid=', 'addr': '#/search?q='}), - 'OXT.me': ('https://oxt.me/', - {'tx': 'transaction/', 'addr': 'address/'}), - 'smartbit.com.au': ('https://www.smartbit.com.au/', + 'florincoin.info': ('https://florincoin.info/', {'tx': 'tx/', 'addr': 'address/'}), 'system default': ('blockchain:/', {'tx': 'tx/', 'addr': 'address/'}), } testnet_block_explorers = { - 'Blocktrail.com': ('https://www.blocktrail.com/tBTC/', - {'tx': 'tx/', 'addr': 'address/'}), - 'BlockCypher.com': ('https://live.blockcypher.com/btc-testnet/', - {'tx': 'tx/', 'addr': 'address/'}), - 'Blockchain.info': ('https://testnet.blockchain.info/', - {'tx': 'tx/', 'addr': 'address/'}), - 'Blockstream.info': ('https://blockstream.info/testnet/', - {'tx': 'tx/', 'addr': 'address/'}), - 'BTC.com': ('https://tchain.btc.com/', - {'tx': '', 'addr': ''}), - 'smartbit.com.au': ('https://testnet.smartbit.com.au/', + 'Florincoin.info': ('https://testnet.florincoin.info/', {'tx': 'tx/', 'addr': 'address/'}), 'system default': ('blockchain://000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943/', {'tx': 'tx/', 'addr': 'address/'}), @@ -680,7 +638,7 @@ def block_explorer_info(): def block_explorer(config: 'SimpleConfig') -> str: from . import constants - default_ = 'Blockstream.info' + default_ = 'florincoin.info' be_key = config.get('block_explorer', default_) be = block_explorer_info().get(be_key) return be_key if be is not None else default_ @@ -713,7 +671,7 @@ def parse_URI(uri: str, on_pr: Callable=None) -> dict: return {'address': uri} u = urllib.parse.urlparse(uri) - if u.scheme != 'bitcoin': + if u.scheme != 'flo': raise Exception("Not a FLO URI") address = u.path