Contract-Development

合約是否部署其導入的依賴合約?還是他們指向實時的、已經部署的版本?

  • February 20, 2021

這是關於使用導入的依賴項部署契約的一個非常新手的問題。

我正在使用 ChainlinkAggregatorV3InterfaceSafeMathopenzeppelin。

import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";
import "@openzeppelin/contracts/math/SafeMath.sol";

我注意到我自己寫的契約和契約truffle compile都吐出了 ABI 。為什麼松露會這樣做?AggregatorV3Interface``SafeMath

當我部署我的合約時,是否也部署了導入的依賴合約?

或者我的合約是否引用了AggregatorV3InterfaceChainlink 已經部署到主網的合約?

同樣,我的合約是否僅引用SafeMathOpenZeppelin 已經部署的合約?還是 Truffle 也部署了它?

我注意到在 Remix 上,當使用SafeMath或者AggregatorV3Interface你使用帶有絕對 URL 到 Github 的 import 時。所以,為什麼 Truffle 也編譯導入的合約有點令人困惑。

Truffle 編譯所有內容,包括那些導入的。導入的 SafeMath 包含在您的合約中,並且僅分發您的合約。它通過將部署的合約地址設置為 AggregatorV3Interface 的參數來引用已部署的合約。

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