Browse Source

JSON-RPC PASCURRENCY rounded to 4 decimals

PascalCoin 6 years ago
parent
commit
526a475322
3 changed files with 27 additions and 24 deletions
  1. 2 2
      src/core/URPC.pas
  2. 21 19
      src/gui-classic/UFRMRPCCalls.lfm
  3. 4 3
      src/libraries/pascalcoin/UJSONFunctions.pas

+ 2 - 2
src/core/URPC.pas

@@ -52,7 +52,7 @@ Type
   private
     class function OperationsHashTreeToHexaString(Const OperationsHashTree : TOperationsHashTree) : AnsiString;
   public
-    class function ToJSONCurrency(pascalCoins : Int64) : Real;
+    class function ToJSONCurrency(pascalCoins : Int64) : Currency;
     class procedure FillAccountObject(Const account : TAccount; jsonObj : TPCJSONObject);
     class procedure FillBlockObject(nBlock : Cardinal; ANode : TNode; jsonObject: TPCJSONObject);
     class procedure FillOperationObject(Const OPR : TOperationResume; currentNodeBlocksCount : Cardinal; jsonObject : TPCJSONObject);
@@ -132,7 +132,7 @@ var _RPCServer : TRPCServer = Nil;
 
 { TPascalCoinJSONComp }
 
-class function TPascalCoinJSONComp.ToJSONCurrency(pascalCoins: Int64): Real;
+class function TPascalCoinJSONComp.ToJSONCurrency(pascalCoins: Int64): Currency;
 Begin
   Result := RoundTo( pascalCoins / 10000 , -4);
 end;

+ 21 - 19
src/gui-classic/UFRMRPCCalls.lfm

@@ -59,15 +59,15 @@ object FRMRPCCalls: TFRMRPCCalls
     TabOrder = 2
     object Label1: TLabel
       Left = 16
-      Height = 15
+      Height = 17
       Top = 43
-      Width = 42
+      Width = 54
       Caption = 'Method'
       ParentColor = False
     end
     object ebMethod: TEdit
       Left = 70
-      Height = 23
+      Height = 27
       Top = 40
       Width = 184
       TabOrder = 1
@@ -84,13 +84,13 @@ object FRMRPCCalls: TFRMRPCCalls
       TabOrder = 2
       object tsKeyNames: TTabSheet
         Caption = 'Key/Value Params'
-        ClientHeight = 194
-        ClientWidth = 281
+        ClientHeight = 191
+        ClientWidth = 285
         object vlKeyParams: TValueListEditor
           Left = 0
-          Height = 194
+          Height = 191
           Top = 0
-          Width = 281
+          Width = 285
           Align = alClient
           FixedCols = 0
           RowCount = 2
@@ -102,14 +102,14 @@ object FRMRPCCalls: TFRMRPCCalls
           )
           ColWidths = (
             64
-            213
+            219
           )
         end
       end
       object tsJSONParams: TTabSheet
         Caption = 'Params as JSON'
-        ClientHeight = 172
-        ClientWidth = 238
+        ClientHeight = 191
+        ClientWidth = 285
         object mJSONParams: TMemo
           Left = 0
           Height = 172
@@ -170,15 +170,15 @@ object FRMRPCCalls: TFRMRPCCalls
     end
     object Label2: TLabel
       Left = 16
-      Height = 15
+      Height = 17
       Top = 13
-      Width = 32
+      Width = 44
       Caption = 'Server'
       ParentColor = False
     end
     object ebServerURL: TEdit
       Left = 70
-      Height = 23
+      Height = 27
       Top = 8
       Width = 184
       TabStop = False
@@ -220,8 +220,9 @@ object FRMRPCCalls: TFRMRPCCalls
         Top = 24
         Width = 424
         Align = alClient
-        ScrollBars = ssVertical
+        ScrollBars = ssBoth
         TabOrder = 0
+        WordWrap = False
       end
       object pnlLastCall: TPanel
         Left = 0
@@ -235,17 +236,17 @@ object FRMRPCCalls: TFRMRPCCalls
         TabOrder = 1
         object Label3: TLabel
           Left = 8
-          Height = 15
+          Height = 17
           Top = 3
-          Width = 77
+          Width = 102
           Caption = 'Last call result:'
           ParentColor = False
         end
         object lblLastCallResultState: TLabel
           Left = 112
-          Height = 15
+          Height = 17
           Top = 3
-          Width = 32
+          Width = 41
           Caption = 'STATE'
           ParentColor = False
         end
@@ -257,8 +258,9 @@ object FRMRPCCalls: TFRMRPCCalls
       Top = 0
       Width = 424
       Align = alClient
-      ScrollBars = ssVertical
+      ScrollBars = ssBoth
       TabOrder = 1
+      WordWrap = False
     end
     object Splitter2: TSplitter
       Cursor = crVSplit

+ 4 - 3
src/libraries/pascalcoin/UJSONFunctions.pas

@@ -510,7 +510,7 @@ begin
     {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}DecimalSeparator := '.';
     {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}ThousandSeparator := ',';
     Try
-      if FormatFloat('0.###########',d)=inttostr(i64) then
+      if FormatFloat('0.##########',d)=inttostr(i64) then
         Value := i64
       else Value := d;
     Finally
@@ -543,13 +543,14 @@ begin
     varLongWord,varInt64 : Result := VarToStr(Value);
     varBoolean : if (Value) then Result := 'true' else Result:='false';
     varNull : Result := 'null';
-    varDate,varDouble : begin
+    varDate,varDouble,varcurrency : begin
       ds := {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}DecimalSeparator;
       ts := {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}ThousandSeparator;
       {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}DecimalSeparator := '.';
       {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}ThousandSeparator := ',';
       try
-        Result := FormatFloat('0.###########',Value);
+        if VarType(Value)=varcurrency then Result := FormatFloat('0.0000',Value)
+        else Result := FormatFloat('0.##########',Value);
       finally
         {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}DecimalSeparator := ds;
         {$IFDEF DELPHIXE}FormatSettings.{$ENDIF}ThousandSeparator := ts;