How can I link library and contract in one file Hardhat?
如果library是在一个合约内部调用应该使用internal可见性
您将函数的可见性设置为external。在这种情况下,您必须部署该库,然后需要在合约部署中为该库指定一个链接。解决问题的方法是使功能可见internal。
beforeEach(async () => { signers = await ethers.getSigners(); const Lib = await ethers.getContractFactory("TokenTrait"); const lib = await Lib.deploy(); await lib.deployed(); const contractFactory = await ethers.getContractFactory("SampleNft", { signer: signers[0], libraries: { TokenTrait: lib.address, }, }); contract = await contractFactory.deploy(); });