Browse Source

TESTNET 3.2

PascalCoin 7 years ago
parent
commit
ba65cc6007

+ 3 - 2
README.md

@@ -35,8 +35,7 @@ Also, consider a donation at PascalCoin development account: "0-10"
 ## History:  
 ## History:  
 
 
 ### DEVELOPMENT STATUS
 ### DEVELOPMENT STATUS
-- TODO: PIP - 0010
-- TODO: Add new network operations
+- PIP - 0010: 50% inflation reduction
 - New target calc on protocol V3 in order to reduce the sinusoidal effect
 - New target calc on protocol V3 in order to reduce the sinusoidal effect
   - Harmonization of the sinusoidal effect modifying the rise / fall by 50% calculating over the last 10 blocks only when increase/decrease is high
   - Harmonization of the sinusoidal effect modifying the rise / fall by 50% calculating over the last 10 blocks only when increase/decrease is high
 - New Safebox Snapshoting
 - New Safebox Snapshoting
@@ -47,6 +46,8 @@ Also, consider a donation at PascalCoin development account: "0-10"
     - Implementation of the PIP-0013 (not exactly but with similar features)	
     - Implementation of the PIP-0013 (not exactly but with similar features)	
   - Get account (code $0031)
   - Get account (code $0031)
     - This call will allow a simple third party app communicate directly to a node to get account info (balance, n_operation, name, public key... )
     - This call will allow a simple third party app communicate directly to a node to get account info (balance, n_operation, name, public key... )
+  - Reserverd codes from $1000 to $1FFF
+    - A node will not break connection if those codes are used, but will response with ERRORCODE_NOT_IMPLEMENTED ($00FF)
 - MultiOperation: PIP-0017
 - MultiOperation: PIP-0017
   - Multioperation allows a transactional like operations, they can include transactions and change info operations in a signle multioperation
   - Multioperation allows a transactional like operations, they can include transactions and change info operations in a signle multioperation
     - Allow to send coins from N accounts to M receivers in a transaction mixing, without knowledge of how many coins where sent from "Alice" to "Bob" if properly mixed
     - Allow to send coins from N accounts to M receivers in a transaction mixing, without knowledge of how many coins where sent from "Alice" to "Bob" if properly mixed

+ 2 - 2
src/core/UConst.pas

@@ -105,7 +105,7 @@ Const
   CT_NetProtocol_Version: Word = $0006; // Version 2.1.2 only allows net protocol 6 (Introduced on 2.0.0)
   CT_NetProtocol_Version: Word = $0006; // Version 2.1.2 only allows net protocol 6 (Introduced on 2.0.0)
   // IMPORTANT NOTE!!!
   // IMPORTANT NOTE!!!
   // NetProtocol_Available MUST BE always >= NetProtocol_version
   // NetProtocol_Available MUST BE always >= NetProtocol_version
-  CT_NetProtocol_Available: Word = $0006;  // Remember, >= NetProtocol_version !!!
+  CT_NetProtocol_Available: Word = $0007;  // Remember, >= NetProtocol_version !!!
 
 
   CT_MaxAccountOperationsPerBlockWithoutFee = 1;
   CT_MaxAccountOperationsPerBlockWithoutFee = 1;
 
 
@@ -150,7 +150,7 @@ Const
   CT_OpSubtype_MultiOperation_Global      = 91;
   CT_OpSubtype_MultiOperation_Global      = 91;
   CT_OpSubtype_MultiOperation_AccountInfo = 92;
   CT_OpSubtype_MultiOperation_AccountInfo = 92;
 
 
-  CT_ClientAppVersion : AnsiString = {$IFDEF PRODUCTION}'2.1.9'{$ELSE}{$IFDEF TESTNET}'TESTNET 3.1 BETA'{$ELSE}{$ENDIF}{$ENDIF};
+  CT_ClientAppVersion : AnsiString = {$IFDEF PRODUCTION}'2.1.9'{$ELSE}{$IFDEF TESTNET}'TESTNET 3.2 CR'{$ELSE}{$ENDIF}{$ENDIF};
 
 
   CT_Discover_IPs =  'bpascal1.dynamic-dns.net;bpascal2.dynamic-dns.net;pascalcoin1.dynamic-dns.net;pascalcoin2.dynamic-dns.net;pascalcoin1.dns1.us;pascalcoin2.dns1.us;pascalcoin1.dns2.us;pascalcoin2.dns2.us';
   CT_Discover_IPs =  'bpascal1.dynamic-dns.net;bpascal2.dynamic-dns.net;pascalcoin1.dynamic-dns.net;pascalcoin2.dynamic-dns.net;pascalcoin1.dns1.us;pascalcoin2.dns1.us;pascalcoin1.dns2.us;pascalcoin2.dns2.us';
 
 

