问题标签 [consensys-truffle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
9668 浏览

ethereum - 为松露设置气体

truffle migrate在主要运行。也使用geth。我最初在 truffle.js 中将 gas price 和 gas 留空,但现在看起来像这样:

我似乎有一种情况,我要么有太多的气体,要么没有足够的气体,没有合适数量的可能性。

...或者...

当我web3.eth.getBlock("latest")在控制台中运行时,我得到gasLimit: 5000. 当我将 gas 设置为 5000 时,我收到资金不足的消息。当我将其设置为 5001 时,我得到“超过块气体限制”。

所以,这一切似乎都在告诉我,gasLimit 应该设置为 5000 或低于 5000,但在这种情况下,我没有足够的资金来运行交易。让我们来看看...

我有:

gas: 5000, gasPrice: 22000000000 // 在 Wei 中指定

5000 * 22000000000 = 1.1 * 10^14 = 110,000,000,000,000 Wei 1.1 * 10^14 / 10 ^ 18(1 Ether 中的 Wei 数量)= 1.1*10^-4 ETH

这是我正在使用的帐户:https ://etherscan.io/address/0x3984bc76cb775d7866d1cd55c4f49e3d13d411d4 。如您所见,它有资金。准确地说,在撰写本文时为 0.01738465 以太币。

0 投票
1 回答
361 浏览

testing - 运行松露测试时的非确定性异常

我一直在编写自动化测试,以使用他们的测试服务(我相信使用 Mocha 和 Chai)在 Truffle 中测试我的众筹功能。我无法理解为什么测试不确定地失败(即它们似乎在随机点失败,随机例外)。

例如/我运行我的测试,有时它们都通过了

我运行测试,有时会收到以下错误消息:

这是令人困惑的,因为断言与错误消息不匹配 - 但是更改断言失败,返回的消息是通过的早期测试的一部分(截止日期在受益人点击开始时设置)。

再次运行测试我得到:

我现在有以前的错误消息,现在又抛出另一个错误消息,错误消息与断言错误不匹配。

第四次运行测试我得到:

这是与前两个完全不同的错误。这同样令人困惑,因为之前的测试(受益人应该能够提取资金)也测试状态等于 6 并且该测试通过。

每次测试前,我退出松露控制台,从项目中删除我的构建文件夹,重新进入松露控制台并测试(这样我可以假设链已被重置),但我仍然收到错误,首先,不要'没有意义,因为我在通过 Dapp 自己测试时没有得到这些结果,其次,不要每次都出现,这似乎是随机时间和随机错误。

有没有其他人遇到过这个问题?

0 投票
1 回答
991 浏览

javascript - 如何为整个测试套件松露创建新的合同实例

我正在使用 Solidity 和 Truffle 在以太坊网络上设置 ERC20 代币 ICO。

谁能告诉我为什么这不起作用,我有 4 个测试文件(因为我希望它们尽可能简短和简洁),一个用于测试令牌,一个用于测试众筹的设置,一个用于测试成功运行(达到上限)和测试紧急停止功能。

出于这个原因,我想运行多个 it() 测试用例,它们使用前面的值来测试每个文件中自己的东西,即

在设置测试文件中:

首先 it() 测试是否部署了合约

其次 it() 测试合同变量是否设置正确等。

然后,我尝试在每个文件上创建令牌和合同的新实例,以便我可以运行各种测试用例。

每个文件都以:

但是,在运行我的测试时,我得到了错误:

完成成功的众筹测试文件运行后,状态尚未重置回 1,因此 Sale.new() 行不能工作。

有一个更好的方法吗?我错过了什么吗?

提前致谢。

0 投票
1 回答
1729 浏览

ethereum - 使用继承时如何将松露合约部署到开发网络?

我一直在尝试使用 Truffle 框架部署合约,最近我一直在开发网络上测试这些合约。

我的合约非常大,当我试图将其部署到测试网时,我被指示将其拆分,这样合约就不会超过 gas 限制。不过,请记住,该合约确实以默认的 gas 限制部署到了开发网络上。

所以我取出合同的一部分,从基础衍生出另一个合同,并在其中添加了已删除的部分。我试图将其部署到开发网络以再次对其进行测试,但现在出现错误:

所以我采取的步骤是:

  1. 将我的 gasLimit 更改为 100,000,000 没有解决它
  2. 检查我的合同是否是“抽象的”

    • 我对此的理解是,如果合约或其父合约具有任何没有实现的功能,则合约是抽象的。我的没有。
  3. 然后我从派生合约中删除了除构造函数之外的所有代码,但仍然出现此错误

我删除了该文件,并且部署像以前一样仅使用我的基本合同,因此父合同不能有任何未实现的功能,并且当我尝试从中派生一个空合同时它仍然不起作用(确保没有派生合同中的摘要)。

  1. 然后我将我的迁移文件拆分,以便单独进行迁移,但仍然没有运气。

我的父合同大约有 300 行长,所以在这里发布它没有意义 - 我知道有些人会说“它可能太大了”但是,它在开发网络上的 500 行长时部署,现在它只是250 行长,派生合约长 275 行,它不部署。

错误:

我的基础合约太大而无法发布,它本身就可以很好地部署,这意味着它不是抽象的。

我的派生合同是:

我的派生合同的迁移文件:

我在这里发布了这个问题,因为我担心这可能是 Truffle 部署的常见问题。

总而言之,我认为这与实际的气体限制没有任何关系,而是由于某种未知原因而失败并打印此错误消息。

0 投票
3 回答
4309 浏览

powershell - 在 Windows 10 上安装 Ganache.appx

我在 PowerShell 中使用以下命令在我的 Windows 10 机器上安装 Truffle 的 Ganache:

每当我运行该命令时,我都会收到以下错误:

我进行了更深入的诊断并运行了命令 Get-AppxLog -ActivityID 1e4d6f55-8379-0000-3191-4d1e7983d301,并获得了以下日志详细信息:

Windows 论坛建议我确保 Windows 已完全更新,我最后一次更新是一个小时前。

从错误中的链接中,它显示“无法满足指定的安装先决条件”。我具备安装和运行 testrpc/ganache cmd 行的所有先决条件。在安装 Ganache UI 之前我需要采取什么步骤吗?

0 投票
2 回答
1572 浏览

ethereum - 在拥塞的以太坊主网上使用什么 gasPrice 来部署合约

我正在尝试将合约部署到以太坊主网上,我已指定:

network_id: 1,

供应商:infura,

气体:5000000,

汽油价格:140

我不断收到错误:

或者

这是因为主网太拥挤了,矿工在 50 个区块期间没有收到我的交易吗?

其他人在主网上成功使用了哪些 gas/gasPrices?

0 投票
1 回答
1845 浏览

ethereum - web3 调用带有额外参数的 Solidity 合约函数?

http://truffleframework.com/tutorials/pet-shop示例中,有如下合约,该函数adopt(uint petId)只有一个参数。

但是,在 javascript 代码app.js中,该handleAdopt函数使用以下代码调用合约函数。

使用额外的对象调用该函数{from: account}。为什么?这个参数在solidity代码中被丢弃了吗?

顺便说一句,有一个未定义的全局变量web3?该值是否由 MetaMask 扩展分配?

0 投票
0 回答
410 浏览

azure - 错误:50 个区块后找不到合约交易

当我将我的智能合约迁移到私有 Azure 区块链时,我得到了这个。

我正在尝试迁移在 truffle develop 提供的开发区块链上成功部署的 ScoreStore 智能合约,但是在尝试部署到使用 Azure 模板构建的私有区块链时,10 分钟左右出现上述错误默认值(1 个交易节点、2 个挖矿节点和默认创世块)

我已经尝试过默认的 gas 和 gasPrice 值,甚至是高值和低值,但这个错误并没有消失。

有人遇到过或解决过这个吗?如何?

0 投票
5 回答
14188 浏览

ethereum - 合约尚未部署到 Rinkeby 网络上检测到的网络(网络/工件不匹配)

我一直遇到标题中指定的问题。

我开发了一个智能合约,并成功编译并部署到网络上如下: 1. 运行 testrpc 2. truffle compile 3. truffle migrate

但是,仍然显示上述错误。然后我尝试删除构建文件并按照以下步骤操作: 1. 运行 testrpc 2. truffle compile 3. truffle migrate --network rinkeby

错误仍在显示。

下面是 truffle.js 文件

} };

如果有人遇到任何类似的问题并已解决,如果您能分享您是如何解决的,我将不胜感激。

提前致谢

0 投票
2 回答
2472 浏览

npm - 无法将 Ganache 与 Truffle/Npm 开发服务器连接

我能够使用 Truffle 和 Ganache-cli。已经部署了合约并且可以使用 truffle 控制台来玩

现在,当我使用“npm run dev”启动服务器时。服务器启动正常但未连接到区块链

我收到错误

这是我的 truffle.js

你能指导我如何连接吗?