前言
在以太坊的开发中,人们常常需要进行以太币和代币的收发、签名/验签等诸多操作。ethjs-account 正是为了简化这些操作而生,是以太坊基于 nodejs 环境下的一个非常实用的工具类。本文将详细介绍 ethjs-account 的使用方法以及代码示例,帮助初学者了解其深度和指导意义。
安装
ethjs-account 是通过 npm 安装的,首先你需要在你的项目中安装 npm:
- --- ------- ------------- ------
引入
--- ------- - --------------------------- --- --- - ----------------------- --- ----------- - -------------------------- --- ------- - -------------------------
ethUtil 是一个以太坊的工具库,可以进行公私钥、交易等操作。Eth 是以太坊的 rpc 库,可以查询以太坊的状态和数据。EthContract 则是以太坊合约的库,可以轻松找到并调用以太坊的合约。account 则是 ethjs-account 的核心库,我们将在下面的代码示例中详细介绍。
API
account.create()
--- ---------- - ----------------- ------------------------
create() 方法是用于创建一个新账户,其返回的结构如下:
- -------- --- ----------- --- ---------------- ----------- ----- ----------- -------- ---------- -
其中 address 和 privateKey 是公私钥对应的地址和私钥,返回的三个 Function 分别为:signTransaction()
、sign()
和 encrypt()
,我们将在下面的代码示例中详细介绍。
account.from(privateKey)
--- ---------- - ---------------------------------------------------------------- --- ------- - ------------------------- ---------------------
from() 方法是用于将私钥转化为公钥和地址,其返回的结构如下:
- -------- --- ----------- --- ---------------- ----------- ----- ----------- -------- ---------- -
account.fromV3(input, password)
--- ---- - -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --- -------- - ------------- --- ------- - -------------------- ---------- ---------------------
如果你已经有了一个保存为 JSON 格式的 Keystore 并且已经忘记了密码,可以使用 fromV3() 方法将其转化为可用的账户。返回的结构与前面两条方法相同。
account.privateToPublic(privateKey)
--- ---------- - ---------------------------------------------------------------- --- --------- - ------------------------------------ -----------------------
privateToPublic() 方法可以将私钥转化为公钥,返回的是一个 64 位的字符串。
account.isValid(address)
--- ------- - --------------------------------------------- --- ----- - ------------------------- -------------------
isValid() 方法可以进行以太坊地址的有效性校验,返回一个 Boolean 值代表是否有效。
account.isAddress(address)
--- ------- - --------------------------------------------- --- ----- - --------------------------- -------------------
isAddress() 方法也是进行以太坊地址的有效性校验,返回同 isValid() 方法。
account.signTransaction(txParams [, privateKey])
--- ---------- - ---------------------------------------------------------------- --- ----- - - ------ ------- --------- ----------------- --------- --------- --- --------------------------------------------- ------ ------- ----- -- -- --- -------- - ------------------------------ ------------ ----------------------
signTransaction() 方法可以将交易参数(txParams)签名,返回一个已签名的交易数据。
account.sign(data, privateKey)
--- ---------- - ---------------------------------------------------------------- --- ---- - ------- --- ---------- - ------------------ ------------ ------------------------
sign() 方法可以将数据签名,返回一个已签名的数据。
account.encrypt(privateKey, password)
--- ---------- - ---------------------------------------------------------------- --- -------- - ------------- --- -------- - --------------------------- ---------- ----------------------
encrypt() 方法可以将私钥加密为 Keystore,其返回的结果类似
- -------- -- --- --------------------------------------- -------- ------------------------------------------- -------- ----------- --- ------------- - --- -- -- ------- --- ---- --- ---------- -- - -
示例
下面的代码示例可以帮助你加深对 ethjs-account 的理解:
--- ------- - --------------------------- --- --- - ----------------------- --- ----------- - -------------------------- --- ------- - ------------------------- -- ------- --- ---------- - ----------------- ---------------- -------- --- ------------------------ -- ----------- --- ---------- - ---------------------------------------------------------------- --- ------------- - ------------------------- -------------------- ---- ------- ---- --- --------------------------- -- ---- ---- --- -------- -------- --- ---- - -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --- -------- - ------------- --- ------------- - -------------------- ---------- -------------------- ---- --- --- --------------------------- -- -------- --- --------- - ------------------------------------ ------------------- ---- --- ----------------------- -- ----------- --- ------- - --------------------------------------------- --- ----- - ------------------------- --------------- ------- ------ --- ------------------- -- ----- --- ---- - ------- --- ---------- - ------------------ ------------ ------------------- ----- --- ------------------------ -- ------- --- ----- - - ------ ------- --------- ----------------- --------- --------- --- --------------------------------------------- ------ ------- ----- -- -- --- -------- - ------------------------------ ------------ ------------------- ------------ --- ---------------------- -- ------ -------- --- ----------------- - --------------------------- ---------- ---------------------- --------- --- -------------------------------
结语
通过本文我们可以了解到 ethjs-account 的基本功能和 api,从而更好地进行以太坊相关的开发工作,更方便地进行交易、签名、验证等操作。全文示例代码详见该链接:https://github.com/fisco-bcos-group1/fisco_bcos-education/tree/main/lesson4-ethereum_dev。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/57438