Solidity

是否可以在沒有原始碼的情況下導入現有合約?

  • September 1, 2022

沒有從創建者那裡保存的原始碼,也沒有在範圍內驗證(它是 Klaytn)。我得到了契約的所有權。我想導入合約並與之互動以執行一些功能,例如 setApprovalForAll。是否可以在沒有原始碼的情況下導入契約?如果是這樣,我該怎麼做?

您可以使用介面來執行此操作。只需使用目標合約上存在的函式來定義它。例如:

interface IExample {
 function setApprovalForAll(address _operator, bool _approved) external;
}

setApprovalForAll個例子,我猜你正在與之互動的是 ERC721 合約。如果是這樣,您可以直接從EIP-721中獲取介面

一旦你有了介面,它就像將地址投射到它一樣簡單:

IExample example = IExample(contractAddress);

然後你可以呼叫那個實例上的函式

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