Truffle

為什麼找不到任何來源的契約工件

  • April 17, 2022

我正在使用帶有 truffle 和 ganache-cli 的 Windows 10。我有 2 個要部署的契約文件包含契約中定義的其他契約的介面:

契約:

ERC721Mintable.sol

  • 可擁有
  • 可暫停是可擁有的
  • ERC165
  • ERC721 可暫停,ERC165
  • ERC721Enumerable 是 ERC165、ERC721
  • ERC721MetaData 是 ERC721Enumerable,使用 Oraclize
  • CraveuERC721Token 是 ERC721MetaData

驗證者.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);
 });
};

我正在使用 truffle 版本 5.0.18

產生的錯誤:錯誤:錯誤:無法從任何來源找到 SolnSquareVerifier 的工件

工件的名稱是根據契約的名稱定義的,而不是文件的名稱。

通常,最佳做法是使兩個名稱相同。

但是,在您的情況下,似乎:

  • SolnSquareVerifier是文件名
  • SolnSqaureVerifier是契約的名稱

請注意,aandu以不同的順序出現在每個名稱中。

引用自:https://ethereum.stackexchange.com/questions/70953