Deployment auf MainNet Blockchain

Der Account der das deployment durchführen muss benötigt Ether. Der private Key des Accounts muss bekannt sein.

Notwendige Pakete müssen installiert sein:

npm install --save-dev dotenv truffle-wallet-provider ethereumjs-wallet

Die nächsten timeout Schritte sind optional und können helfen Caching issues mit Infura zu vermeiden (falls keine eigene Node genutzt wird)

In 1_initial_migration.js nach deployer.deploy(Migrations):

.then(registry => new Promise(resolve => setTimeout(() => resolve(registry), 60000)));

Ein 2_deploy_contracts.js im selben Ordner anlegen:

const MyContract = artifacts.require("./MyContract.sol")

module.exports = (deployer, network, accounts) => {
   deployer.deploy(MyContract)
   .then(registry => new Promise(resolve => setTimeout(() => resolve(registry), 60000)));
}

In truffle.js folgendes einfügen und PrivateKey einfügen:

require("dotenv").config();
const Web3 = require("web3");
const web3 = new Web3();
const WalletProvider = require("truffle-wallet-provider");
const Wallet = require("ethereumjs-wallet");

var mainNetWallet = Wallet.fromPrivateKey(mainNetPrivateKey);
var mainNetProvider = new WalletProvider(mainNetWallet, "https://mainnet.infura.io/");
var mainNetPrivateKey = new Buffer("[YOUR-PRIVATE-KEY-HERE]", "hex")

module.exports = {
    networks: {
      development: {
        host: "localhost",
        port: 8545,
        gas: 8000000,
        network_id: "*" // Match any network id
      },
      mainnet: { /*the important part*/
        provider: mainNetProvider,
        gas: 8000000,
        gasPrice: web3.toWei("5", "gwei"), //check current value on ethgasstation.info
        network_id: "1",
      }
    }
};

Quelle: How to deploy in 20min
Quelle Infura fix: Infura nonce too low fix


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert