Browse Source

AnsiString to String on core - initial

Deprecate use of AnsiString and use native String instead
PascalCoin 6 years ago
parent
commit
0fd53e2329

+ 61 - 61
src/core/UAccounts.pas

@@ -120,11 +120,11 @@ Type
   TAccountComp = Class
   private
   public
-    Class Function IsValidAccountKey(const account: TAccountKey; var errors : AnsiString): Boolean;
-    Class Function IsValidAccountInfo(const accountInfo: TAccountInfo; var errors : AnsiString): Boolean;
+    Class Function IsValidAccountKey(const account: TAccountKey; var errors : String): Boolean;
+    Class Function IsValidAccountInfo(const accountInfo: TAccountInfo; var errors : String): Boolean;
     Class Function IsAccountForSale(const accountInfo: TAccountInfo) : Boolean;
     Class Function IsAccountForSaleAcceptingTransactions(const accountInfo: TAccountInfo) : Boolean;
-    Class Function GetECInfoTxt(Const EC_OpenSSL_NID: Word) : AnsiString;
+    Class Function GetECInfoTxt(Const EC_OpenSSL_NID: Word) : String;
     Class Procedure ValidsEC_OpenSSL_NID(list : TList);
     Class Function AccountKey2RawString(const account: TAccountKey): TRawBytes; overload;
     Class procedure AccountKey2RawString(const account: TAccountKey; var dest: TRawBytes); overload;
@@ -137,14 +137,14 @@ Type
     Class Function EqualAccounts(const account1,account2 : TAccount) : Boolean;
     Class Function EqualOperationBlocks(const opBlock1,opBlock2 : TOperationBlock) : Boolean;
     Class Function EqualBlockAccounts(const blockAccount1,blockAccount2 : TBlockAccount) : Boolean;
-    Class Function AccountNumberToAccountTxtNumber(account_number : Cardinal) : AnsiString;
-    Class function AccountTxtNumberToAccountNumber(Const account_txt_number : AnsiString; var account_number : Cardinal) : Boolean;
-    Class function FormatMoney(Money : Int64) : AnsiString;
+    Class Function AccountNumberToAccountTxtNumber(account_number : Cardinal) : String;
+    Class function AccountTxtNumberToAccountNumber(Const account_txt_number : String; var account_number : Cardinal) : Boolean;
+    Class function FormatMoney(Money : Int64) : String;
     Class function FormatMoneyDecimal(Money : Int64) : Single;
-    Class Function TxtToMoney(Const moneytxt : AnsiString; var money : Int64) : Boolean;
-    Class Function AccountKeyFromImport(Const HumanReadable : AnsiString; var account : TAccountKey; var errors : AnsiString) : Boolean;
-    Class Function AccountPublicKeyExport(Const account : TAccountKey) : AnsiString;
-    Class Function AccountPublicKeyImport(Const HumanReadable : AnsiString; var account : TAccountKey; var errors : AnsiString) : Boolean;
+    Class Function TxtToMoney(Const moneytxt : String; var money : Int64) : Boolean;
+    Class Function AccountKeyFromImport(Const HumanReadable : String; var account : TAccountKey; var errors : String) : Boolean;
+    Class Function AccountPublicKeyExport(Const account : TAccountKey) : String;
+    Class Function AccountPublicKeyImport(Const HumanReadable : String; var account : TAccountKey; var errors : String) : Boolean;
     Class Function AccountBlock(Const account_number : Cardinal) : Cardinal;
     Class Function AccountInfo2RawString(const AccountInfo : TAccountInfo) : TRawBytes; overload;
     Class procedure AccountInfo2RawString(const AccountInfo : TAccountInfo; var dest : TRawBytes); overload;
@@ -155,7 +155,7 @@ Type
     Class Function IsAccountLocked(const AccountInfo : TAccountInfo; blocks_count : Cardinal) : Boolean;
     Class procedure SaveTOperationBlockToStream(const stream : TStream; const operationBlock:TOperationBlock);
     Class Function LoadTOperationBlockFromStream(const stream : TStream; var operationBlock:TOperationBlock) : Boolean;
-    Class Function AccountToTxt(const Account : TAccount) : AnsiString;
+    Class Function AccountToTxt(const Account : TAccount) : String;
   End;
 
   { Estimated TAccount size:
@@ -224,7 +224,7 @@ Type
 
   { TProgressNotify }
 
-  TProgressNotify = procedure(sender : TObject; const message : AnsiString; curPos, totalCount : Int64) of object;
+  TProgressNotify = procedure(sender : TObject; const message : String; curPos, totalCount : Int64) of object;
 
   { TProgressNotifyMany }
 
@@ -235,7 +235,7 @@ Type
   TProgressNotifyManyHelper = record helper for TProgressNotifyMany
     procedure Add(listener : TProgressNotify);
     procedure Remove(listener : TProgressNotify);
-    procedure Invoke(sender : TObject; const message : AnsiString; curPos, totalCount : Int64);
+    procedure Invoke(sender : TObject; const message : String; curPos, totalCount : Int64);
   end;
 
   { TPCSafeBox }
@@ -294,20 +294,20 @@ Type
     Function BlocksCount : Integer;
     Procedure CopyFrom(accounts : TPCSafeBox);
     Class Function CalcBlockHash(const block : TBlockAccount; useProtocol2Method : Boolean):TRawBytes;
-    Class Function BlockAccountToText(Const block : TBlockAccount):AnsiString;
-    Function LoadSafeBoxFromStream(Stream : TStream; checkAll : Boolean; var LastReadBlock : TBlockAccount; var errors : AnsiString) : Boolean; overload;
-    Function LoadSafeBoxFromStream(Stream : TStream; checkAll : Boolean; checkSafeboxHash : TRawBytes; progressNotify : TProgressNotify; previousCheckedSafebox : TPCSafebox; var LastReadBlock : TBlockAccount; var errors : AnsiString) : Boolean; overload;
+    Class Function BlockAccountToText(Const block : TBlockAccount):String;
+    Function LoadSafeBoxFromStream(Stream : TStream; checkAll : Boolean; var LastReadBlock : TBlockAccount; var errors : String) : Boolean; overload;
+    Function LoadSafeBoxFromStream(Stream : TStream; checkAll : Boolean; checkSafeboxHash : TRawBytes; progressNotify : TProgressNotify; previousCheckedSafebox : TPCSafebox; var LastReadBlock : TBlockAccount; var errors : String) : Boolean; overload;
     Class Function LoadSafeBoxStreamHeader(Stream : TStream; var sbHeader : TPCSafeBoxHeader) : Boolean;
     Class Function SaveSafeBoxStreamHeader(Stream : TStream; protocol : Word; OffsetStartBlock, OffsetEndBlock, CurrentSafeBoxBlocksCount : Cardinal) : Boolean;
     Class Function MustSafeBoxBeSaved(BlocksCount : Cardinal) : Boolean;
     Procedure SaveSafeBoxBlockToAStream(DestStream : TStream; nBlock : Cardinal);
     Procedure SaveSafeBoxToAStream(Stream : TStream; FromBlock, ToBlock : Cardinal);
-    class Function CopySafeBoxStream(Source,Dest : TStream; FromBlock, ToBlock : Cardinal; var errors : AnsiString) : Boolean;
-    class Function ConcatSafeBoxStream(Source1, Source2, Dest : TStream; var errors : AnsiString) : Boolean;
-    class function ValidAccountName(const new_name : TRawBytes; var errors : AnsiString) : Boolean;
+    class Function CopySafeBoxStream(Source,Dest : TStream; FromBlock, ToBlock : Cardinal; var errors : String) : Boolean;
+    class Function ConcatSafeBoxStream(Source1, Source2, Dest : TStream; var errors : String) : Boolean;
+    class function ValidAccountName(const new_name : TRawBytes; var errors : String) : Boolean;
 
-    Function IsValidNewOperationsBlock(Const newOperationBlock : TOperationBlock; checkSafeBoxHash : Boolean; var errors : AnsiString) : Boolean;
-    class Function IsValidOperationBlock(Const newOperationBlock : TOperationBlock; var errors : AnsiString) : Boolean;
+    Function IsValidNewOperationsBlock(Const newOperationBlock : TOperationBlock; checkSafeBoxHash : Boolean; var errors : String) : Boolean;
+    class Function IsValidOperationBlock(Const newOperationBlock : TOperationBlock; var errors : String) : Boolean;
     Function GetActualTargetHash(protocolVersion : Word): TRawBytes;
     Function GetActualCompactTargetHash(protocolVersion : Word): Cardinal;
     Function FindAccountByName(const aName : String) : Integer; overload;
@@ -416,11 +416,11 @@ Type
   public
     Constructor Create(SafeBox : TPCSafeBox);
     Destructor Destroy; override;
-    Function TransferAmount(previous : TAccountPreviousBlockInfo; sender,signer,target : Cardinal; n_operation : Cardinal; amount, fee : UInt64; var errors : AnsiString) : Boolean;
-    Function TransferAmounts(previous : TAccountPreviousBlockInfo; const senders, n_operations : Array of Cardinal; const sender_amounts : Array of UInt64; const receivers : Array of Cardinal; const receivers_amounts : Array of UInt64; var errors : AnsiString) : Boolean;
-    Function UpdateAccountInfo(previous : TAccountPreviousBlockInfo; signer_account, signer_n_operation, target_account: Cardinal; accountInfo: TAccountInfo; newName : TRawBytes; newType : Word; fee: UInt64; var errors : AnsiString) : Boolean;
-    Function BuyAccount(previous : TAccountPreviousBlockInfo; buyer,account_to_buy,seller: Cardinal; n_operation : Cardinal; amount, account_price, fee : UInt64; const new_account_key : TAccountKey; var errors : AnsiString) : Boolean;
-    Function Commit(Const operationBlock : TOperationBlock; var errors : AnsiString) : Boolean;
+    Function TransferAmount(previous : TAccountPreviousBlockInfo; sender,signer,target : Cardinal; n_operation : Cardinal; amount, fee : UInt64; var errors : String) : Boolean;
+    Function TransferAmounts(previous : TAccountPreviousBlockInfo; const senders, n_operations : Array of Cardinal; const sender_amounts : Array of UInt64; const receivers : Array of Cardinal; const receivers_amounts : Array of UInt64; var errors : String) : Boolean;
+    Function UpdateAccountInfo(previous : TAccountPreviousBlockInfo; signer_account, signer_n_operation, target_account: Cardinal; accountInfo: TAccountInfo; newName : TRawBytes; newType : Word; fee: UInt64; var errors : String) : Boolean;
+    Function BuyAccount(previous : TAccountPreviousBlockInfo; buyer,account_to_buy,seller: Cardinal; n_operation : Cardinal; amount, account_price, fee : UInt64; const new_account_key : TAccountKey; var errors : String) : Boolean;
+    Function Commit(Const operationBlock : TOperationBlock; var errors : String) : Boolean;
     Function Account(account_number : Cardinal) : TAccount;
     Procedure Rollback;
     Function CheckIntegrity : Boolean;
@@ -470,7 +470,7 @@ Const
   CT_SafeBoxChunkIdentificator = 'SafeBoxChunk';
   CT_PCSafeBoxHeader_NUL : TPCSafeBoxHeader = (protocol:0;startBlock:0;endBlock:0;blocksCount:0;safeBoxHash:Nil);
 
-function Check_Safebox_Names_Consistency(sb : TPCSafeBox; const title :String; var errors : AnsiString) : Boolean;
+function Check_Safebox_Names_Consistency(sb : TPCSafeBox; const title :String; var errors : String) : Boolean;
 Procedure Check_Safebox_Integrity(sb : TPCSafebox; title: String);
 
 implementation
@@ -480,7 +480,7 @@ uses
 
 { This function is for testing purpose only.
   Will check if Account Names are well assigned and stored }
-function Check_Safebox_Names_Consistency(sb : TPCSafeBox; const title :String; var errors : AnsiString) : Boolean;
+function Check_Safebox_Names_Consistency(sb : TPCSafeBox; const title :String; var errors : String) : Boolean;
 Var i,j : Integer;
   acc : TAccount;
   auxs : TRawBytes;
@@ -1063,7 +1063,7 @@ begin
   end;
 end;
 
-class function TAccountComp.AccountKeyFromImport(const HumanReadable: AnsiString; var account: TAccountKey; var errors : AnsiString): Boolean;
+class function TAccountComp.AccountKeyFromImport(const HumanReadable: String; var account: TAccountKey; var errors : String): Boolean;
 Var raw : TRawBytes;
   BN, BNAux, BNBase : TBigNum;
   i,j : Integer;
@@ -1118,7 +1118,7 @@ begin
   end;
 end;
 
-class function TAccountComp.AccountNumberToAccountTxtNumber(account_number: Cardinal): AnsiString;
+class function TAccountComp.AccountNumberToAccountTxtNumber(account_number: Cardinal): String;
 Var an : int64;
 begin
   an := account_number; // Converting to int64 to prevent overflow when *101
@@ -1126,7 +1126,7 @@ begin
   Result := IntToStr(account_number)+'-'+Inttostr(an);
 end;
 
-class function TAccountComp.AccountPublicKeyExport(const account: TAccountKey): AnsiString;
+class function TAccountComp.AccountPublicKeyExport(const account: TAccountKey): String;
 Var raw : TRawBytes;
   BN, BNMod, BNDiv : TBigNum;
   i : Integer;
@@ -1151,12 +1151,12 @@ begin
 end;
 
 class function TAccountComp.AccountPublicKeyImport(
-  const HumanReadable: AnsiString; var account: TAccountKey;
-  var errors: AnsiString): Boolean;
+  const HumanReadable: String; var account: TAccountKey;
+  var errors: String): Boolean;
 Var raw : TRawBytes;
   BN, BNAux, BNBase : TBigNum;
   i,j : Integer;
