Răsfoiți Sursa

PIP-0041: Pay2Key bug fixes for sendto/signsendto RPC

Herman Schoenfeld 4 ani în urmă
părinte
comite
90c4242ee4
5 a modificat fișierele cu 15 adăugiri și 12 ștergeri
  1. 9 9
      src/core/UEPasa.pas
  2. 1 1
      src/core/UEncoding.pas
  3. 1 0
      src/core/UPCRPCSend.pas
  4. 2 0
      src/core/URPC.pas
  5. 2 2
      src/core/UWallet.pas

+ 9 - 9
src/core/UEPasa.pas

@@ -222,15 +222,15 @@ var
 function TPayloadTraitHelper.ProtocolValue: Byte;
 begin
   case Self of
-    ptNonDeterministic: Result := 0;
-    ptPublic: Result := BYTE_BIT_0;
-    ptRecipientKeyEncrypted: Result := BYTE_BIT_1;
-    ptSenderKeyEncrypted: Result := BYTE_BIT_2;
-    ptPasswordEncrypted: Result := BYTE_BIT_3;
-    ptAsciiFormatted: Result := BYTE_BIT_4;
-    ptHexFormatted: Result := BYTE_BIT_5;
-    ptBase58Formatted: Result := BYTE_BIT_6;
-    ptAddressedByName: Result := BYTE_BIT_7;
+    ptNonDeterministic: Exit(0);
+    ptPublic: Exit(BYTE_BIT_0);
+    ptRecipientKeyEncrypted: Exit(BYTE_BIT_1);
+    ptSenderKeyEncrypted: Exit(BYTE_BIT_2);
+    ptPasswordEncrypted: Exit(BYTE_BIT_3);
+    ptAsciiFormatted: Exit(BYTE_BIT_4);
+    ptHexFormatted: Exit(BYTE_BIT_5);
+    ptBase58Formatted: Exit(BYTE_BIT_6);
+    ptAddressedByName: Exit(BYTE_BIT_7);
   end;
   raise Exception.Create('Internal Error 2faed11a-1b0f-447a-87d1-2e1735ac4ca2');
 end;

+ 1 - 1
src/core/UEncoding.pas

@@ -106,7 +106,7 @@ type
     public
       const
         CharSet = '0123456789abcdef';
-        NibblePattern = '[0-9a-f]';
+        NibblePattern = '[0-9a-fA-F]';
         BytePattern = NibblePattern + '{2}';
         SubStringPattern = '(?:' + BytePattern + ')+';
         StringPattern = SubStringPattern + '$';

+ 1 - 0
src/core/UPCRPCSend.pas

@@ -149,6 +149,7 @@ begin
 
   if Not TPascalCoinJSONComp.OverridePayloadParams(AInputParams, LTargetEPASA) then begin
     AErrorNum := CT_RPC_ErrNum_AmbiguousPayload;
+    AErrorDesc := 'Target EPASA payload conflicts with argument payload.';
     Exit;
   end;
 

+ 2 - 0
src/core/URPC.pas

@@ -431,7 +431,9 @@ begin
      AInputParams.SetAs('payload_method', TPCJSONVariantValue.CreateFromVariant('aes'));
      AInputParams.SetAs('payload', TPCJSONVariantValue.CreateFromVariant(AEPASA.GetRawPayloadBytes().ToHexaString()));
      AInputParams.SetAs('pwd', TPCJSONVariantValue.CreateFromVariant(AEPASA.Password));
+     Result := True;
    end;
+   Result := True;
 end;
 
 class function TPascalCoinJSONComp.CapturePubKey(

+ 2 - 2
src/core/UWallet.pas

@@ -592,7 +592,7 @@ begin
   Result := CT_TECDSA_Public_Nul;
   case TSettings.MinerPrivateKeyType of
     mpk_NewEachTime: PublicK := CT_TECDSA_Public_Nul;
-    mpk_Selected: PublicK := TAccountComp.RawString2Accountkey(TSettings.MinerSelectedPrivateKey);
+    mpk_Selected: PublicK := TAccountComp.RawString2Accountkey(TSettings.MinerSelectedPublicKey);
     mpk_Random: begin
       PublicK := CT_TECDSA_Public_Nul;
       if FKeys.Count>0 then PublicK := FKeys.Key[Random(FKeys.Count)].AccountKey;
@@ -612,7 +612,7 @@ begin
       // Set to Settings if not mpk_NewEachTime
       if (TSettings.MinerPrivateKeyType<>mpk_NewEachTime) then begin
         TSettings.MinerPrivateKeyType:=mpk_Selected;
-        TSettings.MinerSelectedPrivateKey := TAccountComp.AccountKey2RawString(PublicK);
+        TSettings.MinerSelectedPublicKey := TAccountComp.AccountKey2RawString(PublicK);
       end;
     finally
       PK.Free;