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/denom holders and stats #502

Merged
merged 4 commits into from
Sep 11, 2024
Merged

Feat/denom holders and stats #502

merged 4 commits into from
Sep 11, 2024

Conversation

shane-moore
Copy link
Collaborator

@shane-moore shane-moore commented Sep 10, 2024

Changes

  • implement new explorer stats api
  • refactor denom holders querying logic to be pulled from archiver

Note: this will stay in draft til data validation is complete

Summary by CodeRabbit

  • New Features

    • Introduced new methods fetchDenomHolders and fetchExplorerStats for enhanced data retrieval capabilities.
    • Added new data transformation methods for handling denom holders and explorer statistics responses.
    • New interfaces for Holder, DenomHolders, and ExplorerStats to improve data structure and usability.
  • Bug Fixes

    • Improved error handling in API methods to ensure robust responses and logging.
  • Removals

    • Removed outdated methods and interfaces that were no longer needed, streamlining the codebase.
  • Tests

    • Expanded test coverage with new test cases for fetchDenomHolders and fetchExplorerStats methods.

Copy link

coderabbitai bot commented Sep 10, 2024

Walkthrough

The changes involve updates to the sdk-ts package, including an increment in the version of the @injectivelabs/indexer-proto-ts package. New methods fetchDenomHolders and fetchExplorerStats are introduced to their respective APIs, enhancing functionality. Several interfaces are modified or removed, affecting the representation of token holders and explorer statistics. Additionally, new transformer methods are implemented for handling data related to denom holders and explorer stats, while some existing methods and interfaces have been deprecated.

Changes

Files Change Summary
packages/sdk-ts/package.json Updated @injectivelabs/indexer-proto-ts version from 1.11.49 to 1.11.53.
packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.spec.ts Modified startDate and endDate constants to strings; added test case fetchDenomHolders.
packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.ts Added method fetchDenomHolders for fetching denom holders with parameters.
packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcExplorerApi.spec.ts Added test case fetchExplorerStats for verifying explorer stats retrieval.
packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcExplorerApi.ts Added method fetchExplorerStats for fetching explorer statistics.
packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcPortfolioApi.ts Removed method fetchAccountPortfolioTokenHolders.
packages/sdk-ts/src/client/indexer/transformers/IndexerAccountPortfolioTransformer.ts Removed method tokenHoldersResponseToTokenHolders.
packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcArchiverTransformer.ts Added method grpcDenomHoldersResponseToDenomHolders for transforming denom holder responses.
packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcExplorerTransformer.ts Added method getExplorerStatsResponseToExplorerStats for transforming explorer stats responses.
packages/sdk-ts/src/client/indexer/types/account-portfolio.ts Removed interfaces Holder and TokenHolders.
packages/sdk-ts/src/client/indexer/types/archiver.ts Added interfaces Holder, DenomHolders, and type alias GrpcDenomHolders.
packages/sdk-ts/src/client/indexer/types/explorer.ts Added interface ExplorerStats and type alias GrpcExplorerStats.

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant IndexerGrpcArchiverApi
    participant IndexerGrpcArchiverTransformer

    Client->>IndexerGrpcArchiverApi: fetchDenomHolders({ denom, token, limit })
    IndexerGrpcArchiverApi->>IndexerGrpcArchiverTransformer: grpcDenomHoldersResponseToDenomHolders(response)
    IndexerGrpcArchiverTransformer-->>IndexerGrpcArchiverApi: Transformed DenomHolders
    IndexerGrpcArchiverApi-->>Client: Return DenomHolders
Loading
sequenceDiagram
    participant Client
    participant IndexerGrpcExplorerApi
    participant IndexerGrpcExplorerTransformer

    Client->>IndexerGrpcExplorerApi: fetchExplorerStats()
    IndexerGrpcExplorerApi->>IndexerGrpcExplorerTransformer: getExplorerStatsResponseToExplorerStats(response)
    IndexerGrpcExplorerTransformer-->>IndexerGrpcExplorerApi: Transformed ExplorerStats
    IndexerGrpcExplorerApi-->>Client: Return ExplorerStats
Loading

Poem

