在松露中部署具有循环依赖关系的合同

时间:2018-02-06 09:27:01

标签: solidity truffle

CryptoKitties contracts显然具有循环依赖性。我不知道如何对松露的合同部署进行排序。

ClockAuction的构造函数需要一个实现" ERC721"的合同的地址。

在此代码中,ERC721由KittyOwnership实现,继承自KittyBase。

KittyBase包含对SaleClockAuction的引用,它继承自ClockAuction。

如何在这里组织松露部署?

无法首先部署SaleClockAuction,无法部署KittyBase。但是,SaleClockAuction的父母的构造函数需要KittyOwnership的地址,该地址继承自KittyBase。

简而言之:

  • ClockAuction需要部署KittyOwnership的地址。
  • KittyOwnership继承自KittyBase。
  • KittyBase需要SaleClockAuction。
  • SaleClockAuction继承自ClockAuction。

1 个答案:

答案 0 :(得分:3)

据我所知,确定合同的哪一部分会导致设定者/吸气者以及哪些合约合并在一起非常重要。

它们可能具有循环依赖关系,但它们都会导致像setSiringAuctionAddresssetSaleAuctionAddress

这样的setter函数

根据实际实时合同的面包屑,你可能会有更多的运气:

核心:https://etherscan.io/address/0x06012c8cf97bead5deae237070f9587f8e7a266d#code

开始:https://etherscan.io/address/0xc7af99fe5513eb6710e6d5f44f9989da40f27f26#code

促销:https://etherscan.io/address/0xb1690c08e213a35ed9bab7b318de14420fb57d8c#code