-  s1,s2 : AnsiString;
+  s1,s2 : String;
   i64 : Int64;
   b : Byte;
 begin
@@ -1205,7 +1205,7 @@ begin
   end;
 end;
 
-class function TAccountComp.AccountTxtNumberToAccountNumber(const account_txt_number: AnsiString; var account_number: Cardinal): Boolean;
+class function TAccountComp.AccountTxtNumberToAccountNumber(const account_txt_number: String; var account_number: Cardinal): Boolean;
 Var i : Integer;
   char1 : AnsiChar;
   char2 : AnsiChar;
@@ -1292,7 +1292,7 @@ begin
 end;
 
 
-class function TAccountComp.FormatMoney(Money: Int64): AnsiString;
+class function TAccountComp.FormatMoney(Money: Int64): String;
 begin
   Result := FormatFloat('#,###0.0000',(Money/10000));
 end;
@@ -1302,7 +1302,7 @@ begin
   Result := RoundTo( Money / 10000.0, -4);
 end;
 
-class function TAccountComp.GetECInfoTxt(const EC_OpenSSL_NID: Word): AnsiString;
+class function TAccountComp.GetECInfoTxt(const EC_OpenSSL_NID: Word): String;
 begin
   case EC_OpenSSL_NID of
     CT_NID_secp256k1 : begin
@@ -1335,7 +1335,7 @@ begin
 end;
 
 class function TAccountComp.IsAccountForSaleAcceptingTransactions(const accountInfo: TAccountInfo): Boolean;
-var errors : AnsiString;
+var errors : String;
 begin
   Result := (AccountInfo.state=as_ForSale) And (IsValidAccountKey(AccountInfo.new_publicKey,errors));
 end;
@@ -1382,15 +1382,15 @@ begin
   Result := True;
 end;
 
-class function TAccountComp.AccountToTxt(const Account: TAccount): AnsiString;
+class function TAccountComp.AccountToTxt(const Account: TAccount): String;
 begin
   Result := Format('%s Balance:%s N_Op:%d UpdB:%d Type:%d Name:%s PK:%s',[AccountNumberToAccountTxtNumber(Account.account),
     FormatMoney(Account.balance),Account.n_operation,Account.updated_block,Account.account_type,
       Account.name.ToPrintable,TCrypto.ToHexaString(TAccountComp.AccountInfo2RawString(Account.accountInfo))]);
 end;
 
-class function TAccountComp.IsValidAccountInfo(const accountInfo: TAccountInfo; var errors: AnsiString): Boolean;
-Var s : AnsiString;
+class function TAccountComp.IsValidAccountInfo(const accountInfo: TAccountInfo; var errors: String): Boolean;
+Var s : String;
 begin
   errors := '';
   case accountInfo.state of
@@ -1410,7 +1410,7 @@ begin
   end;
 end;
 
-class function TAccountComp.IsValidAccountKey(const account: TAccountKey; var errors : AnsiString): Boolean;
+class function TAccountComp.IsValidAccountKey(const account: TAccountKey; var errors : String): Boolean;
 begin
   errors := '';
   case account.EC_OpenSSL_NID of
@@ -1501,9 +1501,9 @@ end;
 {$DEFINE DELPHIXE}
 {$ENDIF}
 
