При вызове transferFrom он использует адрес 0x00000 вместо адреса, который я ему передаю.
Я застрахован, что токен будет отчеканен при постройке, и все количество отправлено на адрес кошелька владельца контракта. Прямо перед вызовом transferFrom ownerAddress и contractAddress определены, но он по-прежнему игнорирует адрес отправителя.
Token contract {
address public ownerAddress;
uint256 public initialSupply = 100000000000;
constructor(string memory _name, string memory _symbol, uint8 _decimals)
ERC20Detailed(_name, _symbol, _decimals)
public {
ownerAddress = msg.sender;
_mint(msg.sender, initialSupply);
}
function createTokenSale(uint256 rate,uint256 cap) public verifyOwner() returns(address) {
TokenSale newTokenSale = new TokenSale(rate, msg.sender, this, cap );
address tokenSaleAddress = address(newTokenSale);
emit LogSaleAndOwnerAddress(tokenSaleAddress, ownerAddress); // both addresses are as expected here
this.transferFrom(ownerAddress, tokenSaleAddress, initialSupply); //this attempts to transfer from 0x0000 to tokenSaleAddress ??????
return tokenSaleAddress;
}
}
Я ожидаю, что адрес "от" будет ownerAddress, но вместо этого будет 0x00000
События, генерируемые во время теста: ---------------------------
Transfer(from: <indexed> 0x0000000000000000000000000000000000000000 (address), to: <indexed> 0x010F9041ef37816CE5D63BFcAe4bAbDA55E00f4E (address), value: 100000000000 (uint256))
---------------------------