Solidity
由於資金不足,“遷移”無法部署
我收到錯誤:
由於資金不足,“遷移”無法部署。發件人沒有足夠的資金來發送 tx。前期費用為:45000000000000000 發件人賬戶只有:0
當我遷移到 Rinkeby 測試網路時。我正在嘗試使用來自水龍頭的帳戶#2 中有足夠的乙太幣,但 Truffle 一直在嘗試使用其中餘額為 0 的帳戶#1。Truffle 在什麼時候嘗試連接到 MetaMask?是 Node 還是 Truffle 不能正常工作?以及如何更改 Truffle 辨識的帳戶,以便我可以連接到帳戶 #2,而不是帳戶 #1?
到目前為止,我已經嘗試過:
- 解除安裝並重新安裝 Truffle
- 註銷並重新登錄 MetaMask 並在帳戶之間切換
- 將 gas/gasPrice 更改為更高的值或將其註釋掉
- 更改節點版本
我正在使用“@truffle/hdwallet-provider”:“^1.0.35”
rinkeby: { provider: () => new HDWalletProvider( mnemonic, `https://rinkeby.infura.io/v3/${infuraKey}` ), network_id: 4, // rinkeby's id gas: 4500000, // rinkeby has a lower block limit than mainnet gasPrice: 10000000000, confirmations: 2, timeoutBlocks: 200, skipDryRun: false, },
要使用第一個以外的帳戶,您必須向
HDWalletProvider
. 第三個參數為賬戶索引,預設為0。例如使用第五個:provider: () => { return new HDWalletProvider(mnemonic, URL, 4); }
如果需要,您可以指示載入多個帳戶。載入前 5 個帳戶
provider: () => { return new HDWalletProvider(mnemonic, URL, 0, 5); }
Truffle 將使用從提供者返回的第一個帳戶,但您可以使用
from
truffle-config.js更改預設帳戶networks: develop: { provider: () => {...}, from: "0x01230123...0123", gas: "4500000", gasPrice: "10000000000", } }
您還可以在部署時通過新參數覆蓋預設配置
module.exports = function(deployer) { deployer.deploy(Migrations, { from: "0x444433332222....0000", gas: "1000000", gasPrice: "9000000000", }); };