Я договорился с другом, по которому он согласился отдать мне 1% всего Ethereum, который он продает во время продажи. Итак, сегодня он владеет 100 эфирами; через 1 год он идет продавать 10 эфиров, мне в этот момент будет отправлено 0,1 эфира с его счета.
Как мне зафиксировать это в контракте Ethereum? Мне непонятно:
Я совершенно новичок в Ethereum, поэтому извините меня, если я ошибаюсь в некоторых формулировках/концепциях.
Лучше всего было бы создать контракт, который разделяет деньги по мере их снятия. Для этого вы должны создать контракт, который позволяет вашему другу снимать средства, но каждый раз, когда он это делает, он отправляет 1% от суммы снятия на ваш адрес.
Затем он отправляет свои 100 ETH на контракт, зная, что может получить их в любое время, но при этом вы платите 1%, на который он согласился.
Вероятно, это выглядело бы примерно так:
contract Siphon {
address private _owner;
address private _beneficiary;
modifier onlyOwner {
if (msg.sender != owner) {
throw;
}
_;
}
// alternatively, use the sender to be the owner, so the owner
// is the deployer.
function Siphon(address owner, address beneficiary) payable {
_owner = owner;
_beneficiary = beneficiary;
}
function withdraw(uint256 amount) onlyOwner {
// note that integer division means amounts less than 100
// would have no payout
uint256 beneficiaryAmount = amount / 100;
if (beneficiaryAmount > 0) {
if (!_beneficiary.send(beneficiaryAmount)) {
throw;
}
}
if (!owner.send(amount - beneficiaryAmount)) {
throw;
}
}
// allow deposits
function () payable onlyOwner {}
}
Я бы не стал использовать этот код прямо из коробки, так как, вероятно, есть некоторые крайние случаи, о которых стоит подумать. По крайней мере, я обратил внимание на одного. Это также может не совсем соответствовать вашим потребностям, но основная концепция должна применяться: чтобы применить такое ограничение на выплату ETH, ETH должен принадлежать контракту и интересующим вас событиям (в частности) , также должны управляться контрактом.
Джефф
beneficiaryAmount
так что друг получит 9,9 ETH. Также это не мешает ему совершать продажи вне контракта.DeviateFish
Джефф
DeviateFish