Ether
使用 Infura 和 MetaMask 將智能合約部署到主網
我正在嘗試使用以下程式碼將我的智能合約部署到主網:
松露.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量,但這並沒有解決問題。
- 到這裡生成一個 12 字的助記詞,“Coin”選擇 ETH。
- 保存助記符(12 個單詞),並在頁面下方,將第一個地址(以 0 結尾的派生路徑)和私鑰保存在安全的地方。
- 將一些 ETH 從您的帳戶轉移到與您剛剛生成的助記符對應的帳戶中。您可以使用私鑰將其導入 MetaMask,然後返回未使用的 ETH。
- 使用本教程通過 truffle 部署您的智能合約,當然不要忘記將教程中的助記詞替換為您剛剛生成的助記詞。
- 將教程中的 Provider URL 調整為您在 infura 郵件中收到的個人訪問 URL,另外,在教程程式碼範例的網路配置中,將“ropsten”更改為“mainnet”。
然後執行
truffle migrate --mainnet --dry-run
(僅在 v4beta 中可用,但這是一個好習慣)檢查一切是否正常,然後truffle migrate --mainnet
.**編輯:**當然,您也可以自由使用 MetaMask 中的助記符。