从合同B获取合同A地址

时间:2020-06-09 14:30:52

标签: solidity remix

我正在尝试获取已部署合同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相同

1 个答案:

答案 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 { ...