+ 0 - 8
src/gui-classic/UFRMAbout.pas

@@ -69,16 +69,8 @@ uses
 {$ENDIF}
 {$ENDIF}
 
 
 procedure TFRMAbout.FormCreate(Sender: TObject);
 procedure TFRMAbout.FormCreate(Sender: TObject);
-{$IFnDEF FPC}
-Var fvi : TFileVersionInfo;
-{$ENDIF}
 begin
 begin
-  {$IFDEF FPC}
   lblBuild.Caption :=  'Build: '+CT_ClientAppVersion;
   lblBuild.Caption :=  'Build: '+CT_ClientAppVersion;
-  {$ELSE}
-  fvi := TFolderHelper.GetTFileVersionInfo(Application.ExeName);
-  lblBuild.Caption :=  'Build: '+fvi.FileVersion;
-  {$ENDIF}
   lblProtocolVersion.Caption := Format('BlockChain Protocol: %d (%d)  -  Net Protocol: %d (%d)',[TNode.Node.Bank.SafeBox.CurrentProtocol,CT_BlockChain_Protocol_Available,
   lblProtocolVersion.Caption := Format('BlockChain Protocol: %d (%d)  -  Net Protocol: %d (%d)',[TNode.Node.Bank.SafeBox.CurrentProtocol,CT_BlockChain_Protocol_Available,
     CT_NetProtocol_Version, CT_NetProtocol_Available]);
     CT_NetProtocol_Version, CT_NetProtocol_Available]);
 end;
 end;

+ 6 - 5
src/gui-classic/UFRMOperationsExplorer.dfm

@@ -180,13 +180,14 @@ object FRMOperationsExplorer: TFRMOperationsExplorer
           Action = ActRemove
           Action = ActRemove
           TabOrder = 4
           TabOrder = 4
         end
         end
-        object Button1: TButton
-          Left = 261
-          Top = 16
-          Width = 75
+        object bbRandom: TButton
+          Left = 190
+          Top = 8
+          Width = 146
           Height = 25
           Height = 25
-          Caption = 'Button1'
+          Caption = 'RANDOM OPERATIONS'
           TabOrder = 5
           TabOrder = 5
+          OnClick = bbRandomClick
         end
         end
       end
       end
     end
     end

+ 0 - 8
src/gui-classic/UFRMOperationsExplorer.pas

@@ -63,8 +63,6 @@ type
     MenuItem4: TMenuItem;
     MenuItem4: TMenuItem;
     MenuItem5: TMenuItem;
     MenuItem5: TMenuItem;
     MenuItem6: TMenuItem;
     MenuItem6: TMenuItem;
-    MenuItem7: TMenuItem;
-    MiRPCCalls: TMenuItem;
     MiActions: TMenuItem;
     MiActions: TMenuItem;
     MiDivider1: TMenuItem;
     MiDivider1: TMenuItem;
     MiImportOperationsFromTxt: TMenuItem;
     MiImportOperationsFromTxt: TMenuItem;
@@ -96,7 +94,6 @@ type
     procedure bbRandomClick(Sender: TObject);
     procedure bbRandomClick(Sender: TObject);
     procedure bbRemoveClick(Sender: TObject);
     procedure bbRemoveClick(Sender: TObject);
     procedure bbSignClick(Sender: TObject);
     procedure bbSignClick(Sender: TObject);
