🦁
(動画付き)[Astar]コントラクト備忘録39(Polkadot.jsを使ってコントラクトを取得しよう!)
本日は、Polkadot.jsを用いて、コントラクトを取得してみましょう。
この記事に対応するYouTubeはこちらです。
まずは、公式を見てみましょう。
下のように、@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
では、コントラクトを作っていきましょう。
作り方などは、こちらの動画などをご参照ください。
できたコントラクトのうち、「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