-class function TAccountComp.TxtToMoney(const moneytxt: AnsiString;
+class function TAccountComp.TxtToMoney(const moneytxt: String;
   var money: Int64): Boolean;
-Var s : AnsiString;
+Var s : String;
   i : Integer;
 begin
   money := 0;
@@ -1548,7 +1548,7 @@ begin
   TArrayTool<TProgressNotify>.Remove(self, listener);
 end;
 
-procedure TProgressNotifyManyHelper.Invoke(sender : TObject; const message : AnsiString; curPos, totalCount : Int64);
+procedure TProgressNotifyManyHelper.Invoke(sender : TObject; const message : String; curPos, totalCount : Int64);
 var i : Integer;
 begin
   for i := low(self) to high(self) do
@@ -1984,7 +1984,7 @@ begin
   end;
 end;
 
-class function TPCSafeBox.BlockAccountToText(const block: TBlockAccount): AnsiString;
+class function TPCSafeBox.BlockAccountToText(const block: TBlockAccount): String;
 begin
   Result := Format('Block:%d Timestamp:%d BlockHash:%s',
     [block.blockchainInfo.block, block.blockchainInfo.timestamp,
@@ -2451,7 +2451,7 @@ procedure TPCSafeBox.CommitToPrevious;
     FPreviousSafeBox.AddNew(Block(Psnapshot^.nBlockNumber).blockchainInfo);
   end;
 
-Var errors : AnsiString;
+Var errors : String;
   i : Integer;
   Pss : PSafeboxSnapshot;
 begin
@@ -2594,7 +2594,7 @@ Var i,iPrevSnapshotTarget : Integer;
   Psnapshot : PSafeboxSnapshot;
   PBlock : PBlockAccount;
   {$IFDEF Check_Safebox_Names_Consistency}
-  errors : AnsiString;
+  errors : String;
   {$ENDIF}
 begin
   StartThreadSafe;
@@ -2716,7 +2716,7 @@ begin
   FLock.Release;
 end;
 
-function TPCSafeBox.LoadSafeBoxFromStream(Stream : TStream; checkAll : Boolean; checkSafeboxHash : TRawBytes; progressNotify : TProgressNotify; previousCheckedSafebox : TPCSafebox; var LastReadBlock : TBlockAccount; var errors : AnsiString) : Boolean;
+function TPCSafeBox.LoadSafeBoxFromStream(Stream : TStream; checkAll : Boolean; checkSafeboxHash : TRawBytes; progressNotify : TProgressNotify; previousCheckedSafebox : TPCSafebox; var LastReadBlock : TBlockAccount; var errors : String) : Boolean;
 Var
   iblock,iacc : Cardinal;
   raw : TRawBytes;
@@ -2730,7 +2730,7 @@ Var
   tc : TTickCount;
   previous_Block : TBlockAccount;
   do_check_blockchain_info : Boolean;
-  aux_errors : AnsiString;
+  aux_errors : String;
 begin
   If Assigned(FPreviousSafeBox) then Raise Exception.Create('Cannot loadSafeBoxFromStream on a Safebox in a Separate chain');
   if (previousCheckedSafebox = Self) then previousCheckedSafebox := Nil; // Protection
@@ -2925,7 +2925,7 @@ begin
   end;
 end;
 
-function TPCSafeBox.LoadSafeBoxFromStream(Stream: TStream; checkAll: Boolean; var LastReadBlock: TBlockAccount; var errors: AnsiString): Boolean;
+function TPCSafeBox.LoadSafeBoxFromStream(Stream: TStream; checkAll: Boolean; var LastReadBlock: TBlockAccount; var errors: String): Boolean;
 var pn : TProgressNotify;
 begin
   pn := Nil;
@@ -3076,7 +3076,7 @@ begin
   end;
 end;
 
-class function TPCSafeBox.CopySafeBoxStream(Source, Dest: TStream; FromBlock,ToBlock: Cardinal; var errors : AnsiString) : Boolean;
+class function TPCSafeBox.CopySafeBoxStream(Source, Dest: TStream; FromBlock,ToBlock: Cardinal; var errors : String) : Boolean;
 Var
   iblock : Cardinal;
   raw : TRawBytes;
@@ -3147,7 +3147,7 @@ begin
   end;
 end;
 
-class function TPCSafeBox.ConcatSafeBoxStream(Source1, Source2, Dest: TStream; var errors: AnsiString): Boolean;
+class function TPCSafeBox.ConcatSafeBoxStream(Source1, Source2, Dest: TStream; var errors: String): Boolean;
   function MinCardinal(v1,v2 : Cardinal) : Cardinal;
   begin
     if v1<v2 then Result:=v1
@@ -3273,7 +3273,7 @@ begin
   end;
 end;
 
-class function TPCSafeBox.ValidAccountName(const new_name: TRawBytes; var errors : AnsiString): Boolean;
+class function TPCSafeBox.ValidAccountName(const new_name: TRawBytes; var errors : String): Boolean;
   { Note:
     This function is case senstive, and only lower case chars are valid.
     Execute a LowerCase() prior to call this function!
@@ -3311,7 +3311,7 @@ begin
   Result := True;
 end;
 
-function TPCSafeBox.IsValidNewOperationsBlock(const newOperationBlock: TOperationBlock; checkSafeBoxHash : Boolean; var errors: AnsiString): Boolean;
+function TPCSafeBox.IsValidNewOperationsBlock(const newOperationBlock: TOperationBlock; checkSafeBoxHash : Boolean; var errors: String): Boolean;
   { This function will check a OperationBlock info as a valid candidate to be included in the safebox
 
     TOperationBlock contains the info of the new block EXCEPT the operations, including only operations_hash value (SHA256 of the Operations)
@@ -3408,7 +3408,7 @@ begin
   Result := IsValidOperationBlock(newOperationBlock,errors);
 end;
 
-class function TPCSafeBox.IsValidOperationBlock(const newOperationBlock: TOperationBlock; var errors: AnsiString): Boolean;
+class function TPCSafeBox.IsValidOperationBlock(const newOperationBlock: TOperationBlock; var errors: String): Boolean;
   { This class function will check a OperationBlock basic info as a valid info
 
     Creted at Build 2.1.7 as a division of IsValidNewOperationsBlock for easily basic check TOperationBlock
@@ -3783,7 +3783,7 @@ end;
 
 function TPCSafeBoxTransaction.BuyAccount(previous : TAccountPreviousBlockInfo; buyer, account_to_buy,
   seller: Cardinal; n_operation: Cardinal; amount, account_price, fee: UInt64;
-  const new_account_key: TAccountKey; var errors: AnsiString): Boolean;
+  const new_account_key: TAccountKey; var errors: String): Boolean;
 Var PaccBuyer, PaccAccountToBuy, PaccSeller : PAccount;
 begin
   Result := false;
@@ -3899,7 +3899,7 @@ begin
 end;
 
 function TPCSafeBoxTransaction.Commit(const operationBlock: TOperationBlock;
-  var errors: AnsiString): Boolean;
+  var errors: String): Boolean;
 Var i : Integer;
   Pa : PAccount;
 begin
@@ -4080,7 +4080,7 @@ begin
 end;
 
 function TPCSafeBoxTransaction.TransferAmount(previous : TAccountPreviousBlockInfo; sender,signer,target: Cardinal;
-  n_operation: Cardinal; amount, fee: UInt64; var errors: AnsiString): Boolean;
+  n_operation: Cardinal; amount, fee: UInt64; var errors: String): Boolean;
 Var
   PaccSender, PaccTarget,PaccSigner : PAccount;
 begin
@@ -4185,7 +4185,7 @@ end;
 function TPCSafeBoxTransaction.TransferAmounts(previous : TAccountPreviousBlockInfo; const senders,
   n_operations: array of Cardinal; const sender_amounts: array of UInt64;
   const receivers: array of Cardinal; const receivers_amounts: array of UInt64;
-  var errors: AnsiString): Boolean;
+  var errors: String): Boolean;
 Var i,j : Integer;
   PaccSender, PaccTarget : PAccount;
   nTotalAmountSent, nTotalAmountReceived, nTotalFee : Int64;
@@ -4303,7 +4303,7 @@ end;
 
 function TPCSafeBoxTransaction.UpdateAccountInfo(previous : TAccountPreviousBlockInfo;
   signer_account, signer_n_operation, target_account: Cardinal;
-  accountInfo: TAccountInfo; newName: TRawBytes; newType: Word; fee: UInt64; var errors: AnsiString): Boolean;
+  accountInfo: TAccountInfo; newName: TRawBytes; newType: Word; fee: UInt64; var errors: String): Boolean;
 Var i : Integer;
   P_signer, P_target : PAccount;
 begin

+ 25 - 25
src/core/UBlockChain.pas

@@ -219,7 +219,7 @@ Type
     constructor Create; virtual;
     destructor Destroy; override;
     function GetBufferForOpHash(UseProtocolV2 : Boolean): TRawBytes; virtual;
-    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors: AnsiString): Boolean; virtual; abstract;
+    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors: String): Boolean; virtual; abstract;
     procedure AffectedAccounts(list : TList); virtual; abstract;
     class function OpType: Byte; virtual; abstract;
     Class Function OperationToOperationResume(Block : Cardinal; Operation : TPCOperation; getInfoForAllAccounts : Boolean; Affected_account_number : Cardinal; var OperationResume : TOperationResume) : Boolean; virtual;
@@ -329,7 +329,7 @@ Type
     Property TotalAmount : Int64 read FTotalAmount;
     Property TotalFee : Int64 read FTotalFee;
     function SaveOperationsHashTreeToStream(Stream: TStream; SaveToStorage : Boolean): Boolean;
