Solidity

遷移後如何呼叫智能合約函式

  • June 16, 2022

在我的2_deploy_contracts.js文件中,我可以使用命令成功遷移我的所有契約truffle migrate。我的問題是,遷移後,我想從合約D呼叫一個函式並將其傳遞給合約E的地址。

我的**2_deploy_contracts.js**文件如下所示(契約名稱已替換):

const A = artifacts.require("A");
const B = artifacts.require("B");
const C = artifacts.require("C");
const D = artifacts.require("D");
const E = artifacts.require("E");

module.exports = function(deployer) {
 deployer.deploy(A);
 deployer.deploy(B);
 deployer.deploy(C);
 deployer.deploy(D)
   .then(function() {
     return deployer.deploy(E, D.address);
   })
   .then(function() {
     return D.methods.setEContractAddress(E.address); // This line
   });
};

我在這個網站上查看了其他類似的問題,但到目前為止沒有任何幫助。合約E遷移如何呼叫setEContractAddress()合約D中的函式?**

感謝您的幫助和時間!

嘗試這個:

const D = artifacts.require("D");
const E = artifacts.require("E");

module.exports = async (deployer) => {
 await deployer.deploy(D)  
 const d = await D.deployed();    
 await deployer.deploy(E, d.address);
 const e = await E.deployed();
 await d.setEContractAddress(e.address);
};

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