跳到主要内容

示例

这里收集了一组以问答形式出现的有用的代码片段。

订阅新块

const unsub = await gearApi.gearEvents.subscribeToNewBlocks((header) => {
console.log(`New block with number: ${header.number.toNumber()} and hash: ${header.hash.toHex()}`);
});
// Unsubscribe
unsub();

获取块数据

const data = await gearApi.blocks.get(blockNumberOrBlockHash);
console.log(data.toHuman());

获取块时间戳

const ts = await gearApi.blocks.getBlockTimestamp(blockNumberOrBlockHash);
console.log(ts.toNumber());

通过块高度得到 blockHash

const hash = await gearApi.blocks.getBlockHash(blockNumber);
console.log(hash.toHex());

通过 blockHash 得到块高度

const hash = await gearApi.blocks.getBlockNumber(blockHash);
console.log(hash.toNumber());

获取所有块的事件

const events = await gearApi.blocks.getEvents(blockHash);
events.forEach((event) => {
console.log(event.toHuman());
});

获取所有块的 extrinsics

const extrinsics = await gearApi.blocks.getExtrinsics(blockHash);
extrinsics.forEach((extrinsic) => {
console.log(extrinsic.toHuman());
});

Get transaction fee 获取

const gearApi = await GearApi.create();
api.program.submit({ code, gasLimit });
// same for gearApi.message, gearApi.reply and others
const paymentInfo = await gearApi.program.paymentInfo(alice);
const transactionFee = paymentInfo.partialFee.toNumber();
consolg.log(transactionFee);