🌟

(動画付き)[Astar]コントラクト備忘録34(Polkadot.jsを使って最新のブロックナンバーを取得し続けよう)

2023/03/10に公開

本日は、Polkadot.jsを使って、その時点での最新のブロックナンバーを取得していきたいと思います。

この記事に対応するYouTubeはこちらです。(33とセット)
https://www.youtube.com/watch?v=01_TL5YXoI8&t=12s

こちらの公式を参考にしています。


https://polkadot.js.org/docs/api/examples/promise/listen-to-blocks/

このように、コードを書きました。(少しだけ公式から追記しています。)

async function main () {
  // Initialise the provider to connect to the local node
  const provider = new WsProvider('wss://rpc.shibuya.astar.network');

  // Create the API and wait until ready
  const api = await ApiPromise.create({ provider });


  // We only display a couple, then unsubscribe
  let count = 0;

  // Subscribe to the new headers on-chain. The callback is fired when new headers
  // are found, the call itself returns a promise with a subscription that can be
  // used to unsubscribe from the newHead subscription
  const unsubscribe = await api.rpc.chain.subscribeNewHeads((header) => {
    console.log(`Chain is at block: #${header.number}`);
    console.log("count", count)

    if (++count === 256) {
      unsubscribe();
      process.exit(0);
    }
  });
}

main().then(() => console.log('completed'))

下のように、「api.rpc.chain.subscribeNewHeads」を用いて、ブロックの情報を取得しています。

実際に見てみると、このように取得をしてくれています。

また、blockscoutで実際の状態を確認すると、このように最新のものをとっていることが確認できました。

https://blockscout.com/shibuya/

以上です。

Discussion