我正在使用带有 truffle 和 ganache-cli 的 Windows 10。我有 2 个要部署的合约文件,其中包含合约中定义的其他合约的接口:
合同:
ERC721Mintable.sol
验证器.sol
SolnSquareVerifier.sol
pragma solidity >=0.4.21 <0.6.0;
import "./ERC721Mintable.sol";
import "./Verifier.sol";
contract SolnSqaureVerifier is CraveuERC721Token {
SquareVerifier squareVerifier;
constructor(address verifierAddress) public {
squareVerifier = SquareVerifier(verifierAddress);
}
这是我的deploy_contracts.js:
const SquareVerifier = artifacts.require("Verifier");
const SolnSquareVerifier = artifacts.require("SolnSquareVerifier");
module.exports = function(deployer) {
deployer.deploy(SquareVerifier).then( () => {
return deployer.deploy(SolnSquareVerifier, SquareVerifier.address);
});
};
我使用的是松露版本5.0.18
产生错误:错误:错误:找不到工件 来自任何来源的 SolnSquareVerifier
您的合约名称有错字
SolnSqaureVerifier
,应该是SolnSquareVerifier
将合约文件夹中的 .sol 文件重命名为您想要的任何名称。 然后再次
truffle migrate
。
确保您的智能合约的文件名一致且为大写字母,例如
HealthContract.sol
,不要将其命名为healtcontract.sol
或health_contract.sol
。contract HealthContract
。 solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract HealthContract {
// Smart contract logic
}
var HealthRecord = artifacts.require('HealthContract');
module.exports = function (deployer) {
deployer.deploy(HealthRecord)
}