🐇 In the garden of code, where changes bloom,
New features sprout, dispelling the gloom.
Fetching stats and holders, oh what a delight,
With each little method, our futures are bright!
So hop along, friends, let’s cheer and rejoice,
For in this new world, we all have a voice! 🌼


Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between c403cab and 3ef3e14.

Files selected for processing (1)
  • packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.spec.ts (2 hunks)
Files skipped from review as they are similar to previous changes (1)
  • packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.spec.ts

Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@shane-moore shane-moore marked this pull request as draft September 10, 2024 15:08
Copy link

socket-security bot commented Sep 10, 2024

🚨 Potential security issues detected. Learn more about Socket for GitHub ↗︎

To accept the risk, merge this PR and you will not be notified again.

Alert Package NoteSourceCI
Protestware/Troll package npm/es5-ext@0.10.64
  • Note: This package prints a protestware console message on install regarding Ukraine for users with Russian language locale
⚠︎

View full report↗︎

Next steps

What is protestware?

This package is a joke, parody, or includes undocumented or hidden behavior unrelated to its primary function.

Consider that consuming this package may come along with functionality unrelated to its primary purpose.

Take a deeper look at the dependency

Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support [AT] socket [DOT] dev.

Remove the package

If you happen to install a dependency that Socket reports as Known Malware you should immediately remove it and select a different dependency. For other alert types, you may may wish to investigate alternative packages or consider if there are other ways to mitigate the specific risk posed by the dependency.

Mark a package as acceptable risk

To ignore an alert, reply with a comment starting with @SocketSecurity ignore followed by a space separated list of ecosystem/package-name@version specifiers. e.g. @SocketSecurity ignore npm/foo@1.0.0 or ignore all packages with @SocketSecurity ignore-all

  • @SocketSecurity ignore npm/es5-ext@0.10.64

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Outside diff range, codebase verification and nitpick comments (2)
packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcPortfolioApi.ts (1)

Impact on Test Suite Due to Method Removal

The removal of the fetchAccountPortfolioTokenHolders method affects the test suite, as it is referenced in the following test file:

  • packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcPortfolioApi.spec.ts

The test case using this method will need to be updated or removed to align with the changes in the codebase. Please ensure that the test suite is adjusted accordingly.

Analysis chain

Line range hint 1-1: Verify the impact of removing the fetchAccountPortfolioTokenHolders method.

The removal of the fetchAccountPortfolioTokenHolders method from the IndexerGrpcAccountPortfolioApi class is a significant change that eliminates the ability to fetch account portfolio token holders through this API.

Ensure that this removal does not break any dependent components or services that relied on this method for retrieving token holder information.

Run the following script to verify the usage of the removed method:

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the usage of the removed `fetchAccountPortfolioTokenHolders` method.

# Test: Search for the method usage. Expect: No occurrences of the method call.
rg --type typescript -A 5 $'fetchAccountPortfolioTokenHolders'

Length of output: 96


Script:

#!/bin/bash
# Description: Verify the usage of the removed `fetchAccountPortfolioTokenHolders` method.

# Test: Search for the method usage. Expect: No occurrences of the method call.
rg --type ts -A 5 $'fetchAccountPortfolioTokenHolders'

Length of output: 1442

packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.spec.ts (1)

9-10: Verify the usage of startDate and endDate in numeric contexts.

The change from numbers to strings for startDate and endDate in IndexerGrpcArchiverApi.spec.ts could lead to issues if these values are used in contexts expecting numeric types. Specifically, in IndexerCampaignTransformer.ts, these values are parsed using parseInt, indicating an expectation for numeric types. Ensure that appropriate conversions are in place to prevent potential issues.

  • packages/sdk-ts/src/client/indexer/transformers/IndexerCampaignTransformer.ts: Lines 46-47 use parseInt on startDate and endDate.
Analysis chain

Verify the impact of modifying the data types of startDate and endDate constants.

The data types of the startDate and endDate constants have been modified from numeric values to strings. This change may impact how these dates are processed in subsequent logic, particularly if any functions expect these values to be in a specific format.

