commit fd4ff93d2157f00820427b4a519fe4df49653458
parent 94857e4a440c99e0cdcf9b54ba2d1bf78226e6fc
Author: lash <dev@holbrook.no>
Date: Sat, 6 Dec 2025 13:02:33 +0000
Add wallet creating test#
Diffstat:
3 files changed, 29 insertions(+), 7 deletions(-)
diff --git a/dummy/svcontas/crypto.py b/dummy/svcontas/crypto.py
@@ -11,8 +11,9 @@ class DemoWallet:
if privatekey == None:
if publickey == None:
self.pk = nacl.signing.SigningKey.generate()
- else:
- self.pk = nacl.signing.SigningKey(privatekey)
+ publickey_chk = self.pk.verify_key
+ else:
+ self.pk = nacl.signing.SigningKey(privatekey)
publickey_chk = self.pk.verify_key
if publickey == None:
diff --git a/dummy/svcontas/entry.py b/dummy/svcontas/entry.py
@@ -1,3 +1,4 @@
+import enum
import logging
import datetime
import uuid
@@ -7,11 +8,17 @@ from lxml import etree
import rencode
from .constant import DEFAULTPARENT, NSPREFIX
+from .crypto import DemoWallet
from .xml import nsmap
logg = logging.getLogger('svcontas.entry')
+class KeyStoreFormat(enum.IntEnum):
+ LITERAL = 0
+ INDEXED = 1
+
+
class EntryPart:
def __init__(self, typ, account, amount, src=False):
@@ -163,7 +170,12 @@ class Entry:
def wrap(self, wallet):
(digest, sig, data) = self.sign(wallet)
+ pubkey = wallet.pubkey()
d = [
+ [
+ KeyStoreFormat.LITERAL.value,
+ pubkey,
+ ],
sig,
data,
]
@@ -171,13 +183,13 @@ class Entry:
@staticmethod
- def unwrap(data, wallet):
+ def unwrap(data, acl=None):
v = rencode.loads(data)
- sig = v[0]
- entry = Entry.deserialize(v[1])
+ pubkey_bytes = v[0][1]
+ wallet = DemoWallet(publickey=pubkey_bytes)
+ sig = v[1]
+ entry = Entry.deserialize(v[2])
(z, b) = entry.sum()
- #wallet.verify(z, sig)
- #sig = bytes.fromhex('cc06808cbbee0510331aa97974132e8dc296aeb795be229d064bae784b0a87a5cf4281d82e8c99271b75db2148f08a026c1a60ed9cabdb8cac6d24242dac4063')
wallet.verify(z, sig)
return entry
diff --git a/dummy/tests/entry.py b/dummy/tests/entry.py
@@ -33,6 +33,15 @@ class TestEntry(unittest.TestCase):
self.assertEqual(s, ss)
+ def test_wallet_create(self):
+ pk = bytes.fromhex('b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c')
+ o = DemoWallet()
+ o = DemoWallet(privatekey=pk)
+ pubk = o.pubkey()
+ oo = DemoWallet(publickey=pubk)
+ self.assertEqual(o.pubkey(), oo.pubkey())
+
+
def test_entry_sign_verify(self):
dst = EntryPart('asset', 'foo', 1337)
src = EntryPart('income', 'foo', 1337, src=True)