Ich habe mit einem Freund eine Vereinbarung getroffen, in der er zugestimmt hat, mir 1 % aller Ethereum zu geben, die er zum Zeitpunkt des Verkaufs verkauft. Er besitzt also heute 100 Ether; In 1 Jahr verkauft er 10 Ether, ich würde in diesem Moment 0,1 Ether von seinem Konto erhalten.
Wie würde ich vorgehen, um dies in einem Ethereum-Vertrag festzuhalten? Mir ist unklar:
Ich bin völlig neu bei Ethereum, also verzeihen Sie mir, wenn ich einige Formulierungen/Konzepte falsch verstehe.
Am besten erstellen Sie einen Vertrag, der das Geld bei der Auszahlung aufteilt. Um dies zu tun, würden Sie im Grunde einen Vertrag erstellen, der nur Ihrem Freund die Auszahlung erlaubt – aber jedes Mal, wenn er dies tut, sendet er 1 % des Auszahlungsbetrags an Ihre Adresse.
Er würde dann seine 100 ETH an den Vertrag senden, wissend, dass er sie jederzeit abrufen kann, aber dabei zahlt er Ihnen die 1%, die er vereinbart hat.
Das würde vermutlich so aussehen:
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 {}
}
Ich würde diesen Code nicht sofort verwenden, da es wahrscheinlich einige Grenzfälle gibt, über die es sich lohnt nachzudenken. Ich habe mir zumindest einen notiert. Es passt möglicherweise auch nicht ganz zu Ihren Bedürfnissen, aber das Kernkonzept sollte gelten: Um eine solche Beschränkung der Auszahlung von ETH durchzusetzen, muss die ETH im Besitz des Vertrags sein, und die Veranstaltungen, an denen Sie interessiert sind (insbesondere) , müssen ebenfalls vertraglich geregelt werden.
Jeff
beneficiaryAmount
sodass der Freund 9,9 ETH erhält. Auch dies hindert ihn nicht daran, den Verkauf außerhalb des Vertrages zu tätigen.AbweichenFisch
Jeff
AbweichenFisch