Verify that modifying the data types of these constants does not break any functionality by running the following script:

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that modifying the data types of `startDate` and `endDate` constants does not break any functionality.

# Test: Search for usages of the `startDate` and `endDate` constants.
# Expect: Only occurrences within the `IndexerGrpcArchiverApi.spec.ts` file.
rg --type typescript --line-number $'startDate|endDate'

Length of output: 91


Script:

#!/bin/bash
# Description: Verify that modifying the data types of `startDate` and `endDate` constants does not break any functionality.

# Test: Search for usages of the `startDate` and `endDate` constants.
# Expect: Only occurrences within the `IndexerGrpcArchiverApi.spec.ts` file.
rg --type ts --line-number $'startDate|endDate'

Length of output: 3843


Script:

#!/bin/bash
# Description: Search for function definitions and usages involving `startDate` and `endDate` to identify potential type mismatches.

# Search for function definitions that include `startDate` or `endDate` as parameters.
rg --type ts --line-number 'function .*startDate|endDate'

# Search for usages of `startDate` and `endDate` in function calls.
rg --type ts --line-number '\(.*startDate|endDate.*\)'

Length of output: 2320

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between c448b10 and 9fdd911.

Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
Files selected for processing (12)
  • packages/sdk-ts/package.json (1 hunks)
  • packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.spec.ts (2 hunks)
  • packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.ts (1 hunks)
  • packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcExplorerApi.spec.ts (1 hunks)
  • packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcExplorerApi.ts (1 hunks)
  • packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcPortfolioApi.ts (1 hunks)
  • packages/sdk-ts/src/client/indexer/transformers/IndexerAccountPortfolioTransformer.ts (2 hunks)
  • packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcArchiverTransformer.ts (2 hunks)
  • packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcExplorerTransformer.ts (2 hunks)
  • packages/sdk-ts/src/client/indexer/types/account-portfolio.ts (1 hunks)
  • packages/sdk-ts/src/client/indexer/types/archiver.ts (2 hunks)
  • packages/sdk-ts/src/client/indexer/types/explorer.ts (2 hunks)
Files skipped from review due to trivial changes (1)
  • packages/sdk-ts/src/client/indexer/types/account-portfolio.ts
Additional comments not posted (13)
packages/sdk-ts/src/client/indexer/types/archiver.ts (3)

37-40: LGTM!

The Holder interface is correctly defined with appropriate property types.


42-45: LGTM!

The DenomHolders interface is correctly defined with appropriate property types.

Observation: The next property, which is an array of strings, could be used for pagination or continuation purposes.


57-57: LGTM!

The GrpcDenomHolders type alias is correctly defined and maps to the appropriate gRPC response type.

packages/sdk-ts/package.json (1)

47-47: Verify the changes introduced in the new version of the @injectivelabs/indexer-proto-ts package.

The version of the @injectivelabs/indexer-proto-ts package has been updated from 1.11.49 to 1.11.52. This update suggests that there may be new features, bug fixes, or improvements included in the updated package version.

Review the changelog or release notes of the @injectivelabs/indexer-proto-ts package to understand the specific changes introduced in version 1.11.52. Ensure that these changes are compatible with the SDK and do not introduce any breaking changes or unexpected behavior.

Run the following script to retrieve the changelog:

packages/sdk-ts/src/client/indexer/transformers/IndexerAccountPortfolioTransformer.ts (1)

Line range hint 1-100: Verify the impact of removing the tokenHoldersResponseToTokenHolders method.

The tokenHoldersResponseToTokenHolders static method has been removed entirely from the IndexerGrpcAccountPortfolioTransformer class. This method was responsible for transforming a TokenHoldersResponse from the Injective Portfolio RPC into a TokenHolders object.

Removing this method eliminates the capability to convert token holder responses into a structured format, potentially impacting any dependent components or services that relied on this transformation for processing token holder data.

Verify that removing this method does not break any functionality by running the following script:

packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcArchiverTransformer.ts (1)

2-2: LGTM!

The changes are approved:

  • The new import for DenomHolders from the ../types/archiver module is necessary for the new functionality.
  • The new static method grpcDenomHoldersResponseToDenomHolders enhances the class's capability to handle responses from the Injective Archiver RPC, specifically for denom holders, thereby expanding its functionality.

