本文介绍了使用 npm 包 eth-lightwallet 的主要步骤。eth-lightwallet 是基于以太坊的一种轻钱包解决方案,主要特点是占用空间小,运行速度快,适合轻量级应用场景。
环境准备
首先需要在本地安装 node.js 环境,可以到官网 https://nodejs.org/zh-cn/ 下载对应版本安装包。
然后需要安装 npm 包管理器,安装完成 node.js 环境后,npm 包管理器已经自动安装好了,可以通过下面命令验证是否安装成功:
npm -v
执行如下命令安装 eth-lightwallet:
npm install eth-lightwallet --save
创建钱包
在使用 eth-lightwallet 前,需要使用其提供的方法创建一个钱包。下面是具体步骤:
引入 eth-lightwallet 模块:
var lightwallet = require('eth-lightwallet');
定义一个密码(passphrase)字符串:
var password = 'test';
使用
lightwallet.keystore
对象生成钱包:var keystore = lightwallet.keystore.createVault({ password: password, seedPhrase: null, // 自定义助记词,可选 hdPathString: "m/44'/60'/0'/0", // HD 钱包生成路径 });
获取助记词并打印:
var seedPhrase = keystore.getSeed(password); console.log("seedPhrase: " + seedPhrase);
生成一个地址:
keystore.generateNewAddress(password, 1); var address = keystore.getAddresses()[0]; console.log("address: " + address);
导出钱包
eth-lightwallet 支持将钱包以 json 格式导出。
var json = keystore.serialize(); console.log("keystore json: " + json);
在使用导出的 keystore 时,需要为其指定一个密码:
var password = 'test'; var loadedKeystore = lightwallet.keystore.deserialize(json); loadedKeystore.passwordProvider = function (callback) { callback(null, password); };
此时可以通过 loadedKeystore.getAddresses()
方法获取地址列表。
生成交易
使用 eth-lightwallet 进行交易前,需要先对其进行初始化:
keystore.passwordProvider = function (callback) { callback(null, password); }; keystore.generateNewAddress(password, 1);
然后就可以生成交易了:
-- -------------------- ---- ------- --- ----------- - --------------------------- --- --------- - -------------- -- ---- --- ----- - ------ -- - --- --- --- -------- - ------------ -- ------- --- -------- - ------- --- -- - --- ----------------------------- ------ -- --------- --------- --------- --------- --- ---------- ------ ------ ----- ---- --- --- ----- - ---------------
发送交易
发送交易需要网络链接,可以使用 web3.js
连接以太坊主网或测试网等。
var Web3 = require('web3'); var web3 = new Web3(new Web3.providers.HttpProvider('https://mainnet.infura.io/')); var privateKey = keystore.exportPrivateKey(fromAddress, password); web3.eth.sendRawTransaction("0x" + rawTx.toString('hex'), function (err, txHash) { if (err) return callback(err); console.log("txHash: " + txHash); });
总结
本文介绍了 npm 包 eth-lightwallet 的使用,包括钱包的创建、导出、交易的生成和发送等,希望读者可以通过本文掌握 eth-lightwallet 的基本用法,并将其应用于实际项目中。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/eth-lightwallet