npm 包 @portis/web3-provider-engine 使用教程
背景
在以太坊生态系统中,Web3.js 是一个很常见的库, 它不仅提供了以太坊核心功能的 API,还在各种 Web3 应用程序中广泛使用。Web3.js 的主要任务之一是与以太坊节点进行通信。通常情况下,我们需要在其持有的 Ethereum Address 下使用 Web3.js 进行各种操作,包括交易、合约调用、查询等。然而,在一些特殊的情况下,用户可能需要以某种方式授权以太坊操作,这时就需要 Portis 提供的 @portis/web3-provider-engine 这个 npm 包。
安装
使用 npm 安装 @portis/web3-provider-engine:
npm install @portis/web3-provider-engine
配置和使用
在应用程序中,我们需要通过初始化该包来配置 Portis 平台和 Web3.js 提供程序:
const { createPortisProvider } = require('@portis/web3-provider-engine'); const provider = createPortisProvider({ network: 'goerli', apiKey: 'YOUR_PORTIS_API_KEY', gasRelayHubAddress: '0x0000000000000000000000000000000000000000', });
在此例中,使用了 createPortisProvider 函数来生成一个 Portis 提供程序,其中需要两个参数:网络和 apiKey。您可以通过 Portis 平台 注册一个账号并申请 apiKey。goerli 是 Portis 目前启用的一个以太坊测试网络,可以使用其他网络。
在 Web3.js 中,我们需要设置一个新的 provider,使用 above 配置获得的 provider:
const Web3 = require('web3'); const web3 = new Web3(provider);
这就是配置和使用 @portis/web3-provider-engine npm 包的全部代码。您现在可以像通常一样使用 Web3.js API 进行交易、合约调用和查询等操作。
示例代码
下面是完整的示例代码,它通过 Portis 提供程序与以太坊网络进行交互:
-- -------------------- ---- ------- ----- - -------------------- - - ---------------------------------------- ----- ---- - ---------------- ----- -------- - ---------------------- -------- --------- ------- ---------------------- ------------------- --------------------------------------------- --- ----- ---- - --- --------------- ----- -------- ----------------- - ----- -------- - ----- ----------------------- ----- ------ - ----- -------------------------- ----- ------------ --- --------------------------------------------- ------ ---------------------- ---- ------ --------- ------------- --- --------------- ------- ------------------------ - ------------------
总结
通过 @portis/web3-provider-engine,我们可以一步简单地将以太坊操作授权给 Portis,从而安全地访问以太坊网络。通过上面的示例代码,我们也可以了解到如何在应用程序中与以太坊网络进行简单的交互。但请注意,在应用程序开发中,Portis 和 Web3.js 有很多其他的高级功能,我们需要更多的实践和学习,最终可以提高我们的开发技能和水平。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f4f360e8250f93ef89002ff