<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>区块链 on MoeJueのブログ</title>
    <link>https://ja.moejue.cn/zh-hant/tags/%E5%8C%BA%E5%9D%97%E9%93%BE/</link>
    <description>Recent content in 区块链 on MoeJueのブログ</description>
    <generator>Hugo</generator>
    <language>zh-hant</language>
    <lastBuildDate>Sat, 10 Jan 2026 14:02:35 +0000</lastBuildDate>
    <atom:link href="https://ja.moejue.cn/zh-hant/tags/%E5%8C%BA%E5%9D%97%E9%93%BE/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Web3 鏈上紅包 DApp</title>
      <link>https://ja.moejue.cn/zh-hant/posts/303/</link>
      <pubDate>Sat, 10 Jan 2026 14:02:35 +0000</pubDate>
      <guid>https://ja.moejue.cn/zh-hant/posts/303/</guid>
      <description>&lt;p&gt;這是一個&lt;strong&gt;100%去中心化&lt;/strong&gt;的區塊鏈紅包應用。用戶可以連接錢包，設定金額和數量發送紅包，然後透過連結分享給他人領取。所有資料和操作都基於區塊鏈，完全不需要中心化伺服器，整個過程安全、透明、可追溯。&lt;/p&gt;&#xA;&lt;p&gt;如果你感興趣，可以在 GitHub 上看看我的程式碼：&lt;a href=&#34;https://github.com/iAJue/redpacket-dapp&#34;target=&#34;_blank&#34;&#xA;  class=&#34;inline-flex items-center gap-1&#34;&#xA;&gt;redpacket‑dapp&#xA;  &lt;svg id=&#34;external-link&#34; class=&#34;h-3 w-3 flex-shrink-0&#34;&#xA;    fill=&#34;none&#34;&#xA;    stroke=&#34;currentColor&#34;&#xA;    viewBox=&#34;0 0 24 24&#34;&gt;&lt;path fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; stroke-width=&#34;2&#34; d=&#34;M15 3h6v6m-11 5L21 3m-3 10v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6&#34;/&gt;&lt;/svg&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;功能亮點&#34;&gt;功能亮點&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;🧧 &lt;strong&gt;發送紅包&lt;/strong&gt;: 連接錢包後，設定金額和數量發送紅包到區塊鏈&lt;/li&gt;&#xA;&lt;li&gt;🎁 &lt;strong&gt;領取紅包&lt;/strong&gt;: 透過分享連結，別人可以連接錢包直接從區塊鏈領取紅包&lt;/li&gt;&#xA;&lt;li&gt;🔗 &lt;strong&gt;智能合約&lt;/strong&gt;: 使用 Solidity 編寫的安全智能合約處理所有邏輯&lt;/li&gt;&#xA;&lt;li&gt;🌐 &lt;strong&gt;多鏈支援&lt;/strong&gt;: 支援本地測試網和 BSC 測試網&lt;/li&gt;&#xA;&lt;li&gt;💼 &lt;strong&gt;Web3 整合&lt;/strong&gt;: 使用 MetaMask 錢包連接&lt;/li&gt;&#xA;&lt;li&gt;🚀 &lt;strong&gt;完全去中心化&lt;/strong&gt;: 沒有後端伺服器，所有資料儲存在區塊鏈&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;技術棧&#34;&gt;技術棧&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;前端&lt;/strong&gt;：React 19、React Router 6、TypeScript、Vite、Ethers v6&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;合約層&lt;/strong&gt;：Hardhat、Solidity 0.8.x&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;工具&lt;/strong&gt;：ESLint、Prettier&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;不需要後端&lt;/strong&gt;: 零依賴伺服器 ❌&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;快速啟動&#34;&gt;快速啟動&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;# 1. 安裝專案依賴&#xA;npm install&#xA;cd react-dapp &amp;amp;&amp;amp; npm install &amp;amp;&amp;amp; cd ..&#xA;&#xA;# 2. 啟動本地區塊鏈節點&#xA;npm run node&#xA;&#xA;# 3. 編譯智能合約&#xA;npx hardhat compile&#xA;&#xA;# 4. 部署智能合約&#xA;npm run deploy&#xA;&#xA;# 5. 啟動前端&#xA;npm run frontend&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;目錄結構&#34;&gt;目錄結構&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;redpacket-web3/&#xA;├─ contracts/                # Solidity 智能合約&#xA;│  └─ RedPacket.sol&#xA;├─ react-dapp/               # React + Vite 前端&#xA;│  ├─ src/&#xA;│  │  ├─ components/         # 通用組件（錢包按鈕、創建表單等）&#xA;│  │  ├─ config/             # ABI、合約地址配置&#xA;│  │  ├─ hooks/              # 自定義 hooks（useWallet）&#xA;│  │  ├─ pages/              # 頁面（Home、ClaimPacket）&#xA;│  │  ├─ styles/             # 全域樣式&#xA;│  │  ├─ utils/              # Web3 工具函數&#xA;│  │  └─ App.tsx             # 路由與佈局&#xA;│  ├─ .env.example           # 前端所需環境變數說明&#xA;│  └─ package.json&#xA;├─ scripts/&#xA;│  └─ deploy.js              # Hardhat 部署腳本（會自動寫入前端配置）&#xA;├─ hardhat.config.js&#xA;└─ package.json              # 根目錄腳本（Hardhat + 前端一鍵啟動）&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;使用指南&#34;&gt;使用指南&lt;/h2&gt;&#xA;&lt;h3 id=&#34;創建紅包&#34;&gt;創建紅包&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;打開前端並點擊右上角「連接錢包」。&lt;/li&gt;&#xA;&lt;li&gt;填寫紅包總金額與份數，應用會在前端隨機拆分金額。&lt;/li&gt;&#xA;&lt;li&gt;提交後在 MetaMask 中確認交易，等待區塊確認。&lt;/li&gt;&#xA;&lt;li&gt;成功後可複製系統生成的領取連結，分享給朋友。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;領取紅包&#34;&gt;領取紅包&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;打開分享連結（URL 帶有 &lt;code&gt;/claim/{packetId}&lt;/code&gt;）。&lt;/li&gt;&#xA;&lt;li&gt;同樣先連接錢包，然後點擊「點擊領取」。&lt;/li&gt;&#xA;&lt;li&gt;簽名確認後等待區塊打包，頁面會顯示結果與剩餘份數。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;環境變數&#34;&gt;環境變數&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;dapp/.env&lt;/code&gt;（開發環境會自動忽略，請參考 &lt;code&gt;.env.example&lt;/code&gt;）&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;VITE_RPC_URL&lt;/code&gt;：前端直連節點 RPC，預設為 &lt;code&gt;http://127.0.0.1:8545&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;VITE_CONTRACT_ADDRESS&lt;/code&gt;：可覆蓋部署腳本寫入的地址&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;VITE_CHAIN_ID&lt;/code&gt;：前端提示使用的鏈 ID（十六進制）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;root/.env&lt;/code&gt;：若需要在 Hardhat 中引用私鑰或 BSC RPC，可繼續沿用原有寫法。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;智能合約redpacketsol&#34;&gt;智能合約（RedPacket.sol）&lt;/h2&gt;&#xA;&lt;p&gt;核心方法：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
