Browse Source

make Seed() attrs immutable

MMGen 5 years ago
parent
commit
11b04d4d9d
3 changed files with 8 additions and 6 deletions
  1. 1 2
      mmgen/addr.py
  2. 1 1
      mmgen/obj.py
  3. 6 3
      mmgen/seed.py

+ 1 - 2
mmgen/addr.py

@@ -431,8 +431,7 @@ Removed {{}} duplicate WIF key{{}} from keylist (also in {pnm} key-address file
 	def generate(self,seed,addrnums):
 		assert type(addrnums) is AddrIdxList
 
-		seed = seed.get_data()
-		seed = self.scramble_seed(seed)
+		seed = self.scramble_seed(seed.data)
 		dmsg_sc('seed',seed[:8].hex())
 
 		compressed = self.al_id.mmtype.compressed

+ 1 - 1
mmgen/obj.py

@@ -492,7 +492,7 @@ class SeedID(str,Hilite,InitErrors):
 				from mmgen.seed import Seed
 				assert type(seed) == Seed,'not a Seed instance'
 				from mmgen.util import make_chksum_8
-				return str.__new__(cls,make_chksum_8(seed.get_data()))
+				return str.__new__(cls,make_chksum_8(seed.data))
 			elif sid:
 				assert set(sid) <= set(hexdigits.upper()),'not uppercase hex digits'
 				assert len(sid) == cls.width,'not {} characters wide'.format(cls.width)

+ 6 - 3
mmgen/seed.py

@@ -46,6 +46,12 @@ def is_mnemonic(s):
 	return ret
 
 class Seed(MMGenObject):
+
+	data    = MMGenImmutableAttr('data',bytes,typeconv=False)
+	hexdata = MMGenImmutableAttr('hexdata',str,typeconv=False)
+	sid     = MMGenImmutableAttr('sid',SeedID,typeconv=False)
+	length  = MMGenImmutableAttr('length',int,typeconv=False)
+
 	def __init__(self,seed_bin=None):
 		if not seed_bin:
 			# Truncate random data for smaller seed lengths
@@ -58,9 +64,6 @@ class Seed(MMGenObject):
 		self.sid       = SeedID(seed=self)
 		self.length    = len(seed_bin) * 8
 
-	def get_data(self):
-		return self.data
-
 class SeedSource(MMGenObject):
 
 	desc = g.proj_name + ' seed source'