Как я могу подписать JSON транзакцию? - PullRequest
1 голос
/ 13 марта 2020

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

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

1 Ответ

0 голосов
/ 13 марта 2020
  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) (a Blob - это вектор байтов).
...