🐷

[Astar]コントラクト備忘録38(Polkadot.jsを使ってトークンを送付しよう!)

2023/03/11に公開

今回は、Polkadot.jsを用いて、簡単なトランザクションを実行いたします。

こちらを用います。


https://polkadot.js.org/docs/api/examples/promise/make-transfer

こちらのコードを使いました。

const BOB = '5D2MwJP4v1TeauSooBvJ8ueUyxtmrqpq6FpJTXbENwWSzn8M';
const PHRASE = '<ここにmnemonicフレーズ>';

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 });

  // Construct the keyring after the API (crypto has an async init)
  const keyring = new Keyring({ type: 'sr25519' });

  // Add Alice to our keyring with a hard-derivation path (empty phrase, so uses dev)
  const alice = keyring.addFromUri(PHRASE);

  // Create a extrinsic, transferring 12345 units to Bob
  const transfer = api.tx.balances.transfer(BOB, 1);

  // Sign and send the transaction using our account
  const hash = await transfer.signAndSend(alice);

  console.log('Transfer sent with hash', hash.toHex());
  
}

このように貼り付けました。

下のように、「sr25519」からキーリングを作成しています。

そして、ニーモニックフレーズからアカウントを取得し、それをもとに署名をおこなっています。

ちなみに、chatGPTによるキーリングの説明がこちらです。

キーリングとは鍵を管理するライブラリや機能のことのようです。

chatGPT

さらに、暗号アルゴリズムである「ed25519」の説明がこちらです。

また、そこから派生したのが「sr25519」です。

chatGPT

こちらが、オフィシャルのキーリングの説明です。

説明があるように、アカウントを作成するときは、デフォルトで「sr25519」になっているようです。そのため、先ほど「sr25519」を指定したのですね。

また、「api」の初期化後に行う旨も書かれています。

その理由として、「sr25519」は「WASM build」に依存しており、その「WASM build」はapiの初期化時に設定されるためとのことです。


https://polkadot.js.org/docs/api/start/keyring

「suri」の説明がこちらです。

「Substrate URI」の略で、「Substrate」ベースのブロックチェーンで使用されるシークレットキーを表す文字列の形式のようです。

chatGPT

今回実施している「transfer」も下のように確認ができます。

https://polkadot.js.org/docs/substrate/extrinsics#transferdest-multiaddress-value-compactu128

こちらを「yarn dev」で実行すると、このようになりました。

Subscanを確認すると、このように、成功していました。

https://shibuya.subscan.io/extrinsic/0x61c1f779dbb18e3926037164561339e8a18bacf87a6eb3095606715fc640bb93

また、パラメータを確認すると、指定された通りであることも確認できました。

今回は以上です。

Discussion