我正在尝试获取已部署合同A
的地址,但是创建一个新的A A first = new A();
会生成一个具有新地址的新合同。
pragma solidity ^0.5.0;
contract A {
address public contract_A_address =address(this);
address public owner_A = msg.sender;
}
contract B {
address public contract_B_address =address(this);
address public owner_B = msg.sender;
A first = new A();
function Get_first_Address() public view returns(address){
return address(first);
}
function Get_Contract_A_Address() public view returns(address){
return ??? ;
}
}
合同B的Get_Contract_A_Address()
所需的输出应与合同A的contract_A_address
相同
答案 0 :(得分:0)
我看不到使用目的:
第一个=新的A();
由于A是另一个合同,在B之前部署,因此可以使用继承:
contract B is A { ...
#then the variable contract_A_address is available
OR contract_A_address可以作为参数放入B的构造函数中,以便在部署过程中填充:
contract B {
contructor(address contract_A_address) public { ...