このページは英語からの機械翻訳を使用しており、誤りや不明瞭な表現が含まれている可能性があります。最も正確な情報については、オリジナルの英語版をご覧ください。頻繁な更新のため、一部のコンテンツはオリジナルの英語になっている可能性があります。Crowdinでの取り組みに参加して、このページの翻訳改善にご協力ください。 (Crowdin translation page, Contributing guide)
Web3の統合
このセクションでは、Web3の機能をCocos Creatorプロジェクトに統合するために、トークンコントラクトを作成し、それを操作するスクリプトを記述し、ウォレット接続、トークン鋳造、残高検索のためにMini Dapp SDKを活用します。 最終的には、あなたのdAppはブロックチェーンとシームレスに相互作用し、ゲーム内でスムーズなWeb3インタラクションを可能にします。
KIP7スマートコントラクトの作成とデプロイ
まず、Kaiaコントラクト・ウィザードを使ってスマート・コントラクトを生成する。
ステップ1:カイア契約ウィザードの使用
- カイア契約ウィザードに移動します。
- KIP7(ERC20に似たカイアのトークン規格)を選択する。
- トークンを設定します:
- 名前ExampleTestToken (または他の何か!)
- シンボルET(あなたのトークンのティッカー)
- プレミント100(初期トークン供給)
- 特徴チェック ✅ 造幣 可能
このガイドでは、onlyOwner修飾子を持たないようにmint関数を調整します。 そのためには、ownable.solのインポートとOwnableの継承を削除しなければならない。 手を加えたコードは次のようになるはずだ:
// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "@kaiachain/contracts/KIP/token/KIP7/KIP7.sol";contract ExampleTokens is KIP7 { constructor() KIP7("ExampleTokens", "ET") { _mint(msg.sender, 100 * 10 ** decimals()); } function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return super.supportsInterface(interfaceId); } function mint(uint256 amount) public { _mint(msg.sender, amount); }}
インフォメーション
onlyOwner修飾子を削除し、オリジナルのデプロイメント者やコントラクトの所有者以外の誰でもミント関数を呼び出せるようにした。
ステップ2:Remix IDEを使ったデプロイ
- 上記のコードをコピーして、Remix IDEで新しく作成したファイルET.solに貼り付けます。
- リミックスIDEで:
- 契約書をコンパイルする**ボタンをクリック する。
- プラグインマネージャーでKaiaプラグインを有効にする。
- Kaia PluginタブのEnvironmentで、Injected Provider - Kaia Walletを選択します。
- Contract**ドロップダウンで契約(ExampleTokens)を検索します。
- Deploy**をクリックしてトークンを起動します!
- カイアウォレットがポップアップしたら:
- 配備の詳細を確認する。
- 確認」をクリックすると、Kaia Kairos Testnetにデプロイされます。
備考
展開された契約アドレスをコピーして保存する。 チュートリアルの後半で必要になる。
スクリプトファイルの作成
Web3の機能を統合するためには、ブロックチェーンのインタラクションとUI管理を処理するためのスクリプトファイルを作成する必要がある。
1. スクリプト・フォルダの作成」。
- プロジェクトの_assets_フォルダに移動します。
- 右クリックし、Create → Folder を選択します。
- スクリプト**と命名してください。
2. Web3スクリプトファイルの作成
scriptsフォルダの中に、2つのTypeScriptファイルを作成する:
- Web3Manager.ts - ブロックチェーンとのやり取りを処理する。
- UIManager.ts - UI要素とユーザーインタラクションを管理する。
プロジェクトの構成はこのようになるはずだ:
assets/ scripts/ Web3Manager.ts UIManager.ts