Skip to content

Commit

Permalink
Move sort to parsers
Browse files Browse the repository at this point in the history
  • Loading branch information
buberdds committed Mar 16, 2022
1 parent c975406 commit a90acce
Show file tree
Hide file tree
Showing 9 changed files with 228 additions and 179 deletions.
4 changes: 2 additions & 2 deletions src/app/pages/StakingPage/Features/ValidatorList/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
selectSelectedAddress,
selectUpdateValidatorsError,
selectValidatorDetails,
selectValidatorsSortedByStatus,
selectValidators,
} from 'app/state/staking/selectors'
import { Validator } from 'app/state/staking/types'
import { useWalletSlice } from 'app/state/wallet'
Expand All @@ -35,7 +35,7 @@ export const ValidatorList = memo((props: Props) => {
const actions = useStakingSlice().actions
useWalletSlice()

const validators = useSelector(selectValidatorsSortedByStatus)
const validators = useSelector(selectValidators)
const updateValidatorsError = useSelector(selectUpdateValidatorsError)
const walletIsOpen = useSelector(selectStatus)
const selectedAddress = useSelector(selectSelectedAddress)
Expand Down
14 changes: 0 additions & 14 deletions src/app/state/staking/selectors.test.ts

This file was deleted.

15 changes: 0 additions & 15 deletions src/app/state/staking/selectors.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { createSelector } from '@reduxjs/toolkit'

import { RootState } from 'types'
import { Validator } from 'app/state/staking/types'
import { initialState } from '.'

const selectSlice = (state: RootState) => state.staking || initialState
Expand All @@ -16,17 +15,3 @@ export const selectSelectedAddress = createSelector([selectStaking], state => st
export const selectValidatorDetails = createSelector([selectStaking], state => state.selectedValidatorDetails)
export const selectActiveDelegations = createSelector([selectStaking], state => state.delegations)
export const selectDebondingDelegations = createSelector([selectStaking], state => state.debondingDelegations)

const ValidatorStatusPriority = {
active: 1,
inactive: 2,
}

const sortValidatorsByStatus = (validators: Validator[]) => {
const array = [...validators]
return array.sort((a, b) => ValidatorStatusPriority[a.status] - ValidatorStatusPriority[b.status])
}

export const selectValidatorsSortedByStatus = createSelector([selectValidators], validators =>
sortValidatorsByStatus(validators),
)
41 changes: 27 additions & 14 deletions src/vendors/__tests__/__snapshots__/monitor.spec.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -158,27 +158,40 @@ Array [
exports[`monitor parse validators 1`] = `
Array [
Object {
"address": "oasis1qq3xrq0urs8qcffhvmhfhz4p0mu7ewc8rscnlwxe",
"current_rate": 0.05,
"escrow": 336904789689084160,
"address": "oasis1qqekv2ymgzmd8j2s2u7g0hhc7e77e654kvwqtjwm",
"current_rate": 0.1,
"escrow": 330023173179434240,
"media": Object {
"email_address": "s@s.f",
"twitter_acc": "https://twitter.com/s",
"website_link": "https://s.f",
"website_link": "https://www.binance.com",
},
"name": "s",
"rank": 1,
"name": "BinanceStaking",
"rank": 2,
"status": "active",
},
Object {
"address": "oasis1qqekv2ymgzmd8j2s2u7g0hhc7e77e654kvwqtjwm",
"current_rate": 0.1,
"escrow": 326477290615842940,
"address": "oasis1qr0jwz65c29l044a204e3cllvumdg8cmsgt2k3ql",
"current_rate": 0.15,
"escrow": 261829615909260000,
"media": Object {
"website_link": "https://www.b.com",
"email_address": "go@staking.fund",
"twitter_acc": "https://twitter.com/StakingFund",
"website_link": "https://staking.fund",
},
"name": "b",
"rank": 2,
"name": "Staking Fund",
"rank": 3,
"status": "active",
},
Object {
"address": "oasis1qq3xrq0urs8qcffhvmhfhz4p0mu7ewc8rscnlwxe",
"current_rate": 0.05,
"escrow": 352106207016119230,
"media": Object {
"email_address": "hi@stake.fish",
"twitter_acc": "https://twitter.com/stakefish",
"website_link": "https://stake.fish",
},
"name": "stakefish",
"rank": 1,
"status": "inactive",
},
]
Expand Down
50 changes: 32 additions & 18 deletions src/vendors/__tests__/__snapshots__/oasisscan.spec.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -158,32 +158,46 @@ Array [
exports[`oasisscan parse validators 1`] = `
Array [
Object {
"address": "oasis1qq3xrq0urs8qcffhvmhfhz4p0mu7ewc8rscnlwxe",
"current_rate": 0.05,
"escrow": 336904789680000000,
"media": Object {
"email_address": "s@s.f",
"logotype": "https://s3.amazonaws.com/s.jpg",
"twitter_acc": "https://twitter.com/s",
"website_link": "https://s.f",
},
"name": "s",
"rank": 1,
"status": "active",
},
Object {
"address": "oasis1qqekv2ymgzmd8j2s2u7g0hhc7e77e654kvwqtjwm",
"address": undefined,
"current_rate": 0.1,
"escrow": 326477290610000000,
"escrow": 330035031080000000,
"media": Object {
"email_address": undefined,
"logotype": undefined,
"twitter_acc": undefined,
"website_link": "https://www.b.com",
"website_link": "https://www.binance.com",
},
"name": "b",
"name": "BinanceStaking",
"rank": 2,
"status": "active",
},
Object {
"address": undefined,
"current_rate": 0.15,
"escrow": 261834947010000000,
"media": Object {
"email_address": "go@staking.fund",
"logotype": "https://s3.amazonaws.com/keybase_processed_uploads/d48739023a250815c4ac564c9870ec05_360_360.jpg",
"twitter_acc": "StakingFund",
"website_link": "https://staking.fund",
},
"name": "Staking Fund",
"rank": 3,
"status": "active",
},
Object {
"address": undefined,
"current_rate": 0.05,
"escrow": 352111220580000000,
"media": Object {
"email_address": "hi@stake.fish",
"logotype": "https://s3.amazonaws.com/keybase_processed_uploads/e1378cd4d5203ded716906687ad53905_360_360.jpg",
"twitter_acc": "stakefish",
"website_link": "https://stake.fish",
},
"name": "stakefish",
"rank": 1,
"status": "inactive",
},
]
`;
124 changes: 66 additions & 58 deletions src/vendors/__tests__/monitor.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,83 +36,91 @@ describe('monitor', () => {

test('parse validators', () => {
expect(
// https://monitor.oasis.dev/data/validators?limit=2
// https://monitor.oasis.dev/data/validators?limit=3
parseValidatorsList([
{
account_id: 'oasis1qq3xrq0urs8qcffhvmhfhz4p0mu7ewc8rscnlwxe',
account_name: 's',
account_name: 'stakefish',
node_id: 'oasis1qrg52ccz4ts6cct2qu4retxn7kkdlusjh5pe74ar',
escrow_balance: 336904789689084141,
escrow_shares: 274886362332546983,
general_balance: 756455426869,
debonding_balance: 11945830584842735,
delegations_balance: 336904789689080056,
debonding_delegations_balance: 11945830584842735,
self_delegation_balance: 1460299556746795,
day_uptime: 1,
total_uptime: 0.06541968901177232,
escrow_balance: 352106207016119236,
escrow_shares: 285472905503808529,
general_balance: 768359671996,
debonding_balance: 4466219625141346,
delegations_balance: 352106207016114698,
debonding_delegations_balance: 4466219625141346,
self_delegation_balance: 1584983940693621,
day_uptime: 0.9996279300508496,
total_uptime: 0.09758194609189108,
validate_since: 1619625600,
media_info: {
website_link: 'https://s.f',
email_address: 's@s.f',
twitter_acc: 'https://twitter.com/s',
website_link: 'https://stake.fish',
email_address: 'hi@stake.fish',
twitter_acc: 'https://twitter.com/stakefish',
},
commission_schedule: {
rates: [
{
rate: '5000',
},
],
bounds: [
{
rate_min: '0',
rate_max: '20000',
},
],
},
current_epoch: 12271,
status: 'active',
depositors_count: 9682,
blocks_count: 284050,
signatures_count: 8385752,
commission_schedule: { rates: [{ rate: '5000' }], bounds: [{ rate_min: '0', rate_max: '20000' }] },
current_epoch: 12786,
status: 'inactive',
depositors_count: 11125,
blocks_count: 453867,
signatures_count: 13036987,
},
{
account_id: 'oasis1qqekv2ymgzmd8j2s2u7g0hhc7e77e654kvwqtjwm',
account_name: 'b',
account_name: 'BinanceStaking',
node_id: 'oasis1qqp0h2h92eev7nsxgqctvuegt8ge3vyg0qyluc4k',
escrow_balance: 326477290615842970,
escrow_shares: 292714661665250275,
general_balance: 37793606844709,
debonding_balance: 2560860254985662,
delegations_balance: 326477290615837694,
debonding_delegations_balance: 2560860254985662,
self_delegation_balance: 3599757097796153,
escrow_balance: 330023173179434236,
escrow_shares: 294121063737337754,
general_balance: 37793685703466,
debonding_balance: 2628471392657420,
delegations_balance: 330023173179428699,
debonding_delegations_balance: 2628471392657420,
self_delegation_balance: 3840910202767396,
day_uptime: 1,
total_uptime: 0.1125559510498127,
total_uptime: 0.16331619558830454,
validate_since: 1619625600,
media_info: { website_link: 'https://www.binance.com' },
commission_schedule: {
rates: [{ start: 4725, rate: '10000' }],
bounds: [{ start: 4725, rate_min: '0', rate_max: '25000' }],
},
current_epoch: 12786,
status: 'active',
depositors_count: 14085,
blocks_count: 759606,
signatures_count: 13031549,
},
{
account_id: 'oasis1qr0jwz65c29l044a204e3cllvumdg8cmsgt2k3ql',
account_name: 'Staking Fund',
node_id: 'oasis1qzsjurwt6fpv4kurjjzjp5d5yfqhgwmq5vcaz535',
escrow_balance: 261829615909260014,
escrow_shares: 216955752058858537,
general_balance: 259655736464,
debonding_balance: 71346130519883,
delegations_balance: 261829615909259452,
debonding_delegations_balance: 71346130519883,
self_delegation_balance: 4038132772637296,
day_uptime: 0,
total_uptime: 0.045677433281367544,
validate_since: 1619625600,
media_info: {
website_link: 'https://www.b.com',
website_link: 'https://staking.fund',
email_address: 'go@staking.fund',
twitter_acc: 'https://twitter.com/StakingFund',
},
commission_schedule: {
rates: [
{
start: 4725,
rate: '10000',
},
],
rates: [{ rate: '5000' }, { start: 82, rate: '15000' }],
bounds: [
{
start: 4725,
rate_min: '0',
rate_max: '25000',
},
{ rate_min: '0', rate_max: '20000' },
{ start: 353, rate_min: '0', rate_max: '20000' },
{ start: 420, rate_min: '0', rate_max: '20000' },
],
},
current_epoch: 12271,
status: 'inactive',
depositors_count: 12687,
blocks_count: 488714,
signatures_count: 8382100,
current_epoch: 12786,
status: 'active',
depositors_count: 1998,
blocks_count: 212452,
signatures_count: 4182073,
},
]),
).toMatchSnapshot()
Expand Down
Loading

0 comments on commit a90acce

Please sign in to comment.