Also applies to: 137-148

packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.spec.ts (1)

178-198: LGTM!

The addition of the new test case is approved. The new test case named fetchDenomHolders verifies the functionality of the fetchDenomHolders method, which retrieves holders of a specific denomination (INJ_DENOM) with a specified limit.

The test checks that the response is defined and matches the expected structure, utilizing the grpcDenomHoldersResponseToDenomHolders transformer for validation. The inclusion of error handling within the test also indicates a focus on robustness, ensuring that any exceptions during the API call are logged appropriately.

packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcExplorerApi.spec.ts (1)

226-243: LGTM!

The test case for the fetchExplorerStats method looks good. It covers the following aspects:

  • Asynchronously calls the fetchExplorerStats method.
  • Verifies that the response is defined.
  • Checks that the response matches the expected structure using expect.objectContaining and the return type of IndexerGrpcExplorerTransformer.getExplorerStatsResponseToExplorerStats.
  • Includes error handling to log any exceptions encountered during the execution of the fetchExplorerStats method.

The test case is well-structured and ensures that the fetchExplorerStats method behaves as expected.

packages/sdk-ts/src/client/indexer/types/explorer.ts (1)

Line range hint 382-401: LGTM!

The new interface ExplorerStats and type GrpcExplorerStats look good. They serve the following purposes:

  • The ExplorerStats interface defines several properties related to explorer statistics, such as assets, txsTotal, addresses, injSupply, txsInPast24Hours, blockCountInPast24Hours, txsPerSecondInPast24Hours, and txsPerSecondInPast100Blocks, all of which are of type string. This provides a structured way to represent and access various statistics related to the blockchain explorer.

  • The GrpcExplorerStats type maps to InjectiveExplorerRpc.GetStatsResponse, which is likely the gRPC response type for the explorer stats endpoint. This type alias improves code readability and maintainability by providing a clear and concise name for the gRPC response type.

Overall, these additions enhance the module's functionality and usability by providing a well-defined structure for explorer statistics.

packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcArchiverApi.ts (1)

309-354: LGTM!

The new method fetchDenomHolders in the IndexerGrpcArchiverApi class looks good. It follows the existing patterns in the class and enhances the API by allowing clients to fetch denom holders with additional parameters. Here's a breakdown of the method:

  • It accepts an object with three properties: denom (a required string), token (an optional string), and limit (an optional number).
  • It constructs a request using InjectiveArchiverRpc.DenomHoldersRequest, setting the denom property directly and conditionally assigning the token and limit properties if they are provided.
  • It attempts to execute a gRPC call to fetch the denom holders using the constructed request.
  • It employs a retry mechanism to handle the request, which is consistent with other methods in the class.
  • It returns the transformed response using IndexerGrpcArchiverTransformer.grpcDenomHoldersResponseToDenomHolders, ensuring that the response is in the expected format.
  • It handles errors by distinguishing between a GrpcWebError and other types of errors, throwing a GrpcUnaryRequestException with appropriate context and error codes.

Overall, this new method is a valuable addition to the IndexerGrpcArchiverApi class, providing clients with the ability to fetch denom holders with additional parameters in a consistent and error-handled manner.

packages/sdk-ts/src/client/indexer/transformers/IndexerGrpcExplorerTransformer.ts (2)

6-6: LGTM!

The changes to the import statements improve code organization and are necessary for the new getExplorerStatsResponseToExplorerStats method.

Also applies to: 8-8, 10-11, 15-15, 17-19, 21-23


400-413: LGTM!

The new getExplorerStatsResponseToExplorerStats method correctly transforms the gRPC response into a more usable ExplorerStats object. It enhances the functionality of the class by providing a new utility for handling explorer statistics.

packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcExplorerApi.ts (1)

544-570: LGTM!

The new fetchExplorerStats method correctly implements the logic for fetching explorer statistics and handles errors appropriately. It uses the IndexerGrpcExplorerTransformer.getExplorerStatsResponseToExplorerStats method to transform the response into a more usable format.

Copy link

socket-security bot commented Sep 11, 2024

