小编car*_*ver的帖子

如何在纯python中创建一个以太坊钱包?

我正在构建一个为用户创建钱包的应用程序.一个选项是web3.py中的web3.personal API,它有一个newAccount('passphrase')方法.该方法仅返回已创建帐户的地址.

我正在寻找的是一个类似于web3.js中的eth.accounts API的函数,它有一个create([entropy])方法.它返回一个带有"地址"," 私钥 "和其他详细信息的帐户对象.

我对以太坊和这种开发实践的想法很新,所以很乐意从你那里得到一些帮助.先感谢您.

python ethereum web3-donotuse

8
推荐指数
1
解决办法
4395
查看次数

使用本地私钥通过 web3.py 发送 ERC20 令牌

我正在尝试使用本地私钥在带有 web3.py 的 python 中发送 ERC20 令牌。

使用此代码,我可以发送以太:

w3 = Web3(HTTPProvider('https://api.myetherapi.com/eth'))
signed_txn = w3.eth.account.signTransaction(dict(
                nonce=w3.eth.getTransactionCount(from_address),
                gasPrice=w3.eth.gasPrice,
                gas=100000,
                to=to_address,
                value=12345,
                data=b'',
            ),
                private_key,
            )
w3.eth.sendRawTransaction(signed_txn.rawTransaction)
Run Code Online (Sandbox Code Playgroud)

然后我也发现了这个,但是估计Gas总是出错,在我看来,我无法像这样指定我发送的地址或通过某种签名证明它是我的地址?

contract = w3.eth.contract(address=address, abi=EIP20_ABI, bytecode=bytecode)
contract.functions.transfer(to_address, 121212).transact()
Run Code Online (Sandbox Code Playgroud)

所以我有 JSON abi、字节码、地址和我的私钥,我可以用我找到的代码以某种方式构建一个工作脚本吗?

提前致谢!

python token ethereum web3-donotuse erc20

7
推荐指数
1
解决办法
4950
查看次数

将异步生成器聚合为元组

在尝试从异步生成器聚合结果时,如下所示:

async def result_tuple():
    async def result_generator():
        # some await things happening in here
        yield 1
        yield 2
    return tuple(num async for num in result_generator())
Run Code Online (Sandbox Code Playgroud)

我得到一个

类型错误:“async_generator”对象不可迭代

执行该async for行时。

PEP 530似乎暗示它应该是有效的:

异步理解

我们建议允许将 async 用于内部列表、集合和字典推导式。等待 PEP 525 批准,我们还可以允许创建异步生成器表达式。

例子:

  • 集合理解:{i async for i in agen()};
  • 列表理解:[i async for i in agen()];
  • 字典理解:{i: i ** 2 async for i in agen()};
  • 生成器表达式:(i ** 2 async for i in agen())。

发生了什么,我如何将异步生成器聚合成一个tuple

python python-asyncio

7
推荐指数
1
解决办法
1625
查看次数

为什么我的以太坊区块号在 geth 中是 0,即使同步已接近完成?

> w3.eth.syncing
AttributeDict({
  'currentBlock': 5787386,
  'highestBlock': 5787491,
  'knownStates': 138355583,
  'pulledStates': 138341120,
  'startingBlock': 5787335,
})

> w3.eth.blockNumber
0
Run Code Online (Sandbox Code Playgroud)

我已经完成了完全同步,但块号始终为 0。

ethereum go-ethereum geth

6
推荐指数
2
解决办法
7435
查看次数

web3.py中sendTransaction和sendRawTransaction的区别

这些用于发送交易的 web3.py 方法之间的实际区别是什么?

  • w3.eth.sendTransaction({})
  • w3.eth.sendRawTransaction(signed_txn.rawTransaction)

ethereum web3-donotuse

5
推荐指数
1
解决办法
3045
查看次数