问题标签 [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 回答
156 浏览

web3 - 在 txpool 中等待 tx,但后来 tx 使用了 nonce

在提交一些 tx 并且它们处于“待处理”状态后,我遇到了一个奇怪的问题,但其他 tx 使用了这些待处理 tx 中的随机数。

如果我使用 web3 通过 web3.geth.txpool.content() 获取 txpool,我会在“待处理”部分中看到来自我的地址的几个条目。特别是随机数 3441-3443。如果我得到地址的当前事务计数,它显示 3441。如果我看一下 bscscan,我还有许多其他成功的事务,其 nonce 高于 3441....如果我浏览这些条目,我能够找到使用这些 nonce 的成功 txs……但我仍然有使用这些 nonce 的待处理 txs。

如果我尝试使用待处理 tx 中的 nonce 将待处理的交易替换为更高的 gas 价格,它似乎所做的就是更新 txpool 待处理部分中的交易。

0 投票
1 回答
1646 浏览

python-3.x - 如何使用 web3py 从整个以太坊网络获取所有交易数据

我正在尝试对加密货币(例如比特币、以太坊)数据进行一些分析,但无法找到数据源。例如,我想收集以太坊的输入地址、输出地址、交易时间、交易金额等交易数据。

我发现我可以使用 web3py 访问以太坊数据,但是是否可以获得最近在整个以太坊网络中进行的“所有”交易的数据,而不仅仅是连接到我自己的钱包(地址)的交易?例如,我想获取今天发生的所有以太坊交易的数据。

另外,我是否必须拥有自己的以太坊钱包(地址)才能使用 web3py 访问他们的数据?我想知道我是否需要一个特定的地址作为起点,或者我可以在不创建钱包的情况下抓取数据。

谢谢。

0 投票
0 回答
47 浏览

ethereum - 我怎样才能提高这个循环python的速度?

我是 python 编程的新手,我正在尝试分析 BSC 网络的待处理块。我的程序检查待处理的块(事件)并做一些事情。关键是在循环事件处于活动状态时会发生很多事件,而我的过程非常缓慢,无法实时分析所有新数据。

如果我删除函数 hash_analise() 并打印所有事件就可以了,程序接收数据的速度更快,我可以实时打印所有哈希值,但是当我调用这个函数时,我的程序变慢了。

我尝试使用线程,但我需要同步事件中的所有数据并使用 thread.join() 等待,但是当我等待这个线程时比以前慢。

有什么方法可以更快地运行吗?

感谢您的帮助,没有线程的代码:

0 投票
1 回答
5610 浏览

smartcontracts - 我们如何从代币中获得代币持有者?

我已经创建了自己的 ERC-20 令牌(AJR)并部署在以太坊私有节点上,现在我想按令牌名称列出所有交易。

另外,我需要使用合约地址或代币名称列出所有代币持有者。

我尝试使用 web3 获取,但我只得到符号、名称、总供应量等,而不是代币持有者或交易

下面是我的示例代码:

从 web3 导入 web3

Web3 = Web3(Web3.HTTPProvider('http://127.0.0.1:8545'))

contract_instance = Web3.eth.contract(contract_address, abi=abi)

print(contract_instance.functions.name().call())

0 投票
0 回答
227 浏览

python - 在 BSC 和 pancakswap 路由器上使用“getAmountsOut”跟踪令牌值时单位或小数有问题吗?

当我想检索每个 BUSD 或其他代币的代币值时,我遇到了问题。当我放置 >1BUSD 代币时它可能会起作用,但是当我尝试使用 <1BUSD 代币(例如 DOGECOIN)时,金额并不好,我尝试了许多“toWei”“fromWei”或“10 ** decimals”修改,但没有什么能给我带来好的结果。我不知道我的问题在哪里

abi 我用于:

有关信息,我成功地通过储备获得价格,但我真的想通过交换功能成功。

0 投票
0 回答
572 浏览

python - Web3.py 类型错误:地址 must be provided as a string

Hi stackeoverflow community !

I've an issue using web3.py library. I'm trying to interact with a deployed smart contract on the Polygon (layer2) network.

Hi stackeoverflow community !

I've an issue using web3.py library. I'm trying to interact with a deployed smart contract on the Polygon (layer2) network.

Here is my python code :

I don't understand because acct.address is a string (my public address from my privatekey) 20 bytes long (without "Ox" as prefix).

There is my solidity code :

And there is the full error :

I'm using the 5.21.0 version of Web3.py.

I will not provide my ABI here because it's a very long json file. But let me know if you need it.

I could try to call the solidity function with a RawTransaction, but i don't know how to pass parameters inside. If you have examples...

If you have any idea, please share and I will try it. Thanks :)


In your XML for View1 try adding a property for nextFocusDown. For example if the ID of View3 is View3 add the following to the XML for View1:

0 投票
0 回答
218 浏览

web3 - 无需在账户中留下 BNB 即可发送 BNB

想象一下,我有 0.1 BNB,我想将其中的大部分转移到另一个钱包。有没有办法在扣除gas费用后转移所有的BNB?如果我发送 0.1 个 BNB,那么我将没有要支付的汽油费金额,因此交易将失败,如果我输入的金额较少,那么一些 BNB 将留在账户中。我正在使用 web3。

0 投票
1 回答
751 浏览

web3py - 检查钱包是否被批准使用令牌

我想知道是否有办法检查令牌是否已被批准用于支出。我不是在问如何批准用于支出的代币,我已经通过参考了解了这部分:如何批准用于支出的代币(Uniswap 路由器合同)。我希望我的脚本在出售代币之前先进行检查,然后根据结果决定是先运行批准还是跳过它。这样一来,它就不会在每次买卖同一个代币时批准已经批准的代币。感谢您的所有帮助期待。

0 投票
1 回答
1549 浏览

python - 如何在 web3py 中使用 AsyncHTTPProvider?

我正在尝试在项目中使用 AsyncHTTPProvider,这是我的测试代码:

我将 ganache-cli 用于本地提供商。

我在网上找不到任何使用 AsyncHTTPProvider 的人的示例,即使在 web3py github 中我也找不到我能理解的示例(阅读大型库的拉取请求非常乏味)

当我运行此代码时,我收到以下错误:

查看错误日志,尽管使用了 AsyncHTTPProvider,但仍在使用“w3.manager.request_blocking”,这表明它仍在使用同步 api

我运行了以下代码以确保 web3 对象的提供程序实际上是异步的:

输出:

查看 web3py 存储库的测试,似乎我做的一切都是正确的,因为测试与 w3.eth 异步 api 交互的方式与我尝试的方式相同:

链接到添加测试的拉取请求(问题#2056)

唯一的问题是我无法弄清楚“async_w3”对象的声明在哪里

我开始我的项目的 web3 版本是:web3==5.20.1 我更新到最新版本,看看它是否能解决问题(web3==5.23.0),不,仍然是同样的旧错误

0 投票
1 回答
291 浏览

ethereum - 中间件未解决 test binance provider 中的 ExtraDataLengthError,导致未知帐户

它是 binance 上下文中的一个特定错误,如果您想在以下位置进行测试,请编写代码:

如果在没有中间件的情况下运行:

如果使用中间件解决方案运行(在互联网上的其他问题中有解释):

钱包(如余额)和合约(如总供应)的功能在 web3py 中工作。

通过 Metamask 发送令牌有效,但我需要通过 web3py 发送令牌 :(