Ether

使用 Infura 和 MetaMask 將智能合約部署到主網

  • October 17, 2017

我正在嘗試使用以下程式碼將我的智能合約部署到主網:

松露.js:

module.exports = {
 networks: {
   live: {
     provider: new HDWalletProvider("mnemonic from metamask", "https://mainnet.infura.io/<infuraKey>"),
     network_id: 1, // Main net
   }
 }
};

但是,當執行 truffle migrate –network live 時,我收到以下錯誤:

Error encountered, bailing. Network state unknown. Review successful transactions manually.
insufficient funds for gas * price + value

任何人都知道是什麼導致了這個錯誤?在我在 MetaMask 上使用的帳戶中,我有 1ETH 用於部署。我也嘗試在現場網路中添加gas量,但這並沒有解決問題。

  1. 這裡生成一個 12 字的助記詞,“Coin”選擇 ETH。
  2. 保存助記符(12 個單詞),並在頁面下方,將第一個地址(以 0 結尾的派生路徑)和私鑰保存在安全的地方
  3. 將一些 ETH 從您的帳戶轉移到與您剛剛生成的助記符對應的帳戶中。您可以使用私鑰將其導入 MetaMask,然後返回未使用的 ETH。
  4. 使用教程通過 truffle 部署您的智能合約,當然不要忘記將教程中的助記詞替換為您剛剛生成的助記詞。
  5. 將教程中的 Provider URL 調整為您在 infura 郵件中收到的個人訪問 URL,另外,在教程程式碼範例的網路配置中,將“ropsten”更改為“mainnet”。

然後執行truffle migrate --mainnet --dry-run(僅在 v4beta 中可用,但這是一個好習慣)檢查一切是否正常,然後truffle migrate --mainnet.

**編輯:**當然,您也可以自由使用 MetaMask 中的助記符。

引用自:https://ethereum.stackexchange.com/questions/28658