Go-Ethereum
Geth debug_traceTransaction 中 log.memory.slice 的輸出
有沒有其他人使用過 Geth 提供的基於 JavaScript 的跟踪器,作為其debug_traceTransaction方法的一部分?
我想在事務執行期間查看記憶體段(具體來說,我想檢索由內部呼叫生成的“輸入”數據)。
使用 JS 跟踪器,可以使用 訪問記憶體
log.memory
,其中有一個名為log.memory.slice
. 文件說,“將指定的記憶體段作為字節片返回”。
但我不知道這個字節片是什麼格式。
例如,當我請求一個 4 字節長的段時,我得到了這個:
"FscnIQ=="
. 我該如何解釋?當我在
debug_traceTransaction
沒有 JS 跟踪器的情況下執行並列印出記憶體時,我看到這 4 個字節應該是"0x16c72721"
.同樣,當我在記憶體全為 0 時請求記憶體中的第一個字節時,JS 跟踪器
log.memory.slice
返回字元串"AA=="
。編碼顯然不是十六進制,而且似乎也不是 ASCII。什麼樣的編碼映射
"0x00"
到"AA=="
?
啊,好吧,我想通了。的輸出
log.memory.slice
是base64編碼的。