Dim*_*ers 6 ethereum decentralized-applications ethers.js
在以太坊文档中,它说两个最常见的签名者是:
Wallet,这是一个知道其私钥并可以用它执行任何操作的类。
JsonRpcSigner,连接到 JsonRpcProvider (或子类)并使用 getSigner 获取
我无法理解的是,当提供者是 web3provider(即 MetaMask)时,如何创建 JsonRpcSigner。难道 web3provider 不知道它的私钥,因此应该在provider.getSigner()运行时返回一个钱包吗?
当您的实例直接知道私钥Wallet时,将使用歌手。ethers.js
由于 MetaMask 不与其他应用程序共享密钥,因此ethers.js可以通过JsonRpcSigner其 API 请求本地 MetaMask 实例在需要时对交易进行签名,然后在不ethers.js知道密钥的情况下接收回签名的交易。