Hivejs: How to delegtae hivepower - Wie delegiert man Hivepower? # 15

in Programming & Dev2 years ago (edited)

DE (EN below)

In meinen Beiträgen #12 und #13 habe ich erklärt, wie man mit HiveJS bzw. HiveSQL Delegationen auslesen kann.

In diesem Beitrag möchte ich erklären, wie man mit HiveJS Hivepower delegiert an andere Nutzer.

Dafür nutzen wir die Funktion hive.broadcast.delegateVestingShares. Der Funktion erwartet 4 Parameter:

  • wif der private Aktiv-Schlüssel des Nutzers der delegiert
  • delegator der Nutzer, der HivePower delegiert
  • delegatee der Nutzer, der HivePower delegiert bekommt
  • vesting_shares HivePower in Vests

Um die Hivepower in Vests anzugeben, müssen wir die Hive in Vests umrechnen und benötigen dafür total_vesting_fund_hive und total_vesting_shares die wir mit der Funktion hive.broadcast.getDynamicGlobalProperties erhalten.

Die vesting_shares ergeben sich durch folgende Rechnung:
vesting_shares=total_vesting_shares* HivePower/total_vesting_fund_hive;

Wie ich im vorherigen Beitrag erklärt habe, gibt es die Funktion hive.formatter.vestToHive, leider gibt es keine Funktion hiveToVest.

Daher müssen wir die Berechnung selber durchführen und darauf achten, dass wir Hive bzw. Vests erst entfernen, das Ergebnis dann mit 6 Stellen angeben und VESTS anfügen.

var vesting_shares=parseFloat(total_vesting_shares.split(" ")[0]) *parseFloat($("#hive").val()) /parseFloat(total_vesting_fund_hive.split(" ")[0]);
   vesting_shares=vesting_shares.toFixed(6)+" VESTS";

Dabei gilt immer die zuletzt übertragene Menge als delegiert. Beachtet, wenn Ihr einen kleineren Betrag delegiert als zuvor, so ist die Differenz nicht sofort wieder verfügbar. Es dauert 7 Tage, bis diese euch wieder zur Verfügung steht.

Habt ihr einem Nutzer 100 Hive delegiert und möchtet es auf 110 erhöhen dürft ihr nicht weitere 10 Hive delegieren, denn dann delegiert ihr nur 10 Hive und 90 Hive werden euch innerhalb von 7 Tagen wieder zur Verfügung stehen. Du musst somit 110 hive delegieren.

Dementsprechend beendet man eine Delegation in dem man "0.000000 VESTS" delegiert.

Das Beispiel findet ihr hier, nutzt diesen nur Lokal, gebt nie euren privaten Aktiv-Schlüssel auf jsfiddle ein!

Wer Fragen hat, kann gern ein Kommentar da lassen. Am besten @mein-senf-dazu erwähnen, damit ich es mitbekomme.

EN

In my posts #12 and #13 I explained how to read delegations with HiveJS and HiveSQL respectively.

In this post I want to explain how to delegate Hivepower to other users with HiveJS.

For this we use the function hive.broadcast.delegateVestingShares. The function expects 4 parameters:

  • wif the private active key of the user who delegates.
    delegator the user who delegates HivePower
    delegatee the user who gets HivePower delegated
  • investing_shares HivePower in Vests.

To specify the hivepower in vests, we need to convert the hive to vests and for that we need total_vesting_fund_hive and total_vesting_shares which we get with the function hive.broadcast.getDynamicGlobalProperties.

The vesting_shares are obtained by the following calculation:
vesting_shares=total_investing_shares* HivePower/total_investing_fund_hive;

As I explained in the previous post, there is a function hive.formatter.vestToHive, unfortunately there is no function hiveToVest.

So we have to do the calculation ourselves, making sure to remove hive or vests first, then specify the result with 6 digits and append VESTS.

var vesting_shares=parseFloat(total_vesting_shares.split(" ")[0]) *parseFloat($("#hive").val()) /parseFloat(total_vesting_fund_hive.split(" ")[0]);
   vesting_shares=vesting_shares.toFixed(6)+" VESTS";

In this case, the last amount transferred is always considered delegated. Note that if you delegate a smaller amount than before, the difference is not immediately available again. It takes 7 days until it is available again.

If you have delegated 100 hive to a user and you want to increase it to 110 you must not delegate another 10 hive, because then you delegate only 10 hive and 90 hive will be available to you again within 7 days. You have to delegate 110 hive.

Accordingly, you end a delegation by delegating "0.000000 VESTS".

You can find the example here, use this only locally, never enter your private active key on jsfiddle!

If you have any questions, feel free to leave a comment. It's best to mention @mein-senf-dazu, so I can see it.

Translated with www.DeepL.com/Translator (free version)

Sort:  

Yay! 🤗
Your content has been boosted with Ecency Points, by @mein-senf-dazu.
Use Ecency daily to boost your growth on platform!

Support Ecency
Vote for new Proposal
Delegate HP and earn more

I was not familiar with this process; look around and read posts on Hive you always learn new things heh heh! Thanks for sharing!