New and removed dependencies detected. Learn more about Socket for GitHub ↗︎

Package New capabilities Transitives Size Publisher
npm/@axelar-network/axelarjs-sdk@0.13.6 filesystem Transitive: environment, eval, network, shell +87 53.9 MB nptytn
npm/@babel/plugin-syntax-jsx@7.18.6 None 0 2.74 kB nicolo-ribaudo
npm/@babel/plugin-syntax-typescript@7.20.0 None 0 6.26 kB nicolo-ribaudo
npm/@bcoe/v8-coverage@0.2.3 None 0 277 kB bcoe
npm/@ensdomains/ens-validation@0.1.0 None 0 2.26 MB mdt.
npm/@ensdomains/eth-ens-namehash@2.0.15 None 0 186 kB mdt.
npm/@injectivelabs/contracts@1.14.12-beta.0 None 0 199 kB thomasralee
npm/@injectivelabs/exceptions@1.14.14 Transitive: network +4 1.7 MB thomasralee
npm/@injectivelabs/networks@1.14.14 None 0 117 kB thomasralee
npm/@injectivelabs/sdk-ts@1.14.14 network Transitive: environment, eval, filesystem +128 79 MB thomasralee
npm/@injectivelabs/token-metadata@1.14.12-beta.0 None +4 6.67 MB thomasralee
npm/@injectivelabs/token-utils@1.14.12-beta.0 None 0 86 kB thomasralee
npm/@injectivelabs/ts-types@1.14.14 None 0 78.3 kB thomasralee
npm/@injectivelabs/utils@1.14.14 network +12 1.24 MB thomasralee
npm/@injectivelabs/wormhole-sdk@1.14.7 Transitive: environment, eval, filesystem, network, shell +173 139 MB bangjelkoski
npm/@solana/spl-token@0.4.8 Transitive: environment, filesystem +20 6.02 MB buffalojoec
npm/@solana/wallet-adapter-base@0.9.23 None +4 300 kB jordansexton
npm/@solana/web3.js@1.95.3 network Transitive: environment, filesystem, shell +38 21.5 MB lorisleiva
npm/@wormhole-foundation/sdk@0.5.3 Transitive: environment, eval, filesystem, network, shell +174 93.2 MB wormhole-ci
npm/alchemy-sdk@2.12.0 Transitive: environment, eval, filesystem, network +16 4.72 MB brian-alchemy
npm/copyfiles@2.4.1 filesystem Transitive: environment +18 755 kB cwmma
npm/ethers@5.7.2 Transitive: network +44 18.9 MB ricmoo
npm/js-base64@3.7.7 None 0 38.6 kB dankogai

