Skip to content

Commit

Permalink
Cb7 Beta
Browse files Browse the repository at this point in the history
  • Loading branch information
NosoDevTeam committed Mar 20, 2024
1 parent 9272827 commit 341536e
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 29 deletions.
2 changes: 1 addition & 1 deletion lastrelease.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.4.2Cb6 0.4.2Cb6 x {LastOfficial} {LastBeta} {TestNet}
0.4.2Cb6 0.4.2Cb7 x {LastOfficial} {LastBeta} {TestNet}
78 changes: 57 additions & 21 deletions mprpc.pas
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,7 @@ function RPC_AddressBalance(NosoPParams:string):string;
valid : string;
LRecord : TSummaryData;
Begin
BeginPerformance('RPC_AddressBalance');
result := '';
if NosoPParams <> '' then
begin
Expand Down Expand Up @@ -563,13 +564,15 @@ function RPC_AddressBalance(NosoPParams:string):string;
until ThisAddress = '';
trim(result);
end;
EndPerformance('RPC_AddressBalance');
End;

function RPC_OrderInfo(NosoPParams:string):string;
var
thisOr : TOrderGroup;
validID : string = 'true';
Begin
BeginPerformance('RPC_OrderInfo');
ToLog('events',TimeToStr(now)+'GetOrderDetails requested: '+NosoPParams);
NosoPParams := Trim(NosoPParams);
ThisOr := Default(TOrderGroup);
Expand All @@ -596,13 +599,15 @@ function RPC_OrderInfo(NosoPParams:string):string;
thisor.timestamp,thisor.block,thisor.OrderType,
thisor.OrderLines,thisor.Receiver,thisor.AmmountTrf,
thisor.AmmountFee,thisor.reference,thisor.sender]);
EndPerformance('RPC_OrderInfo');
End;

function RPC_Blockinfo(NosoPParams:string):string;
var
thisblock : string;
counter : integer = 0;
Begin
BeginPerformance('RPC_Blockinfo');
result := '';
if NosoPParams <> '' then
begin
Expand All @@ -620,40 +625,49 @@ function RPC_Blockinfo(NosoPParams:string):string;
until thisblock = '';
trim(result);
end;
EndPerformance('RPC_Blockinfo');
End;

function RPC_Mainnetinfo(NosoPParams:string):string;
Begin
BeginPerformance('RPC_Mainnetinfo');
result := format('mainnetinfo'#127'%s'#127'%s'#127'%s'#127'%s'#127'%s'#127'%d',
[GetConsensus(2),Copy(GetConsensus(10),0,5),copy(GetConsensus(15),0,5),copy(GetConsensus(17),0,5),
GetConsensus(3),GetSupply(StrToIntDef(GetConsensus(2),0))]);
EndPerformance('RPC_Mainnetinfo');
End;

