在 Truffle 中部署具有循环依赖的合约
Deploying Contracts with Circular Dependency in Truffle
CryptoKitties contracts 显然有循环依赖。我不知道如何对 Truffle 中的合约部署进行排序。
ClockAuction 的构造函数需要一个实现 "ERC721" 的合约的地址。
这段代码中,ERC721是由KittyOwnership实现的,继承自KittyBase
KittyBase 包含对继承自 ClockAuction 的 SaleClockAuction 的引用。
这里应该如何构建 Truffle 部署?
如果不先部署 SaleClockAuction,就无法部署 KittyBase。但是,SaleClockAuction 的父级构造函数需要一个继承自 KittyBase 的 KittyOwnership 地址。
简而言之:
- ClockAuction 需要部署的 KittyOwnership 地址。
- KittyOwnership 继承自 KittyBase。
- KittyBase 需要 SaleClockAuction。
- SaleClockAuction 继承自 ClockAuction。
据我所知,确定合约的哪一部分导致 setters/getters 以及哪些合约组合在一起非常重要。
它们可能有循环依赖,但它们都会导致 setter 函数,例如 setSiringAuctionAddress
和 setSaleAuctionAddress
跟踪实际实时合约本身的面包屑可能会更幸运:
核心:https://etherscan.io/address/0x06012c8cf97bead5deae237070f9587f8e7a266d#code
先生:https://etherscan.io/address/0xc7af99fe5513eb6710e6d5f44f9989da40f27f26#code
促销:https://etherscan.io/address/0xb1690c08e213a35ed9bab7b318de14420fb57d8c#code
CryptoKitties contracts 显然有循环依赖。我不知道如何对 Truffle 中的合约部署进行排序。
ClockAuction 的构造函数需要一个实现 "ERC721" 的合约的地址。
这段代码中,ERC721是由KittyOwnership实现的,继承自KittyBase
KittyBase 包含对继承自 ClockAuction 的 SaleClockAuction 的引用。
这里应该如何构建 Truffle 部署?
如果不先部署 SaleClockAuction,就无法部署 KittyBase。但是,SaleClockAuction 的父级构造函数需要一个继承自 KittyBase 的 KittyOwnership 地址。
简而言之:
- ClockAuction 需要部署的 KittyOwnership 地址。
- KittyOwnership 继承自 KittyBase。
- KittyBase 需要 SaleClockAuction。
- SaleClockAuction 继承自 ClockAuction。
据我所知,确定合约的哪一部分导致 setters/getters 以及哪些合约组合在一起非常重要。
它们可能有循环依赖,但它们都会导致 setter 函数,例如 setSiringAuctionAddress
和 setSaleAuctionAddress
跟踪实际实时合约本身的面包屑可能会更幸运:
核心:https://etherscan.io/address/0x06012c8cf97bead5deae237070f9587f8e7a266d#code
先生:https://etherscan.io/address/0xc7af99fe5513eb6710e6d5f44f9989da40f27f26#code
促销:https://etherscan.io/address/0xb1690c08e213a35ed9bab7b318de14420fb57d8c#code