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();
});