function RPC_PendingOrders(NosoPParams:string):string;
var
LData : String;
Begin
BeginPerformance('RPC_PendingOrders');
LData :=PendingRawInfo;
LData := StringReplace(LData,' ',#127,[rfReplaceAll, rfIgnoreCase]);
result := format('pendingorders'#127'%s',[LData]);
EndPerformance('RPC_PendingOrders');
End;

function RPC_LockedMNs(NosoPParams:string):String;
var
LData : String;
Begin
BeginPerformance('RPC_LockedMNs');
LData := LockedMNsRawString;
LData := StringReplace(LData,' ',#127,[rfReplaceAll, rfIgnoreCase]);
result := format('lockedmns'#127'%s',[LData]);
EndPerformance('RPC_LockedMNs');
End;

function RPC_GetPeers(NosoPParams:string):string;
var
LData : String;
Begin
LData := GetConnectedPeers;
LData := StringReplace(LData,' ',#127,[rfReplaceAll, rfIgnoreCase]);
result := format('peers'#127'%s',[LData]);
BeginPerformance('RPC_GetPeers');
LData := GetConnectedPeers;
LData := StringReplace(LData,' ',#127,[rfReplaceAll, rfIgnoreCase]);
result := format('peers'#127'%s',[LData]);
EndPerformance('RPC_GetPeers');
End;

function RPC_BlockOrders(NosoPParams:string):string;
Expand Down Expand Up @@ -705,6 +719,7 @@ function RPC_BlockOrders(NosoPParams:string):string;
end;

Begin
BeginPerformance('RPC_BlockOrders');
result := '';
setlength(arrayOrds,0);
blocknumber := StrToIntDef(NosoPParams,-1);
Expand Down Expand Up @@ -732,6 +747,7 @@ function RPC_BlockOrders(NosoPParams:string):string;
else result := result+'0'#127;
trim(result);
end;
EndPerformance('RPC_BlockOrders');
End;

function RPC_Masternodes(NosoPParams:string):string;
Expand All @@ -744,6 +760,7 @@ function RPC_Masternodes(NosoPParams:string):string;
Total : integer = 0;
IpAndport,Ip,port,address,age : string;
Begin
BeginPerformance('RPC_Masternodes');
Result := '';
source:= GetMN_FileText;
Block := parameter(source,0);
Expand All @@ -765,6 +782,7 @@ function RPC_Masternodes(NosoPParams:string):string;
until thisdata = '';
Result := 'getmasternodes'#127+Block+#127+IntToStr(Total)+#127+Nodes;
//Tolog('console',result);
EndPerformance('RPC_Masternodes');
End;

function RPC_Blockmns(NosoPParams:string):string;
Expand All @@ -776,6 +794,7 @@ function RPC_Blockmns(NosoPParams:string):string;
counter : integer;
AddressesString : string = '';
Begin
BeginPerformance('RPC_Blockmns');
result := '';
blocknumber := StrToIntDef(NosoPParams,-1);
if ((blocknumber<48010) or (blocknumber>MyLastblock)) then
Expand All @@ -794,15 +813,17 @@ function RPC_Blockmns(NosoPParams:string):string;
result := 'blockmns'#127'true'#127+blocknumber.ToString+#127+MNSCount.ToString+#127+
MNsReward.ToString+#127+TotalPAid.ToString+#127+AddressesString;
end;

EndPerformance('RPC_Blockmns');
End;

Function RPC_WalletBalance(NosoPParams:string):string;
var
LData : int64;
Begin
BeginPerformance('RPC_WalletBalance');
LData := GetWalletBalance;
result := format('walletbalance'#127'%d',[LData]);
EndPerformance('RPC_WalletBalance');
End;

function RPC_NewAddress(NosoPParams:string):string;
Expand All @@ -812,6 +833,7 @@ function RPC_NewAddress(NosoPParams:string):string;
NewAddress : WalletData;
PubKey,PriKey : string;
Begin
BeginPerformance('RPC_NewAddress');
TotalNumber := StrToIntDef(NosoPParams,1);
if TotalNumber > 100 then TotalNumber := 100;
result := 'newaddress'#127'true'#127+IntToStr(TotalNumber)+#127;
Expand All @@ -828,6 +850,7 @@ function RPC_NewAddress(NosoPParams:string):string;
trim(result);
S_Wallet := true;
U_DirPanel := true;
EndPerformance('RPC_NewAddress');
End;

function RPC_NewAddressFull(NosoPParams:string):string;
Expand All @@ -836,6 +859,7 @@ function RPC_NewAddressFull(NosoPParams:string):string;
NewAddress : WalletData;
PubKey,PriKey : string;
Begin
BeginPerformance('RPC_NewAddressFull');
result := 'newaddressfull'#127;
NewAddress := Default(WalletData);
NewAddress.Hash:=GenerateNewAddress(PubKey,PriKey);
Expand All @@ -847,30 +871,37 @@ function RPC_NewAddressFull(NosoPParams:string):string;
trim(result);
S_Wallet := true;
U_DirPanel := true;
EndPerformance('RPC_NewAddressFull');
End;

Function RPC_ValidateAddress(NosoPParams:string):string;
Begin
BeginPerformance('RPC_NewAddressFull');
If VerifyAddressOnDisk(Parameter(NosoPParams,0)) then
result := 'islocaladdress'#127'True'
else result := 'islocaladdress'#127'False';
EndPerformance('RPC_NewAddressFull');
End;

Function RPC_SetDefault(NosoPParams:string):string;
var
address : string;
Begin
BeginPerformance('RPC_SetDefault');
address := Parameter(NosoPParams,0);
if SetDefaultAddress('SETDEFAULT '+Address) then result := 'setdefault'#127'True'
else result := 'setdefault'#127'False';
EndPerformance('RPC_SetDefault');
End;

Function RPC_GVTInfo(NosoPParams:string):string;
var
available:int64;
Begin
BeginPerformance('RPC_GVTInfo');
available := CountAvailableGVTs;
result := 'gvtinfo'#127+IntToStr(available)+#127+IntToStr(GetGVTPrice(Available))+#127+IntToStr(GetGVTPrice(Available,True));
EndPerformance('RPC_GVTInfo');
End;

Function RPC_CheckCertificate(NosoPParams:string):string;
Expand All @@ -879,6 +910,7 @@ function RPC_NewAddressFull(NosoPParams:string):string;
SignTime : string;
Address : string;
Begin
BeginPerformance('RPC_CheckCertificate');
result := 'checkcertificate'#127;
cert := Parameter(NosoPParams,0);
Address := CheckCertificate(cert,SignTime);
Expand All @@ -890,13 +922,15 @@ function RPC_NewAddressFull(NosoPParams:string):string;
begin
Result := Result+'False';
end;
EndPerformance('RPC_CheckCertificate');
End;


Function RPC_SubmitOrder(NosoPParams:string;waitresponse:boolean=false):string;
var
ResultLine : string;
Begin
BeginPerformance('RPC_SubmitOrder');
//ToLog('Console',NosoPParams);
ResultLine := SendOrderToNode(NosoPParams);
ResultLine := StringReplace(ResultLine,' ','_',[rfReplaceAll, rfIgnoreCase]);
Expand All @@ -905,6 +939,7 @@ function RPC_NewAddressFull(NosoPParams:string):string;
begin
result := 'submitorderwr'#127'True'#127+ResultLine;
end;
EndPerformance('RPC_SubmitOrder');
End;

function RPC_SendFunds(NosoPParams:string):string;
Expand All @@ -914,25 +949,26 @@ function RPC_SendFunds(NosoPParams:string):string;
resultado : string;
ErrorCode : integer;
Begin
destination := Parameter(NosoPParams,0);
amount := StrToInt64Def(Parameter(NosoPParams,1),0);
reference := Parameter(NosoPParams,2); if reference = '' then reference := 'null';
//ToLog('console','Send to '+destination+' '+int2curr(amount)+' with reference: '+reference);
Resultado := SendFunds('sendto '+destination+' '+IntToStr(amount)+' '+Reference);

if ( (Resultado <>'') and (Parameter(Resultado,0)<>'ERROR') and (copy(resultado,0,2)='OR')) then
begin
result := 'sendfunds'#127+resultado;
end
BeginPerformance('RPC_SendFunds');
destination := Parameter(NosoPParams,0);
amount := StrToInt64Def(Parameter(NosoPParams,1),0);
reference := Parameter(NosoPParams,2); if reference = '' then reference := 'null';
//ToLog('console','Send to '+destination+' '+int2curr(amount)+' with reference: '+reference);
Resultado := SendFunds('sendto '+destination+' '+IntToStr(amount)+' '+Reference);
if ( (Resultado <>'') and (Parameter(Resultado,0)<>'ERROR') and (copy(resultado,0,2)='OR')) then
begin
result := 'sendfunds'#127+resultado;
end
else if (Parameter(Resultado,0)='ERROR') then
begin
ErrorCode := StrToIntDef(Parameter(Resultado,1),0);
result := 'sendfunds'#127+'ERROR'#127+IntToStr(ErrorCode);
end
begin
ErrorCode := StrToIntDef(Parameter(Resultado,1),0);
result := 'sendfunds'#127+'ERROR'#127+IntToStr(ErrorCode);
end
else
begin
result := 'sendfunds'#127+'ERROR'#127+'999';
end;
begin
result := 'sendfunds'#127+'ERROR'#127+'999';
end;
EndPerformance('RPC_SendFunds');
End;


Expand Down
2 changes: 1 addition & 1 deletion nosogeneral.pas
Original file line number Diff line number Diff line change
Expand Up @@ -529,7 +529,7 @@ function AppFileName():string;
EXCEPT on E:Exception do
begin
Result := false;
ToDeepDeb('NosoGeneral,SendFile,'+E.Message);
ToDeepDeb('NosoGeneral,SendFile,'+filename+' Error: '+E.Message);
end;
END;{Try}
if client.Connected then Client.Disconnect();
Expand Down
19 changes: 18 additions & 1 deletion nosonetwork.pas
Original file line number Diff line number Diff line change
Expand Up @@ -1091,6 +1091,19 @@ constructor TThreadClientRead.Create(const CreatePaused: Boolean; const ConexSlo
END;
End;

Function SendLineToClient(FSlot:Integer;LLine:String):boolean;
Begin
result := true;
TRY
CanalCliente[FSlot].IOHandler.Writeln(LLine);
EXCEPT ON E:EXCEPTION DO
begin
Result := false;
ToDeepDeb('NosoNetwork,SendLineToClient,'+E.Message);
end;
END;
End;

procedure TThreadClientRead.Execute;
var
LLine : String;
Expand Down Expand Up @@ -1124,7 +1137,11 @@ procedure TThreadClientRead.Execute;
LineToSend := GetTextToSlot(Fslot);
if LineToSend <> '' then
begin
CanalCliente[FSlot].IOHandler.Writeln(LineToSend);
if not SendLineToClient(FSlot,LineToSend) then
begin
killit := true;
break;
end;
end;
UNTIL LineToSend='' ;
end;
Expand Down
11 changes: 6 additions & 5 deletions releasenotes.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
Version 0.4.2 Cb6
Version 0.4.2 Cb7

Official release.
Beta release. Use it ONLY if you are a beta tester.

- RPC performance.
- Updated options
- Protected client write.

- Multi language support removed.
- Advanced masternodes protection.
- Summary multi thread protected.


0 comments on commit 341536e

Please sign in to comment.