Web3的provider的正确使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web3的provider的正确使用相关的知识,希望对你有一定的参考价值。

参考技术A 我们在进行测试的时候,如果使用ganache,那么就是会用ganache提供的provider

我们进行合约部署的时候,可以使用infura提供的provider

但是注意上面的mnemonic是12个账户助记词,这12个词是合约部署者的

在和以太坊的交互中,面对的成千上百的用户,如果用户都使用部署者的账户,大量的操作消耗gas都是部署者的账户中的钱

因此在交互中,这里应该换为用户使用的钱包的provider,例如metamask的provider
我们只要装了metamask插件,那么浏览器中就被注入了web3

没装当然就是没有的

上面的情况打个比方:
我们给用户提供了高版本的iphone,但是没有也不能提供电话卡,不能打电话
metamask提供了低版本的诺基亚,有电话卡,能打电话
那么我们就需要用户使用我们的iphone,并且把诺基亚的卡插进来
我们使用新的模块web3.js组合web3

导出后我们在其他的模块中使用的就是这个组装web3

注意,window.web3.currentProvider能找到一定是要装了metamask或者类似插件

以上是关于Web3的provider的正确使用的主要内容,如果未能解决你的问题,请参考以下文章

如何确定正确的合约编译选项?

如何在 Flutter 中使用 Provider 正确获取 API

Flutter Provider:拆分通知的正确方法

AttributeError:模块“web3.geth”没有属性“txpool”

如何正确使用 Qt QML Image Provider

如何在 Flutter 中正确重用 Provider