Implemente un contrato inteligente en la red principal con Infura y MetaMask

Estoy tratando de implementar mi contrato inteligente en la red principal usando el siguiente código:

trufa.js:

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

Sin embargo, cuando ejecuto truffle migrate --network live, aparece el siguiente error:

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

¿Alguien tiene una idea de qué causa este error? En la cuenta que uso en MetaMask tengo 1ETH para la implementación. También intenté agregar una cantidad de gas a la red en vivo, pero esto no resolvió el problema.

Respuestas (1)

  1. Vaya aquí y genere un mnemotécnico de 12 palabras, para "Coin" seleccione ETH.
  2. Guarde el mnemotécnico (las 12 palabras) y, más abajo en la página, la primera dirección (ruta de derivación que termina en 0) y la clave privada en algún lugar seguro .
  3. Transfiere algo de ETH de tu cuenta al que corresponde al mnemónico que acabas de generar. Puede importarlo a MetaMask con la clave privada y luego devolver el ETH no utilizado.
  4. Utilice este tutorial para implementar sus contratos inteligentes a través de trufas, por supuesto, no olvide reemplazar el mnemotécnico del tutorial con el que acaba de generar.
  5. Ajuste la URL del proveedor en el tutorial con su URL de acceso personal que recibió en el correo de infura, también, en la configuración de red del ejemplo de código del tutorial, cambie "ropsten" a "mainnet".

luego haga truffle migrate --mainnet --dry-run(solo disponible en v4beta, pero es un buen hábito) para verificar si todo está bien, y luego truffle migrate --mainnet.

EDITAR: Por supuesto, también puede usar el mnemotécnico de MetaMask.

¡Gracias! Ahora veo que la cuenta que importé estaba suelta de MetaMask, lo que significa que no estaba respaldado por la frase inicial y, por lo tanto, no podía migrar. (La cuenta "no existía" dentro del mnemónico. Crear una nueva cuenta dentro de MetaMask y transferir los fondos funcionó.