#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright (c) 2022 tecnovert # Distributed under the MIT software license, see the accompanying # file LICENSE or http://www.opensource.org/licenses/mit-license.php. from .btc import BTCInterface from basicswap.chainparams import Coins from basicswap.util.address import decodeAddress from mnemonic import Mnemonic class DASHInterface(BTCInterface): @staticmethod def coin_type(): return Coins.DASH def seedToMnemonic(self, key): return Mnemonic('english').to_mnemonic(key) def initialiseWallet(self, key): words = self.seedToMnemonic(key) self.rpc_callback('upgradetohd', [words, ]) def decodeAddress(self, address): return decodeAddress(address)[1:] def checkExpectedSeed(self, key_hash): try: rv = self.rpc_callback('dumphdinfo') entropy = Mnemonic('english').to_entropy(rv['mnemonic'].split(' ')) entropy_hash = self.getAddressHashFromKey(entropy)[::-1].hex() return entropy_hash == key_hash except Exception as e: self._log.warning('checkExpectedSeed failed: {}'.format(str(e))) return False def withdrawCoin(self, value, addr_to, subfee): params = [addr_to, value, '', '', subfee] return self.rpc_callback('sendtoaddress', params) def getSpendableBalance(self): return self.make_int(self.rpc_callback('getwalletinfo')['balance'])