介绍
ethjs-provider-signer 是一个基于 ethjs-provider 的 npm 包,用于将签名后的请求发送到以太坊节点。其支持多种签名方法,并且适用于前端和 Node.js 应用。
安装
在安装 ethjs-provider-signer 之前,需要先安装 ethjs-provider:
npm install ethjs-provider
安装 ethjs-provider-signer:
npm install ethjs-provider-signer
使用
初始化
首先,需要引入 ethjs-provider 和 ethjs-provider-signer:
const ProviderEngine = require('ethjs-provider'); const SignerPlugin = require('ethjs-provider-signer');
然后,创建一个 ProviderEngine 实例并添加 SignerPlugin 插件:
-- -------------------- ---- ------- ----- ------ - --- ----------------- ---------------------- -------------- ---------------- ---------- --------- -- - -- ----------- -- ------------ ----------- --------- -- - -- ----------- -- -------------------- ----------- --------- -- - -- ----------- -- ----------------- ----------- --------- -- - -- ----------- - ----
其中,signTransaction、signMessage、signPersonalMessage 和 signTypedMessage 是签名方法,根据不同的需求选择相应的方法。
签名交易
在实现签名交易之前,需要先获取 gasPrice 和 nonce,可以使用 Web3.js 提供的方法:
-- -------------------- ---- ------- ----- ---- - --- ------- ------------------------- ------------------------------------- ----- ------ -- - -------------------------- --------- -- - ----- ------ - -------------- ----- ------- -- - -- ------ -- ------------------- -- ------ ----------- --- --
签名消息
ethjs-provider-signer 支持签名普通消息、个人消息和类型化消息。签名方法和签名交易类似,只需要选择相应的方法即可。
消息的构造方式如下:
-- -------------------- ---- ------- ----- ------- - - ----- -------- -- ----- --- --- -- ----- ------ ------ -- ---- ----- ----- -- ---- ------ ----- -- ----- ----- --------- ----- -- -- -------- --------- ----- -- -- -------- -------- ----- -- - -- --
示例代码
下面是签名交易的示例代码:
-- -------------------- ---- ------- ----- -------------- - -------------------------- ----- ------------ - --------------------------------- ----- ---- - ---------------- ----- ----------- - ----------------------------------------------- -- ------ --- --- ----- ---------- - --------------- -- ---- ------- --- ----- ------- - --------------- -- ---- ------- ----- ---- - --- ------------------ ----- ------ - --- ----------------- ---------------------- -------------- ---------------- ---------- --------- -- - ----- -- - --- ------------------------ ----- -- - ------------------------------------ ------- ------------ ----- ------------ - ------------------------------- -------------- ---- - -------------- - ---- --------------- ------------------------------------- ----- ------ -- - -------------------------- --------- -- - ----- ----- - - ------ ------------------------ --------- --------------------------- --- --------------- -- ----------- ------- ------ ---------------------------------------- ---------- -- ------ -- ---- --------- ----- -- ----- ------ - - ------- ------------------------- ------- -------- -------- ------ --- --- ---------------- - ------------------- ----- ------- -- - -- ------ -------------------- -- --- --
总结
ethjs-provider-signer 是一个便捷的工具,可以轻松地实现签名交易和签名消息的功能。对于前端和 Node.js 应用来说,ethjs-provider-signer 是一个不可或缺的工具。对于区块链应用开发者来说,学习使用 ethjs-provider-signer 是必要的。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/80460