问题标签 [ganache]
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.
go - UnhandledPromiseRejectionWarning:错误:nonce 生成函数失败或私钥在 Ganache 中无效
在 Go 中,我使用go-ethereum从以太坊智能合约中读取数据。我的智能合约是用松露维护的。
我正在尝试根据候选人 ID 获取候选人信息。我在solidity中有一个修饰符,用于检查给定的id是否存在
如果我通过有效的CandidateId ,一切都会正常工作。但是如果候选人不存在并恢复,则会发生异常。以下是 ganache-cli 控制台中记录的错误
ethereum - 使用 web3.js 发送 signTransaction。但我无法在 ganache 中确认这笔交易
我想将数据放入 rawTransaction 并将其发送到 ganache 本地节点的智能联系人。顺便说一句,我使用数据进行的原始交易已创建,但我在 ganache 上看不到交易。你为什么这么做?
结果:
ganache(这些交易基于智能合约部署):
solidity - MetaMask - RPC 错误:错误:[ethjs-rpc] rpc 错误,有效负载 {"id":6553471421858,"jsonrpc":"2.0","params":
一直在关注https://github.com/dappuniversity/starter_kit中的示例,但是当我尝试购买代币时,MetaMask 错误出现了。
$ truffle version Truffle v5.1.14 (core: 5.1.14) Solidity v0.5.16 (solc-js) Node v12.18.3 Web3.js v1.2.1 Ganache
本地运行自定义 RPC
我试图增加 GAS,但没有奏效。该项目的所有测试都通过了,所有合同都编译了,但我似乎无法让它发挥作用。任何帮助将不胜感激。谢谢
主.js
应用程序.js
合同:
EthSwap.sol
令牌.sol
ethereum - Solidity/Truffle - 不能在 truffle 控制台中调用函数(但我可以混音)
我正在制定一份关于 Solidity 的“Betting Dapp”合同。我有一个名为的函数addContractFunds
,它允许我将以太坊发送到合约余额。但是,当我在 Ropsten 测试网络上的 truffle 控制台中调用此函数时,我收到以下错误:
TypeError:无法读取未定义的属性“地址”
松露控制台内部:
有趣的是,当我运行此合约并在 Remix(在 ropsten 上)或在本地使用 ganache 进行测试时,一切正常。有人知道发生了什么吗?
这是我的合同代码
npm - 如何使用 1.2.x 版本从 web3 获取特定帐户?
在旧版本的 web3 中web3.eth.accounts[0]
返回一个特定的帐户。我用它作为投票函数的参数,如下所示:
从1.2.x版本开始, web3 使用web3.eth.getAccounts()
返回节点控制的帐户列表。
如何像以前使用此 web3 版本一样获得特定帐户?
ethereum - 如何从 Truffle 控制台与 OpenZeppelin 代理合约进行交互?
我无法弄清楚如何使用@truffle/contract 与包@openzeppelin/truffle-upgrades(ProxyAdmin 和 AdminUpgradeabilityProxy)部署的合约进行交互。我已将合约部署到 Ganache:
这是我尝试过的代码:
但它会抛出一个错误:
网络是一样的(Ganache)。
我究竟做错了什么?
blockchain - 为什么我在读取以太坊账户余额时会得到两个不同的答案?
我试图以两种不同的方式读取几个以太坊测试账户的余额并得到两个不同的答案,但不是针对所有账户。更具体地说,我正在使用 Ganache 建立一个测试以太坊网络,并使用连接到测试网络的 Remix 部署以下智能合约。默认情况下,第一个帐户用于部署事务。
balanceOf
在 Ganache 提供的帐户上调用 Remix 中的函数就像一个魅力。然后我使用最新的 Web3.py 库运行以下 Python 代码来调用balanceOf
所有帐户的函数。
如您所见,余额是通过两种方式计算的:
- 通过调用
balanceOf
产生第一个数字的合约函数, - 通过调用
web3.eth.getBalance
Web3 的方法产生第二个数字。结果是这样的
如您所见,balanceOf
合约的功能对第一个地址产生了错误的结果。该web3.eth.getBalance
方法显示了正确的结果(100 - 用于部署的气体)。我在没有重新启动 Ganache 网络的情况下再次部署合约并得到以下结果(仍然调用第一次部署,但没关系):
如您所见,由于第二次部署交易,第一个值出人意料地上升了 gas 费(约 0.002),而第二个值下降了相同的数量,正如预期的那样。最后,我使用第二个帐户而不是第一个帐户再次部署了合同。同样,两个余额计算都给出了正确的结果,除了第一个帐户:
我是区块链技术的新手,我想知道是否有人可以向我解释balanceOf
使用 Web3 的第一个帐户(仅!!!)的功能的奇怪行为。正如我所说,在 Remix 中调用函数总是给出正确的结果。
PS:这不是 Python 问题。我使用 Web3.js 库做了同样的观察。
blockchain - TypeError [ERR_INVALID_REPL_INPUT] [ERR_INVALID_REPL_INPUT]: `uncaughtException` 的监听器不能在 REPL 中使用
我正在尝试测试我的第一个区块链应用程序。这是我的代码
但我收到此错误:
环境
ethereum - ganache-cli 如何从账户 json 文件中读取私钥
我正在通过节点应用程序运行 ganache-cli:
这将运行 ganache-cli 并在accounts.json
. 该文件如下所示:
我可以看到帐户地址,但是如何从这些信息中解码/获取私钥?