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

Add consensus squid #819

Draft
wants to merge 44 commits into
base: main
Choose a base branch
from
Draft

Add consensus squid #819

wants to merge 44 commits into from

Conversation

marc-aurele-besner
Copy link
Collaborator

@marc-aurele-besner marc-aurele-besner commented Aug 21, 2024

User description

Add consensus squid


PR Type

Enhancement


Description

  • Implemented new storage types and interfaces for managing domain-related data in the consensus squid.
  • Refactored the epoch transition event processing logic in the staking squid to improve data handling and update mechanisms.
  • Enhanced account storage functions in the leaderboard squid for better readability and data management.
  • Added storage types for transaction payment data in the consensus squid.

Changes walkthrough 📝

Relevant files
Enhancement
4 files
storage.ts
Implement domain storage types and interfaces                       

indexers/consensus-squid/src/types/domains/storage.ts

  • Added new storage types and interfaces for domain-related data.
  • Implemented methods for accessing and manipulating domain storage
    data.
  • Defined interfaces for various domain-related storage types.
  • +1227/-1
    epoch.ts
    Refactor epoch transition event processing                             

    indexers/staking-squid/src/events/epoch.ts

  • Refactored code for processing epoch transition events.
  • Improved logic for updating domain and operator data.
  • Enhanced handling of deposits and withdrawals.
  • +201/-208
    account.ts
    Refactor account storage functions                                             

    indexers/leaderboard-squid/src/storage/account.ts

  • Refactored account storage functions for better readability.
  • Improved handling of account transfer and transaction data.
  • Enhanced creation and retrieval of account-related data.
  • +67/-76 
    storage.ts
    Add transaction payment storage types                                       

    indexers/consensus-squid/src/types/transaction-payment/storage.ts

  • Added storage types for transaction payment data.
  • Implemented interfaces for accessing transaction payment storage.
  • +22/-0   
    Additional files (token-limit)
    230 files
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/messenger/storage.ts

    ...

    +333/-1 
    sort.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/utils/sort.ts

    ...

    +142/-159
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/system/storage.ts

    ...

    +406/-1 
    cache.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/utils/cache.ts

    ...

    +113/-175
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/subspace/storage.ts

    ...

    +391/-1 
    stats.ts
    ...                                                                                                           

    indexers/staking-squid/src/storage/stats.ts

    ...

    +194/-97
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/balances/storage.ts

    ...

    +254/-1 
    bundle.ts
    ...                                                                                                           

    indexers/staking-squid/src/events/bundle.ts

    ...

    +158/-136
    unlock.ts
    ...                                                                                                           

    indexers/staking-squid/src/events/unlock.ts

    ...

    +158/-114
    staking.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/events/staking.ts

    ...

    +102/-158
    operator.ts
    ...                                                                                                           

    indexers/staking-squid/src/events/operator.ts

    ...

    +102/-111
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/transporter/storage.ts

    ...

    +132/-0 
    cache.ts
    ...                                                                                                           

    indexers/staking-squid/src/utils/cache.ts

    ...

    +102/-94
    operator.ts
    ...                                                                                                           

    indexers/staking-squid/src/extrinsics/operator.ts

    ...

    +92/-103
    calls.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/utility/calls.ts

    ...

    +321/-1 
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/balances/events.ts

    ...

    +313/-1 
    operator.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/storage/operator.ts

    ...

    +46/-56 
    farmer.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/storage/farmer.ts

    ...

    +46/-52 
    farmer.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/events/farmer.ts

    ...

    +64/-94 
    calls.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/domains/calls.ts

    ...

    +279/-1 
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/domains/events.ts

    ...

    +251/-1 
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/offences-subspace/storage.ts

    ...

    +90/-0   
    account.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/events/account.ts

    ...

    +66/-71 
    v0.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/v0.ts

    ...

    +98/-53 
    constants.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/domains/constants.ts

    ...

    +214/-1 
    extrinsic.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/events/extrinsic.ts

    ...

    +49/-65 
    v1.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/v1.ts

    ...

    +70/-70 
    index.ts
    ...                                                                                                           

    indexers/staking-squid/src/events/index.ts

    ...

    +28/-39 
    index.ts
    ...                                                                                                           

    indexers/staking-squid/src/utils/index.ts

    ...

    +39/-39 
    constants.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/subspace/constants.ts

    ...

    +155/-1 
    calls.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/sudo/calls.ts

    ...

    +164/-0 
    support.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/support.ts

    ...

    +143/-1 
    nominator.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/storage/nominator.ts

    ...

    +25/-28 
    cache.ts
    ...                                                                                                           

    indexers/consensus-squid/src/utils/cache.ts

    ...

    +125/-0 
    withdraw.ts
    ...                                                                                                           

    indexers/staking-squid/src/events/withdraw.ts

    ...

    +37/-41 
    index.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/events/index.ts

    ...

    +27/-38 
    calls.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/messenger/calls.ts

    ...

    +147/-1 
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/transaction-fees/storage.ts

    ...

    +87/-1   
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/messenger/events.ts

    ...

    +151/-1 
    index.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/utils/index.ts

    ...

    +26/-30 
    calls.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/system/calls.ts

    ...

    +147/-1 
    operator.ts
    ...                                                                                                           

    indexers/staking-squid/src/storage/operator.ts

    ...

    +32/-35 
    calls.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/balances/calls.ts

    ...

    +120/-1 
    nominator.ts
    ...                                                                                                           

    indexers/staking-squid/src/storage/nominator.ts

    ...

    +25/-22 
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/rewards/storage.ts

    ...

    +83/-1   
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/mmr/storage.ts

    ...

    +64/-0   
    domain.ts
    ...                                                                                                           

    indexers/staking-squid/src/storage/domain.ts

    ...

    +24/-17 
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/runtime-configs/storage.ts

    ...

    +75/-0   
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/transporter/events.ts

    ...

    +86/-0   
    index.ts
    ...                                                                                                           

    indexers/consensus-squid/src/utils/index.ts

    ...

    +58/-0   
    calls.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/subspace/calls.ts

    ...

    +80/-1   
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/system/events.ts

    ...

    +95/-1   
    processor.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/processor.ts

    ...

    +16/-21 
    processor.ts
    ...                                                                                                           

    indexers/staking-squid/src/processor.ts

    ...

    +16/-21 
    v5.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/v5.ts

    ...

    +36/-36 
    v3.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/v3.ts

    ...

    +36/-36 
    processor.ts
    ...                                                                                                           

    indexers/consensus-squid/src/processor.ts

    ...

    +66/-0   
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/vesting/storage.ts

    ...

    +31/-0   
    fee.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/events/fee.ts

    ...

    +21/-22 
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/utility/events.ts

    ...

    +77/-1   
    account.ts
    ...                                                                                                           

    indexers/staking-squid/src/storage/account.ts

    ...

    +20/-14 
    constants.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/balances/constants.ts

    ...

    +60/-1   
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/sudo/events.ts

    ...

    +65/-0   
    constants.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/system/constants.ts

    ...

    +67/-1   
    index.ts
    ...                                                                                                           

    indexers/staking-squid/src/extrinsics/index.ts

    ...

    +13/-13 
    bundle.ts
    ...                                                                                                           

    indexers/staking-squid/src/storage/bundle.ts

    ...

    +15/-10 
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/subspace-mmr/storage.ts

    ...

    +26/-0   
    constants.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/rewards/constants.ts

    ...

    +62/-1   
    calls.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/runtime-configs/calls.ts

    ...

    +53/-0   
    calls.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/vesting/calls.ts

    ...

    +54/-0   
    withdrawal.ts
    ...                                                                                                           

    indexers/staking-squid/src/storage/withdrawal.ts

    ...

    +9/-8     
    constants.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/transaction-payment/constants.ts

    ...

    +31/-0   
    index.ts
    ...                                                                                                           

    indexers/consensus-squid/src/extrinsics/index.ts

    ...

    +42/-0   
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/timestamp/storage.ts

    ...

    +40/-1   
    extrinsic.ts
    ...                                                                                                           

    indexers/consensus-squid/src/storage/extrinsic.ts

    ...

    +44/-0   
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/transaction-fees/events.ts

    ...

    +55/-1   
    index.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/blocks/index.ts

    ...

    +12/-12 
    domainEpoch.ts
    ...                                                                                                           

    indexers/staking-squid/src/storage/domainEpoch.ts

    ...

    +43/-0   
    index.ts
    ...                                                                                                           

    indexers/staking-squid/src/blocks/index.ts

    ...

    +11/-11 
    block.ts
    ...                                                                                                           

    indexers/consensus-squid/src/storage/block.ts

    ...

    +37/-0   
    index.ts
    ...                                                                                                           

    indexers/consensus-squid/src/blocks/index.ts

    ...

    +31/-0   
    constants.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/transaction-fees/constants.ts

    ...

    +44/-1   
    deposit.ts
    ...                                                                                                           

    indexers/staking-squid/src/storage/deposit.ts

    ...

    +9/-7     
    index.ts
    ...                                                                                                           

    indexers/consensus-squid/src/events/index.ts

    ...

    +39/-0   
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/vesting/events.ts

    ...

    +44/-0   
    call.ts
    ...                                                                                                           

    indexers/consensus-squid/src/storage/call.ts

    ...

    +36/-0   
    event.ts
    ...                                                                                                           

    indexers/consensus-squid/src/storage/event.ts

    ...

    +35/-0   
    domain.ts
    ...                                                                                                           

    indexers/staking-squid/src/events/domain.ts

    ...

    +10/-14 
    account.ts
    ...                                                                                                           

    indexers/consensus-squid/src/storage/account.ts

    ...

    +35/-0   
    domainBlock.ts
    ...                                                                                                           

    indexers/staking-squid/src/storage/domainBlock.ts

    ...

    +9/-7     
    extrinsicModuleName.ts
    ...                                                                                                           

    indexers/consensus-squid/src/storage/extrinsicModuleName.ts

    ...

    +31/-0   
    main.ts
    ...                                                                                                           

    indexers/staking-squid/src/main.ts

    ...

    +10/-10 
    main.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/main.ts

    ...

    +10/-10 
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/subspace/events.ts

    ...

    +32/-1   
    log.ts
    ...                                                                                                           

    indexers/consensus-squid/src/storage/log.ts

    ...

    +29/-0   
    eventModuleName.ts
    ...                                                                                                           

    indexers/consensus-squid/src/storage/eventModuleName.ts

    ...

    +31/-0   
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/rewards/events.ts

    ...

    +31/-1   
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/storage.ts

    ...

    +16/-0   
    constants.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/messenger/constants.ts

    ...

    +24/-1   
    calls.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/rewards/calls.ts

    ...

    +17/-1   
    constants.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/timestamp/constants.ts

    ...

    +17/-1   
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/offences-subspace/events.ts

    ...

    +17/-0   
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/transaction-payment/events.ts

    ...

    +18/-0   
    storage.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/sudo/storage.ts

    ...

    +17/-0   
    events.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/events.ts

    ...

    +5/-0     
    main.ts
    ...                                                                                                           

    indexers/consensus-squid/src/main.ts

    ...

    +15/-0   
    index.ts
    ...                                                                                                           

    indexers/staking-squid/src/model/generated/index.ts

    ...

    +3/-0     
    index.ts
    ...                                                                                                           

    indexers/staking-squid/src/storage/index.ts

    ...

    +10/-8   
    calls.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/transporter/calls.ts

    ...

    +16/-0   
    calls.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/calls.ts

    ...

    +4/-0     
    calls.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/timestamp/calls.ts

    ...

    +15/-1   
    constants.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/constants.ts

    ...

    +2/-0     
    constants.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/utility/constants.ts

    ...

    +12/-1   
    constants.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/vesting/constants.ts

    ...

    +11/-0   
    index.ts
    ...                                                                                                           

    indexers/consensus-squid/src/types/index.ts

    ...

    +9/-1     
    index.ts
    ...                                                                                                           

    indexers/consensus-squid/src/storage/index.ts

    ...

    +8/-0     
    index.ts
    ...                                                                                                           

    indexers/leaderboard-squid/src/model/index.ts

    ...

    +1/-1     
    index.ts
    ...                                                                                                           

    indexers/staking-squid/src/model/index.ts

    ...

    +1/-1     
    index.ts
    ...                                                                                                           

    indexers/consensus-squid/src/model/index.ts

    ...

    +1/-0     
    1724205335447-Data.js
    ...                                                                                                           

    indexers/staking-squid/db/migrations/1724205335447-Data.js

    ...

    +72/-14 
    1724205335442-Data.js
    ...                                                                                                           

    indexers/consensus-squid/db/migrations/1724205335442-Data.js

    ...

    +97/-0   
    1724205335447-Data.js
    ...                                                                                                           

    indexers/leaderboard-squid/db/migrations/1724205335447-Data.js

    ...

    +2/-2     
    gemini3h.jsonl
    ...                                                                                                           

    indexers/consensus-squid/gemini3h.jsonl

    ...

    +6/-1     
    package-lock.json
    ...                                                                                                           

    indexers/consensus-squid/package-lock.json

    ...

    +5168/-1
    hasura_metadata.json
    ...                                                                                                           

    indexers/staking-squid/hasura/hasura_metadata.json

    ...

    +354/-62
    README.md
    ...                                                                                                           

    indexers/consensus-squid/README.md

    ...

    +194/-0 
    schema.graphql
    ...                                                                                                           

    indexers/staking-squid/schema.graphql

    ...

    +98/-3   
    package.json
    ...                                                                                                           

    package.json

    ...

    +50/-0   
    schema.graphql
    ...                                                                                                           

    indexers/consensus-squid/schema.graphql

    ...

    +102/-0 
    package.json
    ...                                                                                                           

    indexers/consensus-squid/package.json

    ...

    +48/-0   
    public_operator.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_operator.yaml

    ...

    +67/-0   
    package.json
    ...                                                                                                           

    indexers/leaderboard-squid/package.json

    ...

    +14/-4   
    package.json
    ...                                                                                                           

    indexers/staking-squid/package.json

    ...

    +14/-4   
    public_domain.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_domain.yaml

    ...

    +58/-0   
    docker-compose.yml
    ...                                                                                                           

    docker-compose.yml

    ...

    +35/-0   
    commands.json
    ...                                                                                                           

    indexers/consensus-squid/commands.json

    ...

    +2/-14   
    README.md
    ...                                                                                                           

    indexers/README.md

    ...

    +12/-5   
    astral.code-workspace
    ...                                                                                                           

    .vscode/astral.code-workspace

    ...

    +6/-12   
    public_nominator.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_nominator.yaml

    ...

    +46/-0   
    tables.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/tables.yaml

    ...

    +25/-0   
    public_bundle.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_bundle.yaml

    ...

    +36/-0   
    squid.yaml
    ...                                                                                                           

    indexers/consensus-squid/squid.yaml

    ...

    +33/-0   
    public_withdrawal.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml

    ...

    +35/-0   
    public_stats_per_domain.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml

    ...

    +33/-0   
    databases.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/databases.yaml

    ...

    +27/-0   
    public_stats.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_stats.yaml

    ...

    +33/-0   
    public_stats_per_operator.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml

    ...

    +31/-0   
    public_deposit.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_deposit.yaml

    ...

    +32/-0   
    public_stats_per_nominator.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml

    ...

    +29/-0   
    public_stats_per_account.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml

    ...

    +29/-0   
    package.json
    ...                                                                                                           

    indexers/db/package.json

    ...

    +24/-0   
    public_account.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_account.yaml

    ...

    +28/-0   
    public_domain_epoch.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml

    ...

    +29/-0   
    package.json
    ...                                                                                                           

    explorer/package.json

    ...

    +11/-0   
    public_domain_block.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_domain_block.yaml

    ...

    +26/-0   
    tables.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/tables.yaml

    ...

    +17/-0   
    tsconfig.json
    ...                                                                                                           

    indexers/consensus-squid/tsconfig.json

    ...

    +20/-1   
    public_extrinsic.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml

    ...

    +25/-0   
    public_nominator_deposits_total_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml

    ...

    +20/-0   
    public_nominator_deposits_total_value.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml

    ...

    +20/-0   
    public_nominator_withdrawals_total_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml

    ...

    +20/-0   
    public_farmer_vote_and_block_total_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml

    ...

    +20/-0   
    public_farmer_vote_and_block_total_value.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml

    ...

    +20/-0   
    public_bundle_author.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml

    ...

    +22/-0   
    public_account_extrinsic_failed_total_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml

    ...

    +20/-0   
    public_account_extrinsic_success_total_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml

    ...

    +20/-0   
    public_account_transaction_fee_paid_total_value.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml

    ...

    +20/-0   
    public_operator_deposits_total_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml

    ...

    +20/-0   
    public_operator_deposits_total_value.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml

    ...

    +20/-0   
    public_operator_withdrawals_total_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml

    ...

    +20/-0   
    public_account_extrinsic_total_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml

    ...

    +20/-0   
    public_account_transfer_receiver_total_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml

    ...

    +20/-0   
    public_account_transfer_receiver_total_value.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml

    ...

    +20/-0   
    public_account_transfer_sender_total_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml

    ...

    +20/-0   
    public_account_transfer_sender_total_value.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml

    ...

    +20/-0   
    public_operator_total_rewards_collected.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml

    ...

    +20/-0   
    public_operator_total_tax_collected.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml

    ...

    +20/-0   
    public_block.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/consensus/tables/public_block.yaml

    ...

    +22/-0   
    public_farmer_block_total_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml

    ...

    +20/-0   
    public_farmer_block_total_value.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml

    ...

    +20/-0   
    public_farmer_vote_total_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml

    ...

    +20/-0   
    public_farmer_vote_total_value.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml

    ...

    +20/-0   
    .env
    ...                                                                                                           

    indexers/consensus-squid/.env

    ...

    +10/-0   
    public_account_remark_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml

    ...

    +20/-0   
    public_operator_bundle_total_count.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml

    ...

    +20/-0   
    public_reward_event.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_reward_event.yaml

    ...

    +21/-0   
    .env
    ...                                                                                                           

    indexers/staking-squid/.env

    ...

    +7/-3     
    public_call.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/consensus/tables/public_call.yaml

    ...

    +21/-0   
    public_event.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/consensus/tables/public_event.yaml

    ...

    +20/-0   
    .env
    ...                                                                                                           

    indexers/leaderboard-squid/.env

    ...

    +5/-3     
    public_account.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/consensus/tables/public_account.yaml

    ...

    +16/-0   
    .prettierrc
    ...                                                                                                           

    indexers/consensus-squid/.prettierrc

    ...

    +10/-0   
    .prettierrc
    ...                                                                                                           

    indexers/leaderboard-squid/.prettierrc

    ...

    +10/-0   
    .prettierrc
    ...                                                                                                           

    indexers/staking-squid/.prettierrc

    ...

    +10/-0   
    public_log.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/consensus/tables/public_log.yaml

    ...

    +14/-0   
    tables.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/consensus/tables/tables.yaml

    ...

    +9/-0     
    public_extrinsic_module_name.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/consensus/tables/public_extrinsic_module_name.yaml

    ...

    +12/-0   
    public_event_module_name.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/consensus/tables/public_event_module_name.yaml

    ...

    +12/-0   
    settings.json
    ...                                                                                                           

    .vscode/settings.json

    ...

    +2/-0     
    LICENSE
    ...                                                                                                           

    indexers/consensus-squid/LICENSE

    ...

    +1/-1     
    .env
    ...                                                                                                           

    .env

    ...

    +9/-0     
    typegen.json
    ...                                                                                                           

    indexers/consensus-squid/typegen.json

    ...

    +8/-0     
    squid_processor_status.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/consensus/tables/squid_processor_status.yaml

    ...

    +8/-0     
    squid_processor_status.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/leaderboard/tables/squid_processor_status.yaml

    ...

    +8/-0     
    squid_processor_status.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/squid_processor_status.yaml

    ...

    +8/-0     
    squid.yaml
    ...                                                                                                           

    indexers/staking-squid/squid.yaml

    ...

    +1/-1     
    config.yaml
    ...                                                                                                           

    indexers/db/config.yaml

    ...

    +7/-0     
    lerna.json
    ...                                                                                                           

    lerna.json

    ...

    +5/-0     
    squid_processor_hot_change_log.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/consensus/tables/squid_processor_hot_change_log.yaml

    ...

    +3/-0     
    .squidignore
    ...                                                                                                           

    indexers/consensus-squid/.squidignore

    ...

    +7/-0     
    actions.yaml
    ...                                                                                                           

    indexers/db/metadata/actions.yaml

    ...

    +6/-0     
    init-db.sql
    ...                                                                                                           

    indexers/db/docker-entrypoint-initdb.d/init-db.sql

    ...

    +3/-0     
    squid_processor_hot_block.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/consensus/tables/squid_processor_hot_block.yaml

    ...

    +3/-0     
    public_migrations.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/consensus/tables/public_migrations.yaml

    ...

    +3/-0     
    public_migrations.yaml
    ...                                                                                                           

    indexers/db/metadata/databases/staking/tables/public_migrations.yaml

    ...

    +3/-0     
    .env
    ...                                                                                                           

    indexers/db/.env

    ...

    +1/-0     
    .npmrc
    ...                                                                                                           

    indexers/consensus-squid/.npmrc

    ...

    +2/-1     
    graphql_schema_introspection.yaml
    ...                                                                                                           

    indexers/db/metadata/graphql_schema_introspection.yaml

    ...

    +1/-0     
    version.yaml
    ...                                                                                                           

    indexers/db/metadata/version.yaml

    ...

    +1/-0     
    cron_triggers.yaml
    ...                                                                                                           

    indexers/db/metadata/cron_triggers.yaml

    ...

    +1/-0     
    remote_schemas.yaml
    ...                                                                                                           

    indexers/db/metadata/remote_schemas.yaml

    ...

    +1/-0     
    allow_list.yaml
    ...                                                                                                           

    indexers/db/metadata/allow_list.yaml

    ...

    +1/-0     
    inherited_roles.yaml
    ...                                                                                                           

    indexers/db/metadata/inherited_roles.yaml

    ...

    +1/-0     
    metrics_config.yaml
    ...                                                                                                           

    indexers/db/metadata/metrics_config.yaml

    ...

    +1/-0     
    opentelemetry.yaml
    ...                                                                                                           

    indexers/db/metadata/opentelemetry.yaml

    ...

    +1/-0     
    rest_endpoints.yaml
    ...                                                                                                           

    indexers/db/metadata/rest_endpoints.yaml

    ...

    +1/-0     
    api_limits.yaml
    ...                                                                                                           

    indexers/db/metadata/api_limits.yaml

    ...

    +1/-0     
    backend_configs.yaml
    ...                                                                                                           

    indexers/db/metadata/backend_configs.yaml

    ...

    +1/-0     
    query_collections.yaml
    ...                                                                                                           

    indexers/db/metadata/query_collections.yaml

    ...

    +1/-0     
    network.yaml
    ...                                                                                                           

    indexers/db/metadata/network.yaml

    ...

    +1/-0     

    💡 PR-Agent usage:
    Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

    Copy link

    netlify bot commented Aug 21, 2024

    Deploy Preview for dev-astral failed. Why did it fail? →

    Name Link
    🔨 Latest commit 5a57c3e
    🔍 Latest deploy log https://app.netlify.com/sites/dev-astral/deploys/66ce552729c9a20008c6389a

    Copy link

    PR Reviewer Guide 🔍

    ⏱️ Estimated effort to review: 5 🔵🔵🔵🔵🔵
    🧪 No relevant tests
    🔒 No security concerns identified
    ⚡ Key issues to review

    Code Complexity
    The file contains a large number of interfaces and storage type definitions which are highly detailed and interconnected. This complexity could lead to difficulties in maintenance and understanding the code, especially for new developers or when future modifications are required. Consider modularizing the code by splitting it into smaller, more manageable components or files based on functionality or domain logic.

    Refactoring Needed
    The processEpochTransitionEvent function is overly long and handles multiple responsibilities, from fetching and parsing data to updating the state and handling domain logic. This violates the single responsibility principle and makes the code harder to test and maintain. Consider breaking down this function into smaller, more focused functions or methods, each handling a specific part of the process.

    Copy link

    github-actions bot commented Aug 21, 2024

    PR Code Suggestions ✨

    CategorySuggestion                                                                                                                                    Score
    Possible bug
    Improve the safety of type conversions for block properties

    Replace the use of BigInt for block.header.height and block.header.timestamp with a
    safer type conversion function that handles potential undefined values more
    gracefully.

    indexers/consensus-squid/src/blocks/index.ts [15-16]

    -height: BigInt(block.header.height ?? 0),
    -timestamp: Number(block.header.timestamp ?? 0),
    +height: block.header.height ? BigInt(block.header.height) : BigInt(0),
    +timestamp: block.header.timestamp ? Number(block.header.timestamp) : 0,
     
    Suggestion importance[1-10]: 8

    Why: The suggestion improves the safety of type conversions by explicitly checking for undefined values, which can prevent potential runtime errors.

    8
    Ensure non-null return type for domain ID retrieval

    To avoid potential runtime errors from null values, ensure that the get method in
    NextDomainIdV0 always returns a Promise<v0.DomainId> instead of Promise<(v0.DomainId |
    undefined)>. Consider implementing a default value or throwing an error if the
    domain ID is not found.

    indexers/consensus-squid/src/types/domains/storage.ts [543]

    -get(block: Block): Promise<(v0.DomainId | undefined)>
    +get(block: Block): Promise<v0.DomainId>
     
    Suggestion importance[1-10]: 8

    Why: This suggestion addresses a possible bug by ensuring a non-null return type, which can prevent runtime errors and improve the robustness of the code. It is a significant improvement for error handling.

    8
    Readability
    Improve readability by using a more descriptive type name

    Use a more descriptive type name than Type_152 in the FreezesV0 interface to enhance
    code readability and maintainability.

    indexers/consensus-squid/src/types/balances/storage.ts [234]

     export const freezes =  {
    -    v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0,
    +    v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.FreezeDetails)) as FreezesV0,
     }
     
    Suggestion importance[1-10]: 8

    Why: Using a descriptive type name significantly enhances code readability and maintainability, making it a valuable improvement.

    8
    Enhancement
    Add error handling for the processEvent function calls

    Add error handling for the asynchronous processEvent function within the loop to
    handle potential rejections or exceptions.

    indexers/consensus-squid/src/events/index.ts [18]

    -cache = await processEvent(cache, api, block, extrinsic, event)
    +try {
    +  cache = await processEvent(cache, api, block, extrinsic, event)
    +} catch (error) {
    +  console.error('Failed to process event:', error)
    +}
     
    Suggestion importance[1-10]: 7

    Why: Adding error handling for asynchronous operations is a good practice that enhances the robustness of the code by preventing unhandled promise rejections.

    7
    Improve the log message for clarity and debugging effectiveness

    Consider using a more descriptive log message that includes the index and details
    about the extrinsic being processed.

    indexers/consensus-squid/src/extrinsics/index.ts [14]

    -console.log('extrinsic', extrinsic)
    +console.log(`Processing extrinsic ${index}:`, extrinsic)
     
    Suggestion importance[1-10]: 6

    Why: Improving log messages can aid in debugging and understanding the flow of data, although it is a minor enhancement.

    6
    Enhance paging functionality by allowing an optional starting key

    The getKeysPaged method in interfaces like SuccessfulBundlesV0 should include an
    optional starting key parameter to allow for more flexible paging through keys.

    indexers/consensus-squid/src/types/domains/storage.ts [24]

    -getKeysPaged(pageSize: number, block: Block): AsyncIterable<v0.DomainId[]>
    +getKeysPaged(pageSize: number, block: Block, startKey?: v0.DomainId): AsyncIterable<v0.DomainId[]>
     
    Suggestion importance[1-10]: 6

    Why: Adding an optional starting key enhances the paging functionality, making it more flexible and potentially improving performance in large datasets. This is a useful enhancement but not critical.

    6
    Add error handling or default values to paged pair retrieval

    Refactor the getPairsPaged method to include error handling or a default return
    value to manage cases where no pairs are found, rather than returning undefined.

    indexers/consensus-squid/src/types/domains/storage.ts [29]

    -getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]>
    +getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: v0.H256[]]>
     
    Suggestion importance[1-10]: 6

    Why: The suggestion enhances the method by adding error handling or default values, which can improve reliability and prevent unexpected behavior. It is a beneficial enhancement but not essential.

    6
    Best practice
    Improve type safety by specifying versioned block types in method parameters

    Consider using a more specific type for the block parameter in the is, getDefault,
    and get methods of the TotalIssuanceV0 interface to ensure type safety. For example,
    if the Block type has multiple versions like v0.Block, v1.Block, etc., using the
    specific version can prevent type mismatches.

    indexers/consensus-squid/src/types/balances/storage.ts [16-19]

     export interface TotalIssuanceV0  {
    -    is(block: RuntimeCtx): boolean
    -    getDefault(block: Block): bigint
    -    get(block: Block): Promise<(bigint | undefined)>
    +    is(block: v0.Block): boolean
    +    getDefault(block: v0.Block): bigint
    +    get(block: v0.Block): Promise<(bigint | undefined)>
     }
     
    Suggestion importance[1-10]: 7

    Why: The suggestion to use a more specific block type enhances type safety, which is a good practice, but it may not be crucial if the Block type is consistent across versions.

    7
    Improve type safety by returning a non-nullable array

    Consider using a more specific type than Promise<(v0.H256[] | undefined)> for the
    return type of the get method in SuccessfulBundlesV0. Using a union type with
    undefined can lead to additional null checks that could be avoided if a default
    empty array is returned when no values are found.

    indexers/consensus-squid/src/types/domains/storage.ts [20]

    -get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)>
    +get(block: Block, key: v0.DomainId): Promise<v0.H256[]>
     
    Suggestion importance[1-10]: 7

    Why: This suggestion improves type safety by ensuring a non-nullable return type, which can reduce the need for null checks and improve code reliability. However, it may require additional logic to handle cases where no values are found.

    7
    Maintainability
    Refactor duplicated storage type configurations into a helper function

    Avoid code duplication in the account storage definition by creating a helper
    function to generate the storage type configuration. This will make the code more
    maintainable and reduce the risk of inconsistencies.

    indexers/consensus-squid/src/types/balances/storage.ts [38-66]

    -export const account =  {
    -    v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0,
    +function createAccountStorage(version, accountIdType, accountDataType) {
    +    return new StorageType(`Balances.Account`, 'Default', [accountIdType], accountDataType);
     }
     
    +export const account =  {
    +    v0: createAccountStorage(v0, v0.AccountId32, v0.AccountData) as AccountV0,
    +}
    +
    Suggestion importance[1-10]: 6

    Why: This suggestion improves maintainability by reducing code duplication, but it is not critical as the current code is functional.

    6
    Consolidate repeated documentation comments for similar interfaces

    Replace the repeated documentation comments for similar interfaces with a single
    shared comment to reduce redundancy and improve maintainability.

    indexers/consensus-squid/src/types/balances/storage.ts [118-124]

    +// Shared documentation for liquidity locks interfaces
     /**
      *  Any liquidity locks on some account balances.
      *  NOTE: Should only be accessed when setting, changing and freeing a lock.
      */
     export interface LocksV0  {
         is(block: RuntimeCtx): boolean
         getDefault(block: Block): v0.BalanceLock[]
         get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)>
     }
     
    Suggestion importance[1-10]: 5

    Why: Reducing redundancy in documentation is beneficial for maintainability, but it is a minor improvement.

    5

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    1 participant