Почему мой токен ERC20 передается с 0x000000, когда я явно даю адрес для передачи?

При вызове 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))

---------------------------

person Richard Ryan Garcia    schedule 21.07.2019    source источник


Ответы (1)


ownerAddress не определено. Вы имели в виду owner?

person ferit    schedule 22.07.2019
comment
да, извините, это была ошибка. Я имел ввиду ownerAddress. Поэтому, когда он регистрирует LogSaleAndOwnerAddress, он знает, что такое ownerAddress. - person Richard Ryan Garcia; 23.07.2019