前言
随着区块链技术的发展,越来越多的开发者开始涉足这一领域。在区块链应用开发中,前端技术起到了至关重要的作用。本文将介绍一个名为 oo7-substrate 的 npm 包,用于在 Substrate 区块链上与智能合约交互,希望能为前端开发者提供一些帮助。
oo7-substrate 简介
oo7-substrate 是一个用于访问 Substrate 区块链的 JavaScript 包。它提供了一些简单的 API,使你能够很容易地与 Substrate 进行交互。其中包括:
- 查询区块高度、账户余额等信息;
- 发送交易;
- 订阅区块链事件。
改包的安装方式如下:
npm install substrate-substrate
使用 oo7-substrate 进行交互
配置
在使用 oo7-substrate 前,你需要先对它进行一些配置。首先是连接到 Substrate 节点,使用 oo7-substrate 的默认 API 连接方式,可以按如下方式进行:
import { Keyring } from '@polkadot/keyring'; import { ApiPromise, WsProvider } from '@polkadot/api'; import { Substrate } from 'oo7-substrate'; const provider = new WsProvider('wss://example.com'); const api = await ApiPromise.create({ provider }); const keyring = new Keyring({ type: 'sr25519' }); const wallet = new Substrate({ api, keyring });
其中,provider 指定了 Substrate 节点的地址,api 是通过 @polkadot/api 包初始化的,keyring 和 wallet 是 oo7-substrate 的部分,用来管理私钥和发起交易。
查询区块高度、账户余额
一旦连接成功,就可以使用 oo7-substrate 提供的 API 进行查询了。以下是一些最常用的示例:
// 查询最新区块高度 console.log(await wallet.api.query.system.number()); // 查询账户余额 const query = await wallet.api.query.system.account(wallet.currentAccount); const balance = query.data.free.toNumber() / 10**15; console.log(`${wallet.currentAccount} balance: ${balance} DOT`);
发送交易
在 Substrate 区块链上发送交易非常容易。以下示例向指定账户发送 0.1 个 DOT:
// 转账 0.1 DOT 到指定账户 const recipient = '5DwuB...fWWY'; const txFee = 100000; const amount = 0.1; const tx = wallet.api.tx.balances.transfer(recipient, amount * 10**15); await wallet.signAndSend(tx, { fee: txFee }); console.log(`Transfer ${amount} DOT to ${recipient} success.`);
订阅区块链事件
Substrate 区块链具有许多有用的事件,可以用于监控网络上发生的任何事情。通过 oo7-substrate,我们可以轻松订阅这些事件。以下示例监控某个账户的交易:
wallet.api.query.system.events(events => { events.forEach(({ event: { method, data }, phase }) => { if (method === 'ExtrinsicSuccess' && data[0].toHex() === wallet.currentAccount) { const value = wallet.api.createType('Balance', data[1]).toNumber() / 10**15; console.log(`Received ${value} DOT.`); } }); });
结语
本文介绍了 oo7-substrate npm 包的使用方法,包括连接到 Substrate 节点、查询区块高度、账户余额、发送交易、订阅区块链事件等内容。希望能够对前端开发者在 Substrate 区块链的开发中提供一些帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600672693660cf7123b366b6