我使用元变量(window.ethereum)作为我的Web3提供程序,但是对于生产,我将切换到炼金术,并意识到provider.listAccounts()方法停止了与炼金术提供者的工作。查看源代码,看起来它总是返回一个空数组。读医生们我发现
由于炼金术不存储密钥,这将始终返回为空。
这是否意味着在生产过程中,我会使用Metamask提供者来查询帐户,然后再使用炼金术来完成其他所有事情?哪些替代方案不需要同时使用?谢谢
发布于 2021-12-24 10:31:27
据我所知,在读取dapp中的所有必要信息时,您将使用快速连接提供程序,例如炼金术。你不会从炼金术那里得到任何账户,因为你想要的不是炼金术的钥匙。在与区块链交互时(实际上是发送事务),您需要向用户的Metamask (provider)发送请求,因为它们拥有用于签署事务的私钥。然后事务直接从Metamask发送到块链,因此“写”部分通常由用户web3提供程序处理。我通常是这样说的,因为您可以请求用户签署一个事务,然后通过Alchemy将已签名的事务发送回来,尽管这样做不会有任何好处。
编辑:但要真正回答您的问题,您可以直接通过Metamask使用用户的连接(虽然这通常是缓慢的,并且在一次多次请求时可能会受到速率限制和失败),或者您可以使用炼金术从块链和用户的提供程序中读取分块链。
https://ethereum.stackexchange.com/questions/117218
复制相似问题