In the Remix, getICOMembers function works appropriately and returns all members of a specific ICO type after they are added to the icoMembers mapping.
mapping(uint256 => address[]) private icoMembers;
function getICOMembers(uint256 _icoType) external view onlyOwner returns (address[] memory)
{
return icoMembers[_icoType];
}
But Etherscan gives this error even if I connected by owner address.
deployer address owner address etherscan error
Also, this function has onlyOwner modifier too but it works.
ICOdata[] private ICOdatas;
function getICODatas() external view onlyOwner returns (ICOdata[] memory)
{
return ICOdatas;
}
I tried to add members by hardcoding instead of joining the token sale function, changing external to public but it still gives the same error.
Also, this is the constructor.
constructor(
address _token,
address payable _usdtWallet,
address _vestingContract
) {
require(
address(_token) != address(0),
"ERROR at Crowdsale constructor: Token contract address shouldn't be zero address."
);
require(
_usdtWallet != address(0),
"ERROR at Crowdsale constructor: USDT wallet address shouldn't be zero address."
);
require(
_vestingContract != address(0),
"ERROR at Crowdsale constructor: Vesting contract address shouldn't be zero address."
);
token = ERC20(_token);
usdtWallet = _usdtWallet;
totalAllocation = 0;
vestingContract = IVesting(_vestingContract);
transferOwnership(msg.sender);
}