added reconstructhash for working with block hashes without their leading zeroes
This commit is contained in:
parent
dce453db81
commit
03fbf32af9
0
docs/usage/install.md
Normal file
0
docs/usage/install.md
Normal file
@ -77,7 +77,7 @@ function openThread(bHash, sender, date, sigBool, pubkey, subjectLine){
|
|||||||
var sigMsg = 'signature'
|
var sigMsg = 'signature'
|
||||||
|
|
||||||
// show add unknown contact button if peer is unknown but still has pubkey
|
// show add unknown contact button if peer is unknown but still has pubkey
|
||||||
if (sender === pubkey && sender !== myPub){
|
if (sender === pubkey && sender !== myPub && sigBool){
|
||||||
addUnknownContact.style.display = 'inline'
|
addUnknownContact.style.display = 'inline'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
21
onionr/tests/test_zfill.py
Normal file
21
onionr/tests/test_zfill.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import unittest, sys
|
||||||
|
sys.path.append(".")
|
||||||
|
|
||||||
|
from utils import reconstructhash
|
||||||
|
|
||||||
|
class ZFill_Hash(unittest.TestCase):
|
||||||
|
def test_reconstruct(self):
|
||||||
|
h = b"4d20d791cbc293999b97cc627aa011692d317dede3d0fbd390c763210b0d"
|
||||||
|
self.assertEqual(reconstructhash.reconstruct_hash(h), b"0000" + h)
|
||||||
|
h = b"4d20d791cbc293999b97cc627aa011692d317dede3d0fbd390c763210b0d"
|
||||||
|
self.assertEqual(reconstructhash.reconstruct_hash(h, 62), b"00" + h)
|
||||||
|
|
||||||
|
def test_deconstruct(self):
|
||||||
|
h = b"0000e918d24999ad9b0ff00c1d414f36b74afc93871a0ece4bd452f82b56af87"
|
||||||
|
h_no = b"e918d24999ad9b0ff00c1d414f36b74afc93871a0ece4bd452f82b56af87"
|
||||||
|
self.assertEqual(reconstructhash.deconstruct_hash(h), h_no)
|
||||||
|
h = "0000e918d24999ad9b0ff00c1d414f36b74afc93871a0ece4bd452f82b56af87"
|
||||||
|
h_no = "e918d24999ad9b0ff00c1d414f36b74afc93871a0ece4bd452f82b56af87"
|
||||||
|
self.assertEqual(reconstructhash.deconstruct_hash(h), h_no)
|
||||||
|
unittest.main()
|
43
onionr/utils/reconstructhash.py
Normal file
43
onionr/utils/reconstructhash.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
'''
|
||||||
|
Onionr - Private P2P Communication
|
||||||
|
|
||||||
|
z-fill (zero fill) a string to a specific length, intended for reconstructing block hashes
|
||||||
|
'''
|
||||||
|
'''
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
'''
|
||||||
|
def reconstruct_hash(hex_hash, length=64):
|
||||||
|
return hex_hash.zfill(length)
|
||||||
|
|
||||||
|
def deconstruct_hash(hex_hash):
|
||||||
|
new_hash = ''
|
||||||
|
ret_bytes = False
|
||||||
|
try:
|
||||||
|
hex_hash = hex_hash.decode()
|
||||||
|
ret_bytes = True
|
||||||
|
except AttributeError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
c = 0
|
||||||
|
for x in hex_hash:
|
||||||
|
if x == '0':
|
||||||
|
c += 1
|
||||||
|
else:
|
||||||
|
break
|
||||||
|
new_hash = hex_hash[c:]
|
||||||
|
|
||||||
|
if ret_bytes:
|
||||||
|
|
||||||
|
new_hash = new_hash.encode()
|
||||||
|
return new_hash
|
Loading…
Reference in New Issue
Block a user