iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 26
0
Modern Web

DApp 開發 - 使用 web3.js系列 第 26

開發 Dapp - Truffle 與 Infura 整合來快速部署智能合約 (Day26)

不知道 Infura 是什麼的話,可以先回頭看介紹 Infura 篇

Step 1:安裝模組 truffle-hdwallet-provider

npm i truffle-hdwallet-provider --save

truffle-hdwallet-provider 文件:https://github.com/trufflesuite/truffle-hdwallet-provider

Step 2:匯入模組

var HDWalletProvider = require("truffle-hdwallet-provider");

Step 3:在設定檔新增 ropsten 網路的設定

ropsten: {
  provider: function () {
    return new HDWalletProvider(process.env.MNEMONIC, "https://ropsten.infura.io/v3/" + process.env.INFURA_API_KEY);
  },
  network_id: '3',
},

完整的 truffle.js 檔範例

var HDWalletProvider = require("truffle-hdwallet-provider");

module.exports = {
  // See <http://truffleframework.com/docs/advanced/configuration>
  // for more about customizing your Truffle configuration!
  networks: {
    ropsten: {
      provider: function () {
        return new HDWalletProvider(process.env.MNEMONIC, "https://ropsten.infura.io/v3/" + process.env.INFURA_API_KEY);
      },
      network_id: '3',
    },
    development: {
      host: "127.0.0.1",
      port: 7545,
      network_id: "*" // Match any network id
    }
  }
};

Step 4:設定環境變數

# 助記詞
export MNEMONIC="....."

# INFURA 的 API KEY
export INFURA_API_KEY="..."

在當你在 MetaMask 註冊以太坊帳號的時候,當時你就會拿到一組助記詞(mnemonic)。

Step 5:智能合約部署至 ropsten 網路

# 編譯
truffle compile

# 部署
truffle migrate --network ropsten

我特別標注反白的地方,就是部署成功後的合約位址。

不相信的話,你可以把它複製到 etherscan ropsten 再次確認。

etherscan ropsten:https://ropsten.etherscan.io/

查詢後的結果,如下圖所示:


上一篇
開發 Dapp - 使用寵物商店樣版快速開發 DApp (3/3) (Day25)
下一篇
開發 Dapp - DApp 發佈到 Github Page (Day27)
系列文
DApp 開發 - 使用 web3.js30

尚未有邦友留言

立即登入留言