I have 3 contracts: sender, receiver and transferTest. I am getting error in transferTest due to an address array declared in the reciver contract:
receiver.sol:
pragma solidity ^0.5.8;
contract receiver{
address public owner;
mapping(address => uint) balance;
constructor () public{
owner = msg.sender;
}
function() external payable{
balance[owner] += msg.value;}
}
transferTest:
pragma solidity ^0.5.8;
import "truffle/Assert.sol";
import "../contracts/sender.sol";
import "../contracts/receiver.sol";
contract TestTransfer{
function testTransfer() public{
sender senderObj = new sender();
receiver receiverObj = new receiver();
senderObj.transferTo(msg.sender, 10);
Assert.equal(receiver.balance[receiver.owner], 9, "Received amount is not correct");
}
}
I am getting following error message:
testingTransfer.sol:12:20: TypeError: Member "balance" not found or not visible after argument-dependent lookup in type(contract receiver). Assert.equal(receiver.balance[receiver.owner], 9, "Received amount is not correct"); ^--------------^
Compilation failed. See above. Truffle v5.1.67 (core: 5.1.67) Node v10.23.3
Also I used msg.sender for the address of receiver contract as the first argument of transferTo function. Please guide me how to replace msg.sender with the address of receiver contract. ==Update:Dec11 2021 My question is similar to: Accessing Solidity Mapping
Zulfi.