À partir de l'époque 243 pour certaines adresses de récompense, cardano-cli et db-sync affichent un nombre différent de récompenses. Par exemple enjeu1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0
cardano-cli
$ cardano-cli query stake-address-info --cardano-mode --mainnet --allegra-era --address stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0
[
{
"address": "stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0",
"delegation": "pool14ku0z9rx9yx34zl00jtxtpyv6ehytfl8fewztavx7qvju7nrtr8",
"rewardAccountBalance": 13258955846
}
]
et db-sync
# SELECT SUM(reward.amount)
# FROM stake_address
# LEFT JOIN reward ON reward.addr_id = stake_address.id
# WHERE stake_address.view = 'stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0';
sum
-------------
13222415370
(1 row)
La différence est de 36,540476 ₳ , ce qui équivaut approximativement au montant de la récompense du vote.
réseau principal, cardano-cli 1.24.2, cardano-db-sync 7.1.0
Il semble que ces récompenses de vote soient maintenant dans le tableau de « trésorerie »
# SELECT treasury.amount
# FROM stake_address
# LEFT JOIN treasury ON treasury.addr_id = stake_address.id
# WHERE stake_address.view = 'stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0';
amount
----------
36540476
(1 row)
Il semble que ces récompenses de vote soient maintenant dans le tableau de « trésorerie »
~Oups, ça ressemble à une erreur.~ Apparemment non.
Nous devons clarifier d'une manière ou d'une autre (dans le schéma et/ou les documents associés) qu'il existe plusieurs tableaux d'événements qui affectent les comptes de récompense de solde :
Ainsi, les personnes qui écrivent des requêtes pour suivre le solde total devront prendre l'union des événements.
Les certificats MIR ont été utilisés à diverses fins de haut niveau (mais le but n'est bien sûr pas affiché sur la chaîne), notamment : les récompenses dues à l'ITN, les paiements de trésorerie pour les projets gagnants, les paiements de trésorerie pour la participation à Catalyst.
Je pense qu'une partie du problème est qu'une table nommée reward
pourrait raisonnablement contenir toutes les récompenses, mais ce n'est en fait pas le cas. Cette table ne contient
Ceci est rendu plus confus dans la mesure où le tableau withdrawal
contient tous les retraits du compte de récompenses.
J'ai essayé de trouver l'approche la plus soignée que je puisse trouver.
Nous créons d'abord une vue :
# create view reward_payment_view as
select addr_id, amount, 'treasury' as source
from treasury union select addr_id, amount, 'reward_epoch_' || epoch_no as source from reward ;
le nous pouvons interroger cette vue comme :
# select stake_address.view, reward_payment_view.amount, reward_payment_view.source
from reward_payment_view inner join stake_address on reward_payment_view.addr_id = stake_address.id
where stake_address.view = 'stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0' ;
view | amount | source
-------------------------------------------------------------+------------+------------------
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 36540476 | treasury
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 373554942 | reward_epoch_226
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 381550960 | reward_epoch_222
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 394285344 | reward_epoch_225
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 394335813 | reward_epoch_223
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 437204214 | reward_epoch_236
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 442787046 | reward_epoch_233
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 450575175 | reward_epoch_238
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 463125272 | reward_epoch_228
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 481675128 | reward_epoch_224
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 495852458 | reward_epoch_227
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 571559879 | reward_epoch_234
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 599359585 | reward_epoch_232
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 612352961 | reward_epoch_237
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 658610556 | reward_epoch_231
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 1319746538 | reward_epoch_219
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 1342842199 | reward_epoch_218
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 1374758087 | reward_epoch_216
stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 2428239213 | reward_epoch_220
(19 rows)
Est-ce un view
que je devrais expédier prédéfini dans db-sync
?
@dmitrystas Cela peut-il être fermé maintenant ?
je pense que oui merci
Commentaire le plus utile
Je pense qu'une partie du problème est qu'une table nommée
reward
pourrait raisonnablement contenir toutes les récompenses, mais ce n'est en fait pas le cas. Cette table ne contientCeci est rendu plus confus dans la mesure où le tableau
withdrawal
contient tous les retraits du compte de récompenses.