anchor.diff:    end;
   end;
   
  -{ TOrderedOpReferenceList }
  -
  -{$UNDEF IS64BITS}
  -{$IFDEF CPU64BITS}{$DEFINE IS64BITS}{$ENDIF}
  -{$IFDEF FPC}{$IFDEF CPU64}{$DEFINE IS64BITS}{$ENDIF}{$ENDIF}
  -{$IFNDEF IS64BITS}
  -Type POpReference = ^TOpReference;
  -{$ENDIF}
  -
  -function TOrderedOpReferenceList.Add(AOpReference: TOpReference) : Integer;
  -  {$IFNDEF IS64BITS}
  -var p : POpReference;
  -  {$ENDIF}
  -begin
  -  FindOpReference(AOpReference,Result);
  -  // Will allow duplicates
  -  {$IFNDEF IS64BITS}
  -  new(p);
  -  p^ := AOpReference;
  -  FList.Insert(Result,p);
  -  {$ELSE}
  -  FList.Insert(Result,TObject(AOpReference));
  -  {$ENDIF}
  -end;
  -
  -procedure TOrderedOpReferenceList.Clear;
  -Var i : Integer;
  -  {$IFNDEF IS64BITS}
  -  p : POpReference;
  -  {$ENDIF}
  -begin
  -  {$IFNDEF IS64BITS}
  -  for i := 0 to FList.Count-1 do begin
  -    p := FList[i];
  -    Dispose(p);
  -  end;
  -  {$ENDIF}
  -  FList.Clear;
  -end;
  -
  -function TOrderedOpReferenceList.Count: Integer;
  -begin
  -  Result := FList.Count;
  -end;
  -
  -constructor TOrderedOpReferenceList.Create;
  -begin
  -  FList := TList.Create;
  -end;
  -
  -procedure TOrderedOpReferenceList.Delete(AIndex: Integer);
  -  {$IFNDEF IS64BITS}
  -var p : POpReference;
  -  {$ENDIF}
  -begin
  -  {$IFNDEF IS64BITS}
  -  p := FList[AIndex];
  -  Dispose(p);
  -  {$ENDIF}
  -  FList.Delete(AIndex);
  -end;
  -
  -destructor TOrderedOpReferenceList.Destroy;
  -begin
  -  Clear;
  -  FreeAndNil(FList);
  -  inherited;
  -end;
  -
  -function TOrderedOpReferenceList.FindAccount(AAccount: Cardinal; var Index: Integer): Boolean;
  -var
  -  cCurrent : TOpReference;
  -begin
  -  Result := FindOpReference((AAccount SHL 32),Index);
  -  if (Not Result) And (Index<FList.Count) then begin
  -    // Check if Index is same AAccount value
  -    {$IFNDEF IS64BITS}
  -    cCurrent := POpReference( FList[Index] )^;
  -    {$ELSE}
  -    cCurrent := TOpReference(FList[Index]);
  -    {$ENDIF}
  -    if (cCurrent SHR 32)=AAccount then Result := True;
  -  end;
  -end;
  -
  -function TOrderedOpReferenceList.FindOpReference(AOpReference: TOpReference; var Index: Integer): Boolean;
  -var L, H, I: Integer;
  -  cCurrent : TOpReference;
  -  C : Int64;
  -begin
  -  Result := False;
  -  L := 0;
  -  H := FList.Count - 1;
  -  while L <= H do
  -  begin
  -    I := (L + H) shr 1;
  -    // Capture value
  -    {$IFNDEF IS64BITS}
  -    cCurrent := POpReference( FList[I] )^;
  -    {$ELSE}
  -    cCurrent := TOpReference(FList[I]);
  -    {$ENDIF}
  -
  -    C := Int64(cCurrent) - Int64(AOpReference);
  -    if C < 0 then L := I + 1 else
  -    begin
  -      H := I - 1;
  -      if C = 0 then
  -      begin
  -        Result := True;
  -        L := I;
  -      end;
  -    end;
  -  end;
  -  Index := L;
  -end;
  -
  -function TOrderedOpReferenceList.Get(AIndex: Integer): TOpReference;
  -begin
  -  {$IFNDEF IS64BITS}
  -  Result := POpReference( FList[AIndex] )^;
  -  {$ELSE}
  -  Result := TOpReference(FList[AIndex]);
  -  {$ENDIF}
  -end;
  -
  -function TOrderedOpReferenceList.IndexOf(AOpReference: TOpReference): Integer;
  -begin
  -  if Not FindOpReference(AOpReference,Result) then Result := -1;
  -end;
  -
  -function TOrderedOpReferenceList.IndexOfAccount(AAccount: Cardinal): Integer;
  -begin
  -  if Not FindAccount(AAccount,Result) then Result := -1;
  -end;
  -
   initialization
     SetLength(_OperationsClass, 0);
     RegisterOperationsClass;
  
positive.code:     function IndexOfOperation(op : TPCOperation) : Integer;
      function CountOperationsBySameSignerWithoutFee(account_number : Cardinal) : Integer;
      Procedure Delete(index : Integer);
      Property OnChanged : TNotifyEvent read FOnChanged write FOnChanged;
    End;
  
  
negative.code:       TCrypto.DoSha256(h,FHashTree);
      end;
      npos := list.Add(P);
      //
      if Not FindOrderedByOpReference(list,op.GetOpReference,i) then begin
        FListOrderedByOpReference.Insert(i,TObject(npos));
      end;
  
      // Improvement: Will allow to add duplicate Operations, so add only first to orderedBySha
      If Not FindOrderedBySha(list,op.Sha256,i) then begin
        // Protection: Will add only once
  