これは100%分散型のブロックチェーンお年玉(レッドパケット)アプリケーションです。ユーザーはウォレットを接続し、金額と数量を設定してお年玉を送信し、リンクを通じて他の人と共有して受け取ることができます。すべてのデータと操作はブロックチェーンに基づいており、中央集権型サーバーは一切不要で、プロセス全体が安全、透明、追跡可能です。

興味があれば、GitHubで私のコードをご覧ください:redpacket‑dapp

機能ハイライト

技術スタック

クイックスタート

# 1. プロジェクトの依存関係をインストール
npm install
cd react-dapp && npm install && cd ..

# 2. ローカルブロックチェーンノードを起動
npm run node

# 3. スマートコントラクトをコンパイル
npx hardhat compile

# 4. スマートコントラクトをデプロイ
npm run deploy

# 5. フロントエンドを起動
npm run frontend

ディレクトリ構造

redpacket-web3/
├─ contracts/                # Solidity スマートコントラクト
│  └─ RedPacket.sol
├─ react-dapp/               # React + Vite フロントエンド
│  ├─ src/
│  │  ├─ components/         # 共通コンポーネント(ウォレットボタン、作成フォームなど)
│  │  ├─ config/             # ABI、コントラクトアドレス設定
│  │  ├─ hooks/              # カスタムフック(useWallet)
│  │  ├─ pages/              # ページ(Home、ClaimPacket)
│  │  ├─ styles/             # グローバルスタイル
│  │  ├─ utils/              # Web3 ユーティリティ関数
│  │  └─ App.tsx             # ルーティングとレイアウト
│  ├─ .env.example           # フロントエンドに必要な環境変数説明
│  └─ package.json
├─ scripts/
│  └─ deploy.js              # Hardhat デプロイスクリプト(自動的にフロントエンド設定に書き込みます)
├─ hardhat.config.js
└─ package.json              # ルートディレクトリのスクリプト(Hardhat + フロントエンドをワンクリックで起動)

使用ガイド

お年玉の作成

  1. フロントエンドを開き、右上の「ウォレットを接続」をクリックします。
  2. お年玉の総額と個数を入力すると、アプリケーションがフロントエンドで金額をランダムに分割します。
  3. 送信後、MetaMaskでトランザクションを確認し、ブロックの承認を待ちます。
  4. 成功後、システムが生成した受け取りリンクをコピーして友人と共有できます。

お年玉の受け取り

  1. 共有リンク(URLに /claim/{packetId} が含まれる)を開きます。
  2. 同様にまずウォレットを接続し、「クリックして受け取る」をクリックします。
  3. 署名確認後、ブロックのパッケージングを待ち、ページに結果と残り個数が表示されます。

環境変数

スマートコントラクト(RedPacket.sol)

コアメソッド:

HardhatノードまたはBSCテストネットのいずれも上記のインターフェースを再利用でき、デプロイスクリプトは最新のアドレスをフロントエンドに同期します。再デプロイする場合は、npm run deployを再実行してください。

USDCのデプロイ (USDC.sol)

ネットワーク

Local Hardhat

BSC Testnet

よくある質問

お年玉を楽しくゲットしてください!🧨

⚠️ 注意:本プロジェクトは機能と実現可能性のテストのみを目的としており、テストネットやメインネットにはまだデプロイされておらず、完全なセキュリティテストも実施されていません。実際の資産操作には使用しないでください。これにより発生するリスクは自己責任となります。

image

image

image

image

image

著作権表示

著者: MoeJue

リンク: https://ja.moejue.cn/posts/303/

ライセンス: クリエイティブ・コモンズ表示-非営利-継承4.0国際ライセンス

この作品は、クリエイティブ・コモンズ表示-非営利-継承4.0国際ライセンスに基づいてライセンスされています。

検索を開始

キーワードを入力して記事を検索

↑↓
ESC
⌘K ショートカット