我会尝试用视觉的帮助来澄清我的问题。

上面的图片是我通常导入合同的方式。例如,我将C和B合同导入A,尽管B也已经导入了C。
然而,最近我发现,一种不同的方法会用同样的功能重新产生(见下图)。

因为B已经导入了C,所以它现在包含了它的功能。因此,我不必同时将B和C导入A,只需使用B合同即可(见下图)

我的问题是:正确的方法是什么,每种方法的好处/缺点是什么(如果有的话)。这里的图片很简单。但在我的实际项目中,我有十几个合同,其中许多是进口的。因此,这里有很多“进口复制”,这似乎是一个谨慎的问题。
发布于 2022-01-12 11:59:57
因为solidity 0.8.x你可以
import { contractA } from "contract/path/1";
import { contractB } from "contract/path/2";如果contractB也在contracA中使用,这将阻止它的影子导入。
https://ethereum.stackexchange.com/questions/118707
复制相似问题