0

例如查看此交易:https ://solscan.io/tx/4oQceeLgtDyHcrhStHsSKXGbC3QAF7CHrtUpeJTuthxuX1uTz3M3NYLsv3RiJ5caJ3yfneAYQ5VqAdQ3ebc8wH1A

Solscan 能够解码指令,例如#11 "Side"。在 EVM 链中,这并不困难,因为每个合约都有一个 ABI 可以帮助解码数据、事件等。

但我一直无法弄清楚如何在 Solana 上做到这一点。我们如何获取“指令数据”,例如000a000000010000005483000000000000fa4700000000000020b3666c0e000000020000000200000005aed06b1a84fb8fffff

并将其解码为像 Solscan.io 这样的服务能够做到的详细说明?

先感谢您

4

1 回答 1

0

不幸的是,对于不发布 IDL 的程序,部分答案是“你必须知道”。

例如,solana-py 为系统程序和 spl 令牌程序提供指令解码器。这是系统程序指令之一的解码器:https ://github.com/michaelhly/solana-py/blob/f41f020938d1fb257142f18608bcb884adb54479/src/solana/system_program.py#L196

对于具有 IDL 的程序,您可以查看 AnchorPy!它应该能够为任何带有 IDL 的 Anchor 程序生成可用的客户端:https ://kevinheavey.github.io/anchorpy/

于 2022-01-21T17:51:25.687 回答