Solidity

是否可以僅使用合約地址在 js 中實例化已部署的合約?不複製 abi 數據?

  • June 7, 2020

是否可以僅使用合約地址在 js(dapp) 中實例化已部署的合約?不複製 abi 數據?

如果您只有合約的地址,您只能在該地址看到其字節碼。如果沒有一些逆向工程,你就無法知道合約是什麼樣的以及你應該如何與之互動。

如果您已經知道如何與合約進行互動,那麼您基本上擁有所需的 ABI 並且可以進行互動。如果你不知道如何與之互動,那麼你就無法與之互動——如果你不知道合約的用途和使用方法,那麼與合約互動的意義何在。

如果您在 etherscan.io 等服務中輸入合約地址,您可能會看到許多額外的資訊,例如原始碼,並且您可以從原始碼中獲取 ABI。然而,這只是 Etherscan 提供的額外服務,並不儲存在區塊鏈上。因此,通過使用外部額外服務,您可以獲得所需的資訊。

簡單的回答:

除非您知道它遵循標準,否則很難實用(因此可能暗示大部分 ABI)

有時回答:

你可以查詢 etherscan 和類似的服務,這些服務可能具有經過驗證的契約來源。如果他們這樣做,他們也有可用的 ABI。

https://etherscan.io/apis

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