def LoadKeyPairs(self): keypairs = {} for db_account in Account.select(): encrypted = db_account.PrivateKeyEncrypted decrypted = self.DecryptPrivateKey(encrypted) acct = WalletKeyPair(decrypted) assert acct.PublicKeyHash.ToString() == db_account.PublicKeyHash keypairs[acct.PublicKeyHash.ToBytes()] = acct return keypairs
def CreateKey(self, prikey=None): if prikey: private_key = prikey else: private_key = bytes(Random.get_random_bytes(32)) account = WalletKeyPair(priv_key=private_key) self._keys[account.PublicKeyHash.ToBytes()] = account self.OnCreateAccount(account) contract = WalletContract.CreateSignatureContract(account.PublicKey) self.AddContract(contract) return account