Web3js
使用 truffle 和 Genache 遷移具有特定帳戶的合約,沒有硬編碼地址
積木建造者!我正在嘗試使用 truffle 和 Genache 遷移我的兩個智能合約。我想指定本地現有的部署帳戶。但是,當我嘗試遷移契約時,我收到錯誤提示,即提供的地址無效。
這是我的
2_deployed_contracts.js
var Bank = artifacts.require("Bank"); var Client = artifacts.require("Client"); module.exports = function(deployer, accounts) { deployer.deploy(Bank, {from: accounts[0], value: web3.utils.toWei("30", "ether")}).then((bank)=>{ return deployer.deploy(Client, bank.address, {from:accounts[1]}); }); };
以及報錯提示:
Error: *** Deployment Failed *** "Bank" -- Provided address "d" is invalid, the capitalization checksum test failed, or its an indrect IBAN address which can't be converted.. at /usr/local/lib/node_modules/truffle/build/webpack:/packages/truffle- deployer/src/deployment.js:364:1 at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7)
只有當我在
from
欄位中硬編碼帳戶地址時,遷移成功。帳戶變數似乎不像大多數其他文章建議的那樣工作。我不知道為什麼,因為我認為松露會注入賬戶變數。
你的
accounts
論點在錯誤的位置(第二而不是第三)。改變這個:
module.exports = function(deployer, accounts)
對此:
module.exports = function(deployer, network, accounts)
PS:在
Provided address "d" is invalid
錯誤中,d
可能是您的網路名稱中的第一個字母 -development
- 與您的 Truffle 配置文件 (truffle-config.js
) 中的配置相同。