Где правильно указать адрес назначения?

pragma solidity 0.4.21;

contract Forwarder {

  address public destinationAddress;
  event LogForwarded(address indexed sender, uint amount);
  event LogFlushed(address indexed sender, uint amount);

  function Forwarder() public {
    destinationAddress = msg.sender;
  }

  function() payable public {
    emit LogForwarded(msg.sender, msg.value);
    destinationAddress.transfer(msg.value);
  }

  function flush() public {
    emit LogFlushed(msg.sender, address(this).balance);
    destinationAddress.transfer(address(this).balance);
  }

}

Пожалуйста, просто скажите место, ответив ЗДЕСЬ1 или ЗДЕСЬ2 бла-бла, как в сценарии выше.

например, мой адрес назначения, на который я хочу пересылать все eth по контракту, — 0x7e0fE0Bd87F84906bc19438fb5F932e189Dd127e, где я могу поместить его в сценарий?

Ответы (1)

Адрес назначения устанавливается на основе того, кто является создателем контракта на основе конструктора:

function Forwarder() public {
  destinationAddress = msg.sender;
}

Если вы хотите 0x7e0fE0Bd87F84906bc19438fb5F932e189Dd127eбыть адресом назначения, вам просто нужно убедиться, что указанный вами адрес является создателем контракта.

Вы также можете выбрать замену destinationAddress = msg.senderжестко заданным адресом, destinationAddress = 0x7e0fE0Bd87F84906bc19438fb5F932e189Dd127eно вам не нужно этого делать, если вы знаете, как правильно запускать контракты с нужного адреса.