Как я могу подписать транзакцию JSON?

У меня есть JSON-представление транзакции XRPL, как показано ниже, и я хочу подписать его на C++, используя rippled. Как я могу?

{
  "TransactionType" : "Payment",
  "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
  "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
  "Amount" : "1000000"
}

1 ответ

  1. Разобрать транзакцию, представленную классом STTx(что означает "сериализованный тип: транзакция") из JSON. У ripple-libpp есть хороший пример кода.
  2. Создайте ключ подписи, представленный типом SecretKey. Если у вас есть ключ подписи в кодировке Base58, вы можете использовать parseBase58 (проходить TokenType::AccountSecret для первого параметра).
  3. Получите проверочный ключ (представленный классом PublicKey) из ключа подписи с derivePublicKey (проходить KeyType::secp256k1 или KeyType::ed25519 для первого параметра, в зависимости от выбранного вами алгоритма подписи).
  4. Подпишите транзакцию с помощью STTx::sign.
  5. Прочитать подпись через Blob const signature = sttx.getFieldVL(sfTxnSignature)Blob - вектор байтов).
Другие вопросы по тегам