🚮 Removed packages: npm/@commitlint/load@13.2.1, npm/@commitlint/message@13.2.0, npm/@commitlint/parse@13.2.0, npm/@commitlint/read@13.2.0, npm/@commitlint/resolve-extends@13.2.0, npm/@commitlint/rules@13.2.0, npm/@commitlint/to-lines@13.2.0, npm/@commitlint/top-level@13.2.0, npm/@commitlint/types@13.2.0, npm/@endemolshinegroup/cosmiconfig-typescript-loader@3.0.2, npm/@eslint-community/eslint-utils@4.4.0, npm/@eslint-community/regexpp@4.10.0, npm/@istanbuljs/load-nyc-config@1.1.0, npm/@istanbuljs/schema@0.1.3, npm/@jest/expect-utils@29.4.3, npm/@jest/schemas@29.4.3, npm/@jest/transform@29.4.3, npm/@jest/types@29.4.3, npm/@jridgewell/gen-mapping@0.3.2, npm/@jridgewell/resolve-uri@3.1.0, npm/@jridgewell/set-array@1.1.2, npm/@jridgewell/sourcemap-codec@1.4.14, npm/@jridgewell/trace-mapping@0.3.17, npm/@nodelib/fs.scandir@2.1.5, npm/@nodelib/fs.stat@2.0.5, npm/@nodelib/fs.walk@1.2.8, npm/@sinclair/typebox@0.25.24, npm/@types/babel__core@7.1.20, npm/@types/babel__generator@7.6.4, npm/@types/babel__template@7.4.1, npm/@types/babel__traverse@7.18.3, npm/@types/graceful-fs@4.1.5, npm/@types/istanbul-lib-coverage@2.0.4, npm/@types/istanbul-lib-report@3.0.0, npm/@types/istanbul-reports@3.0.1, npm/@types/jest@29.4.0, npm/@types/json-schema@7.0.15, npm/@types/minimist@1.2.2, npm/@types/node@18.11.18, npm/@types/normalize-package-data@2.4.1, npm/@types/parse-json@4.0.0, npm/@types/semver@7.5.8, npm/@types/stack-utils@2.0.1, npm/@types/yargs-parser@21.0.0, npm/@types/yargs@17.0.19, npm/@typescript-eslint/eslint-plugin@6.21.0, npm/@typescript-eslint/parser@6.21.0, npm/@typescript-eslint/scope-manager@6.21.0, npm/@typescript-eslint/type-utils@6.21.0, npm/@typescript-eslint/types@6.21.0, npm/@typescript-eslint/typescript-estree@6.21.0, npm/@typescript-eslint/utils@6.21.0, npm/@typescript-eslint/visitor-keys@6.21.0, npm/ansi-escapes@4.3.2, npm/ansi-styles@3.2.1, npm/anymatch@3.1.3, npm/arg@4.1.3, npm/argparse@1.0.10, npm/array-ify@1.0.0, npm/array-union@2.1.0, npm/arrify@1.0.1, npm/babel-jest@29.4.3, npm/babel-plugin-istanbul@6.1.1, npm/babel-plugin-jest-hoist@29.4.3, npm/babel-plugin-polyfill-corejs2@0.3.3, npm/babel-plugin-polyfill-corejs3@0.6.0, npm/babel-plugin-polyfill-regenerator@0.4.1, npm/babel-preset-current-node-syntax@1.0.1, npm/babel-preset-jest@29.4.3, npm/balanced-match@1.0.2, npm/bl@4.1.0, npm/brace-expansion@2.0.1, npm/braces@3.0.2, npm/browserslist@4.21.4, npm/bser@2.1.1, npm/buffer-from@1.1.2, npm/cachedir@2.3.0, npm/callsites@3.1.0, npm/camelcase-keys@6.2.2, npm/camelcase@5.3.1, npm/caniuse-lite@1.0.30001442, npm/chardet@0.7.0, npm/ci-info@3.7.1, npm/cli-cursor@3.1.0, npm/cli-spinners@2.7.0, npm/cli-width@3.0.0, npm/cliui@8.0.1, npm/color-convert@1.9.3, npm/commitizen@4.2.6, npm/compare-func@2.0.0, npm/conventional-changelog-angular@5.0.13, npm/conventional-changelog-conventionalcommits@4.6.3, npm/conventional-commit-types@3.0.0, npm/conventional-commits-parser@3.2.4, npm/convert-source-map@1.9.0, npm/core-js-compat@3.27.1, npm/cosmiconfig@7.1.0, npm/create-require@1.1.1, npm/cross-spawn@7.0.3, npm/cz-conventional-changelog@3.3.0, npm/dargs@7.0.0, npm/debug@4.3.4, npm/decamelize-keys@1.1.1, npm/decamelize@1.2.0, npm/dedent@0.7.0, npm/defaults@1.0.4, npm/detect-file@1.0.0, npm/detect-indent@6.1.0, npm/diff-sequences@29.4.3, npm/diff@4.0.2, npm/dir-glob@3.0.1, npm/dot-prop@5.3.0, npm/electron-to-chromium@1.4.284, npm/error-ex@1.3.2, npm/escalade@3.1.1, npm/eslint-visitor-keys@3.3.0, npm/esprima@4.0.1, npm/esutils@2.0.3, npm/execa@5.1.1, npm/expand-tilde@2.0.2, npm/expect@29.4.3, npm/external-editor@3.1.0, npm/fast-glob@3.2.12, npm/fast-json-stable-stringify@2.1.0, npm/fastq@1.15.0, npm/fb-watchman@2.0.2, npm/figures@3.2.0, npm/fill-range@7.0.1, npm/find-node-modules@2.1.3, npm/find-root@1.1.0, npm/find-up@5.0.0, npm/findup-sync@4.0.0, npm/fs-extra@10.1.0, npm/fs.realpath@1.0.0, npm/fsevents@2.3.2, npm/function-bind@1.1.1, npm/gensync@1.0.0-beta.2, npm/get-caller-file@2.0.5, npm/get-package-type@0.1.0, npm/get-stream@6.0.1, npm/git-raw-commits@2.0.11, npm/glob-parent@5.1.2, npm/global-dirs@0.1.1, npm/global-modules@1.0.0, npm/globals@11.12.0, npm/globby@11.1.0, npm/graceful-fs@4.2.10, npm/graphemer@1.4.0, npm/hard-rejection@2.1.0, npm/has-flag@3.0.0, npm/has@1.0.3, npm/homedir-polyfill@1.0.3, npm/hosted-git-info@4.1.0, npm/human-signals@2.1.0, npm/iconv-lite@0.4.24, npm/ignore@5.3.1, npm/import-fresh@3.3.0, npm/imurmurhash@0.1.4, npm/indent-string@4.0.0, npm/inflight@1.0.6, npm/inherits@2.0.4, npm/ini@1.3.8, npm/inquirer@8.2.4, npm/is-arrayish@0.2.1, npm/is-core-module@2.11.0, npm/is-fullwidth-code-point@3.0.0, npm/is-glob@4.0.3, npm/is-interactive@1.0.0, npm/is-number@7.0.0, npm/is-obj@2.0.0, npm/is-plain-obj@1.1.0, npm/is-stream@2.0.1, npm/is-text-path@1.0.1, npm/is-unicode-supported@0.1.0, npm/is-utf8@0.2.1, npm/isexe@2.0.0, npm/istanbul-lib-coverage@3.2.0, npm/istanbul-lib-instrument@5.2.1, npm/jest-diff@29.4.3, npm/jest-get-type@29.4.3, npm/jest-haste-map@29.4.3, npm/jest-matcher-utils@29.4.3, npm/jest-message-util@29.4.3, npm/jest-regex-util@29.4.3, npm/jest-util@29.4.3, npm/jest-worker@29.4.3, npm/js-tokens@4.0.0, npm/js-yaml@3.14.1, npm/jsesc@2.5.2, npm/json-parse-even-better-errors@2.3.1, npm/json5@2.2.3, npm/jsonfile@6.1.0, npm/jsonparse@1.3.1, npm/jsonstream@1.3.5, npm/kind-of@6.0.3, npm/lines-and-columns@1.2.4, npm/locate-path@6.0.0, npm/lodash.debounce@4.0.8, npm/lodash.get@4.4.2, npm/lodash.map@4.6.0, npm/lodash@4.17.21, npm/log-symbols@4.1.0, npm/longest@2.0.1, npm/lru-cache@5.1.1, npm/make-error@1.3.6, npm/makeerror@1.0.12, npm/map-obj@1.0.1, npm/meow@8.1.2, npm/merge-stream@2.0.0, npm/merge2@1.4.1, npm/merge@2.1.1, npm/micromatch@4.0.5, npm/mimic-fn@2.1.0, npm/min-indent@1.0.1, npm/minimatch@9.0.3, npm/minimist-options@4.1.0, npm/minimist@1.2.6, npm/ms@2.1.2, npm/mute-stream@0.0.8, npm/natural-compare@1.4.0, npm/node-int64@0.4.0, npm/node-releases@2.0.8, npm/normalize-package-data@3.0.3, npm/normalize-path@3.0.0, npm/npm-run-path@4.0.1, npm/once@1.4.0, npm/onetime@5.1.2, npm/ora@5.4.1, npm/os-tmpdir@1.0.2, npm/p-limit@3.1.0, npm/p-locate@5.0.0, npm/parent-module@1.0.1, npm/parse-json@5.2.0, npm/path-exists@4.0.0, npm/path-is-absolute@1.0.1, npm/path-parse@1.0.7, npm/path-type@4.0.0, npm/picocolors@1.0.0, npm/picomatch@2.3.1, npm/pirates@4.0.5, npm/pretty-format@29.4.3, npm/q@1.5.1, npm/queue-microtask@1.2.3, npm/quick-lru@4.0.1, npm/react-is@18.2.0, npm/read-pkg-up@7.0.1, npm/read-pkg@5.2.0, npm/readable-stream@3.6.0, npm/redent@3.0.0, npm/regenerate-unicode-properties@10.1.0, npm/regenerate@1.4.2, npm/regenerator-runtime@0.13.11, npm/regenerator-transform@0.15.1, npm/regexpu-core@5.2.2, npm/regjsgen@0.7.1, npm/regjsparser@0.9.1, npm/require-directory@2.1.1, npm/resolve-dir@1.0.1, npm/resolve-from@5.0.0, npm/resolve-global@1.0.0, npm/resolve@1.22.1, npm/restore-cursor@3.1.0, npm/reusify@1.0.4, npm/run-async@2.4.1, npm/run-parallel@1.2.0, npm/rxjs@7.8.0, npm/safer-buffer@2.1.2, npm/semver@6.3.0, npm/shebang-command@2.0.0, npm/shebang-regex@3.0.0, npm/slash@3.0.0, npm/source-map-support@0.5.21, npm/source-map@0.6.1, npm/spdx-correct@3.1.1, npm/spdx-exceptions@2.3.0, npm/spdx-expression-parse@3.0.1, npm/spdx-license-ids@3.0.12, npm/split2@3.2.2, npm/sprintf-js@1.0.3, npm/stack-utils@2.0.6, npm/string-width@4.2.3, npm/string_decoder@1.3.0, npm/strip-ansi@6.0.1, npm/strip-bom@4.0.0, npm/strip-final-newline@2.0.0, npm/strip-indent@3.0.0, npm/strip-json-comments@3.1.1, npm/supports-preserve-symlinks-flag@1.0.0, npm/test-exclude@6.0.0, npm/text-extensions@1.9.0, npm/through2@4.0.2, npm/through@2.3.8, npm/tmp@0.0.33, npm/tmpl@1.0.5, npm/to-fast-properties@2.0.0, npm/to-regex-range@5.0.1, npm/trim-newlines@3.0.1, npm/ts-api-utils@1.2.1, npm/ts-node@10.9.2, npm/tslib@2.4.1, npm/type-fest@0.8.1, npm/typescript@5.4.2, npm/unicode-canonical-property-names-ecmascript@2.0.0, npm/unicode-match-property-ecmascript@2.0.0, npm/unicode-match-property-value-ecmascript@2.1.0, npm/unicode-property-aliases-ecmascript@2.1.0, npm/universalify@2.0.0, npm/update-browserslist-db@1.0.10, npm/util-deprecate@1.0.2, npm/validate-npm-package-license@3.0.4, npm/walker@1.0.8, npm/wcwidth@1.0.1, npm/word-wrap@1.2.3, npm/wrap-ansi@7.0.0, npm/wrappy@1.0.2, npm/write-file-atomic@4.0.2, npm/y18n@5.0.8, npm/yallist@3.1.1, npm/yaml@1.10.2, npm/yargs-parser@21.1.1, npm/yargs@17.6.2, npm/yn@3.1.1, npm/yocto-queue@0.1.0

View full report↗︎

@shane-moore shane-moore marked this pull request as ready for review September 11, 2024 20:18
Comment on lines 9 to 10
const startDate = String(1622505600)
const endDate = String(1625097600)
Copy link
Collaborator

@ThomasRalee ThomasRalee Sep 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets do this instead
'1622505600'

limit,
}: {
denom: string
token?: string
Copy link
Collaborator

@ThomasRalee ThomasRalee Sep 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whats the difference between token and symbol?
Maybe we should rename this as symbol, at least on the FE side it will be clearer

request.token = symbol

@ThomasRalee ThomasRalee merged commit e25dfcf into dev Sep 11, 2024
3 checks passed
@ThomasRalee ThomasRalee deleted the feat/denom-holders-and-stats branch September 11, 2024 20:28
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

Successfully merging this pull request may close these issues.

2 participants