Contract-Development

是否需要發布合約 ABI 和地址供他人與合約互動?

  • March 20, 2017

假設您編寫了一份希望其他人與之互動的契約。我的理解是,如果你想讓別人和你的合約互動,你需要提供合約的ABI和地址。 它是否正確?

如果是這樣,您是否會將合約的 ABI 和地址發佈在特定的地方供人們使用,以便他們可以與之互動?你會發布程式碼以便人們編譯合約並獲取 ABI 嗎?

或者,是否可以通過只知道它的地址/雜湊來與合約互動。

是的,為了讓人們與您的合約進行互動,您需要發布合約的 ABI 和地址。

為了更值得信賴,您還將發布您的合約原始碼(以及使用的編譯器版本和編譯器標誌),以便人們可以自己驗證在該地址部署的內容是否與原始碼匹配。通過提供您使用的原始碼和編譯器版本,人們還可以自己生成 ABI。

如果您不提供 ABI(或原始碼和編譯器詳細資訊),人們將無法輕鬆地與您的合約進行互動:他們將不得不從字節碼對您的合約進行逆向工程,以試圖找出您的功能名稱和參數是。

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