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

Schreibe einen Kommentar