Contract-Development
合約是否部署其導入的依賴合約?還是他們指向實時的、已經部署的版本?
這是關於使用導入的依賴項部署契約的一個非常新手的問題。
我正在使用 Chainlink
AggregatorV3Interface
和SafeMath
openzeppelin。import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol"; import "@openzeppelin/contracts/math/SafeMath.sol";
我注意到我自己寫的契約和契約
truffle compile
都吐出了 ABI 。為什麼松露會這樣做?AggregatorV3Interface``SafeMath
當我部署我的合約時,是否也部署了導入的依賴合約?
或者我的合約是否引用了
AggregatorV3Interface
Chainlink 已經部署到主網的合約?同樣,我的合約是否僅引用
SafeMath
OpenZeppelin 已經部署的合約?還是 Truffle 也部署了它?我注意到在 Remix 上,當使用
SafeMath
或者AggregatorV3Interface
你使用帶有絕對 URL 到 Github 的 import 時。所以,為什麼 Truffle 也編譯導入的合約有點令人困惑。
Truffle 編譯所有內容,包括那些導入的。導入的 SafeMath 包含在您的合約中,並且僅分發您的合約。它通過將部署的合約地址設置為 AggregatorV3Interface 的參數來引用已部署的合約。