-    function LoadOperationsHashTreeFromStream(Stream: TStream; LoadingFromStorage : Boolean; LoadProtocolVersion : Word; PreviousUpdatedBlocks : TAccountPreviousBlockInfo; var errors : AnsiString): Boolean;
+    function LoadOperationsHashTreeFromStream(Stream: TStream; LoadingFromStorage : Boolean; LoadProtocolVersion : Word; PreviousUpdatedBlocks : TAccountPreviousBlockInfo; var errors : String): Boolean;
     function IndexOfOperation(op : TPCOperation) : Integer;
     function CountOperationsBySameSignerWithoutFee(account_number : Cardinal) : Integer;
     Procedure Delete(index : Integer);
@@ -372,14 +372,14 @@ Type
     procedure OnOperationsHashTreeChanged(Sender : TObject);
   protected
     function SaveBlockToStreamExt(save_only_OperationBlock : Boolean; Stream: TStream; SaveToStorage : Boolean): Boolean;
-    function LoadBlockFromStreamExt(Stream: TStream; LoadingFromStorage : Boolean; var errors: AnsiString): Boolean;
+    function LoadBlockFromStreamExt(Stream: TStream; LoadingFromStorage : Boolean; var errors: String): Boolean;
   public
     Constructor Create(ABank: TPCBank);
     Destructor Destroy; Override;
     Procedure CopyFromExceptAddressKey(Operations : TPCOperationsComp);
     Procedure CopyFrom(Operations : TPCOperationsComp);
-    Function AddOperation(Execute : Boolean; op: TPCOperation; var errors: AnsiString): Boolean;
-    Function AddOperations(operations: TOperationsHashTree; var errors: AnsiString): Integer;
+    Function AddOperation(Execute : Boolean; op: TPCOperation; var errors: String): Boolean;
+    Function AddOperations(operations: TOperationsHashTree; var errors: String): Integer;
     Property Operation[index: Integer]: TPCOperation read GetOperation;
     Property bank: TPCBank read FBank write SetBank;
     Procedure Clear(DeleteOperations : Boolean);
@@ -395,11 +395,11 @@ Type
     procedure UpdateTimestamp;
     function SaveBlockToStorage(Stream: TStream): Boolean;
     function SaveBlockToStream(save_only_OperationBlock : Boolean; Stream: TStream): Boolean;
-    function LoadBlockFromStorage(Stream: TStream; var errors: AnsiString): Boolean;
-    function LoadBlockFromStream(Stream: TStream; var errors: AnsiString): Boolean;
+    function LoadBlockFromStorage(Stream: TStream; var errors: String): Boolean;
+    function LoadBlockFromStream(Stream: TStream; var errors: String): Boolean;
     //
     Function GetMinerRewardPseudoOperation : TOperationResume;
-    Function ValidateOperationBlock(var errors : AnsiString) : Boolean;
+    Function ValidateOperationBlock(var errors : String) : Boolean;
     Property IsOnlyOperationBlock : Boolean read FIsOnlyOperationBlock;
     Procedure Lock;
     Procedure Unlock;
@@ -517,11 +517,11 @@ Type
     procedure AssignTo(Dest: TPersistent); Override;
     function GetActualTargetSecondsAverage(BackBlocks : Cardinal): Real;
     function GetTargetSecondsAverage(FromBlock,BackBlocks : Cardinal): Real;
-    function LoadBankFromStream(Stream : TStream; useSecureLoad : Boolean; checkSafeboxHash : TRawBytes; previousCheckedSafebox : TPCSafebox; progressNotify : TProgressNotify; var errors : AnsiString) : Boolean;
+    function LoadBankFromStream(Stream : TStream; useSecureLoad : Boolean; checkSafeboxHash : TRawBytes; previousCheckedSafebox : TPCSafebox; progressNotify : TProgressNotify; var errors : String) : Boolean;
     Procedure Clear;
     Function LoadOperations(Operations : TPCOperationsComp; Block : Cardinal) : Boolean;
     Property SafeBox : TPCSafeBox read FSafeBox;
-    Function AddNewBlockChainBlock(Operations: TPCOperationsComp; MaxAllowedTimestamp : Cardinal; var newBlock: TBlockAccount; var errors: AnsiString): Boolean;
+    Function AddNewBlockChainBlock(Operations: TPCOperationsComp; MaxAllowedTimestamp : Cardinal; var newBlock: TBlockAccount; var errors: String): Boolean;
     Procedure DiskRestoreFromOperations(max_block : Int64; restoreProgressNotify : TProgressNotify = Nil);
     Procedure UpdateValuesFromSafebox;
     Procedure NewLog(Operations: TPCOperationsComp; Logtype: TLogType; Logtxt: AnsiString);
@@ -529,7 +529,7 @@ Type
     Property LastOperationBlock : TOperationBlock read FLastOperationBlock; // TODO: Use
     Property Storage : TStorage read GetStorage;
     Property StorageClass : TStorageClass read FStorageClass write SetStorageClass;
-    Function IsReady(Var CurrentProcess : AnsiString) : Boolean;
+    Function IsReady(Var CurrentProcess : String) : Boolean;
     Property LastBlockFound : TPCOperationsComp read FLastBlockCache;
     Property UpgradingToV2 : Boolean read FUpgradingToV2;
   End;
@@ -749,7 +749,7 @@ begin
   Result := FSafeBox.AccountsCount;
 end;
 
-function TPCBank.AddNewBlockChainBlock(Operations: TPCOperationsComp; MaxAllowedTimestamp : Cardinal; var newBlock: TBlockAccount; var errors: AnsiString): Boolean;
+function TPCBank.AddNewBlockChainBlock(Operations: TPCOperationsComp; MaxAllowedTimestamp : Cardinal; var newBlock: TBlockAccount; var errors: String): Boolean;
 Var
   buffer, pow: AnsiString;
   i : Integer;
@@ -889,7 +889,7 @@ end;
 
 procedure TPCBank.DiskRestoreFromOperations(max_block : Int64; restoreProgressNotify : TProgressNotify = Nil);
 Var
-  errors: AnsiString;
+  errors: String;
   newBlock: TBlockAccount;
   Operations: TPCOperationsComp;
   n : Int64;
@@ -1039,7 +1039,7 @@ begin
   Result := FStorage;
 end;
 
-function TPCBank.IsReady(Var CurrentProcess: AnsiString): Boolean;
+function TPCBank.IsReady(Var CurrentProcess: String): Boolean;
 begin
   Result := false;
   CurrentProcess := '';
@@ -1051,7 +1051,7 @@ begin
   end else Result := true;
 end;
 
-function TPCBank.LoadBankFromStream(Stream: TStream; useSecureLoad : Boolean; checkSafeboxHash : TRawBytes; previousCheckedSafebox : TPCSafebox; progressNotify : TProgressNotify; var errors: AnsiString): Boolean;
+function TPCBank.LoadBankFromStream(Stream: TStream; useSecureLoad : Boolean; checkSafeboxHash : TRawBytes; previousCheckedSafebox : TPCSafebox; progressNotify : TProgressNotify; var errors: String): Boolean;
 Var LastReadBlock : TBlockAccount;
   i : Integer;
   auxSB : TPCSafeBox;
@@ -1126,9 +1126,9 @@ end;
 var
   _OperationsClass: Array of TPCOperationClass;
 
-function TPCOperationsComp.AddOperation(Execute: Boolean; op: TPCOperation; var errors: AnsiString): Boolean;
+function TPCOperationsComp.AddOperation(Execute: Boolean; op: TPCOperation; var errors: String): Boolean;
 var i : Integer;
-  auxs : AnsiString;
+  auxs : String;
 Begin
   Lock;
   Try
@@ -1179,9 +1179,9 @@ Begin
   end;
 End;
 
-function TPCOperationsComp.AddOperations(operations: TOperationsHashTree; var errors: AnsiString): Integer;
+function TPCOperationsComp.AddOperations(operations: TOperationsHashTree; var errors: String): Integer;
 Var i : Integer;
-  e : AnsiString;
+  e : String;
 begin
   Lock;
   try
@@ -1463,17 +1463,17 @@ begin
   Result := -1;
 end;
 
-function TPCOperationsComp.LoadBlockFromStorage(Stream: TStream; var errors: AnsiString): Boolean;
+function TPCOperationsComp.LoadBlockFromStorage(Stream: TStream; var errors: String): Boolean;
 begin
   Result := LoadBlockFromStreamExt(Stream,true,errors);
 end;
 
-function TPCOperationsComp.LoadBlockFromStream(Stream: TStream; var errors: AnsiString): Boolean;
+function TPCOperationsComp.LoadBlockFromStream(Stream: TStream; var errors: String): Boolean;
 begin
   Result := LoadBlockFromStreamExt(Stream,false,errors);
 end;
 
-function TPCOperationsComp.LoadBlockFromStreamExt(Stream: TStream; LoadingFromStorage: Boolean; var errors: AnsiString): Boolean;
+function TPCOperationsComp.LoadBlockFromStreamExt(Stream: TStream; LoadingFromStorage: Boolean; var errors: String): Boolean;
 Var i : Integer;
   lastfee : UInt64;
   soob : Byte;
