Пытаюсь отправить эфир с контракта на другой адрес. Я использовал send
метод сделать это. Функция вернулась true
, но транзакция вообще не состоялась. Контракт определенно имеет много баланса в нем.
Вот код моего контракта.
contract Betting {
address public ac2 = 0xCB87BDB88EEF4ABC66AE6F1A131D41021C145863;
address public myaccount = this;
bool public transferStatus = false;
event Transfer(address _from, uint256 _value);
event TransferTo(address _to, uint256 _value);
function Betting() {
}
function sendEther() payable returns (uint) {
return msg.value;
}
function () payable {
Transfer(msg.sender, msg.value);
}
function reward() payable returns (bool) {
transferStatus = ac2.send(0.05 ether);
TransferTo(ac2, 0.05 ether);
return transferStatus;
}
Изменить: я обнаружил, что транзакции, вызываемые из контракта, будут храниться как внутренние транзакции. Интересно, что в моем контракте даже нет вкладки внутренней транзакции в Etherscan.
Иногда etherscan требует времени для отображения внутренних транзакций. Но в итоге все пришло. Ошибки в коде не было.