I am using windows 10 with truffle and ganache-cli. I have 2 contracts file to be deployed contain interfaces of other contracts defined within the contract:



  • Ownable
  • Pausable is Ownable
  • ERC165
  • ERC721 is Pausable, ERC165
  • ERC721Enumerable is ERC165, ERC721
  • ERC721MetaData is ERC721Enumerable, usingOraclize
  • CraveuERC721Token is ERC721MetaData



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

Here's my 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);

I am using truffle version 5.0.18

Error Produced: Error: Error: Could not find artifacts for SolnSquareVerifier from any sources

1 Answer 1


The name of an artifact is defined according to the contract's name, not the file's name.

Typically, the best practice is to have both names identical.

In your case, however, it seems that:

  • SolnSquareVerifier is the file's name
  • SolnSqaureVerifier is the contract's name

Note that the a and u appear in a different order in each name.

  • Ahh couldn't find out that typo! My Bad :/ Thanks a lot thought May 21, 2019 at 18:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.