@@ -1606,7 +1606,7 @@ procedure TPCOperationsComp.SanitizeOperations;
     }
 Var i,n,lastn, iUndo : Integer;
   op : TPCOperation;
-  errors, auxs : AnsiString;
+  errors, auxs : String;
   aux,aux2 : TOperationsHashTree;
   resetNewTarget : Boolean;
 begin
@@ -1881,7 +1881,7 @@ begin
    Result.OperationTxt := 'Miner reward';
 end;
 
-function TPCOperationsComp.ValidateOperationBlock(var errors : AnsiString): Boolean;
+function TPCOperationsComp.ValidateOperationBlock(var errors : String): Boolean;
 Var i : Integer;
 begin
   errors := '';
@@ -2484,7 +2484,7 @@ begin
   Index := L;
 end;
 
-function TOperationsHashTree.LoadOperationsHashTreeFromStream(Stream: TStream; LoadingFromStorage : Boolean; LoadProtocolVersion : Word; PreviousUpdatedBlocks : TAccountPreviousBlockInfo; var errors: AnsiString): Boolean;
+function TOperationsHashTree.LoadOperationsHashTreeFromStream(Stream: TStream; LoadingFromStorage : Boolean; LoadProtocolVersion : Word; PreviousUpdatedBlocks : TAccountPreviousBlockInfo; var errors: String): Boolean;
 Var c, i: Cardinal;
   OpType: Cardinal;
   bcop: TPCOperation;

+ 4 - 4
src/core/UChunk.pas

@@ -45,15 +45,15 @@ type
   TPCChunk = Class
   private
   public
-    class function SaveSafeBoxChunkFromSafeBox(SafeBoxStream, DestStream : TStream; fromBlock, toBlock : Cardinal; var errors : AnsiString) : Boolean;
-    class function LoadSafeBoxFromChunk(Chunk, DestStream : TStream; var safeBoxHeader : TPCSafeBoxHeader; var errors : AnsiString) : Boolean;
+    class function SaveSafeBoxChunkFromSafeBox(SafeBoxStream, DestStream : TStream; fromBlock, toBlock : Cardinal; var errors : String) : Boolean;
+    class function LoadSafeBoxFromChunk(Chunk, DestStream : TStream; var safeBoxHeader : TPCSafeBoxHeader; var errors : String) : Boolean;
   end;
 
 implementation
 
 { TPCChunk }
 
-class function TPCChunk.SaveSafeBoxChunkFromSafeBox(SafeBoxStream, DestStream : TStream; fromBlock, toBlock: Cardinal; var errors : AnsiString) : Boolean;
+class function TPCChunk.SaveSafeBoxChunkFromSafeBox(SafeBoxStream, DestStream : TStream; fromBlock, toBlock: Cardinal; var errors : String) : Boolean;
 Var
   c: Cardinal;
   cs : Tcompressionstream;
@@ -125,7 +125,7 @@ begin
   end;
 end;
 
-class function TPCChunk.LoadSafeBoxFromChunk(Chunk, DestStream: TStream; var safeBoxHeader : TPCSafeBoxHeader; var errors: AnsiString): Boolean;
+class function TPCChunk.LoadSafeBoxFromChunk(Chunk, DestStream: TStream; var safeBoxHeader : TPCSafeBoxHeader; var errors: String): Boolean;
 var raw : TRawBytes;
   w : Word;
   cUncompressed, cCompressed : Cardinal;

+ 3 - 3
src/core/UFileStorage.pas

@@ -314,7 +314,7 @@ end;
 
 procedure TFileStorage.DoLoadPendingBufferOperations(OperationsHashTree : TOperationsHashTree);
 Var fs : TFileStream;
-  errors : AnsiString;
+  errors : String;
   n : Integer;
 begin
   LockBlockChainStream;
@@ -452,7 +452,7 @@ var
     filename,auxfn : AnsiString;
     fs : TFileStream;
     ms : TMemoryStream;
-    errors : AnsiString;
+    errors : String;
     blockscount : Cardinal;
     sbHeader, goodSbHeader : TPCSafeBoxHeader;
 begin
@@ -903,7 +903,7 @@ end;
 
 function TFileStorage.StreamBlockRead(Stream : TStream; iBlockHeaders : Integer; BlockHeaderFirstBlock, Block : Cardinal; Operations : TPCOperationsComp) : Boolean;
 Var p : Int64;
-  errors : AnsiString;
+  errors : String;
   streamFirstBlock,
   _BlockSizeC,
   _intBlockIndex : Cardinal;

+ 18 - 18
src/core/UNetProtocol.pas

@@ -326,13 +326,13 @@ Type
     Function FindConnectionByClientRandomValue(Sender : TNetConnection) : TNetConnection;
     Procedure DiscoverServers;
     Procedure DisconnectClients;
-    procedure OnReadingNewSafeboxProgressNotify(sender : TObject; const mesage : AnsiString; curPos, totalCount : Int64);
+    procedure OnReadingNewSafeboxProgressNotify(sender : TObject; const mesage : String; curPos, totalCount : Int64);
     Procedure GetNewBlockChainFromClient(Connection : TNetConnection; const why : String);
     Property NodeServersAddresses : TOrderedServerAddressListTS read FNodeServersAddresses;
     Property NetConnections : TPCThreadList read FNetConnections;
     Property NetStatistics : TNetStatistics read FNetStatistics;
     Property IsDiscoveringServers : Boolean read FIsDiscoveringServers;
-    function IsGettingNewBlockChainFromClient(var status : AnsiString) : Boolean;
+    function IsGettingNewBlockChainFromClient(var status : String) : Boolean;
     Property MaxRemoteOperationBlock : TOperationBlock read FMaxRemoteOperationBlock;
     Property NodePrivateKey : TECPrivateKey read FNodePrivateKey;
     property OnConnectivityChanged : TNotifyManyEvent read FOnConnectivityChanged;
@@ -1478,7 +1478,7 @@ Const CT_LogSender = 'GetNewBlockChainFromClient';
     headerdata : TNetHeaderData;
     op : TPCOperationsComp;
     request_id,opcount,i, last_n_block : Cardinal;
-    errors : AnsiString;
+    errors : String;
     noperation : Integer;
   begin
     Result := false;
@@ -1560,7 +1560,7 @@ Const CT_LogSender = 'GetNewBlockChainFromClient';
     auxBlock, sbBlock : TOperationBlock;
     distinctmax,distinctmin : Cardinal;
     BlocksList : TList;
-    errors : AnsiString;
+    errors : String;
   Begin
     Result := false;
     OperationBlock := CT_OperationBlock_NUL;
@@ -1618,7 +1618,7 @@ Const CT_LogSender = 'GetNewBlockChainFromClient';
     oldBlockchainOperations : TOperationsHashTree;
     opsResume : TOperationsResumeList;
     newBlock : TBlockAccount;
-    errors : AnsiString;
+    errors : String;
     start,start_c : Cardinal;
     finished : Boolean;
     Bank : TPCBank;
@@ -1790,7 +1790,7 @@ Const CT_LogSender = 'GetNewBlockChainFromClient';
   End;
 
   Function DownloadSafeBoxChunk(safebox_blockscount : Cardinal; Const sbh : TRawBytes; from_block, to_block : Cardinal; receivedDataUnzipped : TStream;
-    var safeBoxHeader : TPCSafeBoxHeader; var errors : AnsiString) : Boolean;
+    var safeBoxHeader : TPCSafeBoxHeader; var errors : String) : Boolean;
   Var sendData,receiveData : TStream;
     headerdata : TNetHeaderData;
     request_id : Cardinal;
@@ -1846,7 +1846,7 @@ Const CT_LogSender = 'GetNewBlockChainFromClient';
     chunks : Array of TSafeBoxChunkData;
     receiveChunk, chunk1 : TStream;
     safeBoxHeader : TPCSafeBoxHeader;
-    errors : AnsiString;
+    errors : String;
     i : Integer;
   Begin
     Result := False;
@@ -1913,7 +1913,7 @@ Const CT_LogSender = 'GetNewBlockChainFromClient';
   Function DownloadSafeBox(IsMyBlockchainValid : Boolean) : Boolean;
   var receiveData : TStream;
     op : TOperationBlock;
-    errors : AnsiString;
+    errors : String;
     request_id : Cardinal;
   Begin
     Result := False;
@@ -1951,7 +1951,7 @@ Const CT_LogSender = 'GetNewBlockChainFromClient';
     safebox_last_operation_block : TOperationBlock;
     newBlock : TBlockAccount;
     opComp : TPCOperationsComp;
-    errors : AnsiString;
+    errors : String;
     blocksList : TList;
     i : Integer;
     rid : Cardinal;
@@ -2039,7 +2039,7 @@ Const CT_LogSender = 'GetNewBlockChainFromClient';
 
 var rid : Cardinal;
   my_op, client_op : TOperationBlock;
-  errors : AnsiString;
+  errors : String;
 begin
   // Protection against discovering servers...
   if FIsDiscoveringServers then begin
