Solidity

如何將solidity AST編譯為二進制程式碼?

  • August 2, 2019

我想做一些solidity原始碼的自動轉換。出於這個原因,我想使用solc --astor來獲取它的 AST 表示solc --ast-json並對其進行修改。

我的問題是:

  1. 修改 AST 的最佳方法是什麼?我應該使用文本還是 json 表示?
  2. 如何將修改後的 AST 編譯為二進制程式碼?我是否必須將 AST 轉換回原始碼,如果是,該怎麼做?
  3. 是否有任何現有工具可以提供此類所需功能?

您可以使用此工具修改 AST 並從 AST 生成新的原始碼:

https://github.com/chao-peng/SIF

修改 AST 應該是最難的部分。有一個預先存在的工具(XevXml),看起來它可能會為您將 AST 轉換為 XML,然後您可以對其進行修改。

要將修改後的 AST 轉換回二進製文件,理論上可以使用Rose Compiler。但是 Rose Compiler 對使用者不友好。我正試圖讓它現在工作,有很多路障。祝你好運。

引用自:https://ethereum.stackexchange.com/questions/23466