<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>区块链 on 阿珏酱のBlog</title>
    <link>https://zh.moejue.cn/ja/tags/%E5%8C%BA%E5%9D%97%E9%93%BE/</link>
    <description>Recent content from 阿珏酱のBlog</description>
    <generator>Hugo</generator>
    <language>ja</language>
    
    <managingEditor>xxx@example.com (MoeJue)</managingEditor>
    <webMaster>xxx@example.com (MoeJue)</webMaster>
    
    <copyright>本ブログのすべての文書は、特に指定されていない限り、BY-NC-SAライセンスに従っています。引用の際は出典を明記してください！</copyright>
    
    <lastBuildDate>Sat, 10 Jan 2026 14:02:35 +0000</lastBuildDate>
    
    
    <atom:link href="https://zh.moejue.cn/ja/tags/%E5%8C%BA%E5%9D%97%E9%93%BE/index.xml" rel="self" type="application/rss&#43;xml" />
    

    
    

    <item>
      <title>Web3 オンチェーン紅包 DApp</title>
      <link>https://zh.moejue.cn/ja/posts/303/</link>
      <pubDate>Sat, 10 Jan 2026 14:02:35 &#43;0000</pubDate>
      <author>xxx@example.com (MoeJue)</author>
      <guid>https://zh.moejue.cn/ja/posts/303/</guid>
      <description>
        <![CDATA[<h1>Web3 オンチェーン紅包 DApp</h1><p>著者: MoeJue(xxx@example.com)</p>
        
          <p>これは<strong>100%分散型</strong>のブロックチェーンお年玉（レッドパケット）アプリケーションです。ユーザーはウォレットを接続し、金額と数量を設定してお年玉を送信し、リンクを通じて他の人と共有して受け取ることができます。すべてのデータと操作はブロックチェーンに基づいており、中央集権型サーバーは一切不要で、プロセス全体が安全、透明、追跡可能です。</p>
<p>興味があれば、GitHubで私のコードをご覧ください：<a href="https://github.com/iAJue/redpacket-dapp">redpacket‑dapp</a></p>
<h2 id="機能ハイライト">
<a class="header-anchor" href="#%e6%a9%9f%e8%83%bd%e3%83%8f%e3%82%a4%e3%83%a9%e3%82%a4%e3%83%88"></a>
機能ハイライト
</h2><ul>
<li>🧧 <strong>お年玉の送信</strong>: ウォレットを接続後、金額と数量を設定してブロックチェーンにお年玉を送信します。</li>
<li>🎁 <strong>お年玉の受け取り</strong>: 共有リンクを通じて、他の人はウォレットを接続してブロックチェーンから直接お年玉を受け取ることができます。</li>
<li>🔗 <strong>スマートコントラクト</strong>: Solidityで書かれた安全なスマートコントラクトがすべてのロジックを処理します。</li>
<li>🌐 <strong>マルチチェーン対応</strong>: ローカルテストネットとBSCテストネットをサポートします。</li>
<li>💼 <strong>Web3統合</strong>: MetaMaskウォレットを使用して接続します。</li>
<li>🚀 <strong>完全分散型</strong>: バックエンドサーバーがなく、すべてのデータはブロックチェーンに保存されます。</li>
</ul>
<h2 id="技術スタック">
<a class="header-anchor" href="#%e6%8a%80%e8%a1%93%e3%82%b9%e3%82%bf%e3%83%83%e3%82%af"></a>
技術スタック
</h2><ul>
<li><strong>フロントエンド</strong>：React 19、React Router 6、TypeScript、Vite、Ethers v6</li>
<li><strong>コントラクト層</strong>：Hardhat、Solidity 0.8.x</li>
<li><strong>ツール</strong>：ESLint、Prettier</li>
<li><strong>バックエンド不要</strong>: サーバーへの依存なし ❌</li>
</ul>
<h2 id="クイックスタート">
<a class="header-anchor" href="#%e3%82%af%e3%82%a4%e3%83%83%e3%82%af%e3%82%b9%e3%82%bf%e3%83%bc%e3%83%88"></a>
クイックスタート
</h2><pre><code># 1. プロジェクトの依存関係をインストール
npm install
cd react-dapp &amp;&amp; npm install &amp;&amp; cd ..

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

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

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

# 5. フロントエンドを起動
npm run frontend
</code></pre>
<h2 id="ディレクトリ構造">
<a class="header-anchor" href="#%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e6%a7%8b%e9%80%a0"></a>
ディレクトリ構造
</h2><pre><code>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 + フロントエンドをワンクリックで起動）
</code></pre>
<h2 id="使用ガイド">
<a class="header-anchor" href="#%e4%bd%bf%e7%94%a8%e3%82%ac%e3%82%a4%e3%83%89"></a>
使用ガイド
</h2><h3 id="お年玉の作成">
<a class="header-anchor" href="#%e3%81%8a%e5%b9%b4%e7%8e%89%e3%81%ae%e4%bd%9c%e6%88%90"></a>
お年玉の作成
</h3><ol>
<li>フロントエンドを開き、右上の「ウォレットを接続」をクリックします。</li>
<li>お年玉の総額と個数を入力すると、アプリケーションがフロントエンドで金額をランダムに分割します。</li>
<li>送信後、MetaMaskでトランザクションを確認し、ブロックの承認を待ちます。</li>
<li>成功後、システムが生成した受け取りリンクをコピーして友人と共有できます。</li>
</ol>
<h3 id="お年玉の受け取り">
<a class="header-anchor" href="#%e3%81%8a%e5%b9%b4%e7%8e%89%e3%81%ae%e5%8f%97%e3%81%91%e5%8f%96%e3%82%8a"></a>
お年玉の受け取り
</h3><ol>
<li>共有リンク（URLに <code>/claim/{packetId}</code> が含まれる）を開きます。</li>
<li>同様にまずウォレットを接続し、「クリックして受け取る」をクリックします。</li>
<li>署名確認後、ブロックのパッケージングを待ち、ページに結果と残り個数が表示されます。</li>
</ol>
<h2 id="環境変数">
<a class="header-anchor" href="#%e7%92%b0%e5%a2%83%e5%a4%89%e6%95%b0"></a>
環境変数
</h2><ul>
<li><code>dapp/.env</code>（開発環境では自動的に無視されます。<code>.env.example</code>を参照してください）
<ul>
<li><code>VITE_RPC_URL</code>：フロントエンドが直接接続するノードRPC、デフォルトは <code>http://127.0.0.1:8545</code></li>
<li><code>VITE_CONTRACT_ADDRESS</code>：デプロイスクリプトによって書き込まれたアドレスを上書きできます。</li>
<li><code>VITE_CHAIN_ID</code>：フロントエンドが使用するチェーンID（16進数）</li>
</ul>
</li>
<li><code>root/.env</code>：Hardhatで秘密鍵やBSC RPCを参照する必要がある場合は、既存の記述をそのまま使用できます。</li>
</ul>
<h2 id="スマートコントラクトredpacketsol">
<a class="header-anchor" href="#%e3%82%b9%e3%83%9e%e3%83%bc%e3%83%88%e3%82%b3%e3%83%b3%e3%83%88%e3%83%a9%e3%82%af%e3%83%88redpacketsol"></a>
スマートコントラクト（RedPacket.sol）
</h2><p>コアメソッド：</p>
        
        <hr><p>この記事は2026-01-10に<a href='https://zh.moejue.cn/'>阿珏酱のBlog</a>で公開され、最終更新日は2026-01-10です</p>]]>
      </description>
      
        <category>折腾代码</category>
      
    </item>
    
  </channel>
</rss>
