mirror of
https://github.com/basicswap/basicswap.git
synced 2024-12-23 03:49:25 +00:00
coins: Fix Firo seedid
This commit is contained in:
parent
ca264db0d0
commit
c440f9e3a3
5 changed files with 40 additions and 3 deletions
|
@ -727,7 +727,7 @@ class BasicSwap(BaseApp):
|
||||||
return
|
return
|
||||||
|
|
||||||
root_key = self.getWalletKey(coin_type, 1)
|
root_key = self.getWalletKey(coin_type, 1)
|
||||||
root_hash = ci.getAddressHashFromKey(root_key)[::-1]
|
root_hash = ci.getSeedHash(root_key)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ci.initialiseWallet(root_key)
|
ci.initialiseWallet(root_key)
|
||||||
|
|
|
@ -371,6 +371,9 @@ class BTCInterface(CoinInterface):
|
||||||
pk = self.getPubkey(key)
|
pk = self.getPubkey(key)
|
||||||
return hash160(pk)
|
return hash160(pk)
|
||||||
|
|
||||||
|
def getSeedHash(self, seed):
|
||||||
|
return self.getAddressHashFromKey(seed)[::-1]
|
||||||
|
|
||||||
def verifyKey(self, k):
|
def verifyKey(self, k):
|
||||||
i = b2i(k)
|
i = b2i(k)
|
||||||
return (i < ep.o and i > 0)
|
return (i < ep.o and i > 0)
|
||||||
|
|
|
@ -156,6 +156,9 @@ class FIROInterface(BTCInterface):
|
||||||
|
|
||||||
return CScript([OP_HASH160, script_hash_hash, OP_EQUAL])
|
return CScript([OP_HASH160, script_hash_hash, OP_EQUAL])
|
||||||
|
|
||||||
|
def getSeedHash(self, seed):
|
||||||
|
return hash160(seed)[::-1]
|
||||||
|
|
||||||
def encodeScriptDest(self, script):
|
def encodeScriptDest(self, script):
|
||||||
# Extract hash from script
|
# Extract hash from script
|
||||||
script_hash = script[2:-1]
|
script_hash = script[2:-1]
|
||||||
|
|
|
@ -112,6 +112,13 @@ class Test(BaseTest):
|
||||||
test_atomic = True
|
test_atomic = True
|
||||||
test_xmr = False
|
test_xmr = False
|
||||||
|
|
||||||
|
# Particl node mnemonics are set in test/basicswap/mnemonics.py
|
||||||
|
firo_seeds = [
|
||||||
|
'd90b7ed1be614e1c172653aee1f3b6230f43b7fa99cf07fa984a17966ad81de7',
|
||||||
|
'6c81d6d74ba33a0db9e41518c2b6789fbe938e98018a4597dac661cfc5f2dfc1',
|
||||||
|
'c5de2be44834e7e47ad7dc8e35c6b77c79f17c6bb40d5509a00fc3dff384a865',
|
||||||
|
]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
cls.start_ltc_nodes = False
|
cls.start_ltc_nodes = False
|
||||||
|
@ -121,11 +128,13 @@ class Test(BaseTest):
|
||||||
@classmethod
|
@classmethod
|
||||||
def prepareExtraDataDir(cls, i):
|
def prepareExtraDataDir(cls, i):
|
||||||
if not cls.restore_instance:
|
if not cls.restore_instance:
|
||||||
|
seed_hex = cls.firo_seeds[i]
|
||||||
|
extra_opts = [f'-hdseed={seed_hex}', ]
|
||||||
data_dir = prepareDataDir(cfg.TEST_DATADIRS, i, 'firo.conf', 'firo_', base_p2p_port=FIRO_BASE_PORT, base_rpc_port=FIRO_BASE_RPC_PORT)
|
data_dir = prepareDataDir(cfg.TEST_DATADIRS, i, 'firo.conf', 'firo_', base_p2p_port=FIRO_BASE_PORT, base_rpc_port=FIRO_BASE_RPC_PORT)
|
||||||
if os.path.exists(os.path.join(cfg.FIRO_BINDIR, 'firo-wallet')):
|
if os.path.exists(os.path.join(cfg.FIRO_BINDIR, 'firo-wallet')):
|
||||||
callrpc_cli(cfg.FIRO_BINDIR, data_dir, 'regtest', '-wallet=wallet.dat create', 'firo-wallet')
|
callrpc_cli(cfg.FIRO_BINDIR, data_dir, 'regtest', '-wallet=wallet.dat create', 'firo-wallet')
|
||||||
|
|
||||||
cls.firo_daemons.append(startDaemon(os.path.join(cfg.TEST_DATADIRS, 'firo_' + str(i)), cfg.FIRO_BINDIR, cfg.FIROD))
|
cls.firo_daemons.append(startDaemon(os.path.join(cfg.TEST_DATADIRS, 'firo_' + str(i)), cfg.FIRO_BINDIR, cfg.FIROD, opts=extra_opts))
|
||||||
logging.info('Started %s %d', cfg.FIROD, cls.part_daemons[-1].pid)
|
logging.info('Started %s %d', cfg.FIROD, cls.part_daemons[-1].pid)
|
||||||
|
|
||||||
waitForRPC(make_rpc_func(i, base_rpc_port=FIRO_BASE_RPC_PORT))
|
waitForRPC(make_rpc_func(i, base_rpc_port=FIRO_BASE_RPC_PORT))
|
||||||
|
@ -193,7 +202,7 @@ class Test(BaseTest):
|
||||||
def callnoderpc(self, method, params=[], wallet=None, node_id=0):
|
def callnoderpc(self, method, params=[], wallet=None, node_id=0):
|
||||||
return callnoderpc(node_id, method, params, wallet, base_rpc_port=FIRO_BASE_RPC_PORT)
|
return callnoderpc(node_id, method, params, wallet, base_rpc_port=FIRO_BASE_RPC_PORT)
|
||||||
|
|
||||||
def test_01_firo(self):
|
def test_001_firo(self):
|
||||||
logging.info('---------- Test {} segwit'.format(self.test_coin_from.name))
|
logging.info('---------- Test {} segwit'.format(self.test_coin_from.name))
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
@ -244,6 +253,16 @@ class Test(BaseTest):
|
||||||
assert tx_funded_decoded['txid'] != tx_signed_decoded['txid']
|
assert tx_funded_decoded['txid'] != tx_signed_decoded['txid']
|
||||||
assert txid_with_scriptsig == tx_signed_decoded['txid']
|
assert txid_with_scriptsig == tx_signed_decoded['txid']
|
||||||
|
|
||||||
|
def test_007_hdwallet(self):
|
||||||
|
logging.info('---------- Test {} hdwallet'.format(self.test_coin_from.name))
|
||||||
|
|
||||||
|
swap_client = self.swap_clients[0]
|
||||||
|
# Run initialiseWallet to set 'main_wallet_seedid_'
|
||||||
|
swap_client.initialiseWallet(self.test_coin_from)
|
||||||
|
ci = swap_client.ci(self.test_coin_from)
|
||||||
|
assert ('490ba1e2c3894d5534c467141ee3cdf77292c362' == ci.getWalletSeedID())
|
||||||
|
assert swap_client.checkWalletSeed(self.test_coin_from) is True
|
||||||
|
|
||||||
def test_02_part_coin(self):
|
def test_02_part_coin(self):
|
||||||
logging.info('---------- Test PART to {}'.format(self.test_coin_from.name))
|
logging.info('---------- Test PART to {}'.format(self.test_coin_from.name))
|
||||||
if not self.test_atomic:
|
if not self.test_atomic:
|
||||||
|
|
|
@ -236,6 +236,18 @@ class Test(BaseTest):
|
||||||
block = self.callnoderpc('getblock', [best_hash, 2])
|
block = self.callnoderpc('getblock', [best_hash, 2])
|
||||||
assert ('vin' in block['tx'][0])
|
assert ('vin' in block['tx'][0])
|
||||||
|
|
||||||
|
def test_007_hdwallet(self):
|
||||||
|
logging.info('---------- Test {} hdwallet'.format(self.test_coin_from.name))
|
||||||
|
|
||||||
|
test_seed = '8e54a313e6df8918df6d758fafdbf127a115175fdd2238d0e908dd8093c9ac3b'
|
||||||
|
test_wif = self.swap_clients[0].ci(self.test_coin_from).encodeKey(bytes.fromhex(test_seed))
|
||||||
|
new_wallet_name = random.randbytes(10).hex()
|
||||||
|
self.callnoderpc('createwallet', [new_wallet_name])
|
||||||
|
self.callnoderpc('sethdseed', [True, test_wif], wallet=new_wallet_name)
|
||||||
|
addr = self.callnoderpc('getnewaddress', wallet=new_wallet_name)
|
||||||
|
self.callnoderpc('unloadwallet', [new_wallet_name])
|
||||||
|
assert (addr == 'bcrt1qps7hnjd866e9ynxadgseprkc2l56m00dvwargr')
|
||||||
|
|
||||||
def test_01_full_swap(self):
|
def test_01_full_swap(self):
|
||||||
logging.info('---------- Test {} to XMR'.format(self.test_coin_from.name))
|
logging.info('---------- Test {} to XMR'.format(self.test_coin_from.name))
|
||||||
swap_clients = self.swap_clients
|
swap_clients = self.swap_clients
|
||||||
|
|
Loading…
Reference in a new issue