1 対 1 じゃんけんゲームを dApps で実装。
勝利すると記念コイン「JunkCoin」がもらえる!
yarn
yarn serve
cd frontend
yarn
yarn start
dot.env
を .env
にリネームして、エディタで編集する
WALLET_MNEMONIC=Replace your wallet mnemonic
RINKEBY_URL=https://eth-mainnet.alchemyapi.io/v2/123abc123abc123abc123abc123abcde
注)上記の値はダミーなのでそのまま使えません。
WALLET_MNEMONIC
: ウォレットのニーモニック。尚、デプロイには 1 番目のアカウントが使用されます。RINKEBY_URL
: JSON-RPC の URL を指定してください。geth 等を使用してもいいですし、めんどくさければ Alchemy 等で借りても(基本無料)良いです。
yarn
yarn deploy
cd frontend
yarn
yarn start
やる人はいないと思いますが、Mainnet にデプロイしたい場合は、
hardhat.config.ts
の networks
に該当の設定を追加してください。
基本的には Rinkeby をコピーして使えばよいと思います。
Mainnet にデプロイするには、お金(Gas 代)がかかります(ビビるくらい高い)。
まず MetaMask をインストールして、Rinkeby Test Network に接続し、幾らかの Ether を入手してください。
-
Rinkeby Test Network はテスト用のネットワークなので Ether はタダで入手できます。
ただし、スパム避けの為にひと手間掛かるようになっています。
ウォレットのアドレス(0x で始まるコード)をツイッターでツイートして、ツイートURLを入力欄に投稿すると、 しばらくした後に指定のアドレスに送金されます。
フロントエンドは http://localhost:3000
で起動されます。
(直ぐに試せる様に、オンラインにも デプロイ してあります)
アクセスすると、MetaMask のアプリ接続画面が表示されるので、使用するアカウントを選択して接続してください。
「Join match」をクリックすると、MetaMask がトランザクション発行の確認ウインドウを開きます。
GAS FEE(ガス代)等を確認して「Confirm」をクリックしてください。 「Confirm」をしない限りゲームは進行しません。
「Confirm」すると画面は切り替わりますが、 裏では Ethereum ネットワークに参加しているマイナーたちが発行されたトランザクションの確認処理を行います。
承認されるまで時間が掛かります。 どれだけの時間が掛かるかは Gas Price によって決まり、高く設定すればするほどより優先して処理される仕組みになっています。
とは言え、Rinkeby では最低設定でも直ぐに承認されます。
対戦相手が現れるまで待ちの状態になります。対戦相手が決まったらじゃんけんができます。
ゲーム開始後 5 分以内にグー・チョキ・パーを決め、トランザクションを通さなければ負けになります。
勝利すると、連勝した回数に応じた JunkCoin がもらえます。(1 回なら 1 JKC、2連勝なら 2 JKC)
獲得した JunkCoin は Withdraw ボタンで自分のアカウントに引き出しが出来ます。
JunkCoin は ERC20 トークンなので、
MetaMask で 0xf25Aded893150faDC14aaDf817471f3C44c325eD
を Add Token すれば所有数を見られます。