Truffle

通過@truffle/hdwallet-provider 將合約部署到 infura 掛起

  • March 27, 2022

我創建了一個合約並成功部署到 Ganache 測試網路,但它沒有部署到 infura。

//this section is clean. worked for Ganache
var output = JSON.parse(solc.compile(JSON.stringify(input)));
const interface = output.contracts["test.sol"]["Inbox"].abi;
const bytecode = output.contracts["test.sol"]["Inbox"].evm.bytecode.object

對於infura,

const HDWalletProvider = require("@truffle/hdwallet-provider");

const Web3 = require("web3");
const compile = require("./compile");

const provider = new HDWalletProvider(
 "chef punch git then seek hobby abstract sad split fog quick able",
 "https://rinkeby.infura.io/v3/87773d0063ddee33821710c0e926c554"
);

const web3 = new Web3(provider);

const deploy = async () => {
 const accounts = await web3.eth.getAccounts();
 console.log("attemtign", accounts);// shows the array of accounts
 const myContract = await new web3.eth.Contract(interface)
   .deploy({ data: "0x" + bytecode, arguments: ["hi there"] })
   .send({
     gas: "1000000",
     from: accounts[0],
     gasPrice: "10000" // even i discarded here did not work
   });
 console.log(myContract.options.address);
 provider.engine.stop();
};

deploy();

我的帳戶中有 3 個 eth,終端顯示這個console.log("attemtign", accounts)然後掛起。

汽油價格太低了。截至 2020 年 4 月 1 日,來自 rinkeby.etherscan.com 的天然氣價格約為 1 gwei = “1000000000” wei。

為了有更快的確認時間,請調整為更高的值。

交易按其 nonce 的升序處理。低費用的待處理交易將阻止具有正確費用的新交易被探勘。

訪問https://web3js.readthedocs.io/en/v2.0.0-alpha/web3-eth-contract.html?highlight=deploy#id9 。您可以嘗試列印錯誤、交易雜湊或收據。它可能會幫助您找出實際問題,因為它在 *console.log(“attemtign”, accounts)*之後卡住了。

引用自:https://ethereum.stackexchange.com/questions/82075