Почему не удалось найти артефакты для контракта из каких-либо источников

Я использую Windows 10 с трюфелем и Ganache-Cli. У меня есть 2 файла контрактов для развертывания, которые содержат интерфейсы других контрактов, определенных в контракте:

Контракты:

ERC721Mintable.sol

  • Ownable
  • Паузу можно
  • ERC165
  • ERC721 является паузой, ERC165
  • ERC721Номерным является ERC165, ERC721
  • ERC721MetaData является ERC721Numerable, используя Oraclize
  • CraveuERC721Token является ERC721MetaData

Verifier.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 из каких-либо источников

3 ответа

В вашем контракте есть опечатка SolnSqaureVerifier, так должно быть SolnSquareVerifier

Убедитесь, что имя файла вашего смарт-контракта единообразно и написано заглавными буквами, например

  • 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)
  }

Переименуйте файл .sol в папке контракта на любое имя, которое вы хотите. Затемtruffle migrateснова.

Другие вопросы по тегам