|
@@ -20,7 +20,7 @@ unit UWalletKeys;
|
|
interface
|
|
interface
|
|
|
|
|
|
uses
|
|
uses
|
|
- Classes, UBlockChain, UAccounts, UCrypto;
|
|
|
|
|
|
+ Classes, UBlockChain, UAccounts, UCrypto, UCommon;
|
|
|
|
|
|
Type
|
|
Type
|
|
TWalletKey = Record
|
|
TWalletKey = Record
|
|
@@ -40,7 +40,7 @@ Type
|
|
FIsValidPassword: Boolean;
|
|
FIsValidPassword: Boolean;
|
|
FWalletFileName: AnsiString;
|
|
FWalletFileName: AnsiString;
|
|
FIsReadingStream : Boolean;
|
|
FIsReadingStream : Boolean;
|
|
- FOnChanged: TNotifyEvent;
|
|
|
|
|
|
+ FOnChanged: TNotifyManyEvent;
|
|
function GetKey(index: Integer): TWalletKey;
|
|
function GetKey(index: Integer): TWalletKey;
|
|
procedure SetWalletPassword(const Value: AnsiString);
|
|
procedure SetWalletPassword(const Value: AnsiString);
|
|
Procedure GeneratePrivateKeysFromPassword;
|
|
Procedure GeneratePrivateKeysFromPassword;
|
|
@@ -61,7 +61,7 @@ Type
|
|
Procedure Clear; virtual;
|
|
Procedure Clear; virtual;
|
|
Function Count : Integer;
|
|
Function Count : Integer;
|
|
Property WalletFileName : AnsiString read FWalletFileName write SetWalletFileName;
|
|
Property WalletFileName : AnsiString read FWalletFileName write SetWalletFileName;
|
|
- Property OnChanged : TNotifyEvent read FOnChanged write FOnChanged;
|
|
|
|
|
|
+ Property OnChanged : TNotifyManyEvent read FOnChanged write FOnChanged;
|
|
Procedure SetName(index : Integer; Const newName : AnsiString);
|
|
Procedure SetName(index : Integer; Const newName : AnsiString);
|
|
Function LockWallet : Boolean;
|
|
Function LockWallet : Boolean;
|
|
End;
|
|
End;
|
|
@@ -119,7 +119,7 @@ begin
|
|
P^.Name := Name;
|
|
P^.Name := Name;
|
|
end;
|
|
end;
|
|
if Not FIsReadingStream then SaveToStream(FWalletFileStream);
|
|
if Not FIsReadingStream then SaveToStream(FWalletFileStream);
|
|
- if Assigned(FOnChanged) then FOnChanged(Self);
|
|
|
|
|
|
+ FOnChanged.Invoke(Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TWalletKeys.AddPublicKey(const Name: AnsiString; ECDSA_Public: TECDSA_Public): Integer;
|
|
function TWalletKeys.AddPublicKey(const Name: AnsiString; ECDSA_Public: TECDSA_Public): Integer;
|
|
@@ -139,7 +139,7 @@ begin
|
|
P^.Name := Name;
|
|
P^.Name := Name;
|
|
end;
|
|
end;
|
|
if Not FIsReadingStream then SaveToStream(FWalletFileStream);
|
|
if Not FIsReadingStream then SaveToStream(FWalletFileStream);
|
|
- if Assigned(FOnChanged) then FOnChanged(Self);
|
|
|
|
|
|
+ FOnChanged.Invoke(Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TWalletKeys.Clear;
|
|
procedure TWalletKeys.Clear;
|
|
@@ -179,7 +179,7 @@ begin
|
|
Dispose(P);
|
|
Dispose(P);
|
|
FSearchableKeys.Delete(index);
|
|
FSearchableKeys.Delete(index);
|
|
SaveToStream(FWalletFileStream);
|
|
SaveToStream(FWalletFileStream);
|
|
- if Assigned(FOnChanged) then FOnChanged(Self);
|
|
|
|
|
|
+ FOnChanged.Invoke(Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
destructor TWalletKeys.destroy;
|
|
destructor TWalletKeys.destroy;
|
|
@@ -299,7 +299,7 @@ begin
|
|
finally
|
|
finally
|
|
FIsReadingStream := false;
|
|
FIsReadingStream := false;
|
|
end;
|
|
end;
|
|
- if Assigned(FOnChanged) then FOnChanged(Self);
|
|
|
|
|
|
+ FOnChanged.Invoke(Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TWalletKeys.LockWallet: Boolean;
|
|
function TWalletKeys.LockWallet: Boolean;
|
|
@@ -308,7 +308,7 @@ begin
|
|
FWalletPassword := '';
|
|
FWalletPassword := '';
|
|
GeneratePrivateKeysFromPassword;
|
|
GeneratePrivateKeysFromPassword;
|
|
Result := Not IsValidPassword;
|
|
Result := Not IsValidPassword;
|
|
- if Assigned(FOnChanged) then FOnChanged(Self);
|
|
|
|
|
|
+ FOnChanged.Invoke(Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TWalletKeys.SaveToStream(Stream: TStream);
|
|
procedure TWalletKeys.SaveToStream(Stream: TStream);
|
|
@@ -339,7 +339,7 @@ begin
|
|
if PWalletKey(FSearchableKeys[index])^.Name=newName then exit;
|
|
if PWalletKey(FSearchableKeys[index])^.Name=newName then exit;
|
|
PWalletKey(FSearchableKeys[index])^.Name := newName;
|
|
PWalletKey(FSearchableKeys[index])^.Name := newName;
|
|
SaveToStream(FWalletFileStream);
|
|
SaveToStream(FWalletFileStream);
|
|
- if Assigned(FOnChanged) then FOnChanged(Self);
|
|
|
|
|
|
+ FOnChanged.Invoke(Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TWalletKeys.SetWalletFileName(const Value: AnsiString);
|
|
procedure TWalletKeys.SetWalletFileName(const Value: AnsiString);
|
|
@@ -378,7 +378,7 @@ begin
|
|
// Try if password is Ok
|
|
// Try if password is Ok
|
|
GeneratePrivateKeysFromPassword;
|
|
GeneratePrivateKeysFromPassword;
|
|
if FIsValidPassword then SaveToStream(FWalletFileStream);
|
|
if FIsValidPassword then SaveToStream(FWalletFileStream);
|
|
- if Assigned(FOnChanged) then FOnChanged(Self);
|
|
|
|
|
|
+ FOnChanged.Invoke(Self);
|
|
end;
|
|
end;
|
|
|
|
|
|
{ TWalletKeysExt }
|
|
{ TWalletKeysExt }
|