当前位置: 首页 > 知识库问答 >
问题:

在块菌上测试部署的智能合约

姬庆
2023-03-14

我用块菌测试合同有困难。我安装了最新版本的truffle以及TestRPC。

据我所知,最新版本的truffle附带了一个用于测试SmartContracts的客户端,因此不再需要TestRPC。

我有一个简单的合同,我的迁移是这样的:

var Migrations = artifacts.require("./Migrations.sol");
var OrdersFacilitator = artifacts.require("./OrdersFacilitator.sol")

module.exports = function(deployer) {
  deployer.deploy(Migrations);
  deployer.deploy(OrdersFacilitator);
};

当我运行松露开发时,我看到创建了10个测试帐户。

账户:

(0)0x627306090abab3a6e1400e9345bc60c78a8bef57

(1) 0xf17f52151ebef6c7334fad080c5704d77216b732/。。。

我的块菌js的配置如下:

networks: {
  development: {
    host: "localhost",
    port: 9545,
    network_id: "*"
  }
}

当我运行合同名称时,我可以看到其已部署的信息:

//...
class_defaults:
{ from: '0x627306090abab3a6e1400e9345bc60c78a8bef57',
 gas: 6721975,
 gasPrice: 100000000000 },
currentProvider:
 HttpProvider {
   host: 'http://127.0.0.1:9545/',
   timeout: 0,
   user: undefined,
   password: undefined,
   headers: undefined,
   send: [Function],
   sendAsync: [Function],
   _alreadyWrapped: true },
network_id: '4447' }

网络Id和端口似乎与配置匹配得很好,当我键入合同名称时,我可以看到信息,但是当我尝试访问它时

var facilitator;
OrdersFacilitator.deployed().then(x => facilitator = x);

我得到一个错误:

OrdersFacilitator尚未部署到检测到的网络(网络/工件不匹配)

我尝试过删除build文件夹并使用--reset标志迁移所有内容,但这似乎不起作用。如何测试部署的合同

共有2个答案

梁丘诚
2023-03-14

为了解决这个问题,我显式设置了网络选项和网络ID。

//Start Test RPC with an Explicit Network
testrpc --network-id 1337

然后,我为TestRPC创建了一个显式网络:

networks: {
  testrpc:{
    host: "localhost",
    port: 8545,
    network_id: "1337"
  }
}

现在,当我明确迁移到新网络时:

truffle migrate --network testrpc --reset
truffle console --network testrpc

这似乎正确地映射到了正确的网络

谈琦
2023-03-14

我在尝试同样的事情的e-Truffle项目中也看到过类似的问题。解决方案可能是将项目重置为非缓存状态。

您可以尝试使用--reset标志运行truffle compile(和/或truffle migrate)。这将删除builddir并重新编译所有内容。

 类似资料:
  • 部署智能合约及与智能合约交互 如果你想避免使用智能合约的底层实现细节,web3j提供solidity的智能合约的封装包,使你能够通过web3j生成的包装对象直接与智能合约的所有方法进行交互。 另外,如果你希望发送常规交易或希望在与智能合约的交互中有更多的控制权,请参阅web3j教程:java使用web3j开发以太坊智能合约交易,这里讲到了创建智能合约,与智能合约进行交易,查询智能合约的状态等内容。

  • 我在私有区块链网络上部署智能合约时遇到了问题。我在三个虚拟机(矿工)上创建了我的区块链网络,在第四个虚拟机(控制器)上使用木偶:https://medium.com/@collin.cusce/using-puppeth-to-manually-create-an-ethereum-proof-of-authority-clique-network-on-aws-ae0d7c906cce 之后,我

  • 构建与部署智能合约 智能合约的构建和部署发生在deploy方法中: YourSmartContract contract = YourSmartContract.deploy( <web3j>, <credentials>, GAS_PRICE, GAS_LIMIT, [<initialValue>,] <param1>, ..., <paramN>

  • 我正在尝试在Binance智能链网络上部署测试契约。我正在使用metamask和truffle来创建和测试合同。我的文件夹结构如下所示 块菌部署错误 我已经附上了所有我面临的错误代码。有人能帮我吗?我还安装了高清钱包提供商。块菌编译成功。

  • 8.1 RPC 之前的章节中我们看到了怎么写、部署合约以及与合约互动。现在该讲讲与以太坊网络和智能合约沟通的细节了。 一个以太坊节点提供一个 RPC界面。这个界面给 Ðapp访问以太坊区块链的权限和节点提供的功能,比如编译智能合约代码,它用 JSON-RPC 2.0规范(不支持提醒和命名的参数)的子集作为序列化协议,在 HTTP和 IPC (linux/OSX上的 unix域接口,在 Window

  • 本部分部署测试 VDB 并进行简单查询测试。 部署测试 VDB Table 1. 测试 VDB 如下 数据源 VDB 名称 VDB 部署文件 test test10-1-1-1-vdb test-vdb.xml 部署 test-vdb.xml 到 JDV 6.3 $ cd jboss-eap-6.4/standalone/deployments/ $ cp ../../test-vdb.xml .