🦁

(動画付き)[Astar]コントラクト備忘録39(Polkadot.jsを使ってコントラクトを取得しよう!)

2023/03/11に公開

本日は、Polkadot.jsを用いて、コントラクトを取得してみましょう。

この記事に対応するYouTubeはこちらです。
https://www.youtube.com/watch?v=P6MK9NvElzM

まずは、公式を見てみましょう。

https://polkadot.js.org/docs/api-contract/start/basics

下のように、@polkadot/api-contractには4つの重要なインターフェースがあります。

1.CodePromise
2.BluePrintPromise
3.ContractPromise
4.Abi

その中でも、今回はコントラクトのインスタンスとやり取りができる、「ContractPromise」を見ていきます。


https://polkadot.js.org/docs/api-contract/start/basics

コントラクトは下のように、「ContractPromise」を使用して取得しています。

必要な引数は「api」、「metadata」、「address」の3つです。

https://polkadot.js.org/docs/api-contract/start/contract.read

では、コントラクトを作っていきましょう。

作り方などは、こちらの動画などをご参照ください。

https://www.youtube.com/watch?v=g-hy3n5xhC0

できたコントラクトのうち、「metadata」はこちらの「metadata.json」を使用します。

そして、できたコントラクトのアドレスはこちらです。

これらを下のように設定してみましょう。

import { ApiPromise, WsProvider } from '@polkadot/api';
import { ContractPromise } from '@polkadot/api-contract';

import metadata from "./metadata.json";

const inter = Inter({ subsets: ['latin'] })


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

  const api = await ApiPromise.create({ provider});

  const address = 'YWkppgzx5oZAHLWRDymDnftRBt64okRqNCdufdifFgfjmSH'

  const contract = new ContractPromise(api, metadata, address)

  console.log("contract", contract.address.toString())

  }

main().catch(console.error);

すると、無事にコントラクトアドレスが取得できたことが確認できました。

今回は以上です。

Discussion