Skip to content

Commit

Permalink
only require password for flags that ack on keystore
Browse files Browse the repository at this point in the history
  • Loading branch information
micimize committed Aug 30, 2017
1 parent e4132ca commit cd82089
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions pacli/keystore.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,19 +74,22 @@ def __init__(self, keystore: GpgKeystore, **kwargs):
self.__init__hack__ = Provider.__init__
self.__init__hack__(**kwargs)
self.keystore = keystore
self._loaded = False

#TODO only do this and cleanup if needed
self.load_privkeys()

@atexit.register
def _cleanup():
self.keystore.write(self.dumpprivkeys())
def load_keystore(self):
if (not self._loaded):
self.privkeys = self.keystore.read()
self._loaded = True

def load_privkeys(self):
self.privkeys = self.keystore.read()
@atexit.register
def _cleanup():
self.keystore.write(self.dumpprivkeys())

def importprivkey(self, privkey: str, label: str) -> int:
"""import <privkey> with <label>"""
self.load_keystore()

mykey = Kutil(network=self.network, wif=privkey)

if label not in self.privkeys.keys():
Expand All @@ -99,13 +102,16 @@ def importprivkey(self, privkey: str, label: str) -> int:
super(RpcNode, self).importprivkey(privkey, label)

def getaddressesbyaccount(self, label: str) -> list:
self.load_keystore()
if label in self.privkeys.keys():
return [key["address"] for key in self.privkeys[label]]

def listaccounts(self) -> dict:
self.load_keystore()
return {key:0 for key in self.privkeys.keys()}

def dumpprivkeys(self) -> dict:
self.load_keystore()
return self.privkeys

return LocalKeyProvider
Expand Down

0 comments on commit cd82089

Please sign in to comment.