@@ -2149,7 +2149,7 @@ begin
   end;
 end;
 
-function TNetData.IsGettingNewBlockChainFromClient(var status: AnsiString): Boolean;
+function TNetData.IsGettingNewBlockChainFromClient(var status: String): Boolean;
 begin
   if FLockGettingNewBlockChainFromClient.TryEnter then begin
     try
@@ -2262,7 +2262,7 @@ begin
   FNetDataNotifyEventsThread.FNotifyOnStatisticsChanged := true;
 end;
 
-procedure TNetData.OnReadingNewSafeboxProgressNotify(sender: TObject; const mesage: AnsiString; curPos, totalCount: Int64);
+procedure TNetData.OnReadingNewSafeboxProgressNotify(sender: TObject; const mesage: String; curPos, totalCount: Int64);
 Var pct : String;
 begin
   if (totalCount>0) then pct := FormatFloat('0.00',curPos*100/totalCount)+'%' else pct := '';
@@ -2667,7 +2667,7 @@ var c,i : Integer;
     opclass : TPCOperationClass;
     op : TPCOperation;
     operations : TOperationsHashTree;
-    errors : AnsiString;
+    errors : String;
   DoDisconnect : Boolean;
 begin
   DoDisconnect := true;
@@ -2914,7 +2914,7 @@ procedure TNetConnection.DoProcess_GetBlocks_Response(HeaderData: TNetHeaderData
   var op : TPCOperationsComp;
     opcount,i : Cardinal;
     newBlockAccount : TBlockAccount;
-  errors : AnsiString;
+  errors : String;
   DoDisconnect : Boolean;
 begin
   DoDisconnect := true;
@@ -3059,7 +3059,7 @@ Var _blockcount : Cardinal;
   responseStream : TStream;
   antPos : Int64;
   sbHeader : TPCSafeBoxHeader;
-  errors : AnsiString;
+  errors : String;
 begin
   {
   This call is used to obtain a chunk of the safebox
@@ -3196,7 +3196,7 @@ Var dataSend, dataReceived : TMemoryStream;
   b : Byte;
   headerData : TNetHeaderData;
   opht : TOperationsHashTree;
-  errors : AnsiString;
+  errors : String;
   i : Integer;
 begin
   {$IFDEF PRODUCTION}
@@ -3458,7 +3458,7 @@ end;
 
 procedure TNetConnection.DoProcess_Hello(HeaderData: TNetHeaderData; DataBuffer: TStream);
 var op, myLastOp : TPCOperationsComp;
-    errors : AnsiString;
+    errors : String;
     connection_has_a_server : Word;
     i,c : Integer;
     nsa : TNodeServerAddress;
@@ -3645,7 +3645,7 @@ Type
 
 var operationsComp : TPCOperationsComp;
   DoDisconnect : Boolean;
-  errors : AnsiString;
+  errors : String;
 
   function ProcessNewFastBlockPropagation : Boolean;
   var nfpboarr : TNewFastPropagationBlockOperationsArray;

+ 12 - 12
src/core/UNode.pas

@@ -80,10 +80,10 @@ Type
     //
     Property Operations : TPCOperationsComp read FOperations;
     //
-    Function AddNewBlockChain(SenderConnection : TNetConnection; NewBlockOperations: TPCOperationsComp; var newBlockAccount: TBlockAccount; var errors: AnsiString): Boolean;
-    Function AddOperations(SenderConnection : TNetConnection; OperationsHashTree : TOperationsHashTree; OperationsResult : TOperationsResumeList; var errors: AnsiString): Integer;
-    Function AddOperation(SenderConnection : TNetConnection; Operation : TPCOperation; var errors: AnsiString): Boolean;
-    Function SendNodeMessage(Target : TNetConnection; TheMessage : AnsiString; var errors : AnsiString) : Boolean;
+    Function AddNewBlockChain(SenderConnection : TNetConnection; NewBlockOperations: TPCOperationsComp; var newBlockAccount: TBlockAccount; var errors: String): Boolean;
+    Function AddOperations(SenderConnection : TNetConnection; OperationsHashTree : TOperationsHashTree; OperationsResult : TOperationsResumeList; var errors: String): Integer;
+    Function AddOperation(SenderConnection : TNetConnection; Operation : TPCOperation; var errors: String): Boolean;
+    Function SendNodeMessage(Target : TNetConnection; TheMessage : AnsiString; var errors : String) : Boolean;
     //
     Procedure NotifyBlocksChanged;
     //
@@ -96,7 +96,7 @@ Type
     Procedure InitSafeboxAndOperations(max_block_to_read : Cardinal = $FFFFFFFF; restoreProgressNotify : TProgressNotify = Nil);
     Procedure AutoDiscoverNodes(Const ips : AnsiString);
     Function IsBlockChainValid(var WhyNot : AnsiString) : Boolean;
-    Function IsReady(Var CurrentProcess : AnsiString) : Boolean;
+    Function IsReady(Var CurrentProcess : String) : Boolean;
     Property PeerCache : AnsiString read FPeerCache write FPeerCache;
     Procedure DisableNewBlocks;
     Procedure EnableNewBlocks;
@@ -198,7 +198,7 @@ var _Node : TNode;
 { TNode }
 
 function TNode.AddNewBlockChain(SenderConnection: TNetConnection; NewBlockOperations: TPCOperationsComp;
-  var newBlockAccount: TBlockAccount; var errors: AnsiString): Boolean;
+  var newBlockAccount: TBlockAccount; var errors: String): Boolean;
 Var i,j,maxResend : Integer;
   nc : TNetConnection;
   s,sClientRemoteAddr : String;
@@ -340,7 +340,7 @@ begin
   end;
 end;
 
-function TNode.AddOperation(SenderConnection : TNetConnection; Operation: TPCOperation; var errors: AnsiString): Boolean;
+function TNode.AddOperation(SenderConnection : TNetConnection; Operation: TPCOperation; var errors: String): Boolean;
 var ops : TOperationsHashTree;
 begin
   ops := TOperationsHashTree.Create;
@@ -352,7 +352,7 @@ begin
   End;
 end;
 
-function TNode.AddOperations(SenderConnection : TNetConnection; OperationsHashTree : TOperationsHashTree; OperationsResult : TOperationsResumeList; var errors: AnsiString): Integer;
+function TNode.AddOperations(SenderConnection : TNetConnection; OperationsHashTree : TOperationsHashTree; OperationsResult : TOperationsResumeList; var errors: String): Integer;
   {$IFDEF BufferOfFutureOperations}
   Procedure Process_BufferOfFutureOperations(valids_operations : TOperationsHashTree);
   Var i,j, nAdded, nDeleted : Integer;
@@ -390,7 +390,7 @@ Var
   i,j,nSpam,nError,nRepeated : Integer;
   valids_operations : TOperationsHashTree;
   nc : TNetConnection;
-  e : AnsiString;
+  e : String;
   s : String;
   OPR : TOperationResume;
   ActOp : TPCOperation;
@@ -749,7 +749,7 @@ begin
   Result := true;
 end;
 
-function TNode.IsReady(Var CurrentProcess: AnsiString): Boolean;
+function TNode.IsReady(Var CurrentProcess: String): Boolean;
 begin
   Result := false;
   CurrentProcess := '';
@@ -1029,7 +1029,7 @@ end;
 procedure TNode.InitSafeboxAndOperations(max_block_to_read : Cardinal = $FFFFFFFF; restoreProgressNotify : TProgressNotify = Nil);
 var opht : TOperationsHashTree;
   oprl : TOperationsResumeList;
-  errors : AnsiString;
+  errors : String;
   n : Integer;
 begin
   Bank.DiskRestoreFromOperations(max_block_to_read,restoreProgressNotify);
@@ -1151,7 +1151,7 @@ begin
   NotifyBlocksChanged;
 end;
 
-function TNode.SendNodeMessage(Target: TNetConnection; TheMessage: AnsiString; var errors: AnsiString): Boolean;
+function TNode.SendNodeMessage(Target: TNetConnection; TheMessage: AnsiString; var errors: String): Boolean;
 Var i,j : Integer;
   nc : TNetConnection;
   s : String;

+ 12 - 12
src/core/UOpTransaction.pas

@@ -79,7 +79,7 @@ Type
     procedure FillOperationResume(Block : Cardinal; getInfoForAllAccounts : Boolean; Affected_account_number : Cardinal; var OperationResume : TOperationResume); override;
   public
     function GetBufferForOpHash(UseProtocolV2 : Boolean): TRawBytes; override;
-    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : AnsiString) : Boolean; override;
+    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : String) : Boolean; override;
     procedure AffectedAccounts(list : TList); override;
     //
     class function OpType : Byte; override;
@@ -112,7 +112,7 @@ Type
     class function OpType : Byte; override;
 
     function GetBufferForOpHash(UseProtocolV2 : Boolean): TRawBytes; override;
