Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat: Validator details (Voting power changes, Proposal votes) #39

Open
Errorist79 opened this issue Feb 11, 2023 · 1 comment
Open

Comments

@Errorist79
Copy link
Member

No description provided.

@Errorist79
Copy link
Member Author

Errorist79 commented Feb 12, 2023

Governance/Proposal votes

Bir validatorün governance/proposal oylamalarını alabilmek için aşağıda ki endpoint'i kullanabiliriz: validator cüzdan adresine ihtiyacımız var, yani self delegate address.

/cosmos/tx/v1beta1/txs?events=message.sender='{{validator_self_delegate_address}}'&events=message.action='/cosmos.gov.v1beta1.MsgVote'

Bu şekilde, validator'ün kullandığı oylar karşımıza çıkmakta.

Yaptığı oylama, hangi proposale oy verdiği, timestamp ve txhash bilgisine ihtiyacımız var, buradan sadece bu verileri alacağız. (görsele timestamp değerini yerleştiremedim)

image

Power Changes (Voting Power)

Validatorlerin voting power değerleri, her yeni delegate/redelegate/unbond işleminde değişir. bu üç işlemde birbirinden farklıdır, redelegate işlemi ise iki yönlüdür. Bir validatorden başka bir validator'e yapılan bir işlem olduğundan, endpointler değişir. Yani, X ve Y adlı iki validator düşünelim, X'ten Y'ye yapılan redelegasyonlar, Y'nin hanesine artı olarak, X'in hanesine eksi olarak yazılır, çünkü X delegasyon kaybetti, Y kazandı :) Tam tersi durumda mümkün.
Şimdi, bu yüzden 4 ayrı endpoint kullanacağız totalde.

Bu özelliğimiz, explorer'da bir validatorün delegasyon değişimlerini göstermek üzerinedir. Bu yüzden burada bir iki durum var, endpointler altında açıklayacağım.

Endpoints:

Delegate:

Delegate işlemi, validator'e yeni delegasyon yapıldığı anlamına gelir. Yani güç kazandı diyebiliriz :) Bunu UI tarafında anlaşılır kılabilme adına ek bir parametre ile süslememiz gerekir. Aşağıda ki endpoint ile bir validatorün delegasyonlarını çekmiş olacağız. Bu durumda, yani genel olarak güç kazanılan durumlarda status=positive gibi bir parametre ekleyebiliriz route'a. Güç kaybedilen durumlarda ise, status=negative gibi bir parametre eklememiz yerinde olacaktır diye düşünüyorum.

Alınacak veriler ise tüm endpointlerde aynıdır.
Txhash, amount, timestamp.

Power change durumu: status=positive

/cosmos/tx/v1beta1/txs?events=delegate.validator='{{validator_address}}'&order_by=ORDER_BY_DESC

Unbond:

Power change durumu: status=negative

/cosmos/tx/v1beta1/txs?events=unbond.validator='{{validator_address}}'&order_by=ORDER_BY_DESC

Redelegate:

Power change durumu: status=negative

/cosmos/tx/v1beta1/txs?events=redelegate.source_validator='{{validator_address}}'&order_by=ORDER_BY_DESC

Redelegate:

Power change durumu: status=positive

/cosmos/tx/v1beta1/txs?events=redelegate.destination_validator='{{validator_address}}'&order_by=ORDER_BY_DESC

@Errorist79 Errorist79 changed the title Feat: Validator details (Voting power, Proposal votes) Feat: Validator details (Voting power changes, Proposal votes) Feb 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant