[KMS-ETH]- Fixed bugs and tests with 32 bytes miner id

pull/195/head^2
szotov 2018-03-02 20:49:42 +03:00
parent 67366ce685
commit dec362fda7
3 changed files with 13 additions and 26 deletions

View File

@ -79,7 +79,7 @@ class Miner:
def publish_dht_key(self, dht_id) -> str:
"""Store a new DHT key"""
txhash = self.escrow.transact({'from': self.address}).publishDHTKey(dht_id)
txhash = self.escrow.transact({'from': self.address}).setMinerId(dht_id)
self.blockchain._chain.wait.for_receipt(txhash)
return txhash
@ -87,8 +87,9 @@ class Miner:
def get_dht_key(self) -> tuple:
"""Retrieve all stored DHT keys for this miner"""
count = self.escrow().getDHTKeysCount(self.address)
dht_keys = tuple(self.escrow().getDHTKey(self.address, index) for index in range(count))
count = self.escrow().getMinerIdsCount(self.address)
# TODO change when v4 web3.py will released
dht_keys = tuple(self.escrow().getMinerId(self.address, index).encode('latin-1') for index in range(count))
return dht_keys

View File

@ -569,29 +569,14 @@ def test_miner_id(web3, chain, token, escrow_contract):
# Set miner ids
miner_id = os.urandom(32)
print(miner_id) # TODO delete
print(type(miner_id)) # TODO delete
print(web3.toHex(miner_id)) # TODO delete
print(type(web3.toHex(miner_id))) # TODO delete
print(web3.toBytes(miner_id)) # TODO delete
print(type(web3.toBytes(miner_id))) # TODO delete
# print(bytes(web3.toHex(miner_id))) # TODO delete
# print(type(bytes(web3.toHex(miner_id)))) # TODO delete
# miner_id = bytearray(32)
# print(type(miner_id)) # TODO delete
tx = escrow.transact({'from': miner}).setMinerId(miner_id)
chain.wait.for_receipt(tx)
print(escrow.call().getMinerId(miner, 0)) # TODO delete
print(escrow.call().getMinerId(miner, 0).encode()) # TODO delete
print(bytes(escrow.call().getMinerId(miner, 0).encode())) # TODO delete
print(escrow.call().getMinerId(miner, 0).decode()) # TODO delete
assert 1 == escrow.call().getMinerIdsCount(miner)
assert miner_id == bytes(escrow.call().getMinerId(miner, 0).encode())
miner_id = os.urandom(32).hex()
# TODO change when v4 web3.py will released
assert miner_id == escrow.call().getMinerId(miner, 0).encode('latin-1')
miner_id = os.urandom(32)
tx = escrow.transact({'from': miner}).setMinerId(miner_id)
chain.wait.for_receipt(tx)
assert 2 == escrow.call().getMinerIdsCount(miner)
assert miner_id == escrow.call().getMinerId(miner, 1)
# TODO change when v4 web3.py will released
assert miner_id == escrow.call().getMinerId(miner, 1).encode('latin-1')

View File

@ -56,7 +56,7 @@ def test_publish_dht_key(testerchain, token, escrow):
miner.lock(amount=balance, locktime=1)
# Publish DHT keys
mock_dht_key = os.urandom(66).hex()
mock_dht_key = os.urandom(32)
txhash = miner.publish_dht_key(mock_dht_key)
stored_miner_dht_keys = miner.get_dht_key()
@ -64,14 +64,15 @@ def test_publish_dht_key(testerchain, token, escrow):
assert len(stored_miner_dht_keys) == 1
assert mock_dht_key == stored_miner_dht_keys[0]
another_mock_dht_key = os.urandom(66).hex()
another_mock_dht_key = os.urandom(32)
txhash = miner.publish_dht_key(another_mock_dht_key)
stored_miner_dht_keys = miner.get_dht_key()
assert len(stored_miner_dht_keys) == 2
assert another_mock_dht_key == stored_miner_dht_keys[1]
assert another_mock_dht_key == escrow().getDHTKey(miner_addr, 1)
# TODO change when v4 web3.py will released
assert another_mock_dht_key == escrow().getMinerId(miner_addr, 1).encode('latin-1')
def test_select_ursulas(testerchain, token, escrow):