问题标签 [web3py]

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 回答
534 浏览

python - Web3.eth:溢出错误:Python int 太大而无法转换为 C ssize_t

我正在尝试获取各种代币合约的符号,但对于其中一些,我收到以下错误:

溢出错误:Python int 太大而无法转换为 C ssize_t

这是一个最小的可重现示例:

我不知道为什么会出现此错误,尤其是考虑到它适用于某些合同但不适用于其他合同。任何帮助,将不胜感激!

0 投票
1 回答
429 浏览

ethereum - 如何在 web3 中获取有关删除和替换事务的信息?

我正在使用 web3.py。

  1. 如何获取有关删除和替换交易的信息?
  2. 如何获取有关待处理交易的信息?
0 投票
3 回答
812 浏览

python - 如何解决在 windows 中安装 web3 for python 的问题?

我正在尝试在 Windows 10 上为 python3.7.5 安装 web3。但我每次都会收到此错误。我不知道该怎么办,因为我已经安装了“Microsoft Visual C++ 14.0”和Build Tools。我也尝试在虚拟环境中安装,但以同样的错误结束。谢谢你的建议。

0 投票
1 回答
1202 浏览

python - 如何获取事件日志 Web3.py?

我正在使用solidity 0.7.4、web3.py 5.12.2 和python 3.7。

我正在使用 Windows 10。

我的目标是在solidity函数中发出一个事件,以便在函数执行后检索日志。

这是我的活动event logString(string arg);

这就是我发出事件的方式emit logString("example string");

在 Remix 上它可以工作,并且我能够在事务日志中检索我发出的字符串。

当我在 Python 上尝试它时,它不起作用。

这是我的 Python 代码:

不幸tx_receipt['logs']的是是空的,我得到了一个例外。

您知道如何检索事件日志吗?

0 投票
0 回答
2571 浏览

python-requests - requests.exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=7545): url 超出最大重试次数:/

我使用以太坊创建了一个区块链应用程序,我下载了一个虚拟盒子。我在虚拟盒子上激活了智能合约,并将其连接到原始设备上的 Python 文件。执行应用程序时,我收到此错误:

如何将计算机上的智能合约与虚拟盒子上的 web3.py 文件链接???在以太坊网络上做一些测试

0 投票
1 回答
520 浏览

python - 无法安装 'web3[tester]' (Python)。命令行警告 - D9002

版本:web3==5.13.0 Python:3.9.0 操作系统:win 10

pip freeze输出 -

产生错误的代码 - 错误pip install 'web3[tester]' 的完整输出 -

也许,错误在于线路 -cl : Command line warning D9002 : ignoring unknown option '-std=gnu99'但不确定。

感谢所有帮助我找出并纠正问题的人。

0 投票
0 回答
438 浏览

python - Python web3 获得最大持有者

我正在使用 web3 5.14.0Infura

我正试图获得一些硬币的最大持有者(例如现在的链环)。为此,我认为我需要遍历所有传输事件并创建所有接收传输的字典。除非有更直接的解决方案。

所以我写了以下内容:

这总是返回一个空列表。知道如何规避这个吗?

谢谢!

0 投票
1 回答
228 浏览

blockchain - 为什么我的以太坊智能合约交易在 X 笔交易后没有显示?

我正在 Kovan 测试网上测试我制作的一个非常简单的合约(只有一个发出特定事件的函数)。现在这本身就可以很好地工作,但是当使用 web3.py 并在短时间内(500 可能在 5-10 分钟内)进行许多交易时,似乎只有 1/3 出现,而​​不是停止更新(使用它来查看合约交易),请注意,web3.py 不会引发错误,并且与 remix 上的合约交互仍然显示成功,但是我根本看不到任何更新。所以我只是好奇是否有任何速率限制,或者只是我不熟悉的以太坊/智能合约的功能导致了这个问题。

0 投票
1 回答
1653 浏览

python - 没有明显原因的智能合约函数调用上的ValidationError(web3py)?

我正在尝试调用 Uniswap 的路由器函数swapExactTokensForETHSupportingFeeOnTransferTokens()。当我在 etherscan 上手动输入值时,它会通过。但是,当我通过 python 代码执行此操作时,它会给我一个验证错误。错误如下所示:

web3.exceptions.ValidationError: Could not identify the intended function with name swapExactTokensForETHSupportingFeeOnTransferTokens, positional argument(s) of type (<class int>, <class int>, <class list>, <class str>, <class float>) and keyword argument(s) of type {}. Found 1 function(s) with the name swapExactTokensForETHSupportingFeeOnTransferTokens: [swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)] Function invocation failed due to no matching argument types.

这是我使用的代码:

我应该以某种方式将我的整数转换为 python 中的无符号整数吗?我试过了,但没有解决。我正在使用 web3py 库。有人可以指导我解决问题或调用所述函数的现有代码吗?

谢谢。

编辑:

我将时间戳转换为 int,并使用 web3.toChecksum 方法确保我的地址字符串是校验和。

当我运行它时,它给了我这个错误:

raise SolidityError(response['error']['message']) web3.exceptions.SolidityError:执行恢复:TransferHelper:TRANSFER_FROM_FAILED

0 投票
1 回答
7549 浏览

python - 如何批准用于消费的代币(Uniswap 路由器合约)

我试图批准并稍后通过 web3py 代码在 uniswap 上交换我的令牌。我也在使用 infura,而不是我自己的节点。但是,在交换和批准时,我都遇到了solidityErrors。问题是 web3 无法识别我的帐户,即使我签署了 tx 并将我的私钥传递给它。关于如何让 web3 识别我的钱包的任何想法?

这是我的批准功能代码。

我在估算气体,所以我知道在发送之前要使用多少气体。我知道我需要使用 sendRawTransaction 作为本地私钥。文档并不清楚如何与现有智能合约的本地私钥进行交互。