Solidity

如何找到外部介面函式的程式碼?

  • January 10, 2022

我正在學習導入合約,並註意到以下合約有一個沒有程式碼塊的外部介面函式。這段程式碼來自哪裡?

function version() external view returns (uint256);

https://github.com/smartcontractkit/chainlink/blob/00528a0217dc78fcdf509728b89ac986a1b6aa9f/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol#L9

這是Solidity 文件中的介面定義

介面不能實現任何功能。(…) 介面基本上僅限於 Contract ABI 可以表示的內容,ABI 和介面之間的轉換應該是可能的,不會失去任何資訊。

了解原始碼的一種方法是了解部署在網路上的介面的地址,該介面的程式碼已驗證。

具體來說AggregatorV3Interface.sol,每個數據饋送都有一個實現,例如:

AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331)

是乙太坊測試網 Kovan 網路上的數據饋送 ETH/USD。

如果去Kovan上的實現地址0x9326BFA02ADD2366b30bacB125260Af641031331,就會找到源碼。

查看Data Feeds API Reference以獲取有關 AggregatorV3Interface 和Ethereum Data Feeds地址的更多資訊。

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