-    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : AnsiString) : Boolean; override;
+    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : String) : Boolean; override;
     function OperationAmount : Int64; override;
     function OperationFee : Int64; override;
     function OperationPayload : TRawBytes; override;
@@ -149,7 +149,7 @@ Type
     class function OpType : Byte; override;
 
     function GetBufferForOpHash(UseProtocolV2 : Boolean): TRawBytes; override;
-    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : AnsiString) : Boolean; override;
+    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : String) : Boolean; override;
     function OperationAmount : Int64; override;
     function OperationFee : Int64; override;
     function OperationPayload : TRawBytes; override;
@@ -217,7 +217,7 @@ Type
     Function IsDelist : Boolean; virtual; abstract;
 
     function GetBufferForOpHash(UseProtocolV2 : Boolean): TRawBytes; override;
-    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : AnsiString) : Boolean; override;
+    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : String) : Boolean; override;
     function OperationAmount : Int64; override;
     function OperationFee : Int64; override;
     function OperationPayload : TRawBytes; override;
@@ -270,7 +270,7 @@ Type
     class function OpType : Byte; override;
 
     function GetBufferForOpHash(UseProtocolV2 : Boolean): TRawBytes; override;
-    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : AnsiString) : Boolean; override;
+    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : String) : Boolean; override;
     function OperationAmount : Int64; override;
     function OperationFee : Int64; override;
     function OperationPayload : TRawBytes; override;
@@ -318,7 +318,7 @@ Type
     class function OpType : Byte; override;
 
     function GetBufferForOpHash(UseProtocolV2 : Boolean): TRawBytes; override;
-    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : AnsiString) : Boolean; override;
+    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : String) : Boolean; override;
     function OperationAmount : Int64; override;
     function OperationFee : Int64; override;
     function OperationPayload : TRawBytes; override;
@@ -452,7 +452,7 @@ begin
   Result:=inherited GetBufferForOpHash(True);
 end;
 
-function TOpChangeAccountInfo.DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : AnsiString) : Boolean;
+function TOpChangeAccountInfo.DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : String) : Boolean;
 Var account_signer, account_target : TAccount;
 begin
   Result := false;
@@ -734,7 +734,7 @@ begin
   end;
 end;
 
-function TOpTransaction.DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : AnsiString) : Boolean;
+function TOpTransaction.DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : String) : Boolean;
 Var s_new, t_new : Int64;
   totalamount : Cardinal;
   sender,target,seller : TAccount;
@@ -1192,7 +1192,7 @@ begin
   end;
 end;
 
-function TOpChangeKey.DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : AnsiString) : Boolean;
+function TOpChangeKey.DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : String) : Boolean;
 Var account_signer, account_target : TAccount;
 begin
   Result := false;
@@ -1503,7 +1503,7 @@ begin
   FHasValidSignature := true; // Recover founds doesn't need a signature
 end;
 
-function TOpRecoverFounds.DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : AnsiString) : Boolean;
+function TOpRecoverFounds.DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : String) : Boolean;
 Var acc : TAccount;
 begin
   Result := false;
@@ -1653,7 +1653,7 @@ begin
   else Result := 0;
 end;
 
-function TOpListAccount.DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : AnsiString) : Boolean;
+function TOpListAccount.DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : String) : Boolean;
 Var account_signer, account_target : TAccount;
 begin
   Result := false;
@@ -2216,7 +2216,7 @@ end;
 
 function TOpData.DoOperation(
   AccountPreviousUpdatedBlock: TAccountPreviousBlockInfo;
-  AccountTransaction: TPCSafeBoxTransaction; var errors: AnsiString): Boolean;
+  AccountTransaction: TPCSafeBoxTransaction; var errors: String): Boolean;
 Var account_signer, account_sender, account_target : TAccount;
 begin
   Result := false;

+ 2 - 2
src/core/UPoolMining.pas

@@ -713,7 +713,7 @@ var tree : TOperationsHashTree;
 Var i,j : Integer;
   MasterOp : TPCOperationsComp;
   op : TPCOperation;
-  Var errors : AnsiString;
+  errors : String;
 begin
   MasterOp := FNodeNotifyEvents.Node.Operations;
   MasterOp.Lock;
@@ -774,7 +774,7 @@ end;
 function TPoolMiningServer.MinerSubmit(Client: TJSONRPCTcpIpClient; params: TPCJSONObject; const id : Variant): Boolean;
 Var s : String;
   nbOperations : TPCOperationsComp;
-  errors, sJobInfo : AnsiString;
+  errors, sJobInfo : String;
   nba : TBlockAccount;
   json : TPCJSONObject;
   p1,p2,p3 : TRawBytes;

+ 29 - 29
src/core/URPC.pas

@@ -712,7 +712,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
     Result := Round(jsonCurr * 10000);
   End;
 
-  Function HexaStringToOperationsHashTree(Const HexaStringOperationsHashTree : AnsiString; out OperationsHashTree : TOperationsHashTree; var errors : AnsiString) : Boolean;
+  Function HexaStringToOperationsHashTree(Const HexaStringOperationsHashTree : AnsiString; out OperationsHashTree : TOperationsHashTree; var errors : String) : Boolean;
   var raw : TRawBytes;
     ms : TMemoryStream;
   Begin
@@ -739,7 +739,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
     End;
   End;
 
-  Function HexaStringToOperationsHashTreeAndGetMultioperation(Const HexaStringOperationsHashTree : AnsiString; canCreateNewOne : Boolean; out OperationsHashTree : TOperationsHashTree; out multiOperation : TOpMultiOperation; var errors : AnsiString) : Boolean;
+  Function HexaStringToOperationsHashTreeAndGetMultioperation(Const HexaStringOperationsHashTree : AnsiString; canCreateNewOne : Boolean; out OperationsHashTree : TOperationsHashTree; out multiOperation : TOpMultiOperation; var errors : String) : Boolean;
     { This function will return true only if HexaString contains only 1 operation and is a multioperation.
       Also, if "canCreateNewOne" is true and has no operations, then will create new one and return True
       }
@@ -973,7 +973,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
   // "payload_method" types: "none","dest"(default),"sender","aes"(must provide "pwd" param)
   Var opt : TOpTransaction;
     sacc,tacc : TAccount;
-    errors : AnsiString;
+    errors : String;
     opr : TOperationResume;
   begin
     FNode.OperationSequenceLock.Acquire;  // Use lock to prevent N_Operation race-condition on concurrent sends
@@ -1020,7 +1020,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
     amount, fee : UInt64; Const RawPayload : TRawBytes; Const Payload_method, EncodePwd : AnsiString) : Boolean;
   // "payload_method" types: "none","dest"(default),"sender","aes"(must provide "pwd" param)
   var OperationsHashTree : TOperationsHashTree;
-    errors : AnsiString;
+    errors : String;
     opt : TOpTransaction;
   begin
     Result := false;
@@ -1073,7 +1073,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
   // "payload_method" types: "none","dest"(default),"sender","aes"(must provide "pwd" param)
   Var opck : TOpChangeKey;
     acc_signer : TAccount;
-    errors : AnsiString;
+    errors : String;
     opr : TOperationResume;
   begin
     FNode.OperationSequenceLock.Acquire;  // Use lock to prevent N_Operation race-condition on concurrent invocations
@@ -1176,7 +1176,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
     end;
   End;
 
-  Function GetCardinalsValues(ordinals_coma_separated : String; cardinals : TOrderedCardinalList; var errors : AnsiString) : Boolean;
+  Function GetCardinalsValues(ordinals_coma_separated : String; cardinals : TOrderedCardinalList; var errors : String) : Boolean;
   Var i,istart : Integer;
     ctxt : String;
     an : Cardinal;
@@ -1226,7 +1226,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
   Var opck : TOpChangeKey;
     acc : TAccount;
     i, ian : Integer;
-    errors : AnsiString;
+    errors : String;
     opr : TOperationResume;
     accountsnumber : TOrderedCardinalList;
     operationsht : TOperationsHashTree;
@@ -1294,7 +1294,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
     fee : UInt64; Const RawPayload : TRawBytes; Const Payload_method, EncodePwd : AnsiString) : Boolean;
   // "payload_method" types: "none","dest"(default),"sender","aes"(must provide "pwd" param)
   var OperationsHashTree : TOperationsHashTree;
-    errors : AnsiString;
+    errors : String;
     opck : TOpChangeKey;
   begin
     Result := false;
@@ -1320,7 +1320,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
 
   Function OperationsInfo(Const HexaStringOperationsHashTree : AnsiString; jsonArray : TPCJSONArray) : Boolean;
   var OperationsHashTree : TOperationsHashTree;
-    errors : AnsiString;
+    errors : String;
     OPR : TOperationResume;
     Obj : TPCJSONObject;
     Op : TPCOperation;
@@ -1350,7 +1350,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
 
   Function ExecuteOperations(Const HexaStringOperationsHashTree : AnsiString) : Boolean;
   var OperationsHashTree : TOperationsHashTree;
-    errors : AnsiString;
+    errors : String;
     i : Integer;
     OperationsResumeList : TOperationsResumeList;
   Begin
