[Astar]コントラクト備忘録38(Polkadot.jsを使ってトークンを送付しよう!)
今回は、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