Solana: восстановить открытые ключи источника и назначения с помощью TransactionSignature

Есть ли JS API для восстановления fromPubkey и toPubkey с учетом подписи транзакции?

1 ответ

Если у вас есть подпись транзакции, вы можете получить транзакцию с помощью JSON RPC API. getTransactionконечная точка: https://docs.solana.com/developing/clients/jsonrpc-api#gettransaction

Эта конечная точка позволяет запрашивать jsonParsedкодирование, которое на самом деле будет декодировать все для вас. Обратите внимание, что не все транзакции поддерживают синтаксический анализ JSON.

РЕДАКТИРОВАТЬ: приведенное ниже применимо только для закодированных транзакций и не требуется для системных инструкций, которые уже содержат парсер.

Предполагая, что закодированная транзакция действительно содержит инструкцию передачи в системную программу, существует decodeTransferпомощник для этого: https://github.com/solana-labs/solana/blob/005592998dd107b3d54d9203babe24da681834f5/web3.js/src/system-program.ts#L266

Для других переводов вам придется написать собственный декодер на JS. На стороне Rust все это уже определено для вас в solana-transaction-statusящик: https://github.com/solana-labs/solana/blob/master/transaction-status/src/parse_instruction.rs

Другие вопросы по тегам