@@ -1448,15 +1448,15 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
   End;
 
   Function CapturePubKeyExt(const jsonObjParams : TPCJSONObject; const prefix : String; var pubkey : TAccountKey; var errortxt : String) : Boolean;
-  var ansistr : AnsiString;
+  var errors_aux : String;
     auxpubkey : TAccountKey;
   begin
     pubkey := CT_Account_NUL.accountInfo.accountKey;
     errortxt := '';
     Result := false;
     if (jsonObjparams.IndexOfName(prefix+'b58_pubkey')>=0) then begin
-      If Not TAccountComp.AccountPublicKeyImport(jsonObjparams.AsString(prefix+'b58_pubkey',''),pubkey,ansistr) then begin
-        errortxt:= 'Invalid value of param "'+prefix+'b58_pubkey": '+ansistr;
+      If Not TAccountComp.AccountPublicKeyImport(jsonObjparams.AsString(prefix+'b58_pubkey',''),pubkey,errors_aux) then begin
+        errortxt:= 'Invalid value of param "'+prefix+'b58_pubkey": '+errors_aux;
         exit;
       end;
       if (jsonObjparams.IndexOfName(prefix+'enc_pubkey')>=0) then begin
@@ -1473,8 +1473,8 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
       end;
       pubkey := TAccountComp.RawString2Accountkey(TCrypto.HexaToRaw(jsonObjparams.AsString(prefix+'enc_pubkey','')));
     end;
-    If Not TAccountComp.IsValidAccountKey(pubkey,ansistr) then begin
-      errortxt := 'Invalid public key: '+ansistr;
+    If Not TAccountComp.IsValidAccountKey(pubkey,errors_aux) then begin
+      errortxt := 'Invalid public key: '+errors_aux;
     end else Result := true;
   end;
 
@@ -1555,7 +1555,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
   end;
 
   function SignListAccountForSaleColdWallet(Const HexaStringOperationsHashTree : AnsiString; params : TPCJSONObject) : boolean;
-  var errors : AnsiString;
+  var errors : String;
     OperationsHashTree : TOperationsHashTree;
     accountpubkey : TAccountKey;
     last_n_operation : Cardinal;
@@ -1742,7 +1742,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
   end;
 
   function SignChangeAccountInfoColdWallet(Const HexaStringOperationsHashTree : AnsiString; params : TPCJSONObject) : boolean;
-  var errors : AnsiString;
+  var errors : String;
     OperationsHashTree : TOperationsHashTree;
     accountpubkey : TAccountKey;
     last_n_operation : Cardinal;
@@ -1771,7 +1771,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
   end;
 
   function SignDelistAccountForSaleColdWallet(Const HexaStringOperationsHashTree : AnsiString; params : TPCJSONObject) : boolean;
-  var errors : AnsiString;
+  var errors : String;
     OperationsHashTree : TOperationsHashTree;
     accountpubkey : TAccountKey;
     last_n_operation : Cardinal;
@@ -1869,7 +1869,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
   end;
 
   function SignBuyAccountColdWallet(Const HexaStringOperationsHashTree : AnsiString; params : TPCJSONObject) : boolean;
-  var errors : AnsiString;
+  var errors : String;
     OperationsHashTree : TOperationsHashTree;
     accountpubkey : TAccountKey;
     last_n_operation : Cardinal;
@@ -1902,7 +1902,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
     account_signer, account_target : TAccount;
     opt : TPCOperation;
     opr : TOperationResume;
-    errors : AnsiString;
+    errors : String;
     c_account : Cardinal;
   Begin
     FNode.OperationSequenceLock.Acquire;  // Use lock to prevent N_Operation race-condition on concurrent invocations
@@ -1961,7 +1961,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
     account_signer, account_target : TAccount;
     opt : TPCOperation;
     opr : TOperationResume;
-    errors : AnsiString;
+    errors : String;
     c_account : Cardinal;
   Begin
     FNode.OperationSequenceLock.Acquire;  // Use lock to prevent N_Operation race-condition on concurrent invocations
@@ -2020,7 +2020,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
     buyer_account, account_to_purchase : TAccount;
     opt : TPCOperation;
     opr : TOperationResume;
-    errors : AnsiString;
+    errors : String;
     c_account : Cardinal;
   Begin
     FNode.OperationSequenceLock.Acquire;  // Use lock to prevent N_Operation race-condition on concurrent invocations
@@ -2080,7 +2080,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
     account_signer, account_target : TAccount;
     opt : TPCOperation;
     opr : TOperationResume;
-    errors : AnsiString;
+    errors : String;
     c_account : Cardinal;
   Begin
     FNode.OperationSequenceLock.Acquire;  // Use lock to prevent N_Operation race-condition on concurrent invocations
@@ -2146,7 +2146,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
     start, max, iPubKey : Integer;
     account : TAccount;
     i : Cardinal;
-    errors : AnsiString;
+    errors : String;
     auxErrors : String;
     addToResult : Boolean;
     accPubKey : TAccountKey;
@@ -2303,7 +2303,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
       Result := FNode.Operations.SafeBoxTransaction.Account( nAccount );
     end;
 
-  var errors : AnsiString;
+  var errors : String;
     OperationsHashTree : TOperationsHashTree;
     jsonArr : TPCJSONArray;
     i,j : Integer;
@@ -2532,7 +2532,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
   end;
 
   function MultiOperationSignCold(Const HexaStringOperationsHashTree : AnsiString; params : TPCJSONObject) : boolean;
-  var errors : AnsiString;
+  var errors : String;
     senderOperationsHashTree : TOperationsHashTree;
     mop : TOpMultiOperation;
     i,j : Integer;
@@ -2569,7 +2569,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
     end;
   end;
   function MultiOperationSignOnline(Const HexaStringOperationsHashTree : AnsiString) : boolean;
-  var errors : AnsiString;
+  var errors : String;
     senderOperationsHashTree : TOperationsHashTree;
     j,iKey,nSignedAccounts : Integer;
     mop : TOpMultiOperation;
@@ -2622,7 +2622,7 @@ function TRPCProcess.ProcessMethod(const method: String; params: TPCJSONObject;
 
   function RawOperations_Delete(Const HexaStringOperationsHashTree : AnsiString; index : Integer) : boolean;
   var senderOperationsHashTree : TOperationsHashTree;
-    errors : AnsiString;
+    errors : String;
   begin
     Result := False;
     if Not HexaStringToOperationsHashTree(HexaStringOperationsHashTree,senderOperationsHashTree,errors) then begin
@@ -2651,7 +2651,7 @@ Var c,c2,c3 : Cardinal;
   i,j,k,l : Integer;
   account : TAccount;
   senderpubkey,destpubkey : TAccountKey;
-  ansistr : AnsiString;
+  ansistr : String;
   nsaarr : TNodeServerAddressArray;
   pcops : TPCOperationsComp;
   ecpkey : TECPrivateKey;

+ 4 - 4
src/core/UTxMultiOperation.pas

@@ -117,9 +117,9 @@ Type
   public
     function GetBufferForOpHash(UseProtocolV2 : Boolean): TRawBytes; override;
 
-    function CheckSignatures(AccountTransaction : TPCSafeBoxTransaction; var errors : AnsiString) : Boolean;
+    function CheckSignatures(AccountTransaction : TPCSafeBoxTransaction; var errors : String) : Boolean;
 
-    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : AnsiString) : Boolean; override;
+    function DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction : TPCSafeBoxTransaction; var errors : String) : Boolean; override;
     procedure AffectedAccounts(list : TList); override;
     //
     Function DoSignMultiOperationSigner(current_protocol : Word; SignerAccount : Cardinal; key : TECPrivateKey) : Integer;
@@ -469,7 +469,7 @@ begin
   end;
 end;
 
-function TOpMultiOperation.CheckSignatures(AccountTransaction: TPCSafeBoxTransaction; var errors: AnsiString): Boolean;
+function TOpMultiOperation.CheckSignatures(AccountTransaction: TPCSafeBoxTransaction; var errors: String): Boolean;
 var i : Integer;
   acc : TAccount;
   ophtosign : TRawBytes;
@@ -528,7 +528,7 @@ begin
   end;
 end;
 
-function TOpMultiOperation.DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction: TPCSafeBoxTransaction; var errors: AnsiString): Boolean;
+function TOpMultiOperation.DoOperation(AccountPreviousUpdatedBlock : TAccountPreviousBlockInfo; AccountTransaction: TPCSafeBoxTransaction; var errors: String): Boolean;
 var i,j : Integer;
   txs : TMultiOpSender;
   txr : TMultiOpReceiver;

+ 1 - 1
src/core/UWallet.pas

@@ -641,7 +641,7 @@ end;
 
 class procedure TWallet.ImportPublicKey(Const AName, AKeyImportText : AnsiString);
 var raw : TRawBytes;
-  errors : AnsiString;
+  errors : String;
   accountKey : TAccountKey;
 begin
   CheckLoaded;