@lavagod

Как в Solidity перевести эфир с адреса на адрес?

Вопрос такой: в среде разработки Remix у меня 5 виртуальных аккаунтов (по 100 эфиров на каждом). Я хочу с 1-го аккаунта перевести 10 эфиров на 2-ой. Без уведомлений, без промежуточных кошельков, не абстрактных "значений" какой-то мапы, которая является типа валютой, а именно эфиров.

Вот такой код (не работает). Хотел просто стоя на первом аккаунте ввести адрес второго + 10 эфиров и чтобы произошел перевод, который я увидел по изменению счета.

pragma solidity >0.4.22 <0.6.0;

contract Test {
    
    function pay(address _user, uint _value) payable public {
        _user.transfer(_value);
    }
    
}


Я явно что-то упускаю...
  • Вопрос задан
  • 399 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Tyavochka
Solidity Developer
Начиная с какой-то версии (не помню точно какой), transfer работает только с address payable.
Попробуйте такой вариант:
function pay(address payable _user, uint _value) payable public {
        _user.transfer(_value);
 }

Еще хочу добавить, что transfer не самый предпочтительный способ перевода средств из-за ограничения в газе (23 000). Хотя, если уверены, что принимающая сторона не имеет fallback функции или она очень простая, то пойдет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы