#blockchain #ethereum #solidity
Вопрос:
Я пишу свой первый смарт-контракт и хочу знать, верны ли мои мысли.
Просто мне нужно написать контракт, который получит eth и отправит его обратно отправителю. Я хочу создать простой ввод в JS, чтобы предоставить значение для отправки.
Могу ли я сделать это за одну функцию? Или мне нужно получить внешнюю функцию? Как может выглядеть эта функция? Что-то вроде:
contract Transaction {
string public name;
constructor() public {
name = 'Send Ether App';
}
event SendAndGetBack(
address payable buyer,
uint256 price
);
function getBalance() public view returns (uint) {
return address(this).balance;
}
function sendEtherAndGetItBack(address payable addr) public payable {
require(getBalance() >= msg.value);
require(addr == msg.sender);
addr.transfer(msg.value);
// event with balance subtracts msg.value
emit SendAndGetBack(addr, msg.value);
}}
Есть ли способ выдать событие, когда eth покидает адрес, прежде чем вернуть его?
Комментарии:
1. Что именно вы хотели бы сделать?! Получите ETH и отправьте его по
addr
адресу?!