anchor.diff:    i,npos,iListSigners : Integer;
     listSigners : TList;
   begin
  -  Result := False;
  -  // Protections:
  -  // Protect 0-fee operations
  -  if (op.OperationFee=0) And (FMax0feeOperationsBySigner>=0) then begin
  -    if (FMax0feeOperationsBySigner=0) then Exit // Not allowed 0-fee operations!
  -    else if (FMax0feeOperationsBySigner>0) then begin
  -      listSigners := TList.Create;
  -      try
  -        op.SignerAccounts(listSigners);
  -        for iListSigners:=0 to listSigners.Count-1 do begin
  -          If FindOrderedByAccountData(list,PtrInt(listSigners[iListSigners]),i) then begin
  -            PaccData := FListOrderedByAccountsData[i];
  -            if (PaccData^.account_without_fee>=FMax0feeOperationsBySigner) then Exit; // Limit 0-fee reached
  -          end;
  -        end;
  -      finally
  -        listSigners.Free;
  -      end;
  -    end;
  -  end;
  -  Result := True; // Will add:
  +  if Not InternalCanAddOperationToHashTree(list,op) then begin
  +    Result := False;
  +    Exit;
  +  end else Result := True; // Will add:
     msCopy := TMemoryStream.Create;
     try
       New(P);
  
positive.code:   end;
  end;
  
  procedure TOperationsHashTree.ClearHastThree;
  var l : TList;
    i : Integer;
  
negative.code:   public
      Constructor Create;
      Destructor Destroy; Override;
      function CanAddOperationToHashTree(op : TPCOperation) : Boolean;
      function AddOperationToHashTree(op : TPCOperation) : Boolean;
      Procedure ClearHastThree;
      Property HashTree : TRawBytes read GetHashTree;
  