Error: SimpleSmartContract has not been deployed to detected network (network/artifact mismatch)
Error: SimpleSmartContract has not been deployed to detected network (network/artifact mismatch)
我开发了一个简单的智能合约。当我 运行 truffle 测试时,它显示以下 error:i 是新的,所以我无法弄清楚。
PS F:\pracdap> 松露测试
Compiling your contracts...
===========================
√ Fetching solc version list from solc-bin. Attempt #1
> Compiling .\contracts\Migrations.sol
> Compiling .\contracts\SimpleSmartContract.sol
√ Fetching solc version list from solc-bin. Attempt #1
> Compilation warnings encountered:
Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "urce file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more informa
--> /F/pracdap/contracts/SimpleSmartContract.sol
> Artifacts written to C:\Users\HP\AppData\Local\Temp\test--1224-GWVOn3NGyps8
> Compiled successfully using:
- solc: 0.8.3+commit.8d00100c.Emscripten.clang
Contract: SimpleSmartContract
1) should be deployed
> No events were emitted
0 passing (128ms)
1 failing
1) Contract: SimpleSmartContract
should be deployed:
Error: SimpleSmartContract has not been deployed to detected network (network/artifact mismatch)
at Object.checkNetworkArtifactMatch (F:\node\node_modules\truffle\build\webpack:\packages\contract\lib\utils\index.js
at Function.deployed (F:\node\node_modules\truffle\build\webpack:\packages\contract\lib\contract\constructorMethods.j
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at Context.<anonymous> (test\simpleSmartContract.js:5:33)
Solidity 代码
pragma solidity >=0.4.22 <0.9.0;
contract SimpleSmartContract {
}
节点js。测试代码
const SimpleSmartContract = artifacts.require('SimpleSmartContract');
contract('SimpleSmartContract', () => {
it('should be deployed', async () => {
const simpleSmartContract = await SimpleSmartContract.deployed();
assert(simpleSmartContract.address !== '');
});
});
您似乎还没有为 SimpleSmartContract
添加 迁移 文件。
在迁移目录中创建一个名为 2_deploy_contracts.js
的文件。在其中添加以下代码:
const SimpleSmartContract = artifacts.require("SimpleSmartContract");
module.exports = function (deployer) {
deployer.deploy(SimpleSmartContract);
};
然后尝试 运行 测试。
尝试使用迁移...如果显示任何错误请告诉我。
const SimpleSmartContract = artifacts.require("SimpleSmartContract");
module.exports = async function(deployer, _network, accounts) {
await deployer.deploy(SimpleSmartContract);
};
您应该在迁移文件夹中创建一个新的 'migrations file',名称(可能)为 2_deploy_contracts.js。
异步函数参数:
deployer
: 部署合约
_network
: 指定网络(truffle-config.js)
accounts
:部署时访问 truffle 帐户(I.E Solidity 构造函数参数)
参考:https://trufflesuite.com/docs/truffle/getting-started/running-migrations.html
我开发了一个简单的智能合约。当我 运行 truffle 测试时,它显示以下 error:i 是新的,所以我无法弄清楚。
PS F:\pracdap> 松露测试
Compiling your contracts...
===========================
√ Fetching solc version list from solc-bin. Attempt #1
> Compiling .\contracts\Migrations.sol
> Compiling .\contracts\SimpleSmartContract.sol
√ Fetching solc version list from solc-bin. Attempt #1
> Compilation warnings encountered:
Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "urce file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more informa
--> /F/pracdap/contracts/SimpleSmartContract.sol
> Artifacts written to C:\Users\HP\AppData\Local\Temp\test--1224-GWVOn3NGyps8
> Compiled successfully using:
- solc: 0.8.3+commit.8d00100c.Emscripten.clang
Contract: SimpleSmartContract
1) should be deployed
> No events were emitted
0 passing (128ms)
1 failing
1) Contract: SimpleSmartContract
should be deployed:
Error: SimpleSmartContract has not been deployed to detected network (network/artifact mismatch)
at Object.checkNetworkArtifactMatch (F:\node\node_modules\truffle\build\webpack:\packages\contract\lib\utils\index.js
at Function.deployed (F:\node\node_modules\truffle\build\webpack:\packages\contract\lib\contract\constructorMethods.j
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at Context.<anonymous> (test\simpleSmartContract.js:5:33)
Solidity 代码
pragma solidity >=0.4.22 <0.9.0;
contract SimpleSmartContract {
}
节点js。测试代码
const SimpleSmartContract = artifacts.require('SimpleSmartContract');
contract('SimpleSmartContract', () => {
it('should be deployed', async () => {
const simpleSmartContract = await SimpleSmartContract.deployed();
assert(simpleSmartContract.address !== '');
});
});
您似乎还没有为 SimpleSmartContract
添加 迁移 文件。
在迁移目录中创建一个名为 2_deploy_contracts.js
的文件。在其中添加以下代码:
const SimpleSmartContract = artifacts.require("SimpleSmartContract"); module.exports = function (deployer) { deployer.deploy(SimpleSmartContract); };
然后尝试 运行 测试。
尝试使用迁移...如果显示任何错误请告诉我。
const SimpleSmartContract = artifacts.require("SimpleSmartContract");
module.exports = async function(deployer, _network, accounts) {
await deployer.deploy(SimpleSmartContract);
};
您应该在迁移文件夹中创建一个新的 'migrations file',名称(可能)为 2_deploy_contracts.js。
异步函数参数:
deployer
: 部署合约
_network
: 指定网络(truffle-config.js)
accounts
:部署时访问 truffle 帐户(I.E Solidity 构造函数参数)
参考:https://trufflesuite.com/docs/truffle/getting-started/running-migrations.html