Сценарий:
Алиса хочет отправить 1 ETH Бобу с помощью моего приложения. Приложение будет взимать 0,01 ETH в качестве комиссии и будет добавлено к общей комиссии за транзакцию.
Общая плата = Плата за подачу заявки (0,01) + Плата за сеть (лимит газа * цена газа)
Предположим, плата за сеть рассчитывается как 0,001008 ETH.
Общая сумма к оплате = 1,011008 ETH (1 + 0,01 + 0,001008)
После успешной транзакции ниже должны быть реквизиты учетной записи.
где майнерам будет выплачено 0,001008 ETH
Запрос:
Q1. Как я могу создать приложение, в котором средства одной транзакции отправки могут быть отправлены на два разных адреса (адрес Боба и адрес администратора)?
Q2. Можно ли создать такое приложение без использования смарт-контрактов?
В процессе должен быть задействован смарт-контракт. По сути, он будет переводить средства и отправлять их на разные счета, как указано в его логике.
Вот очень быстрый пример, который я собрал для вас:
pragma solidity ^0.4.24;
contract Forwarder {
address admin;
uint fee = 10;
constructor() public {
admin = msg.sender;
}
function splitFunds(address _b) public payable {
admin.transfer(msg.value * fee / 100);
_b.transfer(msg.value - (msg.value * fee / 100));
}
}
Пол Разван Берг