Solidity
如何測試首先需要先前部署的合約地址的合約?
我的契約的 JS 測試遇到問題,該契約首先取決於另一個契約的部署。
需要部署Contract A ,然後將其地址傳遞給****Contract B。
我已經能夠成功遷移,但仍在嘗試通過測試。
如何修復我的 JS 測試並正確實例化/部署?
這是我的測試程式碼:
beforeEach(async function() { let tx = await ContractA.deployed(); contractB = await ContractB.deployed(tx.address); });
部署腳本:
module.exports = function(deployer) { deployer.deploy(ContractA).then(function() { deployer.deploy(ContractB, ContractA.address); }); };
收到此錯誤:
Error: ContractB has not been deployed to detected network (network/artifact mismatch)
ContractA
部署腳本中有什麼?我認為您需要實例化合約的地址。嘗試:
module.exports = function(deployer) { deployer.deploy(ContractA).then(function(contractA) { deployer.deploy(ContractB, contractA.address); }); };
(
ContractA
=>contractA
)
你不想要 tx.address。採用:
deployer.deploy(contractA).then(function(){ deployer.deploy(contractB, contractA.address)});
確保 contractB 在其初始化函式中使用 contractA 的地址。讓我知道這是否有效,從我一直在從事的松露項目中獲取…