-    procedure Button1Click(Sender: TObject);
     procedure FormCreate(Sender: TObject);
     procedure FormCreate(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
     procedure lbOperationsClick(Sender: TObject);
     procedure lbOperationsClick(Sender: TObject);
@@ -353,11 +350,6 @@ begin
   UpdateSelectedOperationInfo;
   UpdateSelectedOperationInfo;
 end;
 end;
 
 
-procedure TFRMOperationsExplorer.Button1Click(Sender: TObject);
-begin
-
-end;
-
 procedure TFRMOperationsExplorer.bbAddOpChangeClick(Sender: TObject);
 procedure TFRMOperationsExplorer.bbAddOpChangeClick(Sender: TObject);
 Var op : TPCOperation;
 Var op : TPCOperation;
   mop : TOpMultiOperation;
   mop : TOpMultiOperation;

+ 0 - 1
src/gui-classic/UFRMPayloadDecoder.lfm

@@ -16,7 +16,6 @@ object FRMPayloadDecoder: TFRMPayloadDecoder
   OnCreate = FormCreate
   OnCreate = FormCreate
   Position = poOwnerFormCenter
   Position = poOwnerFormCenter
   LCLVersion = '1.8.0.6'
   LCLVersion = '1.8.0.6'
-  Visible = False
   object Label1: TLabel
   object Label1: TLabel
     Left = 20
     Left = 20
     Height = 13
     Height = 13

+ 275 - 0
src/gui-classic/UFRMRPCCalls.dfm

@@ -0,0 +1,275 @@
+object FRMRPCCalls: TFRMRPCCalls
+  Left = 515
+  Top = 250
+  BorderIcons = [biSystemMenu, biMaximize]
+  Caption = 'RPC Calls'
+  ClientHeight = 433
+  ClientWidth = 760
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'Tahoma'
+  Font.Style = []
+  OldCreateOrder = True
+  Position = poOwnerFormCenter
+  OnCreate = FormCreate
+  PixelsPerInch = 96
+  TextHeight = 13
+  object Splitter1: TSplitter
+    Left = 424
+    Top = 50
+    Width = 5
+    Height = 366
+    Align = alRight
+  end
+  object pnlTop: TPanel
+    Left = 0
+    Top = 0
+    Width = 760
+    Height = 50
+    Align = alTop
+    BevelOuter = bvNone
+    BorderWidth = 5
+    TabOrder = 0
+    object lblTopCaption: TLabel
+      Left = 5
+      Top = 5
+      Width = 750
+      Height = 40
+      Align = alClient
+      AutoSize = False
+      Caption = 
+        'WARNING! Execute only calls you understand. Execute unknown call' +
+        's provided by third person can cause that you lost your keys/bal' +
+        'ance!'
+      Color = clBtnFace
+      Font.Charset = DEFAULT_CHARSET
+      Font.Color = clRed
+      Font.Height = -16
+      Font.Name = 'Tahoma'
+      Font.Style = [fsBold]
+      ParentColor = False
+      ParentFont = False
+      Layout = tlCenter
+      WordWrap = True
+    end
+  end
+  object pnlBottom: TPanel
+    Left = 0
+    Top = 416
+    Width = 760
+    Height = 17
+    Align = alBottom
+    BevelOuter = bvNone
+    TabOrder = 1
+  end
+  object pnlRight: TPanel
+    Left = 429
+    Top = 50
+    Width = 331
+    Height = 366
+    Align = alRight
+    BevelOuter = bvNone
+    TabOrder = 2
+    DesignSize = (
+      331
+      366)
+    object Label1: TLabel
+      Left = 16
+      Top = 43
+      Width = 36
+      Height = 13
+      Caption = 'Method'
+      Color = clBtnFace
+      ParentColor = False
+    end
+    object Label2: TLabel
+      Left = 16
+      Top = 13
+      Width = 32
+      Height = 13
+      Caption = 'Server'
+      Color = clBtnFace
+      ParentColor = False
+    end
+    object ebMethod: TEdit
+      Left = 70
+      Top = 40
+      Width = 184
+      Height = 21
+      TabOrder = 1
+      Text = 'ebMethod'
+    end
+    object pageControl: TPageControl
+      Left = 16
+      Top = 75
+      Width = 289
+      Height = 222
+      ActivePage = tsKeyNames
+      Anchors = [akLeft, akTop, akRight, akBottom]
+      TabOrder = 2
+      object tsKeyNames: TTabSheet
+        Caption = 'Key/Value Params'
+        object vlKeyParams: TValueListEditor
+          Left = 0
+          Top = 0
+          Width = 281
+          Height = 194
+          Align = alClient
+          KeyOptions = [keyEdit, keyAdd, keyDelete, keyUnique]
+          Strings.Strings = (
+            '')
+          TabOrder = 0
+          ColWidths = (
+            64
+            211)
+        end
+      end
+      object tsJSONParams: TTabSheet
+        Caption = 'Params as JSON'
+        ExplicitLeft = 0
+        ExplicitTop = 0
+        ExplicitWidth = 0
+        ExplicitHeight = 0
+        object mJSONParams: TMemo
+          Left = 0
+          Top = 0
+          Width = 238
+          Height = 172
+          Align = alClient
+          ScrollBars = ssVertical
+          TabOrder = 0
+        end
+      end
+    end
+    object bbSendCommand: TBitBtn
+      Left = 72
+      Top = 305
+      Width = 168
+      Height = 46
+      Anchors = [akLeft, akBottom]
+      Caption = '&Send'
+      Default = True
+      DoubleBuffered = True
+      Glyph.Data = {
+        36040000424D3604000000000000360000002800000010000000100000000100
+        2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
+        FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+        FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+        FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+        FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000
+        00000000000000000000FFFFFF0046986FFF379064FF0B774240FFFFFF00FFFF
+        FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000
+        000000000000FFFFFF0054A07AFF78BCA1FF7DB99EFF368F63FF0B774240FFFF
+        FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFF
+        FF00FFFFFF0054A07AFF7BBEA4FF39A681FF55B191FF7AB698FF399166FF0B77
+        4240FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0054A0
+        7A0054A07AFF7CC0A6FF3CA985FF76BDA1FF7FBBA0FF4FB592FF7BBEA2FF54A0
+        7AFF0B77424054A07A0054A07A00FFFFFF00FFFFFF00FFFFFF0054A07A0054A0
+        7AFF7DC1A7FF4DB391FF7FBB9FFF4D9C75FF3E946AFF7BC5A9FF40B18BFF7BBE
+        A2FF54A07AFF0B77424054A07A0054A07A00FFFFFF00FFFFFF0054A07AFF7FC3
+        A8FF5FBB9BFF7FBBA0FF3A9166FF0B7742600B7742404D9C75FF7BC5A9FF4EBC
+        97FF7BBEA2FF54A07AFF0B7742400B77421054A07A00FFFFFF000B7742303A91
+        66FC7FBBA0FF3A9166FC0B77423000000000000000000B77426054A07AFF7BC5
+        A9FF4EBE99FF5CC2A0FF54A07AFF0B77423F0B77421054A07A00000000000B77
+        42203A9166F60B774220000000000000000000000000FFFFFF000B77424054A0
+        7AFF7CCAAEFF52C39DFF81BDA2FF54A07AFF0B77423F54A07A00000000000000
+        0000000000000000000000000000000000000000000000000000000000000B77
+        424054A07AFF6DC9A8FF57C7A2FF7BCCAFFF54A07AFF0B774239000000000000
+        000000000000000000000000000000000000000000000000000000000000FFFF
+        FF000B77424C54A07AFF7BCCAFFF81CBAFFF54A07AFF0B77423F000000000000
+        000000000000000000000000000000000000000000000000000000000000FFFF
+        FF00FFFFFF000B77423D54A07AFF54A07AFF0B774247FFFFFF00FFFFFF00FFFF
+        FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+        FF00FFFFFF00FFFFFF000B77423F0B77423FFFFFFF00FFFFFF00FFFFFF00FFFF
+        FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+        FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+        FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+        FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00}
+      ParentDoubleBuffered = False
+      TabOrder = 3
+      OnClick = bbSendCommandClick
+    end
+    object ebServerURL: TEdit
+      Left = 70
+      Top = 8
+      Width = 184
+      Height = 21
+      TabStop = False
+      TabOrder = 0
+      Text = 'ebServerURL'
+    end
+  end
+  object pnlInfo: TPanel
+    Left = 0
+    Top = 50
+    Width = 424
+    Height = 366
+    Align = alClient
+    BevelOuter = bvNone
+    TabOrder = 3
+    object Splitter2: TSplitter
+      Left = 0
+      Top = 192
+      Width = 424
+      Height = 5
+      Cursor = crVSplit
+      Align = alBottom
+    end
+    object pnlInfoBottom: TPanel
+      Left = 0
+      Top = 197
+      Width = 424
+      Height = 169
+      Align = alBottom
+      BevelOuter = bvNone
+      TabOrder = 0
+      object mLastResult: TMemo
+        Left = 0
+        Top = 24
+        Width = 424
+        Height = 145
+        Align = alClient
+        ScrollBars = ssVertical
+        TabOrder = 0
+      end
+      object pnlLastCall: TPanel
+        Left = 0
+        Top = 0
+        Width = 424
+        Height = 24
+        Align = alTop
+        BevelOuter = bvNone
+        TabOrder = 1
+        object Label3: TLabel
+          Left = 8
+          Top = 3
+          Width = 72
+          Height = 13
+          Caption = 'Last call result:'
+          Color = clBtnFace
+          ParentColor = False
+        end
+        object lblLastCallResultState: TLabel
+          Left = 112
+          Top = 3
+          Width = 31
+          Height = 13
+          Caption = 'STATE'
+          Color = clBtnFace
+          ParentColor = False
+        end
+      end
+    end
+    object mCalls: TMemo
+      Left = 0
+      Top = 0
+      Width = 424
+      Height = 192
+      Align = alClient
+      ScrollBars = ssVertical
+      TabOrder = 1
+    end
+  end
+end

+ 8 - 4
src/gui-classic/UFRMRPCCalls.pas

@@ -30,7 +30,7 @@ uses
   Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls,
   Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls,
   StdCtrls, ValEdit, ComCtrls, Buttons, UJSONFunctions, blcksock, httpsend,
   StdCtrls, ValEdit, ComCtrls, Buttons, UJSONFunctions, blcksock, httpsend,
   UConst,
   UConst,
-  UAccounts;
+  UAccounts, Grids;
 
 
 type
 type
 
 
@@ -80,7 +80,11 @@ Const
 
 
 implementation
 implementation
 
 
-{$R *.lfm}
+{$IFnDEF FPC}
+  {$R *.dfm}
+{$ELSE}
+  {$R *.lfm}
+{$ENDIF}
 
 
 { TFRMRPCCalls }
 { TFRMRPCCalls }
 
 
@@ -90,7 +94,7 @@ begin
   ebMethod.Text:='';
   ebMethod.Text:='';
   mJSONParams.Clear;
   mJSONParams.Clear;
   mCalls.Clear;
   mCalls.Clear;
-  vlKeyParams.Clear;
+  {$IFDEF FPC}vlKeyParams.Clear;{$ENDIF}
   vlKeyParams.TitleCaptions.Text:='Key'+#10+'Value';
   vlKeyParams.TitleCaptions.Text:='Key'+#10+'Value';
   ebServerURL.Text:=FServerURL;
   ebServerURL.Text:=FServerURL;
   pageControl.ActivePage:=tsKeyNames;
   pageControl.ActivePage:=tsKeyNames;
@@ -149,7 +153,7 @@ end;
 
 
 procedure TFRMRPCCalls.ShowCallInfo(infoType: TInfoType; value: String);
 procedure TFRMRPCCalls.ShowCallInfo(infoType: TInfoType; value: String);
 begin
 begin
-  mCalls.Lines.Add('%s [%s] %s',[FormatDateTime('hh:nn:ss.zzz',Now),CT_TIntoType_Str[infoType],value]);
+  mCalls.Lines.Add(Format('%s [%s] %s',[FormatDateTime('hh:nn:ss.zzz',Now),CT_TIntoType_Str[infoType],value]));
 end;
 end;
 
 
 procedure TFRMRPCCalls.DoSendJSON(json: TPCJSONObject);
 procedure TFRMRPCCalls.DoSendJSON(json: TPCJSONObject);

+ 91 - 0
src/gui-classic/UFRMRandomOperations.dfm

@@ -0,0 +1,91 @@
+object FRMRandomOperations: TFRMRandomOperations
+  Left = 876
+  Top = 391
+  Caption = 'Random Operations'
+  ClientHeight = 229
+  ClientWidth = 439
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'Tahoma'
+  Font.Style = []
+  OldCreateOrder = True
+  Position = poOwnerFormCenter
+  OnClose = FormClose
+  OnCloseQuery = FormCloseQuery
+  OnCreate = FormCreate
+  OnDestroy = FormDestroy
+  PixelsPerInch = 96
+  TextHeight = 13
+  object pnlTop: TPanel
+    Left = 0
+    Top = 0
+    Width = 439
+    Height = 66
+    Align = alTop
+    BevelOuter = bvNone
+    BorderWidth = 10
+    TabOrder = 0
+    object lblTopCaption: TLabel
+      Left = 10
+      Top = 10
+      Width = 419
+      Height = 46
+      Align = alClient
+      AutoSize = False
+      Caption = 
+        'WARNING! This form will generate RANDOM operations using your pr' +
+        'ivate keys!!!'
+      Color = clBtnFace
+      Font.Charset = DEFAULT_CHARSET
+      Font.Color = clRed
+      Font.Height = -13
+      Font.Name = 'Tahoma'
+      Font.Style = [fsBold]
+      ParentColor = False
+      ParentFont = False
+      Layout = tlCenter
+      WordWrap = True
+    end
+  end
+  object pnlClient: TPanel
+    Left = 0
+    Top = 66
+    Width = 439
+    Height = 163
+    Align = alClient
+    BevelOuter = bvNone
+    TabOrder = 1
+    object pnlTop1: TPanel
+      Left = 0
+      Top = 0
+      Width = 439
+      Height = 42
+      Align = alTop
+      BevelOuter = bvNone
+      TabOrder = 0
+      object bbRandomOperations: TButton
+        Left = 16
+        Top = 8
+        Width = 195
+        Height = 25
+        Caption = 'Random Operations'
+        TabOrder = 0
+        OnClick = bbRandomOperationsClick
+      end
+    end
+    object mLogs: TMemo
+      Left = 0
+      Top = 42
+      Width = 439
+      Height = 121
+      Align = alClient
+      Lines.Strings = (
+        'mLogs')
+      ScrollBars = ssBoth
+      TabOrder = 1
+      WordWrap = False
+    end
+  end
+end

+ 5 - 1
src/gui-classic/UFRMRandomOperations.pas

@@ -77,7 +77,11 @@ type
 
 
 implementation
 implementation
 
 
-{$R *.lfm}
+{$IFnDEF FPC}
+  {$R *.dfm}
+{$ELSE}
+  {$R *.lfm}
+{$ENDIF}
 
 
 { TRandomGenerateOperation }
 { TRandomGenerateOperation }
 
 

+ 29 - 1
src/gui-classic/UFRMWallet.dfm

@@ -636,6 +636,10 @@ object FRMWallet: TFRMWallet
         object tsMultiSelectAccounts: TTabSheet
         object tsMultiSelectAccounts: TTabSheet
           Caption = 'Selected accounts for massive operations'
           Caption = 'Selected accounts for massive operations'
           ImageIndex = 1
           ImageIndex = 1
+          ExplicitLeft = 0
+          ExplicitTop = 0
+          ExplicitWidth = 0
+          ExplicitHeight = 0
           object dgSelectedAccounts: TDrawGrid
           object dgSelectedAccounts: TDrawGrid
             Left = 41
             Left = 41
             Top = 31
             Top = 31
@@ -825,6 +829,10 @@ object FRMWallet: TFRMWallet
     object tsPendingOperations: TTabSheet
     object tsPendingOperations: TTabSheet
       Caption = 'Pending Operations'
       Caption = 'Pending Operations'
       ImageIndex = 5
       ImageIndex = 5
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       object dgPendingOperations: TDrawGrid
       object dgPendingOperations: TDrawGrid
         Left = 0
         Left = 0
         Top = 86
         Top = 86
@@ -872,6 +880,10 @@ object FRMWallet: TFRMWallet
     object tsBlockChain: TTabSheet
     object tsBlockChain: TTabSheet
       Caption = 'BlockChain Explorer'
       Caption = 'BlockChain Explorer'
       ImageIndex = 1
       ImageIndex = 1
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       object Panel2: TPanel
       object Panel2: TPanel
         Left = 0
         Left = 0
         Top = 0
         Top = 0
@@ -917,6 +929,10 @@ object FRMWallet: TFRMWallet
     object tsOperations: TTabSheet
     object tsOperations: TTabSheet
       Caption = 'Operations Explorer'
       Caption = 'Operations Explorer'
       ImageIndex = 1
       ImageIndex = 1
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       object Panel1: TPanel
       object Panel1: TPanel
         Left = 0
         Left = 0
         Top = 0
         Top = 0
@@ -962,6 +978,10 @@ object FRMWallet: TFRMWallet
     object tsLogs: TTabSheet
     object tsLogs: TTabSheet
       Caption = 'Logs'
       Caption = 'Logs'
       ImageIndex = 2
       ImageIndex = 2
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       object pnlTopLogs: TPanel
       object pnlTopLogs: TPanel
         Left = 0
         Left = 0
         Top = 0
         Top = 0
@@ -991,6 +1011,10 @@ object FRMWallet: TFRMWallet
     object tsNodeStats: TTabSheet
     object tsNodeStats: TTabSheet
       Caption = 'Node Stats'
       Caption = 'Node Stats'
       ImageIndex = 3
       ImageIndex = 3
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       DesignSize = (
       DesignSize = (
         841
         841
         404)
         404)
@@ -1056,6 +1080,10 @@ object FRMWallet: TFRMWallet
     object tsMessages: TTabSheet
     object tsMessages: TTabSheet
       Caption = 'Messages'
       Caption = 'Messages'
       ImageIndex = 6
       ImageIndex = 6
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       DesignSize = (
       DesignSize = (
         841
         841
         404)
         404)
@@ -1300,7 +1328,7 @@ object FRMWallet: TFRMWallet
     Left = 105
     Left = 105
     Top = 180
     Top = 180
     Bitmap = {
     Bitmap = {
-      494C010102000800340210003000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C010102000800380210003000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000400000003000000001002000000000000030
       0000000000003600000028000000400000003000000001002000000000000030
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000002A292929D60B0B0BF4111111EE0000006B000000000000
       0000000000000000002A292929D60B0B0BF4111111EE0000006B000000000000

+ 2 - 2
src/gui-classic/UFRMWallet.lfm

@@ -388,9 +388,9 @@ object FRMWallet: TFRMWallet
     Height = 466
     Height = 466
     Top = 91
     Top = 91
     Width = 865
     Width = 865
-    ActivePage = tsBlockChain
+    ActivePage = tsMyAccounts
     Align = alClient
     Align = alClient
-    TabIndex = 2
+    TabIndex = 0
     TabOrder = 2
     TabOrder = 2
     OnChange = PageControlChange
     OnChange = PageControlChange
     object tsMyAccounts: TTabSheet
     object tsMyAccounts: TTabSheet

+ 2 - 2
src/gui-classic/UFRMWallet.pas

@@ -30,8 +30,8 @@ uses
   Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,
   Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,
   ExtCtrls, ComCtrls, UWallet, StdCtrls, ULog, Grids, UAppParams, UBlockChain,
   ExtCtrls, ComCtrls, UWallet, StdCtrls, ULog, Grids, UAppParams, UBlockChain,
   UNode, UGridUtils, UJSONFunctions, UAccounts, Menus, ImgList, UNetProtocol,
   UNode, UGridUtils, UJSONFunctions, UAccounts, Menus, ImgList, UNetProtocol,
-  UCrypto, Buttons, UPoolMining, URPC, UFRMAccountSelect, UFRMRPCCalls, UConst,
-  UTxMultiOperation;
+  UCrypto, Buttons, UPoolMining, URPC, UFRMAccountSelect, UConst,
+  UFRMRPCCalls, UTxMultiOperation;
 
 
 Const
 Const
   CM_PC_WalletKeysChanged = WM_USER + 1;
   CM_PC_WalletKeysChanged = WM_USER + 1;