Stellen Sie mit Infura und MetaMask Smart Contracts im Mainnet bereit

Ich versuche, meinen Smart Contract mit dem folgenden Code im Hauptnetz bereitzustellen:

truffle.js:

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

Beim Ausführen von trufflemigrate --network live erhalte ich jedoch die folgende Fehlermeldung:

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

Jemand eine Idee, was diesen Fehler verursacht? Auf dem Konto, das ich für MetaMask verwende, habe ich 1ETH für die Bereitstellung. Ich habe auch versucht, dem Live-Netzwerk eine Gasmenge hinzuzufügen, aber das hat das Problem nicht gelöst.

Antworten (1)

  1. Gehen Sie hierher und generieren Sie eine 12-Wörter-Mnemonik, wählen Sie für "Coin" ETH aus.
  2. Speichern Sie die Mnemonik (die 12 Wörter) und weiter unten auf der Seite die erste Adresse (der Ableitungspfad endet mit 0) und den privaten Schlüssel an einem sicheren Ort .
  3. Übertragen Sie etwas ETH von Ihrem Konto auf dasjenige, das der gerade generierten Mnemonik entspricht. Sie können es mit dem privaten Schlüssel in MetaMask importieren und später die unbenutzte ETH zurückgeben.
  4. Verwenden Sie dieses Tutorial, um Ihre Smart Contracts über Trüffel bereitzustellen. Vergessen Sie natürlich nicht, die Mnemonik aus dem Tutorial durch die gerade generierte zu ersetzen.
  5. Passen Sie die Provider-URL im Tutorial mit Ihrer persönlichen Zugangs-URL an, die Sie in der Mail von infura erhalten haben, ändern Sie außerdem in der Netzwerkkonfiguration des Codebeispiels des Tutorials „ropsten“ auf „mainnet“.

dann tun truffle migrate --mainnet --dry-run(nur in v4beta verfügbar, aber eine gute Angewohnheit) zu überprüfen, ob alles in Ordnung ist, und dann truffle migrate --mainnet.

EDIT: Natürlich können Sie auch die Mnemonik von MetaMask verwenden.

Vielen Dank! Ich sehe jetzt, dass das von mir importierte Konto von MetaMask gelöst war, was bedeutet, dass ich nicht durch die Seed-Phrase unterstützt wurde und es daher nicht migrieren konnte. (Das Konto "existierte nicht" in der Mnemonik. Das Erstellen eines neuen Kontos in MetaMask und das Überweisen des Geldes hat funktioniert.