问题标签 [web3js]

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 投票
1 回答
1329 浏览

ethereum - Web3:没有提供者集

我正在使用 web3 (1.0.0-beta.27) 编写脚本,我正在尝试部署合约并监听事件。

这是代码的简化版本:

但是,当我运行代码时,出现以下错误:

我的理解是,将 URL 传递给 Web3 构造函数会设置提供程序,但这似乎不起作用。

0 投票
1 回答
852 浏览

ethereum - Solidity:如何获取正在调用函数的帐户

我正在尝试制作一个测试应用程序,其中帐户只能调用一次函数。这可能吗?我所需要的只是一种获取调用我的函数的帐户/地址的方法,也就是“发件人”部分。

谢谢

0 投票
1 回答
3716 浏览

ethereum - web3.toAscii 不是函数

我正在尝试Bytes32使用 web3.toAscii 将数据转换为以太坊(智能合约)中的字符串。但是,它给我一个错误(web3.toAscii 不是一个函数)。只是想知道这是一个已知问题还是 web3 API 中的错误?

0 投票
3 回答
38743 浏览

javascript - 使用 web3 ethereum 调用智能合约方法

尝试使用以太坊围绕区块链工作时,我在尝试与已部署的合约交互时遇到了问题。我将尝试实现的是调用一种方法来显示添加到使用 Geth 本地部署的私有区块链的信息。

我无法从我的智能合约中调用任何函数,我一直在想我是否做错了什么......有人可以告诉我如何从这个合约中实现对其中一个方法的简单调用吗?假设显示现有机构,或用户所属的机构名称。

我的合同:agent.sol

abi定义

成功部署:

最后contractInstance

我试过了:

结果是Error: Invalid number of arguments to Solidity function

结果Error: invalid address 我也试过打电话agencyToOwnercreateRandomAgency但没有任何效果。

任何帮助都会很高兴收到!谢谢,

0 投票
1 回答
5365 浏览

javascript - 未处理的拒绝错误:无效的 JSON RPC 响应:“”

我正在尝试在我的 ERC20 代币合约上调用一个方法。我正在连接到“ https://rinkeby.infura.io/”httpProvider。我可以call()常量方法,但是当我想通过调用send()函数来更改合约的状态时,我得到了这个提到的错误。如果您认为发布 ABI JSON 或 Solidity 合同有帮助,我也可以提供。我认为我的问题纯粹是web3相关的。我认为我需要(逻辑上)签署交易,但 web3 文档没有提及任何内容。http://web3js.readthedocs.io/en/1.0/web3-eth-contract.html#methods-mymethod-send

这是我得到的错误:

从调用此方法:

这是该方法的 ABI 片段:

0 投票
1 回答
4821 浏览

javascript - Web3/Metamask:错误:合约尚未部署到 Kovan 网络上检测到的网络(网络/工件不匹配)

我尝试部署一个已经存在于 Kovan 网络上的合约实例,以便与 web3 和 metamask 进行交互。

所以首先,我将 metamask 设置为我当前的提供者,然后我部署一个合约实例,如下所示:

但是,我收到以下错误:

我发现它是由 web3 的网络 ID 引起的,恰好是错误的。我的 web3 网络 ID 由 Metamask 设置,它应该使用正确的 ID 注入 web3。但是当我得到网络 ID 时,我得到了完全不同的结果:

有没有办法手动设置 web3 的版本网络?我查看了文档和 github,但没有有用的见解。

编辑:

似乎关闭和重新打开 chrome 解决了 ID 问题。所以现在我将两个 ID 都设置为 42 但错误仍然和以前一样。回到原点...

0 投票
1 回答
1460 浏览

truffle - Metamask chrome 扩展给出错误。我该如何解决?

我从metamask.

在此处输入图像描述

几个小时前它工作得很好。我尝试重新安装/禁用并再次重新启用,但没有任何效果。

此外,我的智能合约功能齐全(在基于 Remix Browser 的 IDE中测试),并且任何地方都没有其他错误或日志。我还重新启动Ganache并重新编译并重新迁移了我的合同,但没有运气。

这是我的可靠代码:

我将这些函数称为:

所有呼叫都只能通过这种方式进行。

我正在使用其中一个松露盒 ( REACT box),并且控制台中也没有日志/错误。

0 投票
0 回答
1017 浏览

javascript - 发送签名交易以部署合约(以太坊)

我的目标是发送已签名的交易以创建智能合约,但是,我遇到了几天无法解决的问题:

当我发送交易(在私有链上)时,有两个不同的结局:

- 1 Web3js 告诉我它有效,我可以看到区块上的交易。但是,当尝试联系合同时,我有以下输出:

错误:无法从 ABI 解码 uint256:0x

当我尝试eth.getCode(contractAddress)在 Geth 中运行时,它会返回0x

- 2 Web3js 告诉我该交易还没有挖到 50 个区块(节点没有时间挖到 50 个区块)。但我可以看到区块中的交易(在 geth 中)。

这是我使用的代码:

有人可以指出我做错了什么吗?

注意:我可以使用上述方法发送签名交易以在地址之间转移以太币。

编辑:估计气体返回以下内容:错误:

返回错误:所需气体超过限额或交易总是失败

0 投票
1 回答
1128 浏览

private-key - WEB3 | 使用公共地址导入私钥

我用一些命令创建了几个帐户,personal.newAccount() 创建的帐户被推送到列表中。我想要做的是,出于getAccount()安全原因,使用具有功能的公钥获取私钥。

我不想显示我的所有者地址和公钥,所以我想使用该函数从列表中获取地址。

然后,我想像下面这样获取具有该地址的私钥。

有没有办法使用 web3 做到这一点?有什么方法可以访问 javascript 文件上的密钥库吗?我必须sendTransaction()在 javascript 代码中使用函数,但它需要 privateKey 来签名。现在我将 privateKey 存储为静态的,我认为这很危险。我想在代码中隐藏我的所有者公钥和私钥。如果有人有好主意,请告诉我。太感谢了。

0 投票
1 回答
157 浏览

python - python的Web3端口是否完全实现了Web3 API?

Web3 有不同的端口,包括 python(参见https://web3py.readthedocs.io/en/stable/)。我的问题:

  • 它是 Web3 API 的完整实现吗?

  • 它与 Web3.js 一致吗?

谢谢。