Ceci est une traduction française non-officielle du White Paper de Hex, la cryptomonnaie créée par Richard Heart. Si vous avez des remarques n’hésitez pas à m’en faire part, je recherche actuellement des réviseurs. Vous pouvez me contacter par Télégram pour toute rectification à t.me/AntoineHexFrance. Merci! Pour plus de renseignements sur HEX rendez-vous sur https://hex.com
Introduction
HEX est un projet ayant pour ambition de remplacer un produit financier commun appelé le Certificat de Dépôt à Terme. C’est un jeton ERC-20 complètement automatisé sous la forme d’un contrat intelligent et basé sur la blockchain Ethereum. Informations et FAQ disponibles sur https://HEX.com (en anglais).
Le but de ce document est de présenter les fonctionnalités et les points forts du projet et de les vérifier ou les expliquer dans les termes contenus dans le contrat intelligent. Le fondateur du projet, Richard Heart, a fourni des versions expérimentales du code à la communauté via la chaîne Telegram http://t.me/HEXcrypto. J’ai participé à la discussion sur ce canal, révisé le code et même découvert un ou deux bugs (qui ont été corrigés lors des versions ultérieures). Je ne souhaite pas fournir de conseil ni de commentaire éditorial concernant les spécificités de cette cryptomonnaie. Ce document vise simplement à expliquer de manière objective les fonctions exécutées par le contrat.
Lien expiré
Pour une discussion plus approfondie sur les placements et les revenus que vous pouvez en tirer veuillez vous référer à ce document https://bit.ly/hex-staking-guide.
Lien expiré
Si vous trouvez ce document utile et voulez 10% de HEX en plus sur votre réclamation BTC et sur la participation via les portail de transformation: http://bit.ly/hex-info-ref.
Lien expiré
Si vous voulez maximiser votre participation via l’AA, utilisez mon contrat de Cost Averaging ici: https://bit.ly/hex-cost-averaging
Pré-lancement
Les développeurs de HEX créeront un snapshot de l’état de la blockchain BTC à une hauteur de bloc future donnée. C’est-à-dire que quelles que soient les adresses BTC que vous contrôlerez à ce moment-là, celles-ci seront enregistrées et référencées par le contrat. *Cette partie n’est pas codée dans le contrat intelligent mais prendra comme référence le lancement du contrat intelligent*
Avant le lancement, 3 éléments seront disponibles au grand public pour vérifier les réclamations.
- Le snapshot de l’ensemble des UTXO avant modification (voir GoxMeNot)
- Le snapshot de l’ensemble des UTXO après modification
- Le code servant à générer l’arbre de Merkle et le hash supérieur
Grâce à ces éléments, toute partie intéressée devrait être en mesure de confirmer ses réclamations
- Le snapshot a été pris correctement
- Il a été édité correctement
- Le hash supérieur dans le contrat est exact
Note de la rédaction: UTXO (ou Unspent Transaction Output) désigne l’ensemble des terminaisons de la blockchain Bitcoin. Toute adresse BTC contenant des jetons BTC est considérée par le protocole Bitcoin comme une terminaison (ou feuille de Merkle). Lorsqu’une adresse BTC transfère des jetons vers une nouvelle adresse, cette dernière est à son tour considérée comme une suite et une terminaison de la chaîne. Le processus de snapshot de la blockchain BTC est équivalent à une photographie instantanée de toutes les terminaisons de la blockchain BTC à un instant T. Cette “photographie instantanée” permet de vérifier l’exactitude de hash sommet contenu dans le dernier bloc généré par la chaîne car le hash sommet est le résultat d’une fonction de hashage cryptographique de tous les UTXO de la blockchain.
Ce processus a servi à figer dans le temps le point de départ de la blockchain HEX en fixant le prix d’origine des jetons HEX par rapport au Bitcoin. Ce snapshot a été pris le 2 décembre 2019 à minuit heure standard du Pacifique à la hauteur de bloc 606227 de la chaîne BTC.
Un outil de réclamation sera mis à disposition sur le site web de HEX afin d’aider les utilisateurs à signer l’adresse ETH cible avec leurs clés BTC privées. Des instructions seront fournies lorsque l’outil sera disponible. *Cette partie n’est pas déclarée dans le contrat mais la déclaration signée, la clé BTC publique et l’adresse Ethereum seront fournies au contrat qui effectuera la vérification.*
Note de la rédaction: la phase de réclamation BTC est maintenant terminée (depuis le 19 novembre 2020).
Pré-réclamation
Le contrat entrera en existence à une date donnée et ne supportera dans un premier temps qu’un portail (ou lobby) de transformation. Ceci garantit que les acheteurs de HEX provenant du processus de transformation puissent commencer à placer leurs HEX en même temps que les réclamants des adresses BTC. Les détails de ce processus se trouvent ci-dessous dans les lobbies de transformation. Il est important de signaler que lors du premier jour d’existence des jetons HEX, 1 000 000 000 de HEX seront distribués au prorata aux adresses réclamant leurs jetons. Ceci est en phase avec les ICO passés qui montrent que les lobbies sont généralement remplis de jetons non-réclamés et que le premier jour avant les réclamations il n’y ait aucun jeton non-réclamé.
Flux basique
Le contrat donne droit à 10 000 jetons HEX par BTC détenu dans une adresse au moment du snapshot. Il nous a été promis 2 semaines pour nous avertir de la date du snapshot. Si nous avions par exemple été averti le 20 avril, le snapshot aurait eu lieu le 3 mai avec le contrat entrant en fonction le 4 mai et un premier jour de réclamation fixé au 5 mai. Peu importe la somme de bitcoins détenue dans mes adresses au 20 avril. La seule chose qui compte c’est la somme confirmée de bitcoins dans mes adresses le 3 mai. Supposons que je sois averti et que je déplace 3 BTC dans l’adresse A et 2 BTC dans l’adresse B le 2 mai. Après le snapshot, le 4 mai, je pourrai faire ce que je veux de mes bitcoins y compris les vendre. Je les vends le 6 mai. Ensuite, le 19 mai (2 semaines à partir du premier jour de réclamation) je veux faire une réclamation; je vais donc générer 2 déclarations signées, une de l’adresse A et l’autre de l’adresse B. Notez que chaque portefeuille peut contenir plusieurs adresses contenant des fonds. Vous devez faire une réclamation individuelle pour chaque adresse contenant des fonds. Je décide de consolider mon placement dans une seule adresse ETH pour les deux réclamations. Le contrat valide ma signature et me crédite de 10 000 * 3 + bonus – pénalités (voir plus bas) HEX pour l’adresse A sur mon adresse ETH désignée car le 3 mai j’avais 3 BTC dans ce portefeuille. Le contrat valide ma signature et me crédite de 10 000 * 2 + bonus – pénalités HEX pour l’adresse B sur mon adresse ETH pour la même raison. Je vais aussi avoir des bonus et des pénalités qui sont décrits ci-après.
Pour les réclamations en BTC, le contrat place immédiatement 90% des HEX réclamés pour un minimum de 350 jours. Ceci pourra être mitigé par l’interface utilisateur et permettra des placements plus longs (le nombre de jours est inscrit dans les paramètres de réclamation). Les 10% restants seront attribués à l’adresse qui a fait la réclamation. Dans l’exemple ci-dessus, 90% des HEX (par exemple 45 000 HEX + bonus – pénalités) sont placés pour une durée paramétrée par l’utilisateur ne pouvant être inférieure à 350 jours. Le reste, soit 5 000 HEX + bonus – pénalités, sera généré et disponible immédiatement pour un placement de n’importe quelle durée ou pour la revente sur une place de marché.
Je possède maintenant des HEX. Je peux les transférer comme tout autre jeton ERC-20 ou utiliser la fonction de placement du contrat intelligent. Placer ses HEX veut dire les bloquer dans le contrat, réduisant ainsi ma balance transférable. L’avantage du placement est que lorsqu’il prendra fin, le contrat me rendra non-seulement les HEX que j’ai placés mais des jetons HEX en plus selon les taux d’intérêt et les bonus de placement à terme codés dans le contrat.
Note de la rédaction: la phase de réclamation BTC est maintenant terminée (depuis le 19 novembre 2020).
Exemples de réclamations
Le bonus de réclamation est plus important et les pénalités plus légères plus vous placez vos HEX tôt relativement au lancement du contrat intelligent. Les bonus sont décrits et appliqués en détail ci-dessous. Prenons l’exemple d’une réclamation pour 5 BTC.
Réclamations normales
À la date de lancement
5 BTC * 10 000 HEX/BTC * 1 (pas de pénalités de retard) * 1,2 (bonus de vitesse) = 60 000 HEX
Deux semaines après le lancement
5 BTC * 10 000 HEX/BTC * 0,96 (pénalité de retard) * 1,192 (bonus de vitresse) = 57 216 HEX
1 mois après le lancement
5 BTC * 10 000 HEX/BTC * 0,914 (pénalité de retard) * 1,1829 (bonus de vitesse) = 54 073 HEX
Six mois après le lancement
5 BTC * 10 000 HEX/BTC * 0,5 (pénalité de retard) * 1,1 (bonus de vitesse) = 27 500 HEX
Dernier jour éligible pour réclamation (environ 1 an après le lancement)
5 BTC * 10 000 HEX/BTC * 0,0029 (pénalité de retard) * 1,00057 (bonus de vitesse) = 143 HEX
Réclamations des Whales (entre 1000 et 10 000 BTC)
À la date de lancement
5000 BTC * 10 000 HEX/BTC * 0,3889 (pénalité silly whale) * 1 (Pas de pénalité de retard) * 1,2 (bonus de vitesse) = 23 333 333 HEX
Deux semaines après le lancement
5000 BTC * 10 000 HEX/BTC * 0,3889 (pénalité silly whale) * 0,96 (pénalité de retard) * 1,192 (bonus de vitesse) = 22 250 667 HEX
1 mois après le lancement
5000 BTC * 10 000 HEX/BTC * 0,3889 (pénalité silly whale) * 0,914 (pénalité de retard) * 1,1829 (bonus de vitesse) = 21 028 571 HEX
Six mois après le lancement
5000 BTC * 10 000 HEX/BTC * 0,3889 (pénalité silly whale) * 0,5 (pénalité de retard) * 1,1 (bonus de vitesse) = 10 694 444 HEX
Dernier jour éligible pour réclamation (environ 1 an après le lancement)
5000 BTC * 10 000 HEX/BTC * 0,3889 (pénalité silly whale) * 0,0029 (pénalité de retard) * 1,00057 (bonus de vitesse) = 55 587 HEX
Réclamations des Méga-Whales (>= 10 000 BTC)
À la date de lancement
50 000 BTC * 10 000 HEX/BTC * 0,25 (pénalité silly whale) * 1 (pas de pénalité de retard) * 1,2 (bonus de vitesse) = 150 000 000 HEX
Deux semaines après le lancement
50 000 BTC * 10 000 HEX/BTC * 0,25 (pénalité silly whale) * 0,96 (pénalité de retard) * 1,192 (bonus de vitesse) = 143 040 000 HEX
1 mois après le lancement
50 000 BTC * 10 000 HEX/BTC * 0,25 (pénalité silly whale) * 0,914 (pénalité de retard) * 1,1829 (bonus de vitesse) = 135 183 673 HEX
Six mois après le lancement
50 000 BTC * 10 000 HEX/BTC * 0,25 (pénalité silly whale) * 0,5 (pas de pénalité de retard) * 1,1 (bonus de vitesse) = 68 750 000 HEX
Dernier jour éligible pour réclamation (environ 1 an après le lancement)
50 000 BTC * 10 000 HEX/BTC * 0,25 (pénalité silly whale) * 0,0029 (pas de pénalité de retard) * 1,00057 (bonus de vitesse) = 357 347 HEX
Les lobbies de transformation
Un autre moyen d’acquisition des jetons HEX est d’entrer dans un lobby de transformation (appelé Adoption Amplifier, abrégé AA, dans ce document). Tous les jours, 1/350ème des BTC non-réclamés sous forme de HEX est converti en ETH. Les ETH accumulés le jour précédent sont convertis en HEX. S’il y avait par exemple 350 000 bitcoins non-réclamés à la fin du jour 200, un millier de ces bitcoins aurait été convertis en HEX, c’est à dire 10 000 000 HEX (10 000*1000). Si 500 ETH étaient accumulés jusqu’au jour 200, à tout moment à partir du 201ème jour, un utilisateur aurait eu la possibilité de réclamer un montant de HEX égal à 10 000 000*le montant d’ETH contribué/sur le total d’ETH contribués au pool. Si vous aviez envoyé 1 ETH ce jour-là, vous auriez collecté 20 000 HEX.
Entrer dans un lobby de transformation implique d’envoyer des ETH à la fonction du contrat joinXfLobby. Tous les ETH envoyés en un jour sont enregistrés et vous pouvez appeler la fonction leaveXfLobby à tout moment par la suite pour réclamer votre part de HEX transformés. Il est possible de créer plusieurs entrées par jour et la fonction leaveXfLobby prend à la fois le numéro du jour et le nombre d’entrées afin de calculer les parts.
Le programme de parrainage est terminé depuis le 19 novembre 2020
Remarque: le système de transformation rémunère aussi les liens de parrainage; utiliser les liens de parrainage pour faire la promotion de HEX représente donc encore une autre opportunité de gagner plus de HEX.
Placer ses HEX
Placer ses HEX implique d’appeler une fonction du contrat intelligent permettant de bloquer vos jetons HEX pendant une certaine durée sur la blockchain. L’unité de temps utilisée à l’heure actuelle est le jour. Je peux par exemple placer 10 000 HEX pendant 10 jours. Pendant ce lapse de temps, je ne pourrai pas accéder à ces HEX mais après ces 10 jours je mettrai fin à mon placement et recevrai mes 10 000 HEX + les intérêts. Ceci est la fonctionnalité de Dépôt à Terme.
Les intérêts sont tirés d’un pool et sont basés sur ma part face au total des parts placées. J’utilise ici le mot “parts” intentionnellement car les bonus de placement sont calculés en fonction de votre part de HEX face à la totalité des HEX placés. Ce qui veut dire que si je place 10 HEX et que je suis éligible à un bonus de 40%, mes 10 HEX deviendront 14 parts. Mes gains se basent sur ma part face à la totalité des parts placées, et non pas face au volume de total de HEX en circulation. Ceci est important car cela signifie que pour avoir les meilleurs retours il est important d’accumuler des bonus. C’est même peut-être plus important que de débuter votre portefeuille avec le plus de HEX possible. Il est bien plus facile d’avoir un bonus de 40% que d’acheter 40% de bitcoins en plus, voir les fonctions LongerPaysBetter/BiggerPaysBetter ci-dessous.
Prix des parts
Afin de garantir que les placements plus importants et plus longs rapportent toujours mieux, un mécanisme de fixation de prix a été conçu dans le contrat. À chaque fois qu’un placement est clôturé, les gains du placement sont calculés sous la forme de parts que tous les futurs investisseurs auront à payer pour convertir leurs HEX en parts à leur tour. Il est important de signaler que l’unité de base de HEX est le Heart. Les Hearts sont à HEX ce que les satoshis sont pour le bitcoin. Il y a 100 000 000 de Hearts dans chaque HEX.
Le prix des parts au lancement sera d’une part par Heart. La manière dont évolue le prix des parts est liée au retour sur investissement d’un placement. Par exemple, si au jour 5 quelqu’un clôture son placement et a 20% de gains, cela se traduit par un prix par part d’environ 1.2 Hearts. Si cet utilisateur souhaite faire un nouveau placement, ses Hearts seront divisés par 1,2 pour déterminer son nombre de parts. Puisque qu’Ethereum ne supporte que les calculs intégraux, ceci est réalisé à l’aide d’un scalaire qui est défini ci-dessous.
La formule exacte est:
(Bonus BPB + CappedHearts) * retour sur placement * SCALAIRE DES TAUX DES PARTS / ((Bonus LPB * nombre de parts) / (Bonus LPB + jours placés en extra) * bonus BPB);
Définition des termes:
- “BPB” a une valeur maximale de x 10 pour le bonus BiggerPaysBetter.
- “retour sur placement” est le montant total versé à la clôture d’un placement.
- SCALAIRE DES TAUX DES PARTS est un scalaire qui maintient la précision des résultats (au moment de l’écriture de cet article, il descend à 5 chiffres sous la décimale).
- les “parts”‘ représentent le nombre de parts dans ce placement.
- “LPB” est à 1820 au maxium; LPB = LongerPaysBetter – Bonus pour les placements de longue durée
- “extraStakedDays” équivaut à la moitié de 3640 (et jours placés – 1)
- Les “CappedHearts” sont votre retour sur placement minimum avec le maximum de bonus BiggerPaysBetter.
Ce calcul ajuste donc vos gains avec le bonus BiggerPaysBetter que vous gagnerez pour avoir placé vos HEX réclamés les premiers jours.
Cette fonction mathématique fait que vous ne pourrez jamais vraiment refaire de placement qu’avec au maximum les parts que vous venez de dégager.
Cette fonction garantit ainsi que les placements plus importants et plus longs rapportent toujours plus car personne ne peut manipuler la chaîne et entrer avec plus de parts dans le système qu’il n’en existe. Cela veut aussi dire qu’il est toujours plus bénéfique de placer ses HEX dès maintenant car le prix des jetons ne peut qu’augmenter.
Calcul des placements à terme et des intérêts
Le contrat accumule un pool de paiement tous les jours. Le pool des gains est rempli de l’inflation journalière de 0,009955% de l’offre totale des jetons, ce qui fait donc une inflation de 3,69% par tranches de 52 semaines (1 an), cette inflation étant générée quotidiennement. D’autre paramètres expliqués ci-après entrent en compte dans la formation du pool des gains. Lorsque votre placement se termine à la fin de votre période d’engagement, le contrat récapitule tous les jours de votre placement et regroupe vos gains totaux selon la formule suivante: Parts/Parts totales*gains du jour. Le contrat génère ensuite les jetons HEX et vous les crédite.
Les pièges du désistement
Placement clôturé en urgence ou écourté
Le contrat inclut une fonctionnalité permettant à l’utilisateur de clôturer son placement avant la fin de sa période d’engagement. Les utilisateurs paient en ce cas une pénalité. Le contrat calcule les gains pour la moitié de la période d’engagement (arrondie au jour supérieur), par exemple 182 jours pour une période de 52 semaines et soustrait cette somme des fonds retournés à l’utilisateur. Cette fonction appliquera une pénalité d’au moins 90 jours. Si je fais par exemple un placement pour 52 semaines (environ 1 an) et que je clôture mon placement en urgence après 266 jours (38 semaines), le contrat calculera mes gains pour les jours 1 à 182 et les comptera comme une pénalité. La somme qui me sera versée sera donc de mon Principal + gains des jours 183 à 266.
Si l’utilisateur clôture son placement avant la moitié de la période d’engagement ou si son placement est inférieur à 179 jours et en raison de la pénalité de 90 jours applicable à tous les placements, la pénalité de désengagement peut entamer son Principal. Le contrat prend simplement la moitié du nombre jours ou 90, selon laquelle des deux pénalités est la plus forte, évalue la valeur des jours non-honorés et les soustrait des fonds retournés.
Imaginons que j’effectue un placement de 364 jours et que je me désengage au jour 140, plusieurs étapes prennent place pour déterminer mon nombre de jetons à la sortie du contrat.
Le contrat calcule mes gains pour 140 jours et évalue une pénalité.
- Parce-ce que je n’ai pas honoré la moitié de mon engagement, il estime la différence en appliquant un ratio de moitié des jours honorés/jours honorés*gains.
- Dans ce cas ce sera 182 jours (la moitié des 364 jours d’engagement) divisé par les 140 jours honorés. La pénalité est donc de 182/140 * gains (la moitié des jours divisé par les jours honorés).
- Mon retour en HEX est donc égal à Principal + gains – pénalité.
- La pénalité peut être définie comme une version négative des intérêts, mon retour net en HEX sera alors de Principal + (140/140 * gains) – (182/140 * gains)
- Ce qui est simplifié en Principal – (42/140 * gains).
- Ce qui signifie que mon retour sera inférieur à mon investissement initial. Relisez ce passage encore une fois. Votre principal peut être entamé si vous vous désengagez avant la moitié de votre période d’engagement ou que votre durée de placement est inférieure à 179 jours en raison de la pénalité forfaitaire de 90 jours..
Déplacement tardif
Le système pénalise aussi les utilisateurs s’ils négligent leurs placements en les laissant sur la chaîne après leur date de fin d’engagement. Il y a une période grâce de 14 jours après la date de fin d’un placement après quoi la somme de HEX sera amputée de 0,143% par jour de retard (1% par semaine de retard). Si j’ai par exemple effectué un placement pour 52 semaines, j’ai des jours 365 à 379 pour clôturer mon placement et recevoir mes HEX, mes intérêts et les HEX bonus qui me sont dus. Après ce lapse de temps, mes gains totaux seront pénalisés à hauteur de 0,143% par jour. Ceci inclut le Principal, ce qui veut dire que si je suis en retard de 700 jours (juste en dessous de 2 ans), je ne recevrai aucun HEX peu importe la durée du placement ou le Principal.
Exemples de placements
Ceci est un exemple simplifié destiné à expliquer le flux du contrat. Cet exemple ignore le bonus LargerPaysBetter car nous voulons utiliser des unités assez petites afin de faire sens, ce qui veut dire des pourcentages de bonus ridicules. Plus d’informations disponible sur https://bit.ly/hex-staking-gainz. Lien expiré
- Imaginons que (A), (B), et (C) réclament chacun des HEX le même jour et que chacun reçoive 10 000 HEX.
- A place 10 000 HEX pendant 182 jours (6 mois), B place 10 000 HEX pendant 364 jours (Environ 1 an) et C place 10 000 HEX pendant 1 820 jours (environ 5 ans).
- Pour simplifier, supposons qu’il n’y ait que ces 3 participants et qu’ils reçoivent un taux par part de 1:1.
- Le contrat convertit les HEX en parts en utilisant le scalaire LongerPaysBetter (jour/1820) résultant en
- (A) 10 000 * (1 + 182/1 820) = 11 000 parts
- (B) 10 000 * (1 + 364/1 820) = 12 000 parts
- (C) 10 000 * (1 + 1820/1 820) = 20 000 parts
- Le total des parts se monte à 43 000.
- Tous les jours, un pool de gains est accumulé à partir du calcul suivant: Inflation * (1 + bonus de Masse Critique + bonus de Viralité). Supposons, pour simplifier, qu’il n’y ait aucune autre réclamation de manière à ce que la Masse Critique et la Viralité restent constantes.
- Pour cet exemple, imaginons que l’inflation soit de 714,285 HEX par jour, 15% de bonus de Masse Critique et 25% de bonus de Viralité, renvoyant ainsi un pool de gains quotidiens de 714,285 * (1 + 0,15 + 0,25) = 1 000 HEX par jour.
- Disons qu’au 1er jour, le pool se monte à 1 000 HEX répartis entre les 43 000 parts.
- Le 2ème jour, le pool est de 1 000 HEX répartis entre les 43 000 parts.
- Et ainsi de suite. Jusqu’au jour 182.
- Au jour 182, (A) clôture son placement sans pénalité.
- Le contrat récapitule tous les jours entre les jours 1 et 182.
- Il agrège les gains de (A) en utilisant les parts de (A) / total des parts.
- 1 000 HEX * 11 000 parts de (A) / 43 000 parts au total = 255,81 HEX
- Le calcul recommence pour chacun des 182 jours renvoyant à un retour de 46 557,42 HEX.
- Ces jetons sont générés et versés à son adresse en plus des 10 000 HEX initiaux
- L’adresse de (A) contient donc désormais 56 557,42 HEX.
Ce processus se répétera pour (B) et (C) une fois leurs placements arrivés à maturité, c’est à dire à 364 et 1820 jours respectivement.
Bonus de réclamation
Ces bonus et modulateurs sont répertoriés dans l’ordre dans lequel ils sont appliqués.
Bonus et modulateurs
Tous les bonus et modulateurs décrits ici sont mis en avant sur le site web et sont codés à l’intérieur même du contrat. Je les ai tous révisés et ait validé les formules mathématiques et l’ordre des opérateurs à l’aide de la documentation Solidity (si vous ne comprenez pas ce que ça signifie, ça veut dire que j’ai vérifié que le contrat fasse bien ce qu’il est supposé faire).
Note de la rédaction: la phase de réclamation BTC est maintenant terminée (depuis le 19 novembre 2020). Ces bonus ne sont donc plus applicables.
Bonus de réclamation
Ces bonus et modulateurs sont répertoriés dans l’ordre dans lequel ils sont appliqués.
Le site web GoxMeNot déclare qu’il n’autorise pas certaines adresses bien connues et détenues par de mauvais acteurs du marché à réclamer leurs jetons (par exemple les actuels détenteurs du portefeuille de Mt-Gox). Cette fonctionnalité sera activée durant la création du snapshot de l’arbre de Merkle. Richard a déclaré qu’il publierait les informations nécessaires afin de permettre aux utilisateurs de reconstruire le snapshot de l’arbre de Merkle eux-mêmes de manière à pouvoir en valider la précision mais aucune information n’a pour l’heure été publiée à ce sujet, je ne peux donc pas vérifier si cela arrivera pour le moment.*
SillyWhalePenalty (pénalité des Silly Whales): lors de la réclamation, si l’adresse BTC renseignée contenait plus de 1 000 bitcoins au moment du snapshot, le montant de la réclamation en sera réduit. La réduction va de 50% pour 1 000 BTC et jusqu’à 75% pour 10 000 BTC et plus. Ce taux est linéaire ce qui veut dire que pour une réclamation de 5 500 bitcoins (à mi-chemin entre 1 000 et 10 000) votre réclamation sera réduite à 62,5% de votre volume de bitcoins. Cela signifie qu’une réclamation de 1 000 BTC ne peut être créditée que de 500 fois 10 000 HEX. Une réclamation de 10 000 BTC ne peut recevoir que 25 000 000 jetons HEX (2 500*10 000 BTC). Une réclamation de 5 500 BTC ne recevra que 20 625 000 jetons HEX. Conseil de pro: cette pénalité peut-être évitée en divisant un portefeuille trop important en plusieurs adresses contenant chacune moins de 1 000 BTC avant le snapshot.
Pénalité de retard: le système récompense les réclamations précoces et pénalise les réclamations tardives. Le but de cette fonction étant de réduire la valeur de votre réclamation de 0,286% par jour (environ 2% par semaine), réduisant ainsi votre part à 0% après le 351ème jour après lancement. Cette fonction est simple, elle multiplie votre réclamation par (350 – jours passés)/350. C’est-à-dire qu’au premier jour éligible pour réclamation, 0 jour n’étant encore passé, vous recevrez donc réclamation * 350/350. Trois semaines plus tard, vous ne recevrez plus que réclamation* 329/350. Une réclamation de 1 BTC vous rapportera par exemple 10 000 HEX au premier jour de lancement mais vous ne recevrez plus que 9 400 HEX trois semaines plus tard. Dans l’exemple précédent, en réclamant nos HEX 2 semaines après la date de lancement (au 19 mai), nous aurions eu une pénalité de 2 000 HEX sur notre réclamation de 50 000 HEX comme démontré dans la section des exemples de réclamations.
Bonus de Vitesse d’adoption: dans la section du flux basique, nous avons réclamé 50 000 HEX au total via 2 adresses BTC. Un bonus de vitesse est appliqué à ces réclamations. Ce bonus est applicable pour les placements effectués pendant les premiers 350 jours de réclamation après le lancement et démarre à 20% au premier jour et diminue de 0,057% par jour ensuite. Une réclamation de 5 BTC effectuée le 5 mai me rapportera donc l’intégralité des 20% (5*10 000 HEX de base + 10 000 HEX de bonus), portant notre total à 60 000 HEX. Dans notre exemple, nous avons réclamé nos jetons 2 semaines en retard, ce qui fait que notre réclamation de base n’est plus que de 48 000 HEX et que le bonus d’adoption est retombé à 19,2% de cette nouvelle valeur de base soit 9 216 HEX de bonus. Si je réclame ma part 175 jour plus tard (environ 6 mois), je perds non seulement en bonus d’adoption mais en plus une partie de ma réclamation de base sera été redistribuée via la fonctionnalité “We Are All Satoshi” (Nous Sommes Tous Satoshi). Ma réclamation de base ne sera alors plus que de 25 000 HEX (pénalité de retard) et le bonus de vitesse d’adoption ne sera donc plus que de 10% ou encore 2 500 HEX supplémentaires.
Liens de parrainage: le site web de HEX vous permet de générer des liens de parrainage. Ces derniers placent un cookie dans le navigateur des personnes qui ont cliqué sur le lien web. Ce cookie déclare tout simplement votre adresse ETH et est lue par l’outil de réclamation. Le contrat reçoit alors une adresse référente et au moment de la réclamation crédite l’adresse référente de 20% de la valeur de votre réclamation en incluant le bonus de vitesse*. Mieux encore, ce lien de parrainage rapporte à la personne qui l’utilise un bonus de 10% pour avoir nommé un référent. En clair, un lien de parrainage vous donne un bonus de 10% de jetons. Votre référent gagne 20% de la valeur totale de votre réclamation. Si vous réclamez par exemple 1 BTC au premier jour de lancement, vous aurez l’intégralité du bonus de vitesse de 20% vous donnant 12 000 HEX. Cliquer sur un lien de parrainage génère et vous crédite de 10% de jetons supplémentaires soit 1 200 HEX et crédite 20% de votre réclamation de base à votre référent soit 2 640 HEX.
Vous pouvez aussi vous auto-parrainer, c’est-à-dire que vous pouvez générer un lien de parrainage pour votre propre adresse ETH, cliquer dessus et réclamer vos HEX bonus, vous recevrez ainsi un bonus de 20% de parrainage sur l’une de vos adresses. Je mentionne cet effet pour que compreniez que vous pourriez utiliser une adresse ETH vide pour recevoir vos bonus de réclamation et votre adresse réelle pour réclamer vos HEX. Vous pourriez alors consolider vos placements comme bon vous semble par la suite.
Bonus de placement
Modificateurs du pool des paiements
Note de la rédaction: la phase de réclamation BTC est maintenant terminée (depuis le 19 novembre 2020). Le bonus “Nous Sommes Tous Satoshi” n’est donc plus applicable.
Nous Sommes Tous Satoshi
En tant que partie intégrante du processus du snapshot, le montant total des bitcoins en existence sera calculé. Tous les jours suivant le premier jour réclamable et pendant 350 jours, 0,2857% de ce total, moins le montant réclamé en jetons HEX, est enregistré dans le snapshot. Supposons qu’il y ait par exemple 17 500 000 bitcoins au total dans le snapshot. Si à la fin du premier jour, la moitié des réclamations potentielles ont été effectuées, cela veut dire qu’il y a 8 750 000 bitcoins qui n’ont pas été réclamés. Le jour suivant, 25 000 bitcoins seront retirés du pool de 8 750 000 bitcoins et enregistrés comme “non-réclamés”. Le jour suivant, en supposant qu’il n’y ait pas eu de nouvelle réclamation, 25 000 autres bitcoins seront drainés et ajoutés au montant des jetons non-réclamés. Et ainsi de suite.
Si plus d’utilisateurs réclament leurs parts, le pool quotidien de jetons non-réclamés en devient réduit d’autant. Pour être précis, les réclamations se réduisent à la même vitesse que les jetons sont déclarés comme “non-réclamés” de manière à ce que tout s’échelonne correctement. Ce qui veut dire que si vous avez 50 BTC et que vous ne faîtes pas de réclamation pendant 35 jours (5 semaines), vous n’aurez plus que l’équivalent de 45 bitcoins réclamables en HEX. Le pool des jetons non-réclamés a pris 5 de vos BTC sous forme de jetons HEX et les a déclaré comme “non-réclamés”. “La conception mathématique du contrat fait que les réclamations et les jetons non-réclamés s’autoéquilibrent.”
À la fin de la phase de réclamation, soit 352 jours après le lancement du contrat, tous les jetons générés et non-réclamés seront versés aux utilisateurs ayant un placement en cours ce jour-là (c’est ce qu’on appelle le BigPayDay), ces utilisateurs sont aussi appelés “stakers”. Comment cela se fera-t-il en pratique si vous avez un placement pendant ce jour spécial? En addition de vos gains en intérêts vous recevrez en plus un bonus unique exclusif de votre part des jetons non-réclamés. Si par exemple, comme nous l’avons imaginé plus haut, nous avons 8 750 000 BTC réclamés et pas plus. À la fin de la phase de réclamation, tout placement actif pendant cette journée recevra un paiement unique représentant une portion des jetons non-réclamés lorsqu’il appellera la fonction stakeEnd du contrat. Si vous avez 5% des parts de tous les participants, vous recevrez un bonus supplémentaire de 0,05 * 8 750 000 BTC * 10 000 HEX/BTC = 4 375 000 000 HEX.
Masse critique et viralité
Je répertorie ici ces bonus ensemble car ils fonctionnent de manière similaire et sont concaténés dans le contrat. La masse critique est un bonus qui s’applique au pool des paiements de sortie et est égal au calcul suivant: jetons réclamés / total des jetons potentiels. S’il y a donc au total 17 500 000 jetons réclamables et que 13 125 000 jetons sont réclamés ce bonus sera alors de 75%. La viralité est similaire mais pour les adresses bitcoins. Il s’agit du calcul suivant: nombre d’adresses BTC éligibles / total des adresses éligibles. Les bonus sont cumulatifs, c’est-à-dire qu’ils sont calculés chacun séparément et ajouté aux gains selon la formule (gains*(1 + jetons réclamés/total des jetons + adresses réclamées / total des adresses réclamées)).
Désengagement en avance ou en retard
Ces dernières fonctions ne sont pas des bonus mais au contraire des pénalités générées par les autres participants. Comme décrit dans la section des pièges du désistement, certaines actions des utilisateurs donnent lieu à des pénalités. La moitié des jetons HEX payée en pénalités est ajoutée au pool des gains pour le prochain cycle. Les jetons HEX provenant de pénalités sont accumulés dans un “pool de pénalités”, ce pool étant vidé chaque jour dans le pool des gains du jour en attendant le cycle du lendemain. De manière à ce que le pool des gains de chaque jour s’accroisse par les pénalités versées le jour d’avant. Supposons par exemple qu’un total de 10 000 HEX soient perdus en pénalités le 10ème jour de placement, le pool des gains du 11ème jour contiendra donc de 5 000 HEX en plus des jetons générés ce jour là. Ensuite, toujours au cours du 11ème jour, 15 000 HEX sont perdus en pénalités. Le pool des gains du 12ème jour contiendra donc 7 500 HEX en plus de l’inflation générée ce jour-là. Et ainsi de suite.
Modifier votre placement
Ces bonus sont un moyen de multiplier vos HEX jusqu’à ce qu’il deviennent des parts. Le bonus LongerPaysBetter est plafonné à x2 en l’espace de 10 ans ou de 3641 jours et le bonus BiggerPaysBetter est plafonné à 10% pour les placement de 150 000 000 HEX ou plus. C’est-à-dire qu’avec un placement de 10 ans, vos parts sont égales à trois fois vos jetons. Avec un placement de 75 000 000 HEX vous recevez un bonus de 5% en plus de tous les bonus précédents. Le total après bonus est le nombre utilisé pour calculer vos parts.
Un placement plus long rapporte toujours plus (LongerPaysBetter)
Plus vous placez vos jetons longtemps, plus vous en gagnez. La formule est la suivante: (jours placés – 1) / 1820. Ça a l’air compliqué comme ça mais cela revient à 20% par année de placement (le contrat utilise des années à 364 jours). Le ‘moins 1’ compte comme la durée de placement minimum qui est de 1 jour.
Un placement plus grand rapporte toujours plus (BiggerPaysBetter)
Plus votre placement est important plus vous y gagnez. La formule de ce bonus est la suivante: jetons HEX/150*10^7. Ce bonus est plafonné à 10% pour les placements supérieurs 150 000 000 HEX. Remarque: le pourcentage est plafonné, le nombre de HEX en bonus ne l’est pas.
Exemples de placements
- 1 000 000 HEX = 0,0667% bonus, ou 667 HEX en bonus
- 10 000 000 HEX = 0,667% bonus, ou 66 667 HEX en bonus
- 100 000 000 HEX = 6,67% bonus, ou 6 666 667 HEX en bonus
- 200 000 000 HEX = 10,0% bonus, ou 20 000 000 HEX en bonus
L’Adresse d’Origine
Le contrat spécifie une adresse ETH comme étant l’Adresse d’Origine. Cette adresse accumule les HEX versés par le contrat de plusieurs manières.
- La moitié des jetons HEX perdus en pénalités par les stakers est versée à l’Adresse d’Origine (l’autre moitié étant versée au pool de paiement des intérêts).
- Une copie de tous les bonus versés aux stakers est aussi octroyée à l’Adresse d’Origine.
- Bonus de vitesse de réclamation
- Bonus de parrainage
- Incréments “We Are All Satoshi” (bonus “Nous Sommes Tous Satoshi”)
- Bonus de masse critique et de viralité
Fonctions du contrat
Cette section est plus technique et traite des différentes fonctions incluses dans le contrat intelligent HEX et qui peuvent être appelées par tout participant pourvu qu’il s’acquitte des frais de GAS. Certaines de ces fonctions sont marquées comme “externes” et d’autres comme “publiques”. D’après la documentation de Solidity, il n’y a aucune distinction du point de vue des utilisateurs outre le fait que les fonctions externes sont parfois plus économes en GAS. Je suppose que ces libellés sont plus fait pour que les développeurs puissent repérer quelles fonctions sont susceptibles d’être appelées de manière régulière par les clients externes.
Fonctions externes
Ces fonctions “externes” sont les interactions courantes ordinaires que vous avez avec le contrat.
Fonctions informatives
Ces fonctions sont liées aux informations que l’on peut tirer du contrat.
globalInfo
Cette fonction retourne l’état global du contrat sous la forme d’un tableau de valeurs
- lockedHeartsTotal (total des Hearts placés)
- nextStakeSharesTotal (total des parts des prochains placements)
- shareRate (taux des parts)
- stakePenaltyPool (pool des pénalités de placement)
- daysStored (nombre de jours placés)
- stakeSharesTotal (total des parts placées)
- latestStakeId (id du dernier placement)
- unclaimedSatoshisTotal (total des satoshis non-réclamés)
- claimedSatoshisTotal (total des satoshis réclamés)
- claimedBtcAddrCount (nombre d’adresses BTC ayant réclamé leurs jetons)
- currentContractDay (jour actuel du contrat)
- totalSupply (volume total en circulation)
allocatedSupply (réserve allouée)
Retourne le volume total de HEX en circulation ainsi que le volume agrégé de HEX placés. Ceci est une fonction qui diffère de la fonction ERC-20 “totalSupply” car le contrat détruit les HEX placés, ce qui veut dire qu’ils ne seront pas pris en compte par la fonction “totalSupply”.
totalSupply (réserve totale)
Retourne le volume total de HEX générés, synonyme du volume en circulation de jetons HEX.
dailyDataUpdate (mise à jour quotidienne)
Cette fonction prend comme variable un numéro de jour (depuis le lancement de HEX), 0 étant interprété comme le “jour actuel”. Cette fonction est idempotente et calcule les gains du jour actuel avant ceux du jour demandé. Si j’appelle par exemple cette fonction 1 an après le lancement avec un paramètre de “343” elle calculera toutes les données du placement pour les jours 1 à 342 ou pour tous les jours qui n’ont pas encore été calculés.
dailyDataRange (fluctuations quotidiennes)
Cette fonction prend comme variables le numéro du jour et le nombre de jours. C’est une fonction de recherche de données qui retourne la liste des paiements de sortie pour la période requise. Les données sont encapsulées dans des valeurs uint256 (snapshot des satoshis non-réclamés<<160, total des parts << 80, total des gains).
currentDay (jour actuel)
Retourne le numéro du jour actuel depuis le lancement du contrat.
Fonctionnalités de transformation
Fonctions servant à participer dans un lobby de transformation et fonctions liées.
xfLobbyEnter (entrer dans un lobby de transformation)
Verse les ETH fournis dans le lobby de transformation du jour actuel. Si l’adresse d’un référent est fournie, elle est capturée afin de créditer votre référent avec un bonus de parrainage lorsque vous sortirez du lobby (et collecterez vos HEX). Plusieurs entrées peuvent être enregistrées en une seule journée, elles seront alors inscrites dans une file d’attente qui sera ordonnée selon la durée des placements, les placements plus courts passant en avant.
xfLobbyExit (sortir du lobby de transformation)
Prend un jour cible et le nombre d’entrées à récapituler. Supposons que vous entriez dans le lobby le 3ème jour 4 fois d’affilée. Après le 3ème jour, vous pourrez appeler cette fonction avec le paramètre 3 pour le numéro du jour et un paramètre de 0 à 4 pour le nombre d’entrées à récapituler. 0 signifiant “la totalité des entrées”. Le contrat récapitulera alors le nombre donné d’entrées de la plus ancienne à la plus récente, agrégeant le nombre de HEX générés et générera par la même occasion le bonus de parrainage de votre référent.
Dans l’exemple précédent, supposons que les première et deuxième entrées aient des référents différents appelés A et B. Si j’appelle la fonction leaveXfLobby(3, 2), le contrat calculera mes HEX transformés de la première entrée, générera le bonus de parrainage crédité à A, calculera les HEX transformés pour la seconde entrée, générera le bonus de parrainage crédité à B et générera enfin mon volume total de HEX.
xfLobbyflush
Verse les ETH transformés à une adresse temporaire prédéfinie.
xfLobbyRange
Retourne le volume du lobby pour une période donnée en jours spécifiée par les paramètres de date de début et de fin.
xfLobbyEntry
Retourne le volume d’ETH et le référent pour une entrée donnée d’un jour donné. Le paramètre “entryId” retourne un paquet contenant la valeur du jour et un index des entrées dans la file d’attente.
xfLobbyPendingDays
Retourne une liste des jours qui ont des entrées en attente disponibles à la collecte.
Fonctions de placement
Les fonctions de placement ou liées au mécanisme de placement.
stakeStart (début de placement)
Démarre un placement. Prend comme variables le montant du placement et la durée du placement. Le contrat calcule les parts d’après la durée du placement et ajoute une entrée de placement pour l’utilisateur. L’identifiant de ce placement est tout simplement égal au nombre de placements dans le contrat plus 1. Supposons que j’aie 3 placements actifs et que d’autres utilisateurs aient un volume total combiné de 20 placements actifs. La fonction globale “next stake id” est de 24 et démarre un nouveau placement. Pour faire référence au nouveau placement plus tard, son id sera 24. Démarrer un nouveau placement détruit les HEX placés et les enregistre dans la fonction globale “allocated supply”.
stakeEnd (fin du placement)
Clôture un placement. La logique du calcul des gains varie quelque peu selon que le placement ait été clôturé en avance, en retard ou à temps. Le détail est expliqué plus haut. Les variables de cette fonctions sont l’id du placement (cet id a été attribué lors du processus de placement) et l’index du placement entre tous les placements actifs d’un utilisateur. Cette fonction génère des nouveaux jetons HEX pour honorer le retour du placement et les ajoute au total du volume (en circulation).
stakeGoodAccounting (comptabilité du placement)
Cette fonction clôture les placements arrivés à maturité de manière sûre. Si le placement n’est pas arrivé à maturité, cette fonction retourne une erreur. Elle ne paie pas le participant. Elle peut être appelée par quiconque de la part de tout participant ayant accès à vos clés privées. Elle prend comme variables une adresse de placement et un id de placement pour cette adresse.
stakeCount
Cette fonction retourne le nombre de placements actifs que possède cet utilisateur.
Note de la rédaction: la phase de réclamation BTC est maintenant terminée (depuis le 19 novembre 2020).
Fonctions de réclamation
Fonctions destinées à la réclamation ou liées au mécanisme de réclamation.
btcAddressIsClaimable (adresse BTC réclamable)
Prend un adresse BTC et retourne si celle-ci peut-être réclamée, c’est-a-dire si elle n’a pas encore été réclamée et est valide.
btcAddressIsValid (adresse BTC valide)
Vérifie si les paramètres de réclamation adresse BTC, nombre de satoshis et preuve de Merkle constituent une réclamation valide.
merkleProofIsValid (preuve de Merkle valide)
Atteste de la validité de la preuve de Merkle et de sa feuille par rapport à l’arbre de Merkle bâti sur l’ensemble des UTXO.
btcAddressWasClaimed (adresse BTC déjà réclamée)
Prend une adresse BTC et retourne si celle-ci a été réclamée ou non.
claimBtcAddress (réclamer adresse BTC)
Celle-ci est importante. Ceci est la fonction de réclamation qui pourrait être appelée par un client naïf mais qui a plus certainement été créée en vue d’être appelée par l’outil de réclamation. Plusieurs données sont nécessaires à la validation d’une réclamation par bitcoin et cette dernière résulte en un octroi de jetons HEX “gratuits” incluant le bonus de vitesse d’adoption, la pénalité de retard et le bonus de parrainage (10% de HEX en plus si vous êtes parrainé par quelqu’un d’autre, 32% si vous vous auto-parrainez). “Gratuit” a une signification spéciale dans ce cas, comme expliqué ci-dessous.
Pour les participants intéressés par détails techniques, les paramètres d’entrée sont:
- “referer” fait allusion à l’adresse ETH qui vous a parrainé si vous en aviez une.
- `v`, `r`, et `s` sont les paramètres connus nécessaires pour la validation de la signature ECDSA.
- `addrType`, `pubKeyX`, et `pubKeyY` sont des paramètres destinés à convertir une clé ECDSA publique en son adresse BTC associée.
- `claimToAddr` indique l’adresse ETH de destination qui doit recevoir les jetons HEX si la réclamation est valide.
- ‘proof’ sont les données utilisées pour prouver qu’une adresse donnée est incluse dans le snapshot (par exemple avec la fonction ‘verifyProof’). Les renseignements ci-après sont techniques mais rassurez-vous ils sont standardisés ce qui est en fait l’un des avantages des structures de données utilisées pour les données BTC.
- `rawSatoshis` est le montant de la réclamation en satoshis, le plus petit dénominateur numérique du bitcoin (les satoshis sont au bitcoin ce que sont les centimes à l’euro)
- `autoStakeDays` – cette fonction n’est pas liée à la vérification de la réclamation mais plutôt à une nouvelle règle du contrat expliquée ci-dessous.
Le contrat place maintenant automatiquement 90% du montant d’une réclamation pour un minimum de 350 jours. Cette fonction prend le nombre de jours en placement automatique comme variable et valide qu’il dure au minimum 350 jours. Le déplacement d’urgence est désactivé avant 350 jours. Supposons un réclamation “typique” avec un placement automatique de 350 jours; la fonction de placement automatique n’autorisera son déplacement que lorsqu’il sera arrivé à maturité mais pas avant. Un utilisateur agressif peut même effectuer une réclamation avec un placement automatique de 700 jours. Il pourra alors déplacer les sommes après 350 jours mais avec toutes les pénalités de plein-pot applicables pour déplacement précoce.
Les 10% restants des jetons HEX réclamés sont générés et crédités au participant et peuvent être échangés ou placés selon vos souhaits.
Fonctions publiques
Ces fonctions sont les fonctions publiques que le contrat est capable d’appeler mais qui peuvent ne pas avoir de sens pour vous. Cette déclaration deviendra plus claire grâce aux lignes ci-dessous.
claimMessageMatchesSignature (le message de réclamation correspond à la signature)
Synthétise un message de réclamation provenant d’une clé et la compare à l’adresse extraite du message recréé et de l’adresse convertie à partir d’une clé publique.
pubKeyToEthAddress
Sert à convertir une clé publique en une adresse ETH.
pubKeyToBtcAddress
Sert à convertir une clé publique en une adresse BTC.
Évènements du contrat
Les évènements ont été restructurés dans le contrat afin d’utiliser une solution de compression de bits propriétaire, ces valeurs ne sont donc pas correctes. Les valeurs que les fonctions capturent sont toutes documentées ci-dessous avec des approximation de taille.
La compression de bits signifie que l’auteur du contrat et du protocole n’utilise que des valeurs uint256 et a encodé la structure qui emplit les 256 bits en segments prévisibles. Il en est ainsi car le langage Solidity n’autorise que les tailles uint (valeurs intègres positives ) en incréments de 8 bits alors que beaucoup de valeurs dans HEX nécessitent des nombres proches d’un multiple de 8. Ce qui veut dire que l’efficacité des prix des transactions en GAS peut encore améliorée en utilisant des tailles précises et en encodant les valeurs en uint256.
XfLobbyEnter
Émis lors de votre entrée dans un des lobbies quotidiens.
Champs
uint40 timestamp,
address indexed memberAddr,
uint256 indexed entryId,
uint96 rawAmount,
address indexed referrerAddr
XfLobbyExit
Émis lors de la sortie d’un lobby de transformation. Pour les appels xfLobbyExit à plusieurs entrées, plusieurs événements sont émis.
Champs
uint40 timestamp,
address indexed memberAddr,
uint256 indexed entryId,
uint72 xfAmount,
address indexed referrerAddr
DailyDataUpdate (mise à jour quotidienne des données)
Émis à la fin d’une mise à jour quotidienne. Un seul événement est émis par lot de données journalières calculées.
Champs
uint40 timestamp,
uint16 daysStoredAdded,
uint16 daysStoredTotal,
bool isAutoUpdate,
address indexed updaterAddr
Fonctions de réclamation
Émis après une réclamation BTC.
Champs
uint40 timestamp,
address indexed claimToAddr,
bytes20 indexed btcAddr,
uint8 claimFlags,
uint56 rawSatoshis,
uint56 adjSatoshis,
uint72 claimedHearts,
address indexed referrerAddr,
address senderAddr
ClaimAssist
Émis lors de l’achèvement d’une réclamation BTC lorsque le réclamant n’est pas celui qui a fait appel au contrat. Cet événement est émis en plus des événements de réclamation cités ci-dessus.
Champs
uint40 timestamp,
address claimToAddr,
bytes20 btcAddr,
uint8 claimFlags,
uint56 rawSatoshis,
uint56 adjSatoshis,
uint72 claimedHearts,
address referrerAddr,
address indexed senderAddr
StakeStart (début de placement)
Émis au début d’un placement.
Champs
uint40 timestamp,
address indexed stakerAddr,
uint40 indexed stakeId,
uint72 stakedHearts,
uint72 stakeShares,
uint16 stakedDays,
bool isAutoStake
StakeGoodAccounting
Emis lors de l’appel à la fonction stakeGoodAccounting si celle-ci réussit.
Champs
uint40 timestamp,
address indexed stakerAddr,
uint40 indexed stakeId,
uint72 payout,
uint72 penalty,
address indexed senderAddr
StakeEnd
Émis lors de la clôture d’un placement.
Champs
uint40 timestamp,
address indexed stakerAddr,
uint40 indexed stakeId,
uint72 payout,
uint72 penalty,
uint16 servedDays
Émis si le taux des parts change en fonction de la fonction endStake et remplace la valeur par le nouveau taux des parts.
uint40 timestamp,
uint40 shareRate,
uint40 indexed stakeId