diff --git a/.github/workflows/docker-hip-3-pusher.yml b/.github/workflows/docker-hip-3-pusher.yml new file mode 100644 index 0000000000..8eb879eb2b --- /dev/null +++ b/.github/workflows/docker-hip-3-pusher.yml @@ -0,0 +1,55 @@ +name: Build and Push hip-3-pusher Image +on: + push: + tags: + - hip-3-pusher-v* + pull_request: + paths: + - "apps/hip-3-pusher/**" + workflow_dispatch: + inputs: + dispatch_description: + description: "Dispatch description" + required: true + type: string +permissions: + contents: read + id-token: write + packages: write +env: + REGISTRY: ghcr.io + IMAGE_NAME: pyth-network/hip-3-pusher +jobs: + hip-3-pusher-image: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set image tag to version of the git tag + if: ${{ startsWith(github.ref, 'refs/tags/hip-3-pusher-v') }} + run: | + PREFIX="refs/tags/hip-3-pusher-" + VERSION="${GITHUB_REF:${#PREFIX}}" + echo "IMAGE_TAG=${VERSION}" >> "${GITHUB_ENV}" + - name: Set image tag to the git commit hash + if: ${{ !startsWith(github.ref, 'refs/tags/hip-3-pusher-v') }} + run: | + echo "IMAGE_TAG=${{ github.sha }}" >> "${GITHUB_ENV}" + - name: Log in to the Container registry + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract metadata (tags, labels) for Docker + id: metadata_hip_3_pusher + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + - name: Build and push server docker image + uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + with: + context: . + file: "./apps/hip-3-pusher/Dockerfile" + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.metadata_hip_3_pusher.outputs.tags }} + labels: ${{ steps.metadata_hip_3_pusher.outputs.labels }} diff --git a/Cargo.lock b/Cargo.lock index 4d2251bf1c..a94b6221f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3094,7 +3094,7 @@ dependencies = [ [[package]] name = "fortuna" -version = "9.2.0" +version = "9.2.1" dependencies = [ "anyhow", "axum 0.6.20", @@ -5693,7 +5693,7 @@ dependencies = [ [[package]] name = "pyth-lazer-client" -version = "8.0.0" +version = "8.0.1" dependencies = [ "alloy-primitives 0.8.25", "anyhow", @@ -5711,7 +5711,7 @@ dependencies = [ "hex", "humantime-serde", "libsecp256k1 0.7.2", - "pyth-lazer-protocol 0.15.0", + "pyth-lazer-protocol 0.15.1", "reqwest 0.12.23", "serde", "serde_json", @@ -5746,7 +5746,7 @@ dependencies = [ [[package]] name = "pyth-lazer-protocol" -version = "0.15.0" +version = "0.15.1" dependencies = [ "alloy-primitives 0.8.25", "anyhow", @@ -5786,13 +5786,13 @@ dependencies = [ [[package]] name = "pyth-lazer-publisher-sdk" -version = "0.12.0" +version = "0.12.1" dependencies = [ "anyhow", "fs-err", "protobuf", "protobuf-codegen", - "pyth-lazer-protocol 0.15.0", + "pyth-lazer-protocol 0.15.1", "serde_json", ] diff --git a/apps/developer-hub/content/docs/metrics/kpi/index.mdx b/apps/developer-hub/content/docs/metrics/kpi.mdx similarity index 82% rename from apps/developer-hub/content/docs/metrics/kpi/index.mdx rename to apps/developer-hub/content/docs/metrics/kpi.mdx index 42ecdccee0..18a951daaa 100644 --- a/apps/developer-hub/content/docs/metrics/kpi/index.mdx +++ b/apps/developer-hub/content/docs/metrics/kpi.mdx @@ -3,11 +3,18 @@ title: Pyth Network KPI description: Monthly informative data points on the Pyth network, its growth, and performance metrics. --- -_The KPI metrics section has been DISCONTINUED, please visit [here](https://kpi.pyth.network/) for the latest KPI dashboard from July 2024 onwards._ - -Every month, the Pyth contributors collect informative data points on the network, its growth, as well as its performance. - -Disclaimer: All figures mentioned are just rough estimations. Due to Pyth's permissionless nature, any apps can use the Pyth price feeds without talking to the Pyth contributors. This will exclude them from the calculations. + + For the latest KPI dashboard, please visit + [https://kpi.pyth.network/](https://kpi.pyth.network/). + +Every month, the Pyth contributors collect informative data points on the +network, its growth, as well as its performance. + + + All figures mentioned are just rough estimations. Due to Pyth's permissionless + nature, any apps can use the Pyth price feeds without talking to the Pyth + contributors. This will exclude them from the calculations. + - **Data Publishers** diff --git a/apps/developer-hub/content/docs/metrics/kpi/april-23.mdx b/apps/developer-hub/content/docs/metrics/kpi/april-23.mdx deleted file mode 100644 index 56f99176fa..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/april-23.mdx +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Pyth Network KPI - April 2023 -description: Pyth Network KPI metrics and performance data for April 2023. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Data Publishers** - - - -**Price Feeds** - - - -**#PoweredByPyth Applications** - - - -**Total Value Secured** - - - -**Cumulative Trading Volume** - - - -**Monthly Trading Volume** - - - -**Client Downloads** - - - -**Connected Blockchains** - - - -**Cross-chain Price Updates** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/april-24.mdx b/apps/developer-hub/content/docs/metrics/kpi/april-24.mdx deleted file mode 100644 index a382e68c04..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/april-24.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Pyth Network KPI - April 2024 -description: Pyth Network KPI metrics and performance data for April 2024. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Ecosystem Map** - - - -**Addressed Market by TVS** - - - -**Addressed Market by Traded Volume Secured** - - - -**Daily Average Updates (DAUs)** - - - -**#PoweredByPyth Applications** - - - -**Price Feeds** - - - -**Data Providers** - - - -**Total Value Secured** - - - -**Total Value Secured by Segment (latest month)** - - - -**Traded Volume** - - - -**Trading Volume by Segment (latest month)** - - - -**Cumulative Traded Volume** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/august-23.mdx b/apps/developer-hub/content/docs/metrics/kpi/august-23.mdx deleted file mode 100644 index d2e7415a28..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/august-23.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Pyth Network KPI - August 2023 -description: Pyth Network KPI metrics and performance data for August 2023. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Daily Average Updates (DAUs)** - - - -**#PoweredByPyth Applications** - - - -**Price Feeds** - - - -**Data Providers** - - - -**Total Value Secured** - - - -**Total Value Secured by Segment (latest month)** - - - -**Traded Volume** - - - -**Trading Volume by Segment (latest month)** - - - -**Cumulative Traded Volume** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/december-21.mdx b/apps/developer-hub/content/docs/metrics/kpi/december-21.mdx deleted file mode 100644 index 392ab21d4c..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/december-21.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Pyth Network KPI - December 2021 -description: Pyth Network KPI metrics and performance data for December 2021. ---- - -**Recap** - -![Recap]() - -**Data Publishers** - -![Data Publishers]() - -**Price Feeds** - -![Price Feeds]() - -**#PoweredByPyth Applications** - -![PoweredByPyth Applications]() - -**Total Value Secured** - -![Total Value Secured]() - -**Total Trading Volume** - -![Total Trading Volume]() - -**Client Downloads** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/december-22.mdx b/apps/developer-hub/content/docs/metrics/kpi/december-22.mdx deleted file mode 100644 index 8f19e90259..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/december-22.mdx +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Pyth Network KPI - December 2022 -description: Pyth Network KPI metrics and performance data for December 2022. ---- - -**Recap** - - - -**Data Publishers** - - - -**Price Feeds** - - - -**#PoweredByPyth Applications** - - - -**Total Value Secured** - - - -**Cumulative Trading Volume** - - - -**Monthly Trading Volume** - - - -**Client Downloads** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/december-23.mdx b/apps/developer-hub/content/docs/metrics/kpi/december-23.mdx deleted file mode 100644 index 7479573ca7..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/december-23.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Pyth Network KPI - December 2023 -description: Pyth Network KPI metrics and performance data for December 2023. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Ecosystem Map** - - - -**Addressed Market by TVS** - - - -**Daily Average Updates (DAUs)** - - - -**#PoweredByPyth Applications** - - - -**Price Feeds** - - - -**Data Providers** - - - -**Total Value Secured** - - - -**Total Value Secured by Segment (latest month)** - - - -**Traded Volume** - - - -**Trading Volume by Segment (latest month)** - - - -**Cumulative Traded Volume** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/february-23.mdx b/apps/developer-hub/content/docs/metrics/kpi/february-23.mdx deleted file mode 100644 index 5140d6109b..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/february-23.mdx +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Pyth Network KPI - February 2023 -description: Pyth Network KPI metrics and performance data for February 2023. ---- - -**Recap** - - - -**Data Publishers** - - - -**Price Feeds** - - - -**#PoweredByPyth Applications** - - - -**Total Value Secured** - - - -**Cumulative Trading Volume** - - - -**Monthly Trading Volume** - - - -**Client Downloads** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/january-23.mdx b/apps/developer-hub/content/docs/metrics/kpi/january-23.mdx deleted file mode 100644 index 0b1f06c0bc..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/january-23.mdx +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Pyth Network KPI - January 2023 -description: Pyth Network KPI metrics and performance data for January 2023. ---- - -**Recap** - - - -**Data Publishers** - - - -**Price Feeds** - - - -**#PoweredByPyth Applications** - - - -**Total Value Secured** - - - -**Cumulative Trading Volume** - - - -**Monthly Trading Volume** - - - -**Client Downloads** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/january-24.mdx b/apps/developer-hub/content/docs/metrics/kpi/january-24.mdx deleted file mode 100644 index 6e82f4ec01..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/january-24.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Pyth Network KPI - January 2024 -description: Pyth Network KPI metrics and performance data for January 2024. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Ecosystem Map** - - - -**Addressed Market by TVS** - - -**Daily Average Updates (DAUs)** - - - -**#PoweredByPyth Applications** - - - -**Price Feeds** - - - -**Data Providers** - - - -**Total Value Secured** - - - -**Total Value Secured by Segment (latest month)** - - - -**Traded Volume** - - - -**Trading Volume by Segment (latest month)** - - - -**Cumulative Traded Volume** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/july-23.mdx b/apps/developer-hub/content/docs/metrics/kpi/july-23.mdx deleted file mode 100644 index afd4550095..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/july-23.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Pyth Network KPI - July 2023 -description: Pyth Network KPI metrics and performance data for July 2023. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Daily Average Updates (DAUs)** - - - -**#PoweredByPyth Applications** - - - -**Price Feeds** - - - -**Data Providers** - - - -**Total Value Secured** - - - -**Total Value Secured by Segment (latest month)** - - - -**Traded Volume** - - - -**Trading Volume by Segment (latest month)** - - - -**Cumulative Traded Volume** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/july-24.mdx b/apps/developer-hub/content/docs/metrics/kpi/july-24.mdx deleted file mode 100644 index dd1802bfb9..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/july-24.mdx +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Pyth Network KPI - July 2024 and Beyond -description: Pyth Network KPI metrics for July 2024 and beyond are available through the new KPI dashboard. ---- - -Please find the stats for July 2024 and after through the new KPI page by visiting this [link](https://kpi.pyth.network/). diff --git a/apps/developer-hub/content/docs/metrics/kpi/june-23.mdx b/apps/developer-hub/content/docs/metrics/kpi/june-23.mdx deleted file mode 100644 index 9804c68900..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/june-23.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Pyth Network KPI - June 2023 -description: Pyth Network KPI metrics and performance data for June 2023. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Daily Average Updates (DAUs)** - - - -**Cross-chain Price Updates** - - - -**#PoweredByPyth Applications** - - - -**Price Feeds** - - - -**Data Providers** - - - -**Total Value Secured** - - - -**Total Value Secured by Segment (latest month)** - - - -**Traded Volume** - - - -**Trading Volume by Segment (latest month)** - - - -**Cumulative Traded Volume** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/june-24.mdx b/apps/developer-hub/content/docs/metrics/kpi/june-24.mdx deleted file mode 100644 index 9d20e65ac1..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/june-24.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Pyth Network KPI - June 2024 -description: Pyth Network KPI metrics and performance data for June 2024. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Ecosystem Map** - - - -**Addressed Market by TVS** - - - -**Addressed Market by Traded Volume Secured** - - - -**Daily Average Updates (DAUs)** - - - -**#PoweredByPyth Applications** - - - -**Price Feeds** - - - -**Data Providers** - - - -**Total Value Secured** - - - -**Total Value Secured by Segment (latest month)** - - - -**Traded Volume** - - - -**Trading Volume by Segment (latest month)** - - - -**Cumulative Traded Volume** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/march-23.mdx b/apps/developer-hub/content/docs/metrics/kpi/march-23.mdx deleted file mode 100644 index 79246051a0..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/march-23.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Pyth Network KPI - March 2023 -description: Pyth Network KPI metrics and performance data for March 2023. ---- - -**Recap** - - - -**Data Publishers** - - - -**Price Feeds** - - - -**#PoweredByPyth Applications** - - - -**Total Value Secured** - - - -**Cumulative Trading Volume** - - - -**Monthly Trading Volume** - - - -**Client Downloads** - - - -**Connected Blockchains** - - - -**Cross-chain Price Updates** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/march-24.mdx b/apps/developer-hub/content/docs/metrics/kpi/march-24.mdx deleted file mode 100644 index c9374f52ec..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/march-24.mdx +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Pyth Network KPI - March 2024 -description: Pyth Network KPI metrics and performance data for March 2024. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Ecosystem Map** - - - -**Addressed Market by TVS** - - -**Addressed Market by Traded Volume Secured** - - -**Daily Average Updates (DAUs)** - - - -**#PoweredByPyth Applications** - - - -**Price Feeds** - - - -**Data Providers** - - - -**Total Value Secured** - - - -**Total Value Secured by Segment (latest month)** - - - -**Traded Volume** - - - -**Trading Volume by Segment (latest month)** - - - -**Cumulative Traded Volume** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/may-23.mdx b/apps/developer-hub/content/docs/metrics/kpi/may-23.mdx deleted file mode 100644 index 1a2371835d..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/may-23.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Pyth Network KPI - May 2023 -description: Pyth Network KPI metrics and performance data for May 2023. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Data Publishers** - - - -**Price Feeds** - - - -**#PoweredByPyth Applications** - - - -**All Chain Total Value Secured** - - - -**Monthly Total Value Secured** - - - -**Cumulative Traded Volume** - - - -**All Chain Traded Volume** - - - -**Monthly Trading Volume** - - - -**Client Downloads** - - - -**Connected Blockchains** - - - -**Cross-chain Price Updates** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/may-24.mdx b/apps/developer-hub/content/docs/metrics/kpi/may-24.mdx deleted file mode 100644 index 8d4f227190..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/may-24.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Pyth Network KPI - May 2024 -description: Pyth Network KPI metrics and performance data for May 2024. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Ecosystem Map** - - - -**Addressed Market by TVS** - - - -**Addressed Market by Traded Volume Secured** - - - -**Daily Average Updates (DAUs)** - - - -**#PoweredByPyth Applications** - - - -**Price Feeds** - - - -**Data Providers** - - - -**Total Value Secured** - - - -**Total Value Secured by Segment (latest month)** - - - -**Traded Volume** - - - -**Trading Volume by Segment (latest month)** - - - -**Cumulative Traded Volume** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/meta.json b/apps/developer-hub/content/docs/metrics/kpi/meta.json deleted file mode 100644 index 1768676f18..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/meta.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "title": "Pyth Network KPI", - "pages": [ - "index", - "july-24", - "june-24", - "may-24", - "april-24", - "march-24", - "january-24", - "december-23", - "november-23", - "october-23", - "september-23", - "august-23", - "july-23", - "june-23", - "may-23", - "april-23", - "march-23", - "february-23", - "january-23", - "december-22", - "november-22", - "october-22", - "september-22", - "august-22", - "july-22", - "june-22", - "may-22", - "april-22", - "march-22", - "february-22", - "january-22", - "december-21" - ] -} diff --git a/apps/developer-hub/content/docs/metrics/kpi/november-22.mdx b/apps/developer-hub/content/docs/metrics/kpi/november-22.mdx deleted file mode 100644 index 9100818aee..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/november-22.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Pyth Network KPI - November 2022 -description: Pyth Network KPI metrics and performance data for November 2022. ---- - -**Recap** - - - -**Data Publishers** - - - -**Price Feeds** - - - -**#PoweredByPyth Applications** - - - -**Total Value Secured** - - - -**Total Trading Volume** - - - -**Client Downloads** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/november-23.mdx b/apps/developer-hub/content/docs/metrics/kpi/november-23.mdx deleted file mode 100644 index 75697efb07..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/november-23.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Pyth Network KPI - November 2023 -description: Pyth Network KPI metrics and performance data for November 2023. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Ecosystem Map** - - - -**Addressed Market by TVS** - - -**Daily Average Updates (DAUs)** - - - -**#PoweredByPyth Applications** - - - -**Price Feeds** - - - -**Data Providers** - - - -**Total Value Secured** - - - -**Total Value Secured by Segment (latest month)** - - - -**Traded Volume** - - - -**Trading Volume by Segment (latest month)** - - - -**Cumulative Traded Volume** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/october-23.mdx b/apps/developer-hub/content/docs/metrics/kpi/october-23.mdx deleted file mode 100644 index 43505df351..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/october-23.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Pyth Network KPI - October 2023 -description: Pyth Network KPI metrics and performance data for October 2023. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Ecosystem Map** - - - -**Addressed Market by TVS** - - - -**Daily Average Updates (DAUs)** - - - -**#PoweredByPyth Applications** - - - -**Price Feeds** - - - -**Data Providers** - - - -**Total Value Secured** - - - -**Total Value Secured by Segment (latest month)** - - - -**Traded Volume** - - - -**Trading Volume by Segment (latest month)** - - - -**Cumulative Traded Volume** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/content/docs/metrics/kpi/september-23.mdx b/apps/developer-hub/content/docs/metrics/kpi/september-23.mdx deleted file mode 100644 index ac9715f55c..0000000000 --- a/apps/developer-hub/content/docs/metrics/kpi/september-23.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Pyth Network KPI - September 2023 -description: Pyth Network KPI metrics and performance data for September 2023. ---- - -**Overall Momentum** - - - -**Monthly Recap** - - - -**Ecosystem Map** - - - -**Addressed Market by TVS** - - - -**Daily Average Updates (DAUs)** - - - -**#PoweredByPyth Applications** - - - -**Price Feeds** - - - -**Data Providers** - - - -**Total Value Secured** - - - -**Total Value Secured by Segment (latest month)** - - - -**Traded Volume** - - - -**Trading Volume by Segment (latest month)** - - - -**Cumulative Traded Volume** - - - -**Connected Blockchains** - - diff --git a/apps/developer-hub/public/images/ois/OIS_Rewards_Example_Dark_1.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Dark_1.png similarity index 100% rename from apps/developer-hub/public/images/ois/OIS_Rewards_Example_Dark_1.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Dark_1.png diff --git a/apps/developer-hub/public/images/ois/OIS_Rewards_Example_Dark_2.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Dark_2.png similarity index 100% rename from apps/developer-hub/public/images/ois/OIS_Rewards_Example_Dark_2.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Dark_2.png diff --git a/apps/developer-hub/public/images/ois/OIS_Rewards_Example_Dark_3.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Dark_3.png similarity index 100% rename from apps/developer-hub/public/images/ois/OIS_Rewards_Example_Dark_3.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Dark_3.png diff --git a/apps/developer-hub/public/images/ois/OIS_Rewards_Example_Dark_4.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Dark_4.png similarity index 100% rename from apps/developer-hub/public/images/ois/OIS_Rewards_Example_Dark_4.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Dark_4.png diff --git a/apps/developer-hub/public/images/ois/OIS_Rewards_Example_Light_1.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Light_1.png similarity index 100% rename from apps/developer-hub/public/images/ois/OIS_Rewards_Example_Light_1.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Light_1.png diff --git a/apps/developer-hub/public/images/ois/OIS_Rewards_Example_Light_2.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Light_2.png similarity index 100% rename from apps/developer-hub/public/images/ois/OIS_Rewards_Example_Light_2.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Light_2.png diff --git a/apps/developer-hub/public/images/ois/OIS_Rewards_Example_Light_3.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Light_3.png similarity index 100% rename from apps/developer-hub/public/images/ois/OIS_Rewards_Example_Light_3.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Light_3.png diff --git a/apps/developer-hub/public/images/ois/OIS_Rewards_Example_Light_4.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Light_4.png similarity index 100% rename from apps/developer-hub/public/images/ois/OIS_Rewards_Example_Light_4.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/OIS_Rewards_Example_Light_4.png diff --git a/apps/developer-hub/public/images/ois/ois_slashing_investigation_dark.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/ois_slashing_investigation_dark.png similarity index 100% rename from apps/developer-hub/public/images/ois/ois_slashing_investigation_dark.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/ois_slashing_investigation_dark.png diff --git a/apps/developer-hub/public/images/ois/ois_slashing_investigation_light.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/ois_slashing_investigation_light.png similarity index 100% rename from apps/developer-hub/public/images/ois/ois_slashing_investigation_light.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/ois_slashing_investigation_light.png diff --git a/apps/developer-hub/public/images/ois/ois_slashing_pool_post_dark.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/ois_slashing_pool_post_dark.png similarity index 100% rename from apps/developer-hub/public/images/ois/ois_slashing_pool_post_dark.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/ois_slashing_pool_post_dark.png diff --git a/apps/developer-hub/public/images/ois/ois_slashing_pool_post_light.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/ois_slashing_pool_post_light.png similarity index 100% rename from apps/developer-hub/public/images/ois/ois_slashing_pool_post_light.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/ois_slashing_pool_post_light.png diff --git a/apps/developer-hub/public/images/ois/ois_slashing_pool_pre_dark.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/ois_slashing_pool_pre_dark.png similarity index 100% rename from apps/developer-hub/public/images/ois/ois_slashing_pool_pre_dark.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/ois_slashing_pool_pre_dark.png diff --git a/apps/developer-hub/public/images/ois/ois_slashing_pool_pre_light.png b/apps/developer-hub/content/docs/oracle-integrity-staking/images/ois_slashing_pool_pre_light.png similarity index 100% rename from apps/developer-hub/public/images/ois/ois_slashing_pool_pre_light.png rename to apps/developer-hub/content/docs/oracle-integrity-staking/images/ois_slashing_pool_pre_light.png diff --git a/apps/developer-hub/content/docs/oracle-integrity-staking/reward-examples.mdx b/apps/developer-hub/content/docs/oracle-integrity-staking/reward-examples.mdx index c95c535013..fd9ce27931 100644 --- a/apps/developer-hub/content/docs/oracle-integrity-staking/reward-examples.mdx +++ b/apps/developer-hub/content/docs/oracle-integrity-staking/reward-examples.mdx @@ -5,6 +5,14 @@ description: >- --- import DualModeImage from "../../../src/components/DualModeImage"; +import OISExample1Dark from "./images/OIS_Rewards_Example_Dark_1.png"; +import OISExample1Light from "./images/OIS_Rewards_Example_Light_1.png"; +import OISExample2Dark from "./images/OIS_Rewards_Example_Dark_2.png"; +import OISExample2Light from "./images/OIS_Rewards_Example_Light_2.png"; +import OISExample3Dark from "./images/OIS_Rewards_Example_Dark_3.png"; +import OISExample3Light from "./images/OIS_Rewards_Example_Light_3.png"; +import OISExample4Dark from "./images/OIS_Rewards_Example_Dark_4.png"; +import OISExample4Light from "./images/OIS_Rewards_Example_Light_4.png"; NOTE: All the symbols used in the examples are explained in the [Mathematical Representation](./mathematical-representation) section. @@ -14,8 +22,8 @@ This example takes the case of one pool where the pool has stake from only the p @@ -42,8 +50,8 @@ This example takes the case where the pool has stake from both the publisher and @@ -70,8 +78,8 @@ This example takes the case where the combined stake of both the publisher and t @@ -98,8 +106,8 @@ This example demonstrates how the delegation fee affect the reward distribution @@ -203,3 +211,11 @@ C_{p_{option2}} &= 100 + 100 \cdot \sum_{s \in \text{\{$s_{6}$,.., $s_{10}$\}}} &= 100 + 50 = 150 \end{aligned} $$ + +## Reward Calculator + +Use the calculator below to calculate publisher and delegator rewards based on your inputs. + +import RewardSimulator from "../../../src/components/RewardSimulator"; + + diff --git a/apps/developer-hub/content/docs/oracle-integrity-staking/slashing-rulebook.mdx b/apps/developer-hub/content/docs/oracle-integrity-staking/slashing-rulebook.mdx index 55f1381743..a205031907 100644 --- a/apps/developer-hub/content/docs/oracle-integrity-staking/slashing-rulebook.mdx +++ b/apps/developer-hub/content/docs/oracle-integrity-staking/slashing-rulebook.mdx @@ -6,6 +6,12 @@ description: >- --- import DualModeImage from "../../../src/components/DualModeImage"; +import OISSlashingInvestigationDark from "./images/ois_slashing_investigation_dark.png"; +import OISSlashingInvestigationLight from "./images/ois_slashing_investigation_light.png"; +import OISSlashingPoolPreDark from "./images/ois_slashing_pool_pre_dark.png"; +import OISSlashingPoolPreLight from "./images/ois_slashing_pool_pre_light.png"; +import OISSlashingPoolPostDark from "./images/ois_slashing_pool_post_dark.png"; +import OISSlashingPoolPostLight from "./images/ois_slashing_pool_post_light.png"; # Purpose and Scope @@ -111,8 +117,8 @@ It was found that 7 of the 9 publishers were influencing the price of `FOO/USD` The other 2 publishers were found publish price closely to the mediuan of the reference data. @@ -122,8 +128,8 @@ The other 2 publishers were found publish price closely to the mediuan of the re - From the investigation, \$200K of preventable liquidations were identified from on chain data, the Pythian Council could adjust the amount of stake slashed to 500K PYTH or 100bps (assuming PYTH/USD = $0.40). @@ -134,8 +140,8 @@ The other 2 publishers were found publish price closely to the mediuan of the re - Delegators to `pool_1` would see their stake slashed by 100bps of 4M PYTH, ie. 40K PYTH, resulting in **3.96M** residual delegated stake. diff --git a/apps/developer-hub/content/docs/pyth-token/images/PYTH_Community_Launch_Lockup_Schedule_Dark.png b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Community_Launch_Lockup_Schedule_Dark.png new file mode 100644 index 0000000000..2be970a2d3 Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Community_Launch_Lockup_Schedule_Dark.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/images/PYTH_Community_Launch_Lockup_Schedule_Light.png b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Community_Launch_Lockup_Schedule_Light.png new file mode 100644 index 0000000000..3a7bb77a6c Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Community_Launch_Lockup_Schedule_Light.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/images/PYTH_Ecosystem_Growth_Lockup_Schedule_Dark.png b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Ecosystem_Growth_Lockup_Schedule_Dark.png new file mode 100644 index 0000000000..3489b1ff81 Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Ecosystem_Growth_Lockup_Schedule_Dark.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/images/PYTH_Ecosystem_Growth_Lockup_Schedule_Light.png b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Ecosystem_Growth_Lockup_Schedule_Light.png new file mode 100644 index 0000000000..09d127baf3 Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Ecosystem_Growth_Lockup_Schedule_Light.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/images/PYTH_Private_Sales_Vesting_Schedule_Dark.png b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Private_Sales_Vesting_Schedule_Dark.png new file mode 100644 index 0000000000..cdeb78288f Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Private_Sales_Vesting_Schedule_Dark.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/images/PYTH_Private_Sales_Vesting_Schedule_Light.png b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Private_Sales_Vesting_Schedule_Light.png new file mode 100644 index 0000000000..9d6b17b6cf Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Private_Sales_Vesting_Schedule_Light.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/images/PYTH_Protocol_Development_Lockup_Schedule_Dark.png b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Protocol_Development_Lockup_Schedule_Dark.png new file mode 100644 index 0000000000..e71ccc0ea7 Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Protocol_Development_Lockup_Schedule_Dark.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/images/PYTH_Protocol_Development_Lockup_Schedule_Light.png b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Protocol_Development_Lockup_Schedule_Light.png new file mode 100644 index 0000000000..9a16d2b42e Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Protocol_Development_Lockup_Schedule_Light.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/images/PYTH_Publisher_Rewards_Lockup_Schedule_Dark.png b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Publisher_Rewards_Lockup_Schedule_Dark.png new file mode 100644 index 0000000000..1b69393491 Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Publisher_Rewards_Lockup_Schedule_Dark.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/images/PYTH_Publisher_Rewards_Lockup_Schedule_Light.png b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Publisher_Rewards_Lockup_Schedule_Light.png new file mode 100644 index 0000000000..43027d8eff Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/PYTH_Publisher_Rewards_Lockup_Schedule_Light.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/images/Pyth_Lockup_Schedule_Dark.png b/apps/developer-hub/content/docs/pyth-token/images/Pyth_Lockup_Schedule_Dark.png new file mode 100644 index 0000000000..ab37902d43 Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/Pyth_Lockup_Schedule_Dark.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/images/Pyth_Lockup_Schedule_Light.png b/apps/developer-hub/content/docs/pyth-token/images/Pyth_Lockup_Schedule_Light.png new file mode 100644 index 0000000000..9b8d23c839 Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/Pyth_Lockup_Schedule_Light.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/images/Token_breakdown_Dark.png b/apps/developer-hub/content/docs/pyth-token/images/Token_breakdown_Dark.png new file mode 100644 index 0000000000..e7daf6b391 Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/Token_breakdown_Dark.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/images/Token_breakdown_Light.png b/apps/developer-hub/content/docs/pyth-token/images/Token_breakdown_Light.png new file mode 100644 index 0000000000..ce64ecfc49 Binary files /dev/null and b/apps/developer-hub/content/docs/pyth-token/images/Token_breakdown_Light.png differ diff --git a/apps/developer-hub/content/docs/pyth-token/pyth-distribution.mdx b/apps/developer-hub/content/docs/pyth-token/pyth-distribution.mdx index fc0aa28527..13f9fd7843 100644 --- a/apps/developer-hub/content/docs/pyth-token/pyth-distribution.mdx +++ b/apps/developer-hub/content/docs/pyth-token/pyth-distribution.mdx @@ -3,19 +3,43 @@ title: PYTH Token Distribution description: Details about PYTH token distribution and lockup schedules --- +import DualModeImage from "../../../src/components/DualModeImage"; +import PythLockupScheduleDark from "./images/Pyth_Lockup_Schedule_Dark.png"; +import PythLockupScheduleLight from "./images/Pyth_Lockup_Schedule_Light.png"; +import TokenBreakdownDark from "./images/Token_breakdown_Dark.png"; +import TokenBreakdownLight from "./images/Token_breakdown_Light.png"; +import PublisherRewardsLockupDark from "./images/PYTH_Publisher_Rewards_Lockup_Schedule_Dark.png"; +import PublisherRewardsLockupLight from "./images/PYTH_Publisher_Rewards_Lockup_Schedule_Light.png"; +import EcosystemGrowthLockupDark from "./images/PYTH_Ecosystem_Growth_Lockup_Schedule_Dark.png"; +import EcosystemGrowthLockupLight from "./images/PYTH_Ecosystem_Growth_Lockup_Schedule_Light.png"; +import ProtocolDevelopmentLockupDark from "./images/PYTH_Protocol_Development_Lockup_Schedule_Dark.png"; +import ProtocolDevelopmentLockupLight from "./images/PYTH_Protocol_Development_Lockup_Schedule_Light.png"; +import CommunityLaunchLockupDark from "./images/PYTH_Community_Launch_Lockup_Schedule_Dark.png"; +import CommunityLaunchLockupLight from "./images/PYTH_Community_Launch_Lockup_Schedule_Light.png"; +import PrivateSalesVestingDark from "./images/PYTH_Private_Sales_Vesting_Schedule_Dark.png"; +import PrivateSalesVestingLight from "./images/PYTH_Private_Sales_Vesting_Schedule_Light.png"; + There is a total of 10,000,000,000 (10B) PYTH tokens existing. The initial circulating supply (November 2023) was 1,500,000,000 (15%) PYTH. And the remaining supply (85%) are initially locked and locked tokens will unlock 6, 18, 30 and 42 months after the initial token launch. **PYTH Lockup Schedule** - + ## Token Distribution Below is the PYTH Token distribution table as per the whitepaper. - + ## Publisher Rewards @@ -29,7 +53,11 @@ This is designed to encourage more publishers to support new symbols which may l ~2% (50M) of the 2.2B PYTH Tokens are unlocked. The remaining PYTH Tokens (2.15B) are subject to the lockup schedule described above. Note that these rewards can only be distributed to publishers once they are unlocked. - + ## Ecosystem Growth @@ -41,7 +69,11 @@ This allocation aims to facilitate practical initiatives including funding resea 13% (700M) of the 5.2B PYTH Tokens are unlocked. The remaining tokens (4.5B) are subject to the unlock schedule described above. - + ## Protocol Development @@ -51,7 +83,11 @@ This portion of the token supply has been allocated to contributors focused on b 15% (150M) of the 1B PYTH Tokens are unlocked. The remaining tokens (850M) are subject to the unlock schedule described above. - + ## Community and Launch @@ -61,7 +97,11 @@ This portion of PYTH Tokens is set aside for the initial launch phase and relate All 600M PYTH Tokens of "Community and Launch" allocation are unlocked from day one. - + ## Private Sales @@ -71,4 +111,8 @@ This category represents two historical funding rounds to strategic contributors All of 1B PYTH Tokens are locked and subject to the unlock schedule described above. - + diff --git a/apps/developer-hub/public/images/kpi/april-22/1_4H-wLrYNIKtEEY2kNX_DYg.png b/apps/developer-hub/public/images/kpi/april-22/1_4H-wLrYNIKtEEY2kNX_DYg.png deleted file mode 100644 index 777fe73ce0..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-22/1_4H-wLrYNIKtEEY2kNX_DYg.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-22/1_Cy-ZqESSf1Z-kaDHyRgm0w.jpeg b/apps/developer-hub/public/images/kpi/april-22/1_Cy-ZqESSf1Z-kaDHyRgm0w.jpeg deleted file mode 100644 index d91f05d081..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-22/1_Cy-ZqESSf1Z-kaDHyRgm0w.jpeg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-22/Client_Downloads_Cumulative_Apr.png b/apps/developer-hub/public/images/kpi/april-22/Client_Downloads_Cumulative_Apr.png deleted file mode 100644 index f2a8d0179a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-22/Client_Downloads_Cumulative_Apr.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-22/Data_Providers_Onboarded.png b/apps/developer-hub/public/images/kpi/april-22/Data_Providers_Onboarded.png deleted file mode 100644 index 86bfd41b62..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-22/Data_Providers_Onboarded.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-22/Price_Feeds.png b/apps/developer-hub/public/images/kpi/april-22/Price_Feeds.png deleted file mode 100644 index baf84ca1e0..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-22/Price_Feeds.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-22/dAp_Integration.png b/apps/developer-hub/public/images/kpi/april-22/dAp_Integration.png deleted file mode 100644 index 366b0147f8..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-22/dAp_Integration.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-22/dApps_Trading.png b/apps/developer-hub/public/images/kpi/april-22/dApps_Trading.png deleted file mode 100644 index 747c72f866..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-22/dApps_Trading.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-23/apr-23-apps-integrations.png b/apps/developer-hub/public/images/kpi/april-23/apr-23-apps-integrations.png deleted file mode 100644 index 7bbee12956..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-23/apr-23-apps-integrations.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-23/apr-23-client-downloads.png b/apps/developer-hub/public/images/kpi/april-23/apr-23-client-downloads.png deleted file mode 100644 index 83aca0ed2f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-23/apr-23-client-downloads.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-23/apr-23-connected-blockchains.png b/apps/developer-hub/public/images/kpi/april-23/apr-23-connected-blockchains.png deleted file mode 100644 index 8f44ce8ec6..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-23/apr-23-connected-blockchains.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-23/apr-23-dapps-tvs.png b/apps/developer-hub/public/images/kpi/april-23/apr-23-dapps-tvs.png deleted file mode 100644 index 06d00a062e..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-23/apr-23-dapps-tvs.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-23/apr-23-price-feeds.png b/apps/developer-hub/public/images/kpi/april-23/apr-23-price-feeds.png deleted file mode 100644 index 322f907252..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-23/apr-23-price-feeds.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-23/apr-23-price-updates.png b/apps/developer-hub/public/images/kpi/april-23/apr-23-price-updates.png deleted file mode 100644 index 18c1751f75..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-23/apr-23-price-updates.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-23/apr-23-publisher-growth.png b/apps/developer-hub/public/images/kpi/april-23/apr-23-publisher-growth.png deleted file mode 100644 index 92324eb770..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-23/apr-23-publisher-growth.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-23/apr-23-traded-volume.png b/apps/developer-hub/public/images/kpi/april-23/apr-23-traded-volume.png deleted file mode 100644 index 7257dbbf0b..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-23/apr-23-traded-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-23/apr-23-trading-volume.png b/apps/developer-hub/public/images/kpi/april-23/apr-23-trading-volume.png deleted file mode 100644 index e71d0cc79d..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-23/apr-23-trading-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-23/pyth-apr-23.jpg b/apps/developer-hub/public/images/kpi/april-23/pyth-apr-23.jpg deleted file mode 100644 index 72a028580e..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-23/pyth-apr-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-23/pyth-momentum-apr23.jpg b/apps/developer-hub/public/images/kpi/april-23/pyth-momentum-apr23.jpg deleted file mode 100644 index 39d6bed75c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-23/pyth-momentum-apr23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/apr-24-all-chain-tvs.jpg b/apps/developer-hub/public/images/kpi/april-24/apr-24-all-chain-tvs.jpg deleted file mode 100644 index b8e48a74f7..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/apr-24-all-chain-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/apr-24-all-chain-volume.jpg b/apps/developer-hub/public/images/kpi/april-24/apr-24-all-chain-volume.jpg deleted file mode 100644 index f5efd53a93..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/apr-24-all-chain-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/apr-24-apps-integrations.jpg b/apps/developer-hub/public/images/kpi/april-24/apr-24-apps-integrations.jpg deleted file mode 100644 index 10ae6a14de..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/apr-24-apps-integrations.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/apr-24-connected-blockchains.jpg b/apps/developer-hub/public/images/kpi/april-24/apr-24-connected-blockchains.jpg deleted file mode 100644 index 1c2e83da78..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/apr-24-connected-blockchains.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/apr-24-daily-average-updates.jpg b/apps/developer-hub/public/images/kpi/april-24/apr-24-daily-average-updates.jpg deleted file mode 100644 index 318f0cf785..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/apr-24-daily-average-updates.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/apr-24-dapps-tvs.jpg b/apps/developer-hub/public/images/kpi/april-24/apr-24-dapps-tvs.jpg deleted file mode 100644 index 40bf5b1b8a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/apr-24-dapps-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/apr-24-data-providers.jpg b/apps/developer-hub/public/images/kpi/april-24/apr-24-data-providers.jpg deleted file mode 100644 index c0e3606715..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/apr-24-data-providers.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/apr-24-price-feeds.jpg b/apps/developer-hub/public/images/kpi/april-24/apr-24-price-feeds.jpg deleted file mode 100644 index ef73b25be2..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/apr-24-price-feeds.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/apr-24-traded-volume.jpg b/apps/developer-hub/public/images/kpi/april-24/apr-24-traded-volume.jpg deleted file mode 100644 index af80630cfc..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/apr-24-traded-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/apr-24-trading-volume.jpg b/apps/developer-hub/public/images/kpi/april-24/apr-24-trading-volume.jpg deleted file mode 100644 index 35cf398ce7..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/apr-24-trading-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/pyth-apr-24.jpg b/apps/developer-hub/public/images/kpi/april-24/pyth-apr-24.jpg deleted file mode 100644 index 633c5ae0d7..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/pyth-apr-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/pyth-ecosystem-apr-24.jpg b/apps/developer-hub/public/images/kpi/april-24/pyth-ecosystem-apr-24.jpg deleted file mode 100644 index f3c5ce1487..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/pyth-ecosystem-apr-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/pyth-momentum-apr-24.jpg b/apps/developer-hub/public/images/kpi/april-24/pyth-momentum-apr-24.jpg deleted file mode 100644 index daff208d2f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/pyth-momentum-apr-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/pyth-traded-volume-l1-l2-apr-24.jpg b/apps/developer-hub/public/images/kpi/april-24/pyth-traded-volume-l1-l2-apr-24.jpg deleted file mode 100644 index a72e4d228f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/pyth-traded-volume-l1-l2-apr-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/april-24/pyth-tvs-l1-l2-apr-24.jpg b/apps/developer-hub/public/images/kpi/april-24/pyth-tvs-l1-l2-apr-24.jpg deleted file mode 100644 index 840fc384a8..0000000000 Binary files a/apps/developer-hub/public/images/kpi/april-24/pyth-tvs-l1-l2-apr-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-22/August Trading Volume.png b/apps/developer-hub/public/images/kpi/august-22/August Trading Volume.png deleted file mode 100644 index ea510c8df3..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-22/August Trading Volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-22/August dApps TVS.png b/apps/developer-hub/public/images/kpi/august-22/August dApps TVS.png deleted file mode 100644 index b0f2309dc7..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-22/August dApps TVS.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-22/Client Downloads Cumulative August.png b/apps/developer-hub/public/images/kpi/august-22/Client Downloads Cumulative August.png deleted file mode 100644 index f2a22fdc11..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-22/Client Downloads Cumulative August.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-22/Data Providers Onboarded (1).png b/apps/developer-hub/public/images/kpi/august-22/Data Providers Onboarded (1).png deleted file mode 100644 index d882658a16..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-22/Data Providers Onboarded (1).png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-22/End of Month _ August-22.jpg b/apps/developer-hub/public/images/kpi/august-22/End of Month _ August-22.jpg deleted file mode 100644 index e1a32031a2..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-22/End of Month _ August-22.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-22/Price Feeds August.png b/apps/developer-hub/public/images/kpi/august-22/Price Feeds August.png deleted file mode 100644 index d49f185a53..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-22/Price Feeds August.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-22/dApp Integration August.png b/apps/developer-hub/public/images/kpi/august-22/dApp Integration August.png deleted file mode 100644 index de5978a65e..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-22/dApp Integration August.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-23/aug-23-all-chain-tvs.jpg b/apps/developer-hub/public/images/kpi/august-23/aug-23-all-chain-tvs.jpg deleted file mode 100644 index c7da587aa8..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-23/aug-23-all-chain-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-23/aug-23-all-chain-volume.jpg b/apps/developer-hub/public/images/kpi/august-23/aug-23-all-chain-volume.jpg deleted file mode 100644 index 98895c776d..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-23/aug-23-all-chain-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-23/aug-23-apps-integrations.jpg b/apps/developer-hub/public/images/kpi/august-23/aug-23-apps-integrations.jpg deleted file mode 100644 index 719519a14a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-23/aug-23-apps-integrations.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-23/aug-23-connected-blockchains.jpg b/apps/developer-hub/public/images/kpi/august-23/aug-23-connected-blockchains.jpg deleted file mode 100644 index c0023868bf..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-23/aug-23-connected-blockchains.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-23/aug-23-daily-average-updates.jpg b/apps/developer-hub/public/images/kpi/august-23/aug-23-daily-average-updates.jpg deleted file mode 100644 index df6b887c0c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-23/aug-23-daily-average-updates.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-23/aug-23-dapps-tvs.jpg b/apps/developer-hub/public/images/kpi/august-23/aug-23-dapps-tvs.jpg deleted file mode 100644 index 8259b513ba..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-23/aug-23-dapps-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-23/aug-23-data-providers.jpg b/apps/developer-hub/public/images/kpi/august-23/aug-23-data-providers.jpg deleted file mode 100644 index 16b8d4ff26..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-23/aug-23-data-providers.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-23/aug-23-price-feeds.jpg b/apps/developer-hub/public/images/kpi/august-23/aug-23-price-feeds.jpg deleted file mode 100644 index 541bad0eb0..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-23/aug-23-price-feeds.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-23/aug-23-traded-volume.jpg b/apps/developer-hub/public/images/kpi/august-23/aug-23-traded-volume.jpg deleted file mode 100644 index 2375a8542a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-23/aug-23-traded-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-23/aug-23-trading-volume.jpg b/apps/developer-hub/public/images/kpi/august-23/aug-23-trading-volume.jpg deleted file mode 100644 index 457868fd6c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-23/aug-23-trading-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-23/pyth-aug-23.jpg b/apps/developer-hub/public/images/kpi/august-23/pyth-aug-23.jpg deleted file mode 100644 index 9435b1ae7b..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-23/pyth-aug-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/august-23/pyth-momentum-aug-23.jpg b/apps/developer-hub/public/images/kpi/august-23/pyth-momentum-aug-23.jpg deleted file mode 100644 index fa4b892ab2..0000000000 Binary files a/apps/developer-hub/public/images/kpi/august-23/pyth-momentum-aug-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-21/1_7or8vzsDDfqBTRaw-Pd7mg_(2).png b/apps/developer-hub/public/images/kpi/december-21/1_7or8vzsDDfqBTRaw-Pd7mg_(2).png deleted file mode 100644 index 02d6143721..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-21/1_7or8vzsDDfqBTRaw-Pd7mg_(2).png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-21/1_CRKLMU_kcIT0kbxjKDXtwA_(1).jpeg b/apps/developer-hub/public/images/kpi/december-21/1_CRKLMU_kcIT0kbxjKDXtwA_(1).jpeg deleted file mode 100644 index 421a8fa74b..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-21/1_CRKLMU_kcIT0kbxjKDXtwA_(1).jpeg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-21/1_N0-NEeyM4qAvVytUyOpLNA_(2).jpeg b/apps/developer-hub/public/images/kpi/december-21/1_N0-NEeyM4qAvVytUyOpLNA_(2).jpeg deleted file mode 100644 index c4698206b4..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-21/1_N0-NEeyM4qAvVytUyOpLNA_(2).jpeg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-21/1__ddFza_PAC6K0kP3QOfcuA_(2).png b/apps/developer-hub/public/images/kpi/december-21/1__ddFza_PAC6K0kP3QOfcuA_(2).png deleted file mode 100644 index 0bfae15547..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-21/1__ddFza_PAC6K0kP3QOfcuA_(2).png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-21/1_ggFBTSm3VPHmc62-LPZnng_(2).png b/apps/developer-hub/public/images/kpi/december-21/1_ggFBTSm3VPHmc62-LPZnng_(2).png deleted file mode 100644 index 7da9f58485..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-21/1_ggFBTSm3VPHmc62-LPZnng_(2).png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-21/1_xO0YaqQ3wJRRpRaL26N13A_(2).jpeg b/apps/developer-hub/public/images/kpi/december-21/1_xO0YaqQ3wJRRpRaL26N13A_(2).jpeg deleted file mode 100644 index 69125c90e4..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-21/1_xO0YaqQ3wJRRpRaL26N13A_(2).jpeg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-21/Client_Downloads_Cumulative_Dec.png b/apps/developer-hub/public/images/kpi/december-21/Client_Downloads_Cumulative_Dec.png deleted file mode 100644 index 70cc43ba3c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-21/Client_Downloads_Cumulative_Dec.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-22/Apps Integrations December.png b/apps/developer-hub/public/images/kpi/december-22/Apps Integrations December.png deleted file mode 100644 index e930a0626f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-22/Apps Integrations December.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-22/Client Downloads Cumulative December.png b/apps/developer-hub/public/images/kpi/december-22/Client Downloads Cumulative December.png deleted file mode 100644 index c03d6d2956..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-22/Client Downloads Cumulative December.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-22/Connected Blockchains December.png b/apps/developer-hub/public/images/kpi/december-22/Connected Blockchains December.png deleted file mode 100644 index bab3f1a99d..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-22/Connected Blockchains December.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-22/Cumulative Traded Volume December.png b/apps/developer-hub/public/images/kpi/december-22/Cumulative Traded Volume December.png deleted file mode 100644 index 212e847a1a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-22/Cumulative Traded Volume December.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-22/December Trading Volume v2.png b/apps/developer-hub/public/images/kpi/december-22/December Trading Volume v2.png deleted file mode 100644 index 5c100af823..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-22/December Trading Volume v2.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-22/December dApps TVS-1.png b/apps/developer-hub/public/images/kpi/december-22/December dApps TVS-1.png deleted file mode 100644 index 9563458525..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-22/December dApps TVS-1.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-22/End of Month _ December-22 .jpg b/apps/developer-hub/public/images/kpi/december-22/End of Month _ December-22 .jpg deleted file mode 100644 index 3783c6268f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-22/End of Month _ December-22 .jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-22/Price Feeds December.png b/apps/developer-hub/public/images/kpi/december-22/Price Feeds December.png deleted file mode 100644 index ff6c9b2456..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-22/Price Feeds December.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-22/Publisher Growth December.png b/apps/developer-hub/public/images/kpi/december-22/Publisher Growth December.png deleted file mode 100644 index eba4e2a93c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-22/Publisher Growth December.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/dec-23-all-chain-tvs.jpg b/apps/developer-hub/public/images/kpi/december-23/dec-23-all-chain-tvs.jpg deleted file mode 100644 index 2a3b127079..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/dec-23-all-chain-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/dec-23-all-chain-volume.jpg b/apps/developer-hub/public/images/kpi/december-23/dec-23-all-chain-volume.jpg deleted file mode 100644 index 5aac1ee337..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/dec-23-all-chain-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/dec-23-apps-integrations.jpg b/apps/developer-hub/public/images/kpi/december-23/dec-23-apps-integrations.jpg deleted file mode 100644 index e756d91f2f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/dec-23-apps-integrations.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/dec-23-connected-blockchains.jpg b/apps/developer-hub/public/images/kpi/december-23/dec-23-connected-blockchains.jpg deleted file mode 100644 index 47118e8df3..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/dec-23-connected-blockchains.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/dec-23-daily-average-updates.jpg b/apps/developer-hub/public/images/kpi/december-23/dec-23-daily-average-updates.jpg deleted file mode 100644 index b968ec4b41..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/dec-23-daily-average-updates.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/dec-23-dapps-tvs.jpg b/apps/developer-hub/public/images/kpi/december-23/dec-23-dapps-tvs.jpg deleted file mode 100644 index 6191dbe8e4..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/dec-23-dapps-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/dec-23-data-providers.jpg b/apps/developer-hub/public/images/kpi/december-23/dec-23-data-providers.jpg deleted file mode 100644 index 3cb7822a4d..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/dec-23-data-providers.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/dec-23-price-feeds.jpg b/apps/developer-hub/public/images/kpi/december-23/dec-23-price-feeds.jpg deleted file mode 100644 index 629ae887f3..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/dec-23-price-feeds.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/dec-23-traded-volume.jpg b/apps/developer-hub/public/images/kpi/december-23/dec-23-traded-volume.jpg deleted file mode 100644 index 9973f029dd..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/dec-23-traded-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/dec-23-trading-volume.jpg b/apps/developer-hub/public/images/kpi/december-23/dec-23-trading-volume.jpg deleted file mode 100644 index 380611a1b1..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/dec-23-trading-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/pyth-dec-23.jpg b/apps/developer-hub/public/images/kpi/december-23/pyth-dec-23.jpg deleted file mode 100644 index 480de48171..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/pyth-dec-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/pyth-ecosystem-dec-23.jpg b/apps/developer-hub/public/images/kpi/december-23/pyth-ecosystem-dec-23.jpg deleted file mode 100644 index af1001feaa..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/pyth-ecosystem-dec-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/pyth-momentum-dec-23.jpg b/apps/developer-hub/public/images/kpi/december-23/pyth-momentum-dec-23.jpg deleted file mode 100644 index 748b6debdc..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/pyth-momentum-dec-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/december-23/pyth-tvs-l1-l2-dec-23.jpg b/apps/developer-hub/public/images/kpi/december-23/pyth-tvs-l1-l2-dec-23.jpg deleted file mode 100644 index b9aab857a9..0000000000 Binary files a/apps/developer-hub/public/images/kpi/december-23/pyth-tvs-l1-l2-dec-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-22/1_SkzfL5NEHGWNi7gyJD4FVA.png b/apps/developer-hub/public/images/kpi/february-22/1_SkzfL5NEHGWNi7gyJD4FVA.png deleted file mode 100644 index ecd051e026..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-22/1_SkzfL5NEHGWNi7gyJD4FVA.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-22/1_UCJQodId7BtQHXas967Q8Q_(1).png b/apps/developer-hub/public/images/kpi/february-22/1_UCJQodId7BtQHXas967Q8Q_(1).png deleted file mode 100644 index 3cccaaddfa..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-22/1_UCJQodId7BtQHXas967Q8Q_(1).png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-22/1_XdpHlpsrX4nd0yZKSDmb2g_(1).png b/apps/developer-hub/public/images/kpi/february-22/1_XdpHlpsrX4nd0yZKSDmb2g_(1).png deleted file mode 100644 index 900735af75..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-22/1_XdpHlpsrX4nd0yZKSDmb2g_(1).png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-22/Client_Downloads_Cumulative_Feb_(1).png b/apps/developer-hub/public/images/kpi/february-22/Client_Downloads_Cumulative_Feb_(1).png deleted file mode 100644 index c34f4f3145..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-22/Client_Downloads_Cumulative_Feb_(1).png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-22/Data_Providers.png b/apps/developer-hub/public/images/kpi/february-22/Data_Providers.png deleted file mode 100644 index d53a013f5a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-22/Data_Providers.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-22/Price_Feeds_.png b/apps/developer-hub/public/images/kpi/february-22/Price_Feeds_.png deleted file mode 100644 index 317d1f7d0a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-22/Price_Feeds_.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-22/dApp_Integration.png b/apps/developer-hub/public/images/kpi/february-22/dApp_Integration.png deleted file mode 100644 index 991bd752f2..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-22/dApp_Integration.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-23/feb-23-apps-integrations.png b/apps/developer-hub/public/images/kpi/february-23/feb-23-apps-integrations.png deleted file mode 100644 index f880e08957..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-23/feb-23-apps-integrations.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-23/feb-23-client-downloads.png b/apps/developer-hub/public/images/kpi/february-23/feb-23-client-downloads.png deleted file mode 100644 index c4c00fc0fa..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-23/feb-23-client-downloads.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-23/feb-23-connected-blockchains.png b/apps/developer-hub/public/images/kpi/february-23/feb-23-connected-blockchains.png deleted file mode 100644 index 895e29a58a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-23/feb-23-connected-blockchains.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-23/feb-23-dapps-tvs.png b/apps/developer-hub/public/images/kpi/february-23/feb-23-dapps-tvs.png deleted file mode 100644 index 5bb6b95b74..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-23/feb-23-dapps-tvs.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-23/feb-23-price-feeds.png b/apps/developer-hub/public/images/kpi/february-23/feb-23-price-feeds.png deleted file mode 100644 index c7a6141fa2..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-23/feb-23-price-feeds.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-23/feb-23-publisher-growth.png b/apps/developer-hub/public/images/kpi/february-23/feb-23-publisher-growth.png deleted file mode 100644 index 519b49ccb3..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-23/feb-23-publisher-growth.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-23/feb-23-traded-volume.png b/apps/developer-hub/public/images/kpi/february-23/feb-23-traded-volume.png deleted file mode 100644 index c6467dccb3..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-23/feb-23-traded-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-23/feb-23-trading-volume.png b/apps/developer-hub/public/images/kpi/february-23/feb-23-trading-volume.png deleted file mode 100644 index 96edafa318..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-23/feb-23-trading-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/february-23/pyth-feb-23.jpg b/apps/developer-hub/public/images/kpi/february-23/pyth-feb-23.jpg deleted file mode 100644 index aca5d8921d..0000000000 Binary files a/apps/developer-hub/public/images/kpi/february-23/pyth-feb-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-22/1_I7Chmb8TyZncrTKXOC13og_(1).png b/apps/developer-hub/public/images/kpi/january-22/1_I7Chmb8TyZncrTKXOC13og_(1).png deleted file mode 100644 index 5ef0946028..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-22/1_I7Chmb8TyZncrTKXOC13og_(1).png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-22/1_ZRILOnMQgBViGmgLs15dlQ.png b/apps/developer-hub/public/images/kpi/january-22/1_ZRILOnMQgBViGmgLs15dlQ.png deleted file mode 100644 index fe1cde47ce..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-22/1_ZRILOnMQgBViGmgLs15dlQ.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-22/Client_Downloads_Cumulative_Jan.png b/apps/developer-hub/public/images/kpi/january-22/Client_Downloads_Cumulative_Jan.png deleted file mode 100644 index 7608fdfbd2..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-22/Client_Downloads_Cumulative_Jan.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-22/DataProvidersOnboarded.png b/apps/developer-hub/public/images/kpi/january-22/DataProvidersOnboarded.png deleted file mode 100644 index cf45949473..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-22/DataProvidersOnboarded.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-22/EndofMonth.jpg b/apps/developer-hub/public/images/kpi/january-22/EndofMonth.jpg deleted file mode 100644 index 9620141c92..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-22/EndofMonth.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-22/PriceFeedsSep.png b/apps/developer-hub/public/images/kpi/january-22/PriceFeedsSep.png deleted file mode 100644 index a2110de900..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-22/PriceFeedsSep.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-22/dApp_Integration_Jun.png b/apps/developer-hub/public/images/kpi/january-22/dApp_Integration_Jun.png deleted file mode 100644 index bbbb359b56..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-22/dApp_Integration_Jun.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-23/jan-23-apps-integrations.png b/apps/developer-hub/public/images/kpi/january-23/jan-23-apps-integrations.png deleted file mode 100644 index 9d6da589d2..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-23/jan-23-apps-integrations.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-23/jan-23-client-downloads.png b/apps/developer-hub/public/images/kpi/january-23/jan-23-client-downloads.png deleted file mode 100644 index 3cdc126a1f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-23/jan-23-client-downloads.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-23/jan-23-connected-blockchains.png b/apps/developer-hub/public/images/kpi/january-23/jan-23-connected-blockchains.png deleted file mode 100644 index 6e34bf58bf..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-23/jan-23-connected-blockchains.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-23/jan-23-dapps-tvs.png b/apps/developer-hub/public/images/kpi/january-23/jan-23-dapps-tvs.png deleted file mode 100644 index 946d5d6ca2..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-23/jan-23-dapps-tvs.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-23/jan-23-price-feeds.png b/apps/developer-hub/public/images/kpi/january-23/jan-23-price-feeds.png deleted file mode 100644 index 4a98af419c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-23/jan-23-price-feeds.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-23/jan-23-publisher-growth.png b/apps/developer-hub/public/images/kpi/january-23/jan-23-publisher-growth.png deleted file mode 100644 index db572883d9..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-23/jan-23-publisher-growth.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-23/jan-23-traded-volume.png b/apps/developer-hub/public/images/kpi/january-23/jan-23-traded-volume.png deleted file mode 100644 index 9266786079..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-23/jan-23-traded-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-23/jan-23-trading-volume.png b/apps/developer-hub/public/images/kpi/january-23/jan-23-trading-volume.png deleted file mode 100644 index e36bfaa31e..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-23/jan-23-trading-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-23/pyth-jan-23.jpg b/apps/developer-hub/public/images/kpi/january-23/pyth-jan-23.jpg deleted file mode 100644 index 318c7f54e5..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-23/pyth-jan-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/jan-24-all-chain-tvs.jpg b/apps/developer-hub/public/images/kpi/january-24/jan-24-all-chain-tvs.jpg deleted file mode 100644 index 75c72b61f1..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/jan-24-all-chain-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/jan-24-all-chain-volume.jpg b/apps/developer-hub/public/images/kpi/january-24/jan-24-all-chain-volume.jpg deleted file mode 100644 index de287df339..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/jan-24-all-chain-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/jan-24-apps-integrations.jpg b/apps/developer-hub/public/images/kpi/january-24/jan-24-apps-integrations.jpg deleted file mode 100644 index 13d31e6ec6..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/jan-24-apps-integrations.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/jan-24-connected-blockchains.jpg b/apps/developer-hub/public/images/kpi/january-24/jan-24-connected-blockchains.jpg deleted file mode 100644 index 088b7e7826..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/jan-24-connected-blockchains.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/jan-24-daily-average-updates.jpg b/apps/developer-hub/public/images/kpi/january-24/jan-24-daily-average-updates.jpg deleted file mode 100644 index 0759aefe3d..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/jan-24-daily-average-updates.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/jan-24-dapps-tvs.jpg b/apps/developer-hub/public/images/kpi/january-24/jan-24-dapps-tvs.jpg deleted file mode 100644 index f0961f5d65..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/jan-24-dapps-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/jan-24-data-providers.jpg b/apps/developer-hub/public/images/kpi/january-24/jan-24-data-providers.jpg deleted file mode 100644 index 69ea390e1b..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/jan-24-data-providers.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/jan-24-price-feeds.jpg b/apps/developer-hub/public/images/kpi/january-24/jan-24-price-feeds.jpg deleted file mode 100644 index 1656813c48..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/jan-24-price-feeds.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/jan-24-traded-volume.jpg b/apps/developer-hub/public/images/kpi/january-24/jan-24-traded-volume.jpg deleted file mode 100644 index 799b5e905b..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/jan-24-traded-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/jan-24-trading-volume.jpg b/apps/developer-hub/public/images/kpi/january-24/jan-24-trading-volume.jpg deleted file mode 100644 index 6d9505607b..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/jan-24-trading-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/pyth-ecosystem-jan-24.jpg b/apps/developer-hub/public/images/kpi/january-24/pyth-ecosystem-jan-24.jpg deleted file mode 100644 index 41ecde25bb..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/pyth-ecosystem-jan-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/pyth-jan-24.jpg b/apps/developer-hub/public/images/kpi/january-24/pyth-jan-24.jpg deleted file mode 100644 index 33bf29ba8c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/pyth-jan-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/pyth-momentum-jan-24.jpg b/apps/developer-hub/public/images/kpi/january-24/pyth-momentum-jan-24.jpg deleted file mode 100644 index 6e63a81107..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/pyth-momentum-jan-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/january-24/pyth-tvs-l1-l2-jan-24.jpg b/apps/developer-hub/public/images/kpi/january-24/pyth-tvs-l1-l2-jan-24.jpg deleted file mode 100644 index f37b1275f1..0000000000 Binary files a/apps/developer-hub/public/images/kpi/january-24/pyth-tvs-l1-l2-jan-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-22/Client Downloads Cumulative July.png b/apps/developer-hub/public/images/kpi/july-22/Client Downloads Cumulative July.png deleted file mode 100644 index 033298de92..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-22/Client Downloads Cumulative July.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-22/Data Providers Onboarded July.png b/apps/developer-hub/public/images/kpi/july-22/Data Providers Onboarded July.png deleted file mode 100644 index 0471efeda3..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-22/Data Providers Onboarded July.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-22/End of Month _ July-22 v4.jpg b/apps/developer-hub/public/images/kpi/july-22/End of Month _ July-22 v4.jpg deleted file mode 100644 index 556f51cbaf..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-22/End of Month _ July-22 v4.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-22/July Trading Volume.png b/apps/developer-hub/public/images/kpi/july-22/July Trading Volume.png deleted file mode 100644 index 439d8f466c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-22/July Trading Volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-22/July dApps TVS.png b/apps/developer-hub/public/images/kpi/july-22/July dApps TVS.png deleted file mode 100644 index 944d40d276..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-22/July dApps TVS.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-22/Pyth Data Feeds July.png b/apps/developer-hub/public/images/kpi/july-22/Pyth Data Feeds July.png deleted file mode 100644 index 3e132e196c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-22/Pyth Data Feeds July.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-22/Pyth dApps Integration (1).png b/apps/developer-hub/public/images/kpi/july-22/Pyth dApps Integration (1).png deleted file mode 100644 index 812d021d15..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-22/Pyth dApps Integration (1).png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-23/0723 Client Downloads.png b/apps/developer-hub/public/images/kpi/july-23/0723 Client Downloads.png deleted file mode 100644 index 988c624ab3..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-23/0723 Client Downloads.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-23/jul-23-all-chain-tvs.png b/apps/developer-hub/public/images/kpi/july-23/jul-23-all-chain-tvs.png deleted file mode 100644 index 869be8110a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-23/jul-23-all-chain-tvs.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-23/jul-23-all-chain-volume.jpg b/apps/developer-hub/public/images/kpi/july-23/jul-23-all-chain-volume.jpg deleted file mode 100644 index c9c51b9bf0..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-23/jul-23-all-chain-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-23/jul-23-apps-integrations.jpg b/apps/developer-hub/public/images/kpi/july-23/jul-23-apps-integrations.jpg deleted file mode 100644 index d262dcf69a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-23/jul-23-apps-integrations.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-23/jul-23-connected-blockchains.png b/apps/developer-hub/public/images/kpi/july-23/jul-23-connected-blockchains.png deleted file mode 100644 index 8048f96018..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-23/jul-23-connected-blockchains.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-23/jul-23-daily-average-updates.png b/apps/developer-hub/public/images/kpi/july-23/jul-23-daily-average-updates.png deleted file mode 100644 index 06c93ff87c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-23/jul-23-daily-average-updates.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-23/jul-23-dapps-tvs.png b/apps/developer-hub/public/images/kpi/july-23/jul-23-dapps-tvs.png deleted file mode 100644 index 32e572a504..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-23/jul-23-dapps-tvs.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-23/jul-23-data-providers.png b/apps/developer-hub/public/images/kpi/july-23/jul-23-data-providers.png deleted file mode 100644 index 4a088d2d45..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-23/jul-23-data-providers.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-23/jul-23-price-feeds.png b/apps/developer-hub/public/images/kpi/july-23/jul-23-price-feeds.png deleted file mode 100644 index 855c133e1b..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-23/jul-23-price-feeds.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-23/jul-23-traded-volume.png b/apps/developer-hub/public/images/kpi/july-23/jul-23-traded-volume.png deleted file mode 100644 index 5961323c72..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-23/jul-23-traded-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-23/jul-23-trading-volume.png b/apps/developer-hub/public/images/kpi/july-23/jul-23-trading-volume.png deleted file mode 100644 index 018a476b71..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-23/jul-23-trading-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-23/pyth-jul-23.jpg b/apps/developer-hub/public/images/kpi/july-23/pyth-jul-23.jpg deleted file mode 100644 index 207ef786b9..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-23/pyth-jul-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/july-23/pyth-momentum-jul-23.jpg b/apps/developer-hub/public/images/kpi/july-23/pyth-momentum-jul-23.jpg deleted file mode 100644 index dcfb5c48de..0000000000 Binary files a/apps/developer-hub/public/images/kpi/july-23/pyth-momentum-jul-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-22/1_nQ2UsKvmfn_hzZlEa6GCcQ.jpeg b/apps/developer-hub/public/images/kpi/june-22/1_nQ2UsKvmfn_hzZlEa6GCcQ.jpeg deleted file mode 100644 index a0dcaf9551..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-22/1_nQ2UsKvmfn_hzZlEa6GCcQ.jpeg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-22/Client_Downloads_Cumulative_June.png b/apps/developer-hub/public/images/kpi/june-22/Client_Downloads_Cumulative_June.png deleted file mode 100644 index 9f0ce93e07..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-22/Client_Downloads_Cumulative_June.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-22/DataPubs.png b/apps/developer-hub/public/images/kpi/june-22/DataPubs.png deleted file mode 100644 index 08f559a9a7..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-22/DataPubs.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-22/JuneTradingVolume.png b/apps/developer-hub/public/images/kpi/june-22/JuneTradingVolume.png deleted file mode 100644 index 7e228dc007..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-22/JuneTradingVolume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-22/JunedAppsTVS.png b/apps/developer-hub/public/images/kpi/june-22/JunedAppsTVS.png deleted file mode 100644 index 5b4eac663a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-22/JunedAppsTVS.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-22/PriceFeedsSep21.png b/apps/developer-hub/public/images/kpi/june-22/PriceFeedsSep21.png deleted file mode 100644 index 3e0d688ce2..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-22/PriceFeedsSep21.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-22/dApp.png b/apps/developer-hub/public/images/kpi/june-22/dApp.png deleted file mode 100644 index 32b1c232fd..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-22/dApp.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/jun-23-all-chain-tvs.png b/apps/developer-hub/public/images/kpi/june-23/jun-23-all-chain-tvs.png deleted file mode 100644 index 936b3dab06..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/jun-23-all-chain-tvs.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/jun-23-all-chain-volume.png b/apps/developer-hub/public/images/kpi/june-23/jun-23-all-chain-volume.png deleted file mode 100644 index 568ffbc99c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/jun-23-all-chain-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/jun-23-apps-integrations.png b/apps/developer-hub/public/images/kpi/june-23/jun-23-apps-integrations.png deleted file mode 100644 index 21f2d350cc..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/jun-23-apps-integrations.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/jun-23-client-downloads.png b/apps/developer-hub/public/images/kpi/june-23/jun-23-client-downloads.png deleted file mode 100644 index 4865d5379e..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/jun-23-client-downloads.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/jun-23-connected-blockchains.png b/apps/developer-hub/public/images/kpi/june-23/jun-23-connected-blockchains.png deleted file mode 100644 index 0ac21f4fc5..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/jun-23-connected-blockchains.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/jun-23-daily-average-updates.png b/apps/developer-hub/public/images/kpi/june-23/jun-23-daily-average-updates.png deleted file mode 100644 index a2a96aea31..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/jun-23-daily-average-updates.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/jun-23-dapps-tvs.png b/apps/developer-hub/public/images/kpi/june-23/jun-23-dapps-tvs.png deleted file mode 100644 index b81919652a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/jun-23-dapps-tvs.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/jun-23-data-providers.png b/apps/developer-hub/public/images/kpi/june-23/jun-23-data-providers.png deleted file mode 100644 index 5d9c6fcdf4..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/jun-23-data-providers.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/jun-23-monthly-price-update.png b/apps/developer-hub/public/images/kpi/june-23/jun-23-monthly-price-update.png deleted file mode 100644 index 5a52820074..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/jun-23-monthly-price-update.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/jun-23-price-feeds.png b/apps/developer-hub/public/images/kpi/june-23/jun-23-price-feeds.png deleted file mode 100644 index 45a3c4d715..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/jun-23-price-feeds.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/jun-23-traded-volume.png b/apps/developer-hub/public/images/kpi/june-23/jun-23-traded-volume.png deleted file mode 100644 index 7a880e90d6..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/jun-23-traded-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/jun-23-trading-volume.png b/apps/developer-hub/public/images/kpi/june-23/jun-23-trading-volume.png deleted file mode 100644 index 19994ed96c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/jun-23-trading-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/pyth-jun-23.jpg b/apps/developer-hub/public/images/kpi/june-23/pyth-jun-23.jpg deleted file mode 100644 index 43b87e7473..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/pyth-jun-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-23/pyth-momentum-jun-23.jpg b/apps/developer-hub/public/images/kpi/june-23/pyth-momentum-jun-23.jpg deleted file mode 100644 index d3a7763fe4..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-23/pyth-momentum-jun-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/jun-24-all-chain-tvs.jpg b/apps/developer-hub/public/images/kpi/june-24/jun-24-all-chain-tvs.jpg deleted file mode 100644 index bb5870b771..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/jun-24-all-chain-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/jun-24-all-chain-volume.jpg b/apps/developer-hub/public/images/kpi/june-24/jun-24-all-chain-volume.jpg deleted file mode 100644 index 0352463c30..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/jun-24-all-chain-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/jun-24-apps-integrations.jpg b/apps/developer-hub/public/images/kpi/june-24/jun-24-apps-integrations.jpg deleted file mode 100644 index 67e84489a6..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/jun-24-apps-integrations.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/jun-24-connected-blockchains.jpg b/apps/developer-hub/public/images/kpi/june-24/jun-24-connected-blockchains.jpg deleted file mode 100644 index 4fe29ff3d5..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/jun-24-connected-blockchains.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/jun-24-daily-average-updates.jpg b/apps/developer-hub/public/images/kpi/june-24/jun-24-daily-average-updates.jpg deleted file mode 100644 index 0f3d8b3680..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/jun-24-daily-average-updates.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/jun-24-dapps-tvs.jpg b/apps/developer-hub/public/images/kpi/june-24/jun-24-dapps-tvs.jpg deleted file mode 100644 index a5fd367731..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/jun-24-dapps-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/jun-24-data-providers.jpg b/apps/developer-hub/public/images/kpi/june-24/jun-24-data-providers.jpg deleted file mode 100644 index 1806ffd923..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/jun-24-data-providers.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/jun-24-price-feeds.jpg b/apps/developer-hub/public/images/kpi/june-24/jun-24-price-feeds.jpg deleted file mode 100644 index f200bf0da7..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/jun-24-price-feeds.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/jun-24-traded-volume.jpg b/apps/developer-hub/public/images/kpi/june-24/jun-24-traded-volume.jpg deleted file mode 100644 index 896b4a8ebb..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/jun-24-traded-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/jun-24-trading-volume.jpg b/apps/developer-hub/public/images/kpi/june-24/jun-24-trading-volume.jpg deleted file mode 100644 index 173a940641..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/jun-24-trading-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/pyth-ecosystem-jun-24.jpg b/apps/developer-hub/public/images/kpi/june-24/pyth-ecosystem-jun-24.jpg deleted file mode 100644 index a64fae27d1..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/pyth-ecosystem-jun-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/pyth-jun-24.jpg b/apps/developer-hub/public/images/kpi/june-24/pyth-jun-24.jpg deleted file mode 100644 index ffa18ad0dc..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/pyth-jun-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/pyth-momentum-jun-24.jpg b/apps/developer-hub/public/images/kpi/june-24/pyth-momentum-jun-24.jpg deleted file mode 100644 index 6d7e0db95c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/pyth-momentum-jun-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/pyth-traded-volume-l1-l2-jun-24.jpg b/apps/developer-hub/public/images/kpi/june-24/pyth-traded-volume-l1-l2-jun-24.jpg deleted file mode 100644 index ed31463a88..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/pyth-traded-volume-l1-l2-jun-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/june-24/pyth-tvs-l1-l2-jun-24.jpg b/apps/developer-hub/public/images/kpi/june-24/pyth-tvs-l1-l2-jun-24.jpg deleted file mode 100644 index 6ac450b1e3..0000000000 Binary files a/apps/developer-hub/public/images/kpi/june-24/pyth-tvs-l1-l2-jun-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-22/1_Yb4wTcduj5yc7KuTNrfdvA.png b/apps/developer-hub/public/images/kpi/march-22/1_Yb4wTcduj5yc7KuTNrfdvA.png deleted file mode 100644 index a7b0d6555e..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-22/1_Yb4wTcduj5yc7KuTNrfdvA.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-22/1_ZIHVNImXQfP58gzSuo5jIQ.png b/apps/developer-hub/public/images/kpi/march-22/1_ZIHVNImXQfP58gzSuo5jIQ.png deleted file mode 100644 index 1e68572749..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-22/1_ZIHVNImXQfP58gzSuo5jIQ.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-22/Client_Downloads_Cumulative_Mar.png b/apps/developer-hub/public/images/kpi/march-22/Client_Downloads_Cumulative_Mar.png deleted file mode 100644 index 3b8dd7fa1d..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-22/Client_Downloads_Cumulative_Mar.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-22/DataProvidersOnboarded.png b/apps/developer-hub/public/images/kpi/march-22/DataProvidersOnboarded.png deleted file mode 100644 index a43973ba5a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-22/DataProvidersOnboarded.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-22/End_of_Month___March-22_v3.jpg b/apps/developer-hub/public/images/kpi/march-22/End_of_Month___March-22_v3.jpg deleted file mode 100644 index d8e6bf0bba..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-22/End_of_Month___March-22_v3.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-22/PriceFeedsSep21Mar2.png b/apps/developer-hub/public/images/kpi/march-22/PriceFeedsSep21Mar2.png deleted file mode 100644 index f7d6b6f7fe..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-22/PriceFeedsSep21Mar2.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-22/dAppIntegration.png b/apps/developer-hub/public/images/kpi/march-22/dAppIntegration.png deleted file mode 100644 index 1b066dfe62..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-22/dAppIntegration.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-23/mar-23-apps-integrations.png b/apps/developer-hub/public/images/kpi/march-23/mar-23-apps-integrations.png deleted file mode 100644 index 9549221e79..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-23/mar-23-apps-integrations.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-23/mar-23-client-downloads.png b/apps/developer-hub/public/images/kpi/march-23/mar-23-client-downloads.png deleted file mode 100644 index 5302771555..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-23/mar-23-client-downloads.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-23/mar-23-connected-blockchains.png b/apps/developer-hub/public/images/kpi/march-23/mar-23-connected-blockchains.png deleted file mode 100644 index 7d1eb4ba7e..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-23/mar-23-connected-blockchains.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-23/mar-23-dapps-tvs.png b/apps/developer-hub/public/images/kpi/march-23/mar-23-dapps-tvs.png deleted file mode 100644 index 6ab7dffad8..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-23/mar-23-dapps-tvs.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-23/mar-23-price-feeds.png b/apps/developer-hub/public/images/kpi/march-23/mar-23-price-feeds.png deleted file mode 100644 index 53a44868a1..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-23/mar-23-price-feeds.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-23/mar-23-price-updates.png b/apps/developer-hub/public/images/kpi/march-23/mar-23-price-updates.png deleted file mode 100644 index 154931e891..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-23/mar-23-price-updates.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-23/mar-23-publisher-growth.png b/apps/developer-hub/public/images/kpi/march-23/mar-23-publisher-growth.png deleted file mode 100644 index 790a25c405..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-23/mar-23-publisher-growth.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-23/mar-23-traded-volume.png b/apps/developer-hub/public/images/kpi/march-23/mar-23-traded-volume.png deleted file mode 100644 index 115afe9db0..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-23/mar-23-traded-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-23/mar-23-trading-volume.png b/apps/developer-hub/public/images/kpi/march-23/mar-23-trading-volume.png deleted file mode 100644 index f391686eb0..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-23/mar-23-trading-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-23/pyth-mar-23.jpg b/apps/developer-hub/public/images/kpi/march-23/pyth-mar-23.jpg deleted file mode 100644 index 3e4f3ad3d0..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-23/pyth-mar-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/mar-24-all-chain-tvs.jpg b/apps/developer-hub/public/images/kpi/march-24/mar-24-all-chain-tvs.jpg deleted file mode 100644 index 1e9a1d0ebe..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/mar-24-all-chain-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/mar-24-all-chain-volume.jpg b/apps/developer-hub/public/images/kpi/march-24/mar-24-all-chain-volume.jpg deleted file mode 100644 index e32987f16b..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/mar-24-all-chain-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/mar-24-apps-integrations.jpg b/apps/developer-hub/public/images/kpi/march-24/mar-24-apps-integrations.jpg deleted file mode 100644 index f861a4e652..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/mar-24-apps-integrations.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/mar-24-connected-blockchains.jpg b/apps/developer-hub/public/images/kpi/march-24/mar-24-connected-blockchains.jpg deleted file mode 100644 index 98598fd900..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/mar-24-connected-blockchains.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/mar-24-daily-average-updates.jpg b/apps/developer-hub/public/images/kpi/march-24/mar-24-daily-average-updates.jpg deleted file mode 100644 index cf204a1715..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/mar-24-daily-average-updates.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/mar-24-dapps-tvs.jpg b/apps/developer-hub/public/images/kpi/march-24/mar-24-dapps-tvs.jpg deleted file mode 100644 index 9ed560dcd2..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/mar-24-dapps-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/mar-24-data-providers.jpg b/apps/developer-hub/public/images/kpi/march-24/mar-24-data-providers.jpg deleted file mode 100644 index 32326ae190..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/mar-24-data-providers.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/mar-24-price-feeds.jpg b/apps/developer-hub/public/images/kpi/march-24/mar-24-price-feeds.jpg deleted file mode 100644 index a1145da100..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/mar-24-price-feeds.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/mar-24-traded-volume.jpg b/apps/developer-hub/public/images/kpi/march-24/mar-24-traded-volume.jpg deleted file mode 100644 index 854f0b9d32..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/mar-24-traded-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/mar-24-trading-volume.jpg b/apps/developer-hub/public/images/kpi/march-24/mar-24-trading-volume.jpg deleted file mode 100644 index 5ec74651cc..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/mar-24-trading-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/pyth-ecosystem-mar-24.jpg b/apps/developer-hub/public/images/kpi/march-24/pyth-ecosystem-mar-24.jpg deleted file mode 100644 index 78241c2314..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/pyth-ecosystem-mar-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/pyth-mar-24.jpg b/apps/developer-hub/public/images/kpi/march-24/pyth-mar-24.jpg deleted file mode 100644 index 7f85a35a6e..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/pyth-mar-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/pyth-momentum-mar-24.jpg b/apps/developer-hub/public/images/kpi/march-24/pyth-momentum-mar-24.jpg deleted file mode 100644 index c0f4125497..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/pyth-momentum-mar-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/pyth-traded-volume-l1-l2-mar-24.jpg b/apps/developer-hub/public/images/kpi/march-24/pyth-traded-volume-l1-l2-mar-24.jpg deleted file mode 100644 index f22f1d028e..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/pyth-traded-volume-l1-l2-mar-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/march-24/pyth-tvs-l1-l2-mar-24.jpg b/apps/developer-hub/public/images/kpi/march-24/pyth-tvs-l1-l2-mar-24.jpg deleted file mode 100644 index e6958a1e20..0000000000 Binary files a/apps/developer-hub/public/images/kpi/march-24/pyth-tvs-l1-l2-mar-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-22/Client_Downloads_Cumulative_May.png b/apps/developer-hub/public/images/kpi/may-22/Client_Downloads_Cumulative_May.png deleted file mode 100644 index 1f0fd41b41..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-22/Client_Downloads_Cumulative_May.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-22/Data.png b/apps/developer-hub/public/images/kpi/may-22/Data.png deleted file mode 100644 index 6732ef5ccb..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-22/Data.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-22/End_of_Month___May-22_v2_(1).jpg b/apps/developer-hub/public/images/kpi/may-22/End_of_Month___May-22_v2_(1).jpg deleted file mode 100644 index 17e8081ae3..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-22/End_of_Month___May-22_v2_(1).jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-22/MayTradingVolume.png b/apps/developer-hub/public/images/kpi/may-22/MayTradingVolume.png deleted file mode 100644 index ed0030e102..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-22/MayTradingVolume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-22/MaydAppsTVS.png b/apps/developer-hub/public/images/kpi/may-22/MaydAppsTVS.png deleted file mode 100644 index 11d35a5b38..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-22/MaydAppsTVS.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-22/PriceFeeds.png b/apps/developer-hub/public/images/kpi/may-22/PriceFeeds.png deleted file mode 100644 index de71eddc97..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-22/PriceFeeds.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-22/dAppIntegration.png b/apps/developer-hub/public/images/kpi/may-22/dAppIntegration.png deleted file mode 100644 index 1a1c90b52f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-22/dAppIntegration.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-23/may-23-all-chain-tvs.png b/apps/developer-hub/public/images/kpi/may-23/may-23-all-chain-tvs.png deleted file mode 100644 index e038c59f42..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-23/may-23-all-chain-tvs.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-23/may-23-all-chain-volume.png b/apps/developer-hub/public/images/kpi/may-23/may-23-all-chain-volume.png deleted file mode 100644 index 65947b023c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-23/may-23-all-chain-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-23/may-23-apps-integrations.png b/apps/developer-hub/public/images/kpi/may-23/may-23-apps-integrations.png deleted file mode 100644 index b360b28e56..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-23/may-23-apps-integrations.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-23/may-23-client-downloads.png b/apps/developer-hub/public/images/kpi/may-23/may-23-client-downloads.png deleted file mode 100644 index db88a80032..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-23/may-23-client-downloads.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-23/may-23-connected-blockchains.png b/apps/developer-hub/public/images/kpi/may-23/may-23-connected-blockchains.png deleted file mode 100644 index 24c701fc40..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-23/may-23-connected-blockchains.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-23/may-23-dapps-tvs.png b/apps/developer-hub/public/images/kpi/may-23/may-23-dapps-tvs.png deleted file mode 100644 index 57f3b5832e..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-23/may-23-dapps-tvs.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-23/may-23-price-feeds.png b/apps/developer-hub/public/images/kpi/may-23/may-23-price-feeds.png deleted file mode 100644 index 24c4af42d8..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-23/may-23-price-feeds.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-23/may-23-price-updates.png b/apps/developer-hub/public/images/kpi/may-23/may-23-price-updates.png deleted file mode 100644 index 7d09d4b0a2..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-23/may-23-price-updates.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-23/may-23-publisher-growth.png b/apps/developer-hub/public/images/kpi/may-23/may-23-publisher-growth.png deleted file mode 100644 index 1daf5837ad..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-23/may-23-publisher-growth.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-23/may-23-traded-volume.png b/apps/developer-hub/public/images/kpi/may-23/may-23-traded-volume.png deleted file mode 100644 index 187c1d5716..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-23/may-23-traded-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-23/may-23-trading-volume.png b/apps/developer-hub/public/images/kpi/may-23/may-23-trading-volume.png deleted file mode 100644 index 06574ea2fd..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-23/may-23-trading-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-23/pyth-may-23.jpg b/apps/developer-hub/public/images/kpi/may-23/pyth-may-23.jpg deleted file mode 100644 index a1867f6a71..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-23/pyth-may-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-23/pyth-momentum-may-23.jpg b/apps/developer-hub/public/images/kpi/may-23/pyth-momentum-may-23.jpg deleted file mode 100644 index bf76ea1c82..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-23/pyth-momentum-may-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/may-24-all-chain-tvs.jpg b/apps/developer-hub/public/images/kpi/may-24/may-24-all-chain-tvs.jpg deleted file mode 100644 index 716ca13b8d..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/may-24-all-chain-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/may-24-all-chain-volume.jpg b/apps/developer-hub/public/images/kpi/may-24/may-24-all-chain-volume.jpg deleted file mode 100644 index 4f26f1c52f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/may-24-all-chain-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/may-24-apps-integrations.jpg b/apps/developer-hub/public/images/kpi/may-24/may-24-apps-integrations.jpg deleted file mode 100644 index 1de1338501..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/may-24-apps-integrations.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/may-24-connected-blockchains.jpg b/apps/developer-hub/public/images/kpi/may-24/may-24-connected-blockchains.jpg deleted file mode 100644 index c1cb2b2fbf..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/may-24-connected-blockchains.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/may-24-daily-average-updates.jpg b/apps/developer-hub/public/images/kpi/may-24/may-24-daily-average-updates.jpg deleted file mode 100644 index a270dbd3b6..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/may-24-daily-average-updates.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/may-24-dapps-tvs.jpg b/apps/developer-hub/public/images/kpi/may-24/may-24-dapps-tvs.jpg deleted file mode 100644 index fff414d379..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/may-24-dapps-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/may-24-data-providers.jpg b/apps/developer-hub/public/images/kpi/may-24/may-24-data-providers.jpg deleted file mode 100644 index 9582d5991b..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/may-24-data-providers.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/may-24-price-feeds.jpg b/apps/developer-hub/public/images/kpi/may-24/may-24-price-feeds.jpg deleted file mode 100644 index e7386119f3..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/may-24-price-feeds.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/may-24-traded-volume.jpg b/apps/developer-hub/public/images/kpi/may-24/may-24-traded-volume.jpg deleted file mode 100644 index d4eb92a2c1..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/may-24-traded-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/may-24-trading-volume.jpg b/apps/developer-hub/public/images/kpi/may-24/may-24-trading-volume.jpg deleted file mode 100644 index dbd40dde16..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/may-24-trading-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/pyth-ecosystem-may-24.jpg b/apps/developer-hub/public/images/kpi/may-24/pyth-ecosystem-may-24.jpg deleted file mode 100644 index 9aa78d63f7..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/pyth-ecosystem-may-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/pyth-may-24.jpg b/apps/developer-hub/public/images/kpi/may-24/pyth-may-24.jpg deleted file mode 100644 index 62b2b90fb3..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/pyth-may-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/pyth-momentum-may-24.jpg b/apps/developer-hub/public/images/kpi/may-24/pyth-momentum-may-24.jpg deleted file mode 100644 index cdf3bb5379..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/pyth-momentum-may-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/pyth-traded-volume-l1-l2-may-24.jpg b/apps/developer-hub/public/images/kpi/may-24/pyth-traded-volume-l1-l2-may-24.jpg deleted file mode 100644 index 89d9647fa4..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/pyth-traded-volume-l1-l2-may-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/may-24/pyth-tvs-l1-l2-may-24.jpg b/apps/developer-hub/public/images/kpi/may-24/pyth-tvs-l1-l2-may-24.jpg deleted file mode 100644 index b9fbad8310..0000000000 Binary files a/apps/developer-hub/public/images/kpi/may-24/pyth-tvs-l1-l2-may-24.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-22/Apps Integrations.png b/apps/developer-hub/public/images/kpi/november-22/Apps Integrations.png deleted file mode 100644 index 144627bfe7..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-22/Apps Integrations.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-22/Client Downloads Cumulative November.png b/apps/developer-hub/public/images/kpi/november-22/Client Downloads Cumulative November.png deleted file mode 100644 index 7698d5008f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-22/Client Downloads Cumulative November.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-22/Momentum November-22.jpg b/apps/developer-hub/public/images/kpi/november-22/Momentum November-22.jpg deleted file mode 100644 index 0189cd54a1..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-22/Momentum November-22.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-22/November Trading Volume.png b/apps/developer-hub/public/images/kpi/november-22/November Trading Volume.png deleted file mode 100644 index 4277c04b55..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-22/November Trading Volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-22/November dApps TVS.png b/apps/developer-hub/public/images/kpi/november-22/November dApps TVS.png deleted file mode 100644 index b9fd33f6e2..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-22/November dApps TVS.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-22/Price Feeds November.png b/apps/developer-hub/public/images/kpi/november-22/Price Feeds November.png deleted file mode 100644 index 6e506b4afa..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-22/Price Feeds November.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-22/Publisher Growth November v2.png b/apps/developer-hub/public/images/kpi/november-22/Publisher Growth November v2.png deleted file mode 100644 index 6cc9657155..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-22/Publisher Growth November v2.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/nov-23-all-chain-tvs.jpg b/apps/developer-hub/public/images/kpi/november-23/nov-23-all-chain-tvs.jpg deleted file mode 100644 index 28efffc5a1..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/nov-23-all-chain-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/nov-23-all-chain-volume.jpg b/apps/developer-hub/public/images/kpi/november-23/nov-23-all-chain-volume.jpg deleted file mode 100644 index ec5a1231a3..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/nov-23-all-chain-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/nov-23-apps-integrations.jpg b/apps/developer-hub/public/images/kpi/november-23/nov-23-apps-integrations.jpg deleted file mode 100644 index 57e5dad40f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/nov-23-apps-integrations.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/nov-23-connected-blockchains.jpg b/apps/developer-hub/public/images/kpi/november-23/nov-23-connected-blockchains.jpg deleted file mode 100644 index 8b82914e7f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/nov-23-connected-blockchains.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/nov-23-daily-average-updates.jpg b/apps/developer-hub/public/images/kpi/november-23/nov-23-daily-average-updates.jpg deleted file mode 100644 index aae39f7c37..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/nov-23-daily-average-updates.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/nov-23-dapps-tvs.jpg b/apps/developer-hub/public/images/kpi/november-23/nov-23-dapps-tvs.jpg deleted file mode 100644 index fb18866517..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/nov-23-dapps-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/nov-23-data-providers.jpg b/apps/developer-hub/public/images/kpi/november-23/nov-23-data-providers.jpg deleted file mode 100644 index 3dcf43575b..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/nov-23-data-providers.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/nov-23-price-feeds.jpg b/apps/developer-hub/public/images/kpi/november-23/nov-23-price-feeds.jpg deleted file mode 100644 index a2d579c565..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/nov-23-price-feeds.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/nov-23-traded-volume.jpg b/apps/developer-hub/public/images/kpi/november-23/nov-23-traded-volume.jpg deleted file mode 100644 index 2d2b033424..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/nov-23-traded-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/nov-23-trading-volume.jpg b/apps/developer-hub/public/images/kpi/november-23/nov-23-trading-volume.jpg deleted file mode 100644 index 58ff37ad98..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/nov-23-trading-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/pyth-ecosystem-nov-23.jpg b/apps/developer-hub/public/images/kpi/november-23/pyth-ecosystem-nov-23.jpg deleted file mode 100644 index 18da400312..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/pyth-ecosystem-nov-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/pyth-momentum-nov-23.jpg b/apps/developer-hub/public/images/kpi/november-23/pyth-momentum-nov-23.jpg deleted file mode 100644 index eecdc8ae27..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/pyth-momentum-nov-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/pyth-nov-23.jpg b/apps/developer-hub/public/images/kpi/november-23/pyth-nov-23.jpg deleted file mode 100644 index d122802da4..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/pyth-nov-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/november-23/pyth-tvs-l1-l2.jpg b/apps/developer-hub/public/images/kpi/november-23/pyth-tvs-l1-l2.jpg deleted file mode 100644 index cff1a35298..0000000000 Binary files a/apps/developer-hub/public/images/kpi/november-23/pyth-tvs-l1-l2.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-22/Client Downloads Cumulative October.png b/apps/developer-hub/public/images/kpi/october-22/Client Downloads Cumulative October.png deleted file mode 100644 index 042d21391c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-22/Client Downloads Cumulative October.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-22/October Trading Volume.png b/apps/developer-hub/public/images/kpi/october-22/October Trading Volume.png deleted file mode 100644 index 27cc2ad257..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-22/October Trading Volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-22/October dApps TVS.png b/apps/developer-hub/public/images/kpi/october-22/October dApps TVS.png deleted file mode 100644 index 88d6b25b06..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-22/October dApps TVS.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-22/Price Feeds October.png b/apps/developer-hub/public/images/kpi/october-22/Price Feeds October.png deleted file mode 100644 index fea40aedfe..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-22/Price Feeds October.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-22/Publisher Growth October.png b/apps/developer-hub/public/images/kpi/october-22/Publisher Growth October.png deleted file mode 100644 index b6abad3a04..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-22/Publisher Growth October.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-22/dApp Integration October.png b/apps/developer-hub/public/images/kpi/october-22/dApp Integration October.png deleted file mode 100644 index 87209bf03a..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-22/dApp Integration October.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-22/pyth_momentum_october-1.jpg b/apps/developer-hub/public/images/kpi/october-22/pyth_momentum_october-1.jpg deleted file mode 100644 index ac062b9e61..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-22/pyth_momentum_october-1.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/oct-23-all-chain-tvs.png b/apps/developer-hub/public/images/kpi/october-23/oct-23-all-chain-tvs.png deleted file mode 100644 index 5700f9b0db..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/oct-23-all-chain-tvs.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/oct-23-all-chain-volume.png b/apps/developer-hub/public/images/kpi/october-23/oct-23-all-chain-volume.png deleted file mode 100644 index 4edbd7aa20..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/oct-23-all-chain-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/oct-23-apps-integrations.png b/apps/developer-hub/public/images/kpi/october-23/oct-23-apps-integrations.png deleted file mode 100644 index 83195ddcae..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/oct-23-apps-integrations.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/oct-23-connected-blockchains.png b/apps/developer-hub/public/images/kpi/october-23/oct-23-connected-blockchains.png deleted file mode 100644 index 3d5642f0f1..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/oct-23-connected-blockchains.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/oct-23-daily-average-updates.png b/apps/developer-hub/public/images/kpi/october-23/oct-23-daily-average-updates.png deleted file mode 100644 index 3107640cde..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/oct-23-daily-average-updates.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/oct-23-dapps-tvs.png b/apps/developer-hub/public/images/kpi/october-23/oct-23-dapps-tvs.png deleted file mode 100644 index a0371ee5f8..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/oct-23-dapps-tvs.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/oct-23-data-providers.png b/apps/developer-hub/public/images/kpi/october-23/oct-23-data-providers.png deleted file mode 100644 index 62cdadb1f6..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/oct-23-data-providers.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/oct-23-price-feeds.png b/apps/developer-hub/public/images/kpi/october-23/oct-23-price-feeds.png deleted file mode 100644 index 73fe3b2de6..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/oct-23-price-feeds.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/oct-23-traded-volume.png b/apps/developer-hub/public/images/kpi/october-23/oct-23-traded-volume.png deleted file mode 100644 index c6f3561bee..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/oct-23-traded-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/oct-23-trading-volume.png b/apps/developer-hub/public/images/kpi/october-23/oct-23-trading-volume.png deleted file mode 100644 index b12e5f482f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/oct-23-trading-volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/pyth-ecosystem-oct-23.jpg b/apps/developer-hub/public/images/kpi/october-23/pyth-ecosystem-oct-23.jpg deleted file mode 100644 index b7e62a53ee..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/pyth-ecosystem-oct-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/pyth-momentum-oct-23.jpg b/apps/developer-hub/public/images/kpi/october-23/pyth-momentum-oct-23.jpg deleted file mode 100644 index ec459bbc9d..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/pyth-momentum-oct-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/pyth-oct-23.jpg b/apps/developer-hub/public/images/kpi/october-23/pyth-oct-23.jpg deleted file mode 100644 index e3908bfb0f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/pyth-oct-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/october-23/pyth-tvs-l1-l2.png b/apps/developer-hub/public/images/kpi/october-23/pyth-tvs-l1-l2.png deleted file mode 100644 index 213ed5fe13..0000000000 Binary files a/apps/developer-hub/public/images/kpi/october-23/pyth-tvs-l1-l2.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-22/Client Downloads Cumulative September.png b/apps/developer-hub/public/images/kpi/september-22/Client Downloads Cumulative September.png deleted file mode 100644 index c62e57ad12..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-22/Client Downloads Cumulative September.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-22/Data Providers Onboarded (2).png b/apps/developer-hub/public/images/kpi/september-22/Data Providers Onboarded (2).png deleted file mode 100644 index 2470ae1d7c..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-22/Data Providers Onboarded (2).png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-22/End of Month _ September-22 (1).jpg b/apps/developer-hub/public/images/kpi/september-22/End of Month _ September-22 (1).jpg deleted file mode 100644 index 8779457ee3..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-22/End of Month _ September-22 (1).jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-22/Price Feeds September.png b/apps/developer-hub/public/images/kpi/september-22/Price Feeds September.png deleted file mode 100644 index b7a803b998..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-22/Price Feeds September.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-22/September Trading Volume.png b/apps/developer-hub/public/images/kpi/september-22/September Trading Volume.png deleted file mode 100644 index 0174dcc070..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-22/September Trading Volume.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-22/September dApps TVS.png b/apps/developer-hub/public/images/kpi/september-22/September dApps TVS.png deleted file mode 100644 index 20fa19f975..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-22/September dApps TVS.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-22/dApp Integration September.png b/apps/developer-hub/public/images/kpi/september-22/dApp Integration September.png deleted file mode 100644 index 22d186175f..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-22/dApp Integration September.png and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/pyth-ecosystem-sept-23.jpg b/apps/developer-hub/public/images/kpi/september-23/pyth-ecosystem-sept-23.jpg deleted file mode 100644 index 2e9b959a59..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/pyth-ecosystem-sept-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/pyth-momentum-sept-23.jpg b/apps/developer-hub/public/images/kpi/september-23/pyth-momentum-sept-23.jpg deleted file mode 100644 index 1916e7fad9..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/pyth-momentum-sept-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/pyth-sept-23.jpg b/apps/developer-hub/public/images/kpi/september-23/pyth-sept-23.jpg deleted file mode 100644 index b7b6f47bd5..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/pyth-sept-23.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/pyth-tvs-l1-l2.jpg b/apps/developer-hub/public/images/kpi/september-23/pyth-tvs-l1-l2.jpg deleted file mode 100644 index e093552f25..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/pyth-tvs-l1-l2.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/sept-23-all-chain-tvs.jpg b/apps/developer-hub/public/images/kpi/september-23/sept-23-all-chain-tvs.jpg deleted file mode 100644 index ecf2e38912..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/sept-23-all-chain-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/sept-23-all-chain-volume.jpg b/apps/developer-hub/public/images/kpi/september-23/sept-23-all-chain-volume.jpg deleted file mode 100644 index 08aae053dc..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/sept-23-all-chain-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/sept-23-apps-integrations.jpg b/apps/developer-hub/public/images/kpi/september-23/sept-23-apps-integrations.jpg deleted file mode 100644 index bdb0f4a910..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/sept-23-apps-integrations.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/sept-23-connected-blockchains.jpg b/apps/developer-hub/public/images/kpi/september-23/sept-23-connected-blockchains.jpg deleted file mode 100644 index b6565554ae..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/sept-23-connected-blockchains.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/sept-23-daily-average-updates.jpg b/apps/developer-hub/public/images/kpi/september-23/sept-23-daily-average-updates.jpg deleted file mode 100644 index cb10a7a1a5..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/sept-23-daily-average-updates.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/sept-23-dapps-tvs.jpg b/apps/developer-hub/public/images/kpi/september-23/sept-23-dapps-tvs.jpg deleted file mode 100644 index 8d7cd04265..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/sept-23-dapps-tvs.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/sept-23-data-providers.jpg b/apps/developer-hub/public/images/kpi/september-23/sept-23-data-providers.jpg deleted file mode 100644 index a2b46edd5b..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/sept-23-data-providers.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/sept-23-price-feeds.jpg b/apps/developer-hub/public/images/kpi/september-23/sept-23-price-feeds.jpg deleted file mode 100644 index 321a40dccf..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/sept-23-price-feeds.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/sept-23-traded-volume.jpg b/apps/developer-hub/public/images/kpi/september-23/sept-23-traded-volume.jpg deleted file mode 100644 index e9d2554e40..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/sept-23-traded-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/kpi/september-23/sept-23-trading-volume.jpg b/apps/developer-hub/public/images/kpi/september-23/sept-23-trading-volume.jpg deleted file mode 100644 index 10363b23a1..0000000000 Binary files a/apps/developer-hub/public/images/kpi/september-23/sept-23-trading-volume.jpg and /dev/null differ diff --git a/apps/developer-hub/public/images/token/PYTH_Community_Launch_Lockup_Schedule.png b/apps/developer-hub/public/images/token/PYTH_Community_Launch_Lockup_Schedule.png deleted file mode 100644 index fccd2f0b5a..0000000000 Binary files a/apps/developer-hub/public/images/token/PYTH_Community_Launch_Lockup_Schedule.png and /dev/null differ diff --git a/apps/developer-hub/public/images/token/PYTH_Ecosystem_Growth_Lockup_Schedule.png b/apps/developer-hub/public/images/token/PYTH_Ecosystem_Growth_Lockup_Schedule.png deleted file mode 100644 index db1f67f11f..0000000000 Binary files a/apps/developer-hub/public/images/token/PYTH_Ecosystem_Growth_Lockup_Schedule.png and /dev/null differ diff --git a/apps/developer-hub/public/images/token/PYTH_Private_Sales_Lockup_Schedule.png b/apps/developer-hub/public/images/token/PYTH_Private_Sales_Lockup_Schedule.png deleted file mode 100644 index d3ed14a52e..0000000000 Binary files a/apps/developer-hub/public/images/token/PYTH_Private_Sales_Lockup_Schedule.png and /dev/null differ diff --git a/apps/developer-hub/public/images/token/PYTH_Protocol_Development_Lockup_Schedule.png b/apps/developer-hub/public/images/token/PYTH_Protocol_Development_Lockup_Schedule.png deleted file mode 100644 index 061cd28060..0000000000 Binary files a/apps/developer-hub/public/images/token/PYTH_Protocol_Development_Lockup_Schedule.png and /dev/null differ diff --git a/apps/developer-hub/public/images/token/PYTH_Publisher_Rewards_Lockup_Schedule.png b/apps/developer-hub/public/images/token/PYTH_Publisher_Rewards_Lockup_Schedule.png deleted file mode 100644 index 85e02bbcfd..0000000000 Binary files a/apps/developer-hub/public/images/token/PYTH_Publisher_Rewards_Lockup_Schedule.png and /dev/null differ diff --git a/apps/developer-hub/public/images/token/Pyth_Lockup_Schedule.png b/apps/developer-hub/public/images/token/Pyth_Lockup_Schedule.png deleted file mode 100644 index f3d1e8b045..0000000000 Binary files a/apps/developer-hub/public/images/token/Pyth_Lockup_Schedule.png and /dev/null differ diff --git a/apps/developer-hub/public/images/token/Token_breakdown copy.png b/apps/developer-hub/public/images/token/Token_breakdown copy.png deleted file mode 100644 index 7315871e3d..0000000000 Binary files a/apps/developer-hub/public/images/token/Token_breakdown copy.png and /dev/null differ diff --git a/apps/developer-hub/public/images/token/Token_breakdown.png b/apps/developer-hub/public/images/token/Token_breakdown.png deleted file mode 100644 index 7315871e3d..0000000000 Binary files a/apps/developer-hub/public/images/token/Token_breakdown.png and /dev/null differ diff --git a/apps/developer-hub/src/components/RewardSimulator/index.module.scss b/apps/developer-hub/src/components/RewardSimulator/index.module.scss new file mode 100644 index 0000000000..458d458171 --- /dev/null +++ b/apps/developer-hub/src/components/RewardSimulator/index.module.scss @@ -0,0 +1,86 @@ +@use "@pythnetwork/component-library/theme"; + +.card { + margin-top: theme.spacing(6); +} + +.inputGrid { + display: grid; + grid-template-columns: 1fr; + gap: theme.spacing(6); + padding: theme.spacing(4); + + @include theme.breakpoint("sm") { + grid-template-columns: 1fr 1fr; + } +} + +.inputGroup { + display: flex; + flex-direction: column; + gap: theme.spacing(2); +} + +.input { + padding: theme.spacing(2) theme.spacing(3); + border: 1px solid theme.color("border"); + border-radius: theme.border-radius("lg"); + background-color: theme.color("background", "primary"); + color: theme.color("foreground"); + transition: all 0.15s ease-in-out; + + &:focus { + outline: 2px solid theme.color("focus"); + outline-offset: -2px; + border-color: transparent; + } +} + +.resultsSection { + border-top: 1px solid theme.color("border"); + margin-top: theme.spacing(6); + padding: theme.spacing(6) theme.spacing(4) 0; +} + +.resultsGrid { + display: grid; + grid-template-columns: 1fr; + gap: theme.spacing(6); + + @include theme.breakpoint("sm") { + grid-template-columns: 1fr 1fr; + } +} + +.resultGroup { + display: flex; + flex-direction: column; + gap: theme.spacing(3); +} + +.resultTitle { + font-size: theme.font-size("lg"); + font-weight: theme.font-weight("semibold"); + color: theme.color("foreground"); +} + +.resultList { + display: flex; + flex-direction: column; + gap: theme.spacing(1); + margin: 0; +} + +.resultTerm { + font-size: theme.font-size("sm"); + color: theme.color("muted"); + font-weight: theme.font-weight("medium"); + margin: 0; +} + +.resultValue { + font-family: theme.font-family("monospace"); + font-size: theme.font-size("sm"); + margin: 0; + margin-bottom: theme.spacing(2); +} diff --git a/apps/developer-hub/src/components/RewardSimulator/index.tsx b/apps/developer-hub/src/components/RewardSimulator/index.tsx new file mode 100644 index 0000000000..c647533c72 --- /dev/null +++ b/apps/developer-hub/src/components/RewardSimulator/index.tsx @@ -0,0 +1,231 @@ +"use client"; + +import { Card } from "@pythnetwork/component-library/Card"; +import { Label } from "@pythnetwork/component-library/unstyled/Label"; +import { Input } from "@pythnetwork/component-library/unstyled/TextField"; +import { useState, useCallback } from "react"; + +import styles from "./index.module.scss"; + +// Components for mathematical notation +const MathExpression = ({ children }: { children: React.ReactNode }) => ( + {children} +); + +// Component for subscripts and superscripts +const Sub = ({ children }: { children: React.ReactNode }) => ( + {children} +); + +const Sup = ({ children }: { children: React.ReactNode }) => ( + {children} +); + +const RewardSimulator: React.FC = () => { + const [rewards, setRewards] = useState({ + // These are the initial values for the reward simulator based on default values + publisher: 26, + delegator: 24, + publisherRate: 13, + delegatorRate: 8, + }); + + const doSubmit = useCallback((e: React.FormEvent) => { + e.currentTarget.requestSubmit(); + }, []); + + const recalculateRewards = useCallback( + (e: React.FormEvent) => { + e.preventDefault(); + const formData = new FormData(e.currentTarget); + + const publisherStake = Number(formData.get("publisherStake")) || 0; + const delegatorStake = Number(formData.get("delegatorStake")) || 0; + const maxCap = Number(formData.get("maxCap")) || 0; + const delegatorFee = Number(formData.get("delegatorFee")) || 0; + const rewardRate = Number(formData.get("rewardRate")) || 0; + + const totalStake = publisherStake + delegatorStake; + const eligibleAmount = Math.min(totalStake, maxCap); + const totalReward = (rewardRate / 100) * eligibleAmount; + + const publisherRewardBase = + (rewardRate / 100) * Math.min(publisherStake, maxCap); + const delegatorRewardBase = totalReward - publisherRewardBase; + + const delegatorFeeAmount = (delegatorFee / 100) * delegatorRewardBase; + + const finalDelegatorReward = delegatorRewardBase - delegatorFeeAmount; + const finalPublisherReward = publisherRewardBase + delegatorFeeAmount; + + setRewards({ + publisher: Number(finalPublisherReward.toFixed(2)), + delegator: Number(finalDelegatorReward.toFixed(2)), + publisherRate: Number( + ((finalPublisherReward * 100) / publisherStake).toFixed(2), + ), + delegatorRate: Number( + ((finalDelegatorReward * 100) / delegatorStake).toFixed(2), + ), + }); + }, + [], + ); + + return ( + + + + + + Publisher Stake ( + + Sp + p + + ): + + + + + + + Delegator Stake ( + + Sp + d + + ): + + + + + + + Maximum Cap ( + + Cp + + ): + + + + + + + Delegator Fee (f) (%): + + + + + + + Reward Rate (r) (%): + + + + + + + + + Calculated Rewards + + + Publisher Reward ( + + Rp + p + + ): + + {rewards.publisher} + + Delegator Reward ( + + Rd + p + + ): + + {rewards.delegator} + + + + + + Calculated Reward Rates (Yearly) + + + + Publisher Rate ( + + rp + p + + ): + + {rewards.publisherRate}% + + Delegator Rate ( + + rd + p + + ): + + {rewards.delegatorRate}% + + + + + + + ); +}; + +export default RewardSimulator; diff --git a/apps/fortuna/Cargo.toml b/apps/fortuna/Cargo.toml index 0f4024ad9e..be76779b71 100644 --- a/apps/fortuna/Cargo.toml +++ b/apps/fortuna/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fortuna" -version = "9.2.0" +version = "9.2.1" edition = "2021" [lib] diff --git a/apps/fortuna/src/command/run.rs b/apps/fortuna/src/command/run.rs index c9f630d6b7..f05d96e075 100644 --- a/apps/fortuna/src/command/run.rs +++ b/apps/fortuna/src/command/run.rs @@ -51,6 +51,10 @@ pub async fn run_api( ), tags( (name = "fortuna", description = "Random number service for the Pyth Entropy protocol") + ), + servers( + (url = "https://fortuna.dourolabs.app", description = "Default Provider for mainnet chains"), + (url = "https://fortuna-staging.dourolabs.app", description = "Default Provider for testnet chains") ) )] struct ApiDoc; diff --git a/apps/hip-3-pusher/.gitignore b/apps/hip-3-pusher/.gitignore new file mode 100644 index 0000000000..505a3b1ca2 --- /dev/null +++ b/apps/hip-3-pusher/.gitignore @@ -0,0 +1,10 @@ +# Python-generated files +__pycache__/ +*.py[oc] +build/ +dist/ +wheels/ +*.egg-info + +# Virtual environments +.venv diff --git a/apps/hip-3-pusher/Dockerfile b/apps/hip-3-pusher/Dockerfile new file mode 100644 index 0000000000..74d93c6dbf --- /dev/null +++ b/apps/hip-3-pusher/Dockerfile @@ -0,0 +1,33 @@ +# Use a Python image with uv pre-installed +FROM ghcr.io/astral-sh/uv:python3.13-trixie-slim + +# Install the project into `/app` +WORKDIR /app + +# Enable bytecode compilation +ENV UV_COMPILE_BYTECODE=1 + +# Copy from the cache instead of linking since it's a mounted volume +ENV UV_LINK_MODE=copy + +# Ensure installed tools can be executed out of the box +ENV UV_TOOL_BIN_DIR=/usr/local/bin + +COPY apps/hip-3-pusher/uv.lock . +COPY apps/hip-3-pusher/pyproject.toml . + +# Install the project's dependencies using the lockfile and settings +RUN --mount=type=cache,target=/root/.cache/uv \ + --mount=type=bind,source=apps/hip-3-pusher/uv.lock,target=uv.lock \ + --mount=type=bind,source=apps/hip-3-pusher/pyproject.toml,target=pyproject.toml \ + uv sync --locked --no-install-project --no-dev + +# Then, add the rest of the project source code and install it +# Installing separately from its dependencies allows optimal layer caching +COPY apps/hip-3-pusher/src/ ./src/ +COPY apps/hip-3-pusher/config/ ./config/ +RUN --mount=type=cache,target=/root/.cache/uv \ + uv sync --locked --no-dev + +# Run the app by default +CMD ["uv", "run", "src/main.py", "--config", "config/config.toml"] diff --git a/apps/developer-hub/public/images/kpi/july-22/kpi.md b/apps/hip-3-pusher/README.md similarity index 100% rename from apps/developer-hub/public/images/kpi/july-22/kpi.md rename to apps/hip-3-pusher/README.md diff --git a/apps/hip-3-pusher/config/config.toml b/apps/hip-3-pusher/config/config.toml new file mode 100644 index 0000000000..9f8fc9ae36 --- /dev/null +++ b/apps/hip-3-pusher/config/config.toml @@ -0,0 +1,30 @@ +stale_price_threshold_seconds = 5 +prometheus_port = 9090 + +[hyperliquid] +market_name = "" +market_symbol = "BTC" +use_testnet = false +oracle_pusher_key_path = "/path/to/oracle_pusher_key.txt" +publish_interval = 3.0 +enable_publish = false + +[kms] +enable_kms = false +key_path = "/path/to/kms_key.txt" +aws_region_name = "ap-northeast-1" + +[lazer] +lazer_urls = ["wss://pyth-lazer-0.dourolabs.app/v1/stream", "wss://pyth-lazer-1.dourolabs.app/v1/stream"] +lazer_api_key = "lazer_api_key" +base_feed_id = 1 # BTC +base_feed_exponent = -8 +quote_feed_id = 8 # USDT +quote_feed_exponent = -8 + +[hermes] +hermes_urls = ["wss://hermes.pyth.network/ws"] +base_feed_id = "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" # BTC +base_feed_exponent = -8 +quote_feed_id = "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b" # USDT +quote_feed_exponent = -8 diff --git a/apps/hip-3-pusher/pyproject.toml b/apps/hip-3-pusher/pyproject.toml new file mode 100644 index 0000000000..3b19365bc6 --- /dev/null +++ b/apps/hip-3-pusher/pyproject.toml @@ -0,0 +1,18 @@ +[project] +name = "hip-3-pusher" +version = "0.1.3" +description = "Hyperliquid HIP-3 market oracle pusher" +readme = "README.md" +requires-python = ">=3.13" +dependencies = [ + "asn1crypto>=1.5.1", + "boto3>=1.40.31", + "cryptography>=45.0.7", + "hyperliquid-python-sdk>=0.19.0", + "loguru>=0.7.3", + "opentelemetry-exporter-prometheus>=0.58b0", + "opentelemetry-sdk>=1.37.0", + "prometheus-client>=0.23.1", + "toml>=0.10.2", + "websockets>=15.0.1", +] diff --git a/apps/hip-3-pusher/src/hermes_listener.py b/apps/hip-3-pusher/src/hermes_listener.py new file mode 100644 index 0000000000..02adb2e1aa --- /dev/null +++ b/apps/hip-3-pusher/src/hermes_listener.py @@ -0,0 +1,80 @@ +import asyncio +import json +from loguru import logger +import time +import websockets + +from price_state import PriceState + + +class HermesListener: + """ + Subscribe to Hermes price updates for needed feeds. + """ + def __init__(self, config, price_state: PriceState): + self.hermes_urls = config["hermes"]["hermes_urls"] + self.base_feed_id = config["hermes"]["base_feed_id"] + self.quote_feed_id = config["hermes"]["quote_feed_id"] + self.price_state = price_state + + def get_subscribe_request(self): + return { + "type": "subscribe", + "ids": [self.base_feed_id, self.quote_feed_id], + "verbose": False, + "binary": True, + "allow_out_of_order": False, + "ignore_invalid_price_ids": False, + } + + async def subscribe_all(self): + await asyncio.gather(*(self.subscribe_single(url) for url in self.hermes_urls)) + + async def subscribe_single(self, url): + while True: + try: + await self.subscribe_single_inner(url) + except websockets.ConnectionClosed: + logger.error("Connection to {} closed; retrying", url) + except Exception as e: + logger.exception("Error on {}: {}", url, e) + + async def subscribe_single_inner(self, url): + async with websockets.connect(url) as ws: + subscribe_request = self.get_subscribe_request() + + await ws.send(json.dumps(subscribe_request)) + logger.info("Sent Hermes subscribe request to {}", url) + + # listen for updates + async for message in ws: + try: + data = json.loads(message) + self.parse_hermes_message(data) + except json.JSONDecodeError as e: + logger.error("Failed to decode JSON message: {}", e) + + def parse_hermes_message(self, data): + """ + For now, simply insert received prices into price_state + + :param data: Hermes price update json message + :return: None (update price_state) + """ + try: + if data.get("type", "") != "price_update": + return + price_feed = data["price_feed"] + id = price_feed["id"] + price_object = data["price_feed"]["price"] + price = price_object["price"] + expo = price_object["expo"] + publish_time = price_object["publish_time"] + logger.debug("Hermes update: {} {} {} {}", id, price, expo, publish_time) + if id == self.base_feed_id: + self.price_state.hermes_base_price = price + if id == self.quote_feed_id: + self.price_state.hermes_quote_price = price + self.price_state.latest_hermes_timestamp = time.time() + except Exception as e: + logger.error("parse_hermes_message error: {}", e) diff --git a/apps/hip-3-pusher/src/hyperliquid_listener.py b/apps/hip-3-pusher/src/hyperliquid_listener.py new file mode 100644 index 0000000000..aed7e4ea74 --- /dev/null +++ b/apps/hip-3-pusher/src/hyperliquid_listener.py @@ -0,0 +1,35 @@ +from loguru import logger +import time + +from hyperliquid.info import Info +from hyperliquid.utils.constants import TESTNET_API_URL, MAINNET_API_URL + +from price_state import PriceState + + +class HyperliquidListener: + """ + Subscribe to any relevant Hyperliquid websocket streams + See https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket + """ + def __init__(self, config: dict, price_state: PriceState): + self.market_symbol = config["hyperliquid"]["market_symbol"] + url = TESTNET_API_URL if config["hyperliquid"].get("use_testnet", True) else MAINNET_API_URL + self.info = Info(base_url=url) + self.price_state = price_state + + def subscribe(self): + self.info.subscribe({"type": "activeAssetCtx", "coin": self.market_symbol}, self.on_activeAssetCtx) + + def on_activeAssetCtx(self, message): + """ + Parse oraclePx and markPx from perp context update + + :param message: activeAssetCtx websocket update message + :return: None + """ + ctx = message["data"]["ctx"] + self.price_state.hl_oracle_price = ctx["oraclePx"] + self.price_state.hl_mark_price = ctx["markPx"] + logger.debug("on_activeAssetCtx: oraclePx: {} marketPx: {}", self.price_state.hl_oracle_price, self.price_state.hl_mark_price) + self.price_state.latest_hl_timestamp = time.time() diff --git a/apps/hip-3-pusher/src/kms_signer.py b/apps/hip-3-pusher/src/kms_signer.py new file mode 100644 index 0000000000..294c1cf5f6 --- /dev/null +++ b/apps/hip-3-pusher/src/kms_signer.py @@ -0,0 +1,93 @@ +import boto3 +from asn1crypto import core +from eth_account.messages import encode_typed_data, _hash_eip191_message +from eth_keys.datatypes import Signature +from eth_utils import keccak, to_hex +from hyperliquid.exchange import Exchange +from hyperliquid.utils.constants import TESTNET_API_URL, MAINNET_API_URL +from hyperliquid.utils.signing import get_timestamp_ms, action_hash, construct_phantom_agent, l1_payload +from loguru import logger + + +class KMSSigner: + def __init__(self, key_id, aws_region_name, use_testnet): + url = TESTNET_API_URL if use_testnet else MAINNET_API_URL + self.oracle_publisher_exchange: Exchange = Exchange(wallet=None, base_url=url) + + self.key_id = key_id + self.client = boto3.client("kms", region_name=aws_region_name) + # Fetch public key once so we can derive address and check recovery id + pub_der = self.client.get_public_key(KeyId=key_id)["PublicKey"] + + from cryptography.hazmat.primitives import serialization + pub = serialization.load_der_public_key(pub_der) + numbers = pub.public_numbers() + x = numbers.x.to_bytes(32, "big") + y = numbers.y.to_bytes(32, "big") + uncompressed = b"\x04" + x + y + self.public_key_bytes = uncompressed + self.address = "0x" + keccak(uncompressed[1:])[-20:].hex() + logger.info("KMSSigner address: {}", self.address) + + def set_oracle(self, dex, oracle_pxs, all_mark_pxs, external_perp_pxs): + timestamp = get_timestamp_ms() + oracle_pxs_wire = sorted(list(oracle_pxs.items())) + mark_pxs_wire = [sorted(list(mark_pxs.items())) for mark_pxs in all_mark_pxs] + external_perp_pxs_wire = sorted(list(external_perp_pxs.items())) + action = { + "type": "perpDeploy", + "setOracle": { + "dex": dex, + "oraclePxs": oracle_pxs_wire, + "markPxs": mark_pxs_wire, + "externalPerpPxs": external_perp_pxs_wire, + }, + } + signature = self.sign_l1_action( + action, + timestamp, + self.oracle_publisher_exchange.base_url == MAINNET_API_URL, + ) + return self.oracle_publisher_exchange._post_action( + action, + signature, + timestamp, + ) + + def sign_l1_action(self, action, nonce, is_mainnet): + hash = action_hash(action, vault_address=None, nonce=nonce, expires_after=None) + phantom_agent = construct_phantom_agent(hash, is_mainnet) + data = l1_payload(phantom_agent) + structured_data = encode_typed_data(full_message=data) + message_hash = _hash_eip191_message(structured_data) + signed = self.sign_message(message_hash) + return {"r": to_hex(signed["r"]), "s": to_hex(signed["s"]), "v": signed["v"]} + + def sign_message(self, message_hash: bytes): + resp = self.client.sign( + KeyId=self.key_id, + Message=message_hash, + MessageType="DIGEST", + SigningAlgorithm="ECDSA_SHA_256", # required for secp256k1 + ) + der_sig = resp["Signature"] + + seq = core.Sequence.load(der_sig) + r = int(seq[0].native) + s = int(seq[1].native) + + for recovery_id in (0, 1): + candidate = Signature(vrs=(recovery_id, r, s)) + pubkey = candidate.recover_public_key_from_msg_hash(message_hash) + if pubkey.to_bytes() == self.public_key_bytes: + v = recovery_id + 27 + break + else: + raise ValueError("Failed to determine recovery id") + + return { + "r": r, + "s": s, + "v": v, + "signature": Signature(vrs=(v, r, s)).to_bytes().hex(), + } diff --git a/apps/hip-3-pusher/src/lazer_listener.py b/apps/hip-3-pusher/src/lazer_listener.py new file mode 100644 index 0000000000..58631c512d --- /dev/null +++ b/apps/hip-3-pusher/src/lazer_listener.py @@ -0,0 +1,88 @@ +import asyncio +import json +from loguru import logger +import time +import websockets + +from price_state import PriceState + + +class LazerListener: + """ + Subscribe to Lazer price updates for needed feeds. + """ + def __init__(self, config, price_state: PriceState): + self.lazer_urls = config["lazer"]["lazer_urls"] + self.api_key = config["lazer"]["lazer_api_key"] + self.base_feed_id = config["lazer"]["base_feed_id"] + self.quote_feed_id = config["lazer"]["quote_feed_id"] + self.price_state = price_state + + def get_subscribe_request(self, subscription_id: int): + return { + "type": "subscribe", + "subscriptionId": subscription_id, + "priceFeedIds": [self.base_feed_id, self.quote_feed_id], + "properties": ["price"], + "formats": [], + "deliveryFormat": "json", + "channel": "fixed_rate@200ms", + "parsed": True, + "jsonBinaryEncoding": "base64", + } + + async def subscribe_all(self): + await asyncio.gather(*(self.subscribe_single(router_url) for router_url in self.lazer_urls)) + + async def subscribe_single(self, router_url): + while True: + try: + await self.subscribe_single_inner(router_url) + except websockets.ConnectionClosed: + logger.error("Connection to {} closed; retrying", router_url) + except Exception as e: + logger.exception("Error on {}: {}", router_url, e) + + async def subscribe_single_inner(self, router_url): + headers = { + "Authorization": f"Bearer {self.api_key}", + } + + async with websockets.connect(router_url, additional_headers=headers) as ws: + subscribe_request = self.get_subscribe_request(1) + + await ws.send(json.dumps(subscribe_request)) + logger.info("Sent Lazer subscribe request to {}", self.lazer_urls[0]) + + # listen for updates + async for message in ws: + try: + data = json.loads(message) + self.parse_lazer_message(data) + except json.JSONDecodeError as e: + logger.error("Failed to decode JSON message: {}", e) + + def parse_lazer_message(self, data): + """ + For now, simply insert received prices into price_state + + :param data: Lazer price update json message + :return: None (update price_state) + """ + try: + if data.get("type", "") != "streamUpdated": + return + price_feeds = data["parsed"]["priceFeeds"] + logger.debug("price_feeds: {}", price_feeds) + for feed_update in price_feeds: + feed_id = feed_update.get("priceFeedId", None) + price = feed_update.get("price", None) + if feed_id is None or price is None: + continue + if feed_id == self.base_feed_id: + self.price_state.lazer_base_price = price + if feed_id == self.quote_feed_id: + self.price_state.lazer_quote_price = price + self.price_state.latest_lazer_timestamp = time.time() + except Exception as e: + logger.error("parse_lazer_message error: {}", e) diff --git a/apps/hip-3-pusher/src/main.py b/apps/hip-3-pusher/src/main.py new file mode 100644 index 0000000000..c599e0806e --- /dev/null +++ b/apps/hip-3-pusher/src/main.py @@ -0,0 +1,63 @@ +import argparse +import asyncio +from loguru import logger +import os +import sys +import toml + +from hyperliquid_listener import HyperliquidListener +from lazer_listener import LazerListener +from hermes_listener import HermesListener +from price_state import PriceState +from publisher import Publisher +from metrics import Metrics + + +def load_config(): + parser = argparse.ArgumentParser(description="hip3-agent command-line arguments") + parser.add_argument( + "-c", "--config", + required=True, + help="hip3-agent config file", + ) + config_path = parser.parse_args().config + with open(config_path, "r") as config_file: + config = toml.load(config_file) + return config + + +def init_logging(): + logger.remove() + log_level = os.getenv("LOG_LEVEL", "INFO").upper() + # serialize=True if we want json logging + logger.add(sys.stderr, level=log_level, serialize=False) + + +async def main(): + init_logging() + logger.info("Starting hip-3-pusher...") + config = load_config() + + price_state = PriceState(config) + metrics = Metrics(config) + + publisher = Publisher(config, price_state, metrics) + hyperliquid_listener = HyperliquidListener(config, price_state) + lazer_listener = LazerListener(config, price_state) + hermes_listener = HermesListener(config, price_state) + + # TODO: Probably pull this out of the sdk so we can handle reconnects. + hyperliquid_listener.subscribe() + await asyncio.gather( + publisher.run(), + lazer_listener.subscribe_all(), + hermes_listener.subscribe_all(), + ) + logger.info("Exiting hip-3-pusher..") + + +if __name__ == "__main__": + try: + asyncio.run(main()) + except Exception as e: + logger.exception("Uncaught exception, exiting: {}", e) diff --git a/apps/hip-3-pusher/src/metrics.py b/apps/hip-3-pusher/src/metrics.py new file mode 100644 index 0000000000..9c5bb576df --- /dev/null +++ b/apps/hip-3-pusher/src/metrics.py @@ -0,0 +1,37 @@ +from prometheus_client import start_http_server +from opentelemetry.exporter.prometheus import PrometheusMetricReader +from opentelemetry.metrics import get_meter_provider, set_meter_provider +from opentelemetry.sdk.metrics import MeterProvider + +METER_NAME = "hip3pusher" + + +class Metrics: + def __init__(self, config): + # Adapted from opentelemetry-exporter-prometheus example code. + # Start Prometheus client + start_http_server(port=config["prometheus_port"]) + # Exporter to export metrics to Prometheus + reader = PrometheusMetricReader() + # Meter is responsible for creating and recording metrics + set_meter_provider(MeterProvider(metric_readers=[reader])) + # TODO: sync version number and add? + self.meter = get_meter_provider().get_meter(METER_NAME) + + self._init_metrics() + + def _init_metrics(self): + self.no_oracle_price_counter = self.meter.create_counter( + name="hip_3_pusher_no_oracle_price_count", + description="Number of failed push attempts with no valid oracle price", + ) + self.successful_push_counter = self.meter.create_counter( + name="hip_3_pusher_successful_push_count", + description="Number of successful push attempts", + ) + self.failed_push_counter = self.meter.create_counter( + name="hip_3_pusher_failed_push_count", + description="Number of failed push attempts", + ) + + # TODO: labels/attributes diff --git a/apps/hip-3-pusher/src/price_state.py b/apps/hip-3-pusher/src/price_state.py new file mode 100644 index 0000000000..f7d3a13650 --- /dev/null +++ b/apps/hip-3-pusher/src/price_state.py @@ -0,0 +1,73 @@ +from loguru import logger +import time + +DEFAULT_STALE_PRICE_THRESHOLD_SECONDS = 5 + + +class PriceState: + """ + Maintain latest prices seen across listeners and publisher. + """ + def __init__(self, config): + self.stale_price_threshold_seconds = config.get("stale_price_threshold_seconds", DEFAULT_STALE_PRICE_THRESHOLD_SECONDS) + now = time.time() + + self.hl_oracle_price = None + self.hl_mark_price = None + self.latest_hl_timestamp = now + + self.lazer_base_price = None + self.lazer_base_exponent = config["lazer"]["base_feed_exponent"] + self.lazer_quote_price = None + self.lazer_quote_exponent = config["lazer"]["quote_feed_exponent"] + self.latest_lazer_timestamp = now + + self.hermes_base_price = None + self.hermes_base_exponent = config["hermes"]["base_feed_exponent"] + self.hermes_quote_price = None + self.hermes_quote_exponent = config["hermes"]["quote_feed_exponent"] + self.latest_hermes_timestamp = now + + def get_current_oracle_price(self): + now = time.time() + if self.hl_oracle_price: + time_diff = now - self.latest_hl_timestamp + if time_diff < self.stale_price_threshold_seconds: + return self.hl_oracle_price + else: + logger.error("Hyperliquid oracle price stale by {} seconds", time_diff) + else: + logger.error("Hyperliquid oracle price not received yet") + + # fall back to Hermes + if self.hermes_base_price and self.hermes_quote_price: + time_diff = now - self.latest_hermes_timestamp + if time_diff < self.stale_price_threshold_seconds: + return self.get_hermes_price() + else: + logger.error("Hermes price stale by {} seconds", time_diff) + else: + logger.error("Hermes base/quote prices not received yet") + + # fall back to Lazer + if self.lazer_base_price and self.lazer_quote_price: + time_diff = now - self.latest_lazer_timestamp + if time_diff < self.stale_price_threshold_seconds: + return self.get_lazer_price() + else: + logger.error("Lazer price stale by {} seconds", time_diff) + else: + logger.error("Lazer base/quote prices not received yet") + + logger.error("All prices missing or stale!") + return None + + def get_hermes_price(self): + base_price = float(self.hermes_base_price) / (10.0 ** -self.hermes_base_exponent) + quote_price = float(self.hermes_quote_price) / (10.0 ** -self.hermes_quote_exponent) + return str(round(base_price / quote_price, 2)) + + def get_lazer_price(self): + base_price = float(self.lazer_base_price) / (10.0 ** -self.lazer_base_exponent) + quote_price = float(self.lazer_quote_price) / (10.0 ** -self.lazer_quote_exponent) + return str(round(base_price / quote_price, 2)) diff --git a/apps/hip-3-pusher/src/publisher.py b/apps/hip-3-pusher/src/publisher.py new file mode 100644 index 0000000000..23e5f90af1 --- /dev/null +++ b/apps/hip-3-pusher/src/publisher.py @@ -0,0 +1,97 @@ +import asyncio + +from loguru import logger + +from eth_account import Account +from eth_account.signers.local import LocalAccount +from hyperliquid.exchange import Exchange +from hyperliquid.utils.constants import TESTNET_API_URL, MAINNET_API_URL + +from kms_signer import KMSSigner +from metrics import Metrics +from price_state import PriceState + + +class Publisher: + """ + HIP-3 oracle publisher handler + + See https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/hip-3-deployer-actions + """ + def __init__(self, config: dict, price_state: PriceState, metrics: Metrics): + self.publish_interval = float(config["hyperliquid"]["publish_interval"]) + self.kms_signer = None + self.enable_kms = False + self.use_testnet = config["hyperliquid"].get("use_testnet", True) + + if config["kms"]["enable_kms"]: + self.enable_kms = True + oracle_account = None + kms_key_path = config["kms"]["key_path"] + kms_key_id = open(kms_key_path, "r").read().strip() + self.kms_signer = KMSSigner(kms_key_id, config["kms"]["aws_region_name"], self.use_testnet) + else: + oracle_pusher_key_path = config["hyperliquid"]["oracle_pusher_key_path"] + oracle_pusher_key = open(oracle_pusher_key_path, "r").read().strip() + oracle_account: LocalAccount = Account.from_key(oracle_pusher_key) + del oracle_pusher_key + logger.info("oracle pusher local pubkey: {}", oracle_account.address) + + url = TESTNET_API_URL if self.use_testnet else MAINNET_API_URL + self.oracle_publisher_exchange: Exchange = Exchange(wallet=oracle_account, base_url=url) + self.market_name = config["hyperliquid"]["market_name"] + self.market_symbol = config["hyperliquid"]["market_symbol"] + self.enable_publish = config["hyperliquid"].get("enable_publish", False) + + self.price_state = price_state + self.metrics = metrics + + async def run(self): + while True: + await asyncio.sleep(self.publish_interval) + try: + self.publish() + except Exception as e: + logger.exception("Publisher.publish() exception: {}", e) + + def publish(self): + oracle_pxs = {} + oracle_px = self.price_state.get_current_oracle_price() + if not oracle_px: + logger.error("No valid oracle price available") + self.metrics.no_oracle_price_counter.add(1) + return + else: + logger.debug("Current oracle price: {}", oracle_px) + oracle_pxs[self.market_symbol] = oracle_px + + mark_pxs = [] + #if self.price_state.hl_mark_price: + # mark_pxs.append({self.market_symbol: self.price_state.hl_mark_price}) + + external_perp_pxs = {} + + if self.enable_publish: + if self.enable_kms: + push_response = self.kms_signer.set_oracle( + dex=self.market_name, + oracle_pxs=oracle_pxs, + all_mark_pxs=mark_pxs, + external_perp_pxs=external_perp_pxs, + ) + else: + push_response = self.oracle_publisher_exchange.perp_deploy_set_oracle( + dex=self.market_name, + oracle_pxs=oracle_pxs, + all_mark_pxs=mark_pxs, + external_perp_pxs=external_perp_pxs, + ) + + # TODO: Look at specific error responses and log/alert accordingly + logger.debug("publish: push response: {} {}", push_response, type(push_response)) + status = push_response.get("status", "") + if status == "ok": + self.metrics.successful_push_counter.add(1) + elif status == "err": + self.metrics.failed_push_counter.add(1) + logger.error("publish: publish error: {}", push_response) diff --git a/apps/hip-3-pusher/uv.lock b/apps/hip-3-pusher/uv.lock new file mode 100644 index 0000000000..b9b1728100 --- /dev/null +++ b/apps/hip-3-pusher/uv.lock @@ -0,0 +1,820 @@ +version = 1 +revision = 3 +requires-python = ">=3.13" + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "asn1crypto" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/de/cf/d547feed25b5244fcb9392e288ff9fdc3280b10260362fc45d37a798a6ee/asn1crypto-1.5.1.tar.gz", hash = "sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c", size = 121080, upload-time = "2022-03-15T14:46:52.889Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/7f/09065fd9e27da0eda08b4d6897f1c13535066174cc023af248fc2a8d5e5a/asn1crypto-1.5.1-py2.py3-none-any.whl", hash = "sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67", size = 105045, upload-time = "2022-03-15T14:46:51.055Z" }, +] + +[[package]] +name = "bitarray" +version = "3.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/99/b6/282f5f0331b3877d4e79a8aa1cf63b5113a10f035a39bef1fa1dfe9e9e09/bitarray-3.7.1.tar.gz", hash = "sha256:795b1760418ab750826420ae24f06f392c08e21dc234f0a369a69cc00444f8ec", size = 150474, upload-time = "2025-08-28T22:18:15.346Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/97/7f/16d59c041b0208bc1003fcfbf466f1936b797440e6119ce0adca7318af48/bitarray-3.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e62892645f6a214eefb58a42c3ed2501af2e40a797844e0e09ec1e400ce75f3d", size = 147343, upload-time = "2025-08-28T22:15:50.617Z" }, + { url = "https://files.pythonhosted.org/packages/1a/fb/5add457d3faa0e17fde5e220bb33c0084355b9567ff9bcba2fe70fef3626/bitarray-3.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3092f6bbf4a75b1e6f14a5b1030e27c435f341afeb23987115e45a25cc68ba91", size = 143904, upload-time = "2025-08-28T22:15:52.06Z" }, + { url = "https://files.pythonhosted.org/packages/95/b9/c5ab584bb8d0ba1ec72eaac7fc1e712294db77a6230c033c9b15a2de33ae/bitarray-3.7.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:851398428f5604c53371b72c5e0a28163274264ada4a08cd1eafe65fde1f68d0", size = 330206, upload-time = "2025-08-28T22:15:53.492Z" }, + { url = "https://files.pythonhosted.org/packages/f0/cd/a4d95232a2374ce55e740fbb052a1e3a9aa52e96c7597d9152b1c9d79ecc/bitarray-3.7.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa05460dc4f57358680b977b4a254d331b24c8beb501319b998625fd6a22654b", size = 349372, upload-time = "2025-08-28T22:15:55.043Z" }, + { url = "https://files.pythonhosted.org/packages/69/6c/8fb54cea100bd9358a7478d392042845800e809ab3a00873f2f0ae3d0306/bitarray-3.7.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9ad0df7886cb9d6d2ff75e87d323108a0e32bdca5c9918071681864129ce8ea8", size = 341120, upload-time = "2025-08-28T22:15:56.372Z" }, + { url = "https://files.pythonhosted.org/packages/bd/eb/dcbb1782bf93afa2baccbc1206bb1053f61fe999443e9180e7d9be322565/bitarray-3.7.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55c31bc3d2c9e48741c812ee5ce4607c6f33e33f339831c214d923ffc7777d21", size = 332759, upload-time = "2025-08-28T22:15:57.984Z" }, + { url = "https://files.pythonhosted.org/packages/e2/f2/164aed832c5ece367d5347610cb7e50e5706ca1a882b9f172cb84669f591/bitarray-3.7.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44f468fb4857fff86c65bec5e2fb67067789e40dad69258e9bb78fc6a6df49e7", size = 320992, upload-time = "2025-08-28T22:16:01.039Z" }, + { url = "https://files.pythonhosted.org/packages/35/35/fd51da63ad364d5c03690bb895e34b20c9bedce10c6d0b4d7ed7677c4b09/bitarray-3.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:340c524c7c934b61d1985d805bffe7609180fb5d16ece6ce89b51aa535b936f2", size = 324987, upload-time = "2025-08-28T22:16:02.327Z" }, + { url = "https://files.pythonhosted.org/packages/a3/f3/3f4f31a80f343c6c3360ca4eac04f471bf009b6346de745016f8b4990bad/bitarray-3.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0751596f60f33df66245b2dafa3f7fbe13cb7ac91dd14ead87d8c2eec57cb3ed", size = 321816, upload-time = "2025-08-28T22:16:03.751Z" }, + { url = "https://files.pythonhosted.org/packages/f5/60/26ce8cff96255198581cb88f9566820d6b3c262db4c185995cc5537b3d07/bitarray-3.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e501bd27c795105aaba02b5212ecd1bb552ca2ee2ede53e5a8cb74deee0e2052", size = 349354, upload-time = "2025-08-28T22:16:04.966Z" }, + { url = "https://files.pythonhosted.org/packages/dc/f8/e2edda9c37ba9be5349beb145dcad14d8d339f7de293b4b2bd770227c5a7/bitarray-3.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fe2493d3f49e314e573022ead4d8c845c9748979b7eb95e815429fe947c4bde2", size = 350491, upload-time = "2025-08-28T22:16:06.778Z" }, + { url = "https://files.pythonhosted.org/packages/c0/c5/b82dd6bd8699ad818c13ae02b6acfc6c38c9278af1f71005b5d0c5f29338/bitarray-3.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1f1575cc0f66aa70a0bb5cb57c8d9d1b7d541d920455169c6266919bf804dc20", size = 331367, upload-time = "2025-08-28T22:16:08.53Z" }, + { url = "https://files.pythonhosted.org/packages/51/82/03613ad262d6e2a76b906dd279de26694910a95e4ed8ebde57c9fd3f3aa7/bitarray-3.7.1-cp313-cp313-win32.whl", hash = "sha256:da3dfd2776226e15d3288a3a24c7975f9ee160ba198f2efa66bc28c5ba76d792", size = 141481, upload-time = "2025-08-28T22:16:09.727Z" }, + { url = "https://files.pythonhosted.org/packages/f1/7e/1730701a865fd1e4353900d5821c96e68695aed88d121f8783aea14c4e74/bitarray-3.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:33f604bffd06b170637f8a48ddcf42074ed1e1980366ac46058e065ce04bfe2a", size = 148450, upload-time = "2025-08-28T22:16:10.959Z" }, +] + +[[package]] +name = "boto3" +version = "1.40.31" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, + { name = "jmespath" }, + { name = "s3transfer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9c/e6/1a8b1710245aac792ea283051727f4e7f29b4bfb85fd887f4c25aa85b4eb/boto3-1.40.31.tar.gz", hash = "sha256:8c5f1270f09431694412f326cfb5ac9786d41ea3bc6ac54cbb7161d40afc660d", size = 111606, upload-time = "2025-09-15T19:38:46.136Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/79/22fd4a4a61cb87f893804d8a36a834c69849a8fe2b0d9e28c2676824bff1/boto3-1.40.31-py3-none-any.whl", hash = "sha256:61d5f9975c54ff919a24ff9d472c6c09c8a443a083fe56d30c04fc22d22ac42b", size = 139343, upload-time = "2025-09-15T19:38:44.707Z" }, +] + +[[package]] +name = "botocore" +version = "1.40.31" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jmespath" }, + { name = "python-dateutil" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/8a/6ed2ccd9f6b8930ed15e755667f8f5f32a568cf4e3bf31a8526dcf4ce562/botocore-1.40.31.tar.gz", hash = "sha256:9496b91bbe40ed01d341dc8f6ff0492d7f546e80f1a862b00ec5bc9045fa3324", size = 14340752, upload-time = "2025-09-15T19:38:35.659Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/98/0f6cfbc627a87d84cfc66ceb7d9b71d694313a32cddbe415b9f298c9e50b/botocore-1.40.31-py3-none-any.whl", hash = "sha256:4033a00f8c6a4b5c3acb30af9283963123917227a437e5fc165189d07bd3cf8a", size = 14013342, upload-time = "2025-09-15T19:38:32.098Z" }, +] + +[[package]] +name = "certifi" +version = "2025.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", size = 162386, upload-time = "2025-08-03T03:07:47.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216, upload-time = "2025-08-03T03:07:45.777Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", size = 122371, upload-time = "2025-08-09T07:57:28.46Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/ca/2135ac97709b400c7654b4b764daf5c5567c2da45a30cdd20f9eefe2d658/charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe", size = 205326, upload-time = "2025-08-09T07:56:24.721Z" }, + { url = "https://files.pythonhosted.org/packages/71/11/98a04c3c97dd34e49c7d247083af03645ca3730809a5509443f3c37f7c99/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8", size = 146008, upload-time = "2025-08-09T07:56:26.004Z" }, + { url = "https://files.pythonhosted.org/packages/60/f5/4659a4cb3c4ec146bec80c32d8bb16033752574c20b1252ee842a95d1a1e/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9", size = 159196, upload-time = "2025-08-09T07:56:27.25Z" }, + { url = "https://files.pythonhosted.org/packages/86/9e/f552f7a00611f168b9a5865a1414179b2c6de8235a4fa40189f6f79a1753/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31", size = 156819, upload-time = "2025-08-09T07:56:28.515Z" }, + { url = "https://files.pythonhosted.org/packages/7e/95/42aa2156235cbc8fa61208aded06ef46111c4d3f0de233107b3f38631803/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f", size = 151350, upload-time = "2025-08-09T07:56:29.716Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a9/3865b02c56f300a6f94fc631ef54f0a8a29da74fb45a773dfd3dcd380af7/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927", size = 148644, upload-time = "2025-08-09T07:56:30.984Z" }, + { url = "https://files.pythonhosted.org/packages/77/d9/cbcf1a2a5c7d7856f11e7ac2d782aec12bdfea60d104e60e0aa1c97849dc/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9", size = 160468, upload-time = "2025-08-09T07:56:32.252Z" }, + { url = "https://files.pythonhosted.org/packages/f6/42/6f45efee8697b89fda4d50580f292b8f7f9306cb2971d4b53f8914e4d890/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5", size = 158187, upload-time = "2025-08-09T07:56:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/70/99/f1c3bdcfaa9c45b3ce96f70b14f070411366fa19549c1d4832c935d8e2c3/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc", size = 152699, upload-time = "2025-08-09T07:56:34.739Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ad/b0081f2f99a4b194bcbb1934ef3b12aa4d9702ced80a37026b7607c72e58/charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce", size = 99580, upload-time = "2025-08-09T07:56:35.981Z" }, + { url = "https://files.pythonhosted.org/packages/9a/8f/ae790790c7b64f925e5c953b924aaa42a243fb778fed9e41f147b2a5715a/charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef", size = 107366, upload-time = "2025-08-09T07:56:37.339Z" }, + { url = "https://files.pythonhosted.org/packages/8e/91/b5a06ad970ddc7a0e513112d40113e834638f4ca1120eb727a249fb2715e/charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15", size = 204342, upload-time = "2025-08-09T07:56:38.687Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ec/1edc30a377f0a02689342f214455c3f6c2fbedd896a1d2f856c002fc3062/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db", size = 145995, upload-time = "2025-08-09T07:56:40.048Z" }, + { url = "https://files.pythonhosted.org/packages/17/e5/5e67ab85e6d22b04641acb5399c8684f4d37caf7558a53859f0283a650e9/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d", size = 158640, upload-time = "2025-08-09T07:56:41.311Z" }, + { url = "https://files.pythonhosted.org/packages/f1/e5/38421987f6c697ee3722981289d554957c4be652f963d71c5e46a262e135/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096", size = 156636, upload-time = "2025-08-09T07:56:43.195Z" }, + { url = "https://files.pythonhosted.org/packages/a0/e4/5a075de8daa3ec0745a9a3b54467e0c2967daaaf2cec04c845f73493e9a1/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa", size = 150939, upload-time = "2025-08-09T07:56:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/02/f7/3611b32318b30974131db62b4043f335861d4d9b49adc6d57c1149cc49d4/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049", size = 148580, upload-time = "2025-08-09T07:56:46.684Z" }, + { url = "https://files.pythonhosted.org/packages/7e/61/19b36f4bd67f2793ab6a99b979b4e4f3d8fc754cbdffb805335df4337126/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0", size = 159870, upload-time = "2025-08-09T07:56:47.941Z" }, + { url = "https://files.pythonhosted.org/packages/06/57/84722eefdd338c04cf3030ada66889298eaedf3e7a30a624201e0cbe424a/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92", size = 157797, upload-time = "2025-08-09T07:56:49.756Z" }, + { url = "https://files.pythonhosted.org/packages/72/2a/aff5dd112b2f14bcc3462c312dce5445806bfc8ab3a7328555da95330e4b/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16", size = 152224, upload-time = "2025-08-09T07:56:51.369Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8c/9839225320046ed279c6e839d51f028342eb77c91c89b8ef2549f951f3ec/charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce", size = 100086, upload-time = "2025-08-09T07:56:52.722Z" }, + { url = "https://files.pythonhosted.org/packages/ee/7a/36fbcf646e41f710ce0a563c1c9a343c6edf9be80786edeb15b6f62e17db/charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c", size = 107400, upload-time = "2025-08-09T07:56:55.172Z" }, + { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175, upload-time = "2025-08-09T07:57:26.864Z" }, +] + +[[package]] +name = "ckzg" +version = "2.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/77/9a44934373eff2013cab641f4ac70b98bb8372fe2938ea78c349501aa825/ckzg-2.1.2.tar.gz", hash = "sha256:7d445215261068d914c3607fd89889bb405260911804cd0eea789ce7422db0d8", size = 1124054, upload-time = "2025-09-04T10:56:34.248Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/ed/007ddc03613be6e8b246cace85edc943116fd78413a228789ca490775971/ckzg-2.1.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:457635f924610414b7e7460b1e5097187ca4c40406ea80c73848866267213fed", size = 116305, upload-time = "2025-09-04T10:55:22.186Z" }, + { url = "https://files.pythonhosted.org/packages/fc/9f/1a9df26c78b5f26c06a9a97948e12db434c2b4a784708b9214f72ad8cea7/ckzg-2.1.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:32b750784bef9fc7832dee07635eb46309eca5b55a6eb350ff40021b5fc483f2", size = 99956, upload-time = "2025-09-04T10:55:22.976Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d8/9fc6537a8fcc0a373f0bb0cf2747e28e7aa99918c9d96385ef1f3ec51c9c/ckzg-2.1.2-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4eeff254f60b08dba7991d3ab20018d5df7cbe3318e67efd070d2361104e6d4", size = 176341, upload-time = "2025-09-04T10:55:23.792Z" }, + { url = "https://files.pythonhosted.org/packages/12/f1/06b20839ac10c4e839bad82e32ccf1078be810c972fdf703c08754fbd348/ckzg-2.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ad66afefac5836c340a853b543f932a9e98830359617414b1972233eaa5a069", size = 161827, upload-time = "2025-09-04T10:55:24.606Z" }, + { url = "https://files.pythonhosted.org/packages/c4/fa/04df1f37a4075c7e0032c960f037d14fead960db699504781fd421c735a4/ckzg-2.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d3046c1541f9b3aed997860fdab106795ac4e8335cb1d3fe6a2a45958fb00ab", size = 171088, upload-time = "2025-09-04T10:55:25.388Z" }, + { url = "https://files.pythonhosted.org/packages/6a/9d/50b82acbf1f89159fb70853ecd42a5b67ecba0e298eebb31760bb41b2aa0/ckzg-2.1.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1b98029c67d34bcf6b0e030d06505a1accc1829a378736e2cb69e4af852add99", size = 173505, upload-time = "2025-09-04T10:55:26.348Z" }, + { url = "https://files.pythonhosted.org/packages/61/6f/97085ef1002fcfd7620b774df13c918cd83a84247f1b5ece098073a3fc25/ckzg-2.1.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59541361c9402ec14790db88c16532e66ece8e56d985b75756f36387858549fa", size = 188738, upload-time = "2025-09-04T10:55:27.456Z" }, + { url = "https://files.pythonhosted.org/packages/2e/7a/e8208411860bd2dca57eae2771e045b1a4dcde8dc08004d74401ad74f23a/ckzg-2.1.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:edf41132119d67673af1cf6cbf22f3852d092e94c9c890ff153e761d7be6e684", size = 183486, upload-time = "2025-09-04T10:55:28.298Z" }, + { url = "https://files.pythonhosted.org/packages/41/28/8b381db79aa362e975e86c3bf2c85de6b9482923dc55f19bb21419d12994/ckzg-2.1.2-cp313-cp313-win_amd64.whl", hash = "sha256:0074cbfe11702c1d413ed86a74d9fcfef48fcb206c31a37c0b3eeb830f6d0a05", size = 100693, upload-time = "2025-09-04T10:55:29.172Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "cryptography" +version = "45.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a7/35/c495bffc2056f2dadb32434f1feedd79abde2a7f8363e1974afa9c33c7e2/cryptography-45.0.7.tar.gz", hash = "sha256:4b1654dfc64ea479c242508eb8c724044f1e964a47d1d1cacc5132292d851971", size = 744980, upload-time = "2025-09-01T11:15:03.146Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/91/925c0ac74362172ae4516000fe877912e33b5983df735ff290c653de4913/cryptography-45.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:3be4f21c6245930688bd9e162829480de027f8bf962ede33d4f8ba7d67a00cee", size = 7041105, upload-time = "2025-09-01T11:13:59.684Z" }, + { url = "https://files.pythonhosted.org/packages/fc/63/43641c5acce3a6105cf8bd5baeceeb1846bb63067d26dae3e5db59f1513a/cryptography-45.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:67285f8a611b0ebc0857ced2081e30302909f571a46bfa7a3cc0ad303fe015c6", size = 4205799, upload-time = "2025-09-01T11:14:02.517Z" }, + { url = "https://files.pythonhosted.org/packages/bc/29/c238dd9107f10bfde09a4d1c52fd38828b1aa353ced11f358b5dd2507d24/cryptography-45.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:577470e39e60a6cd7780793202e63536026d9b8641de011ed9d8174da9ca5339", size = 4430504, upload-time = "2025-09-01T11:14:04.522Z" }, + { url = "https://files.pythonhosted.org/packages/62/62/24203e7cbcc9bd7c94739428cd30680b18ae6b18377ae66075c8e4771b1b/cryptography-45.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:4bd3e5c4b9682bc112d634f2c6ccc6736ed3635fc3319ac2bb11d768cc5a00d8", size = 4209542, upload-time = "2025-09-01T11:14:06.309Z" }, + { url = "https://files.pythonhosted.org/packages/cd/e3/e7de4771a08620eef2389b86cd87a2c50326827dea5528feb70595439ce4/cryptography-45.0.7-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:465ccac9d70115cd4de7186e60cfe989de73f7bb23e8a7aa45af18f7412e75bf", size = 3889244, upload-time = "2025-09-01T11:14:08.152Z" }, + { url = "https://files.pythonhosted.org/packages/96/b8/bca71059e79a0bb2f8e4ec61d9c205fbe97876318566cde3b5092529faa9/cryptography-45.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:16ede8a4f7929b4b7ff3642eba2bf79aa1d71f24ab6ee443935c0d269b6bc513", size = 4461975, upload-time = "2025-09-01T11:14:09.755Z" }, + { url = "https://files.pythonhosted.org/packages/58/67/3f5b26937fe1218c40e95ef4ff8d23c8dc05aa950d54200cc7ea5fb58d28/cryptography-45.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8978132287a9d3ad6b54fcd1e08548033cc09dc6aacacb6c004c73c3eb5d3ac3", size = 4209082, upload-time = "2025-09-01T11:14:11.229Z" }, + { url = "https://files.pythonhosted.org/packages/0e/e4/b3e68a4ac363406a56cf7b741eeb80d05284d8c60ee1a55cdc7587e2a553/cryptography-45.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b6a0e535baec27b528cb07a119f321ac024592388c5681a5ced167ae98e9fff3", size = 4460397, upload-time = "2025-09-01T11:14:12.924Z" }, + { url = "https://files.pythonhosted.org/packages/22/49/2c93f3cd4e3efc8cb22b02678c1fad691cff9dd71bb889e030d100acbfe0/cryptography-45.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:a24ee598d10befaec178efdff6054bc4d7e883f615bfbcd08126a0f4931c83a6", size = 4337244, upload-time = "2025-09-01T11:14:14.431Z" }, + { url = "https://files.pythonhosted.org/packages/04/19/030f400de0bccccc09aa262706d90f2ec23d56bc4eb4f4e8268d0ddf3fb8/cryptography-45.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fa26fa54c0a9384c27fcdc905a2fb7d60ac6e47d14bc2692145f2b3b1e2cfdbd", size = 4568862, upload-time = "2025-09-01T11:14:16.185Z" }, + { url = "https://files.pythonhosted.org/packages/29/56/3034a3a353efa65116fa20eb3c990a8c9f0d3db4085429040a7eef9ada5f/cryptography-45.0.7-cp311-abi3-win32.whl", hash = "sha256:bef32a5e327bd8e5af915d3416ffefdbe65ed975b646b3805be81b23580b57b8", size = 2936578, upload-time = "2025-09-01T11:14:17.638Z" }, + { url = "https://files.pythonhosted.org/packages/b3/61/0ab90f421c6194705a99d0fa9f6ee2045d916e4455fdbb095a9c2c9a520f/cryptography-45.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:3808e6b2e5f0b46d981c24d79648e5c25c35e59902ea4391a0dcb3e667bf7443", size = 3405400, upload-time = "2025-09-01T11:14:18.958Z" }, + { url = "https://files.pythonhosted.org/packages/63/e8/c436233ddf19c5f15b25ace33979a9dd2e7aa1a59209a0ee8554179f1cc0/cryptography-45.0.7-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bfb4c801f65dd61cedfc61a83732327fafbac55a47282e6f26f073ca7a41c3b2", size = 7021824, upload-time = "2025-09-01T11:14:20.954Z" }, + { url = "https://files.pythonhosted.org/packages/bc/4c/8f57f2500d0ccd2675c5d0cc462095adf3faa8c52294ba085c036befb901/cryptography-45.0.7-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:81823935e2f8d476707e85a78a405953a03ef7b7b4f55f93f7c2d9680e5e0691", size = 4202233, upload-time = "2025-09-01T11:14:22.454Z" }, + { url = "https://files.pythonhosted.org/packages/eb/ac/59b7790b4ccaed739fc44775ce4645c9b8ce54cbec53edf16c74fd80cb2b/cryptography-45.0.7-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3994c809c17fc570c2af12c9b840d7cea85a9fd3e5c0e0491f4fa3c029216d59", size = 4423075, upload-time = "2025-09-01T11:14:24.287Z" }, + { url = "https://files.pythonhosted.org/packages/b8/56/d4f07ea21434bf891faa088a6ac15d6d98093a66e75e30ad08e88aa2b9ba/cryptography-45.0.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dad43797959a74103cb59c5dac71409f9c27d34c8a05921341fb64ea8ccb1dd4", size = 4204517, upload-time = "2025-09-01T11:14:25.679Z" }, + { url = "https://files.pythonhosted.org/packages/e8/ac/924a723299848b4c741c1059752c7cfe09473b6fd77d2920398fc26bfb53/cryptography-45.0.7-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ce7a453385e4c4693985b4a4a3533e041558851eae061a58a5405363b098fcd3", size = 3882893, upload-time = "2025-09-01T11:14:27.1Z" }, + { url = "https://files.pythonhosted.org/packages/83/dc/4dab2ff0a871cc2d81d3ae6d780991c0192b259c35e4d83fe1de18b20c70/cryptography-45.0.7-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b04f85ac3a90c227b6e5890acb0edbaf3140938dbecf07bff618bf3638578cf1", size = 4450132, upload-time = "2025-09-01T11:14:28.58Z" }, + { url = "https://files.pythonhosted.org/packages/12/dd/b2882b65db8fc944585d7fb00d67cf84a9cef4e77d9ba8f69082e911d0de/cryptography-45.0.7-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:48c41a44ef8b8c2e80ca4527ee81daa4c527df3ecbc9423c41a420a9559d0e27", size = 4204086, upload-time = "2025-09-01T11:14:30.572Z" }, + { url = "https://files.pythonhosted.org/packages/5d/fa/1d5745d878048699b8eb87c984d4ccc5da4f5008dfd3ad7a94040caca23a/cryptography-45.0.7-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:f3df7b3d0f91b88b2106031fd995802a2e9ae13e02c36c1fc075b43f420f3a17", size = 4449383, upload-time = "2025-09-01T11:14:32.046Z" }, + { url = "https://files.pythonhosted.org/packages/36/8b/fc61f87931bc030598e1876c45b936867bb72777eac693e905ab89832670/cryptography-45.0.7-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:dd342f085542f6eb894ca00ef70236ea46070c8a13824c6bde0dfdcd36065b9b", size = 4332186, upload-time = "2025-09-01T11:14:33.95Z" }, + { url = "https://files.pythonhosted.org/packages/0b/11/09700ddad7443ccb11d674efdbe9a832b4455dc1f16566d9bd3834922ce5/cryptography-45.0.7-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1993a1bb7e4eccfb922b6cd414f072e08ff5816702a0bdb8941c247a6b1b287c", size = 4561639, upload-time = "2025-09-01T11:14:35.343Z" }, + { url = "https://files.pythonhosted.org/packages/71/ed/8f4c1337e9d3b94d8e50ae0b08ad0304a5709d483bfcadfcc77a23dbcb52/cryptography-45.0.7-cp37-abi3-win32.whl", hash = "sha256:18fcf70f243fe07252dcb1b268a687f2358025ce32f9f88028ca5c364b123ef5", size = 2926552, upload-time = "2025-09-01T11:14:36.929Z" }, + { url = "https://files.pythonhosted.org/packages/bc/ff/026513ecad58dacd45d1d24ebe52b852165a26e287177de1d545325c0c25/cryptography-45.0.7-cp37-abi3-win_amd64.whl", hash = "sha256:7285a89df4900ed3bfaad5679b1e668cb4b38a8de1ccbfc84b05f34512da0a90", size = 3392742, upload-time = "2025-09-01T11:14:38.368Z" }, +] + +[[package]] +name = "cytoolz" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "toolz" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a7/f9/3243eed3a6545c2a33a21f74f655e3fcb5d2192613cd3db81a93369eb339/cytoolz-1.0.1.tar.gz", hash = "sha256:89cc3161b89e1bb3ed7636f74ed2e55984fd35516904fc878cae216e42b2c7d6", size = 626652, upload-time = "2024-12-13T05:47:36.672Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/2e/a9f069db0107749e9e72baf6c21abe3f006841a3bcfdc9b8420e22ef31eb/cytoolz-1.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6944bb93b287032a4c5ca6879b69bcd07df46f3079cf8393958cf0b0454f50c0", size = 407365, upload-time = "2024-12-13T05:45:52.803Z" }, + { url = "https://files.pythonhosted.org/packages/a9/9b/5e87dd0e31f54c778b4f9f34cc14c1162d3096c8d746b0f8be97d70dd73c/cytoolz-1.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e027260fd2fc5cb041277158ac294fc13dca640714527219f702fb459a59823a", size = 385233, upload-time = "2024-12-13T05:45:53.994Z" }, + { url = "https://files.pythonhosted.org/packages/63/00/2fd32b16284cdb97cfe092822179bc0c3bcdd5e927dd39f986169a517642/cytoolz-1.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88662c0e07250d26f5af9bc95911e6137e124a5c1ec2ce4a5d74de96718ab242", size = 2062903, upload-time = "2024-12-13T05:45:55.202Z" }, + { url = "https://files.pythonhosted.org/packages/85/39/b3cbb5a9847ba59584a263772ad4f8ca2dbfd2a0e11efd09211d1219804c/cytoolz-1.0.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:309dffa78b0961b4c0cf55674b828fbbc793cf2d816277a5c8293c0c16155296", size = 2139517, upload-time = "2024-12-13T05:45:56.804Z" }, + { url = "https://files.pythonhosted.org/packages/ea/39/bfcab4a46d50c467e36fe704f19d8904efead417787806ee210327f68390/cytoolz-1.0.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:edb34246e6eb40343c5860fc51b24937698e4fa1ee415917a73ad772a9a1746b", size = 2154849, upload-time = "2024-12-13T05:45:58.814Z" }, + { url = "https://files.pythonhosted.org/packages/fd/42/3bc6ee61b0aa47e1cb40819adc1a456d7efa809f0dea9faddacb43fdde8f/cytoolz-1.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a54da7a8e4348a18d45d4d5bc84af6c716d7f131113a4f1cc45569d37edff1b", size = 2102302, upload-time = "2024-12-13T05:46:00.181Z" }, + { url = "https://files.pythonhosted.org/packages/00/66/3f636c6ddea7b18026b90a8c238af472e423b86e427b11df02213689b012/cytoolz-1.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:241c679c3b1913c0f7259cf1d9639bed5084c86d0051641d537a0980548aa266", size = 1960872, upload-time = "2024-12-13T05:46:01.612Z" }, + { url = "https://files.pythonhosted.org/packages/40/36/cb3b7cdd651007b69f9c48e9d104cec7cb8dc53afa1d6a720e5ad08022fa/cytoolz-1.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5bfc860251a8f280ac79696fc3343cfc3a7c30b94199e0240b6c9e5b6b01a2a5", size = 2014430, upload-time = "2024-12-13T05:46:03.022Z" }, + { url = "https://files.pythonhosted.org/packages/88/3f/2e9bd2a16cfd269808922147551dcb2d8b68ba54a2c4deca2fa6a6cd0d5f/cytoolz-1.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c8edd1547014050c1bdad3ff85d25c82bd1c2a3c96830c6181521eb78b9a42b3", size = 2003127, upload-time = "2024-12-13T05:46:04.401Z" }, + { url = "https://files.pythonhosted.org/packages/c4/7d/08604ff940aa784df8343c387fdf2489b948b714a6afb587775ae94da912/cytoolz-1.0.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b349bf6162e8de215403d7f35f8a9b4b1853dc2a48e6e1a609a5b1a16868b296", size = 2142369, upload-time = "2024-12-13T05:46:06.004Z" }, + { url = "https://files.pythonhosted.org/packages/d2/c6/39919a0645bdbdf720e97cae107f959ea9d1267fbc3b0d94fc6e1d12ac8f/cytoolz-1.0.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:1b18b35256219b6c3dd0fa037741b85d0bea39c552eab0775816e85a52834140", size = 2180427, upload-time = "2024-12-13T05:46:07.526Z" }, + { url = "https://files.pythonhosted.org/packages/d8/03/dbb9d47556ee54337e7e0ac209d17ceff2d2a197c34de08005abc7a7449b/cytoolz-1.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:738b2350f340ff8af883eb301054eb724997f795d20d90daec7911c389d61581", size = 2069785, upload-time = "2024-12-13T05:46:10.122Z" }, + { url = "https://files.pythonhosted.org/packages/ea/f8/11bb7b8947002231faae3ec2342df5896afbc19eb783a332cce6d219ff79/cytoolz-1.0.1-cp313-cp313-win32.whl", hash = "sha256:9cbd9c103df54fcca42be55ef40e7baea624ac30ee0b8bf1149f21146d1078d9", size = 320685, upload-time = "2024-12-13T05:46:11.553Z" }, + { url = "https://files.pythonhosted.org/packages/40/eb/dde173cf2357084ca9423950be1f2f11ab11d65d8bd30165bfb8fd4213e9/cytoolz-1.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:90e577e08d3a4308186d9e1ec06876d4756b1e8164b92971c69739ea17e15297", size = 362898, upload-time = "2024-12-13T05:46:12.771Z" }, +] + +[[package]] +name = "eth-abi" +version = "5.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "eth-typing" }, + { name = "eth-utils" }, + { name = "parsimonious" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/00/71/d9e1380bd77fd22f98b534699af564f189b56d539cc2b9dab908d4e4c242/eth_abi-5.2.0.tar.gz", hash = "sha256:178703fa98c07d8eecd5ae569e7e8d159e493ebb6eeb534a8fe973fbc4e40ef0", size = 49797, upload-time = "2025-01-14T16:29:34.629Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/b4/2f3982c4cbcbf5eeb6aec62df1533c0e63c653b3021ff338d44944405676/eth_abi-5.2.0-py3-none-any.whl", hash = "sha256:17abe47560ad753f18054f5b3089fcb588f3e3a092136a416b6c1502cb7e8877", size = 28511, upload-time = "2025-01-14T16:29:31.862Z" }, +] + +[[package]] +name = "eth-account" +version = "0.13.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bitarray" }, + { name = "ckzg" }, + { name = "eth-abi" }, + { name = "eth-keyfile" }, + { name = "eth-keys" }, + { name = "eth-rlp" }, + { name = "eth-utils" }, + { name = "hexbytes" }, + { name = "pydantic" }, + { name = "rlp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/cf/20f76a29be97339c969fd765f1237154286a565a1d61be98e76bb7af946a/eth_account-0.13.7.tar.gz", hash = "sha256:5853ecbcbb22e65411176f121f5f24b8afeeaf13492359d254b16d8b18c77a46", size = 935998, upload-time = "2025-04-21T21:11:21.204Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/18/088fb250018cbe665bc2111974301b2d59f294a565aff7564c4df6878da2/eth_account-0.13.7-py3-none-any.whl", hash = "sha256:39727de8c94d004ff61d10da7587509c04d2dc7eac71e04830135300bdfc6d24", size = 587452, upload-time = "2025-04-21T21:11:18.346Z" }, +] + +[[package]] +name = "eth-hash" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/38/577b7bc9380ef9dff0f1dffefe0c9a1ded2385e7a06c306fd95afb6f9451/eth_hash-0.7.1.tar.gz", hash = "sha256:d2411a403a0b0a62e8247b4117932d900ffb4c8c64b15f92620547ca5ce46be5", size = 12227, upload-time = "2025-01-13T21:29:21.765Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/db/f8775490669d28aca24871c67dd56b3e72105cb3bcae9a4ec65dd70859b3/eth_hash-0.7.1-py3-none-any.whl", hash = "sha256:0fb1add2adf99ef28883fd6228eb447ef519ea72933535ad1a0b28c6f65f868a", size = 8028, upload-time = "2025-01-13T21:29:19.365Z" }, +] + +[[package]] +name = "eth-keyfile" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "eth-keys" }, + { name = "eth-utils" }, + { name = "pycryptodome" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/35/66/dd823b1537befefbbff602e2ada88f1477c5b40ec3731e3d9bc676c5f716/eth_keyfile-0.8.1.tar.gz", hash = "sha256:9708bc31f386b52cca0969238ff35b1ac72bd7a7186f2a84b86110d3c973bec1", size = 12267, upload-time = "2024-04-23T20:28:53.862Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/fc/48a586175f847dd9e05e5b8994d2fe8336098781ec2e9836a2ad94280281/eth_keyfile-0.8.1-py3-none-any.whl", hash = "sha256:65387378b82fe7e86d7cb9f8d98e6d639142661b2f6f490629da09fddbef6d64", size = 7510, upload-time = "2024-04-23T20:28:51.063Z" }, +] + +[[package]] +name = "eth-keys" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "eth-typing" }, + { name = "eth-utils" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/11/1ed831c50bd74f57829aa06e58bd82a809c37e070ee501c953b9ac1f1552/eth_keys-0.7.0.tar.gz", hash = "sha256:79d24fd876201df67741de3e3fefb3f4dbcbb6ace66e47e6fe662851a4547814", size = 30166, upload-time = "2025-04-07T17:40:21.697Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/25/0ae00f2b0095e559d61ad3dc32171bd5a29dfd95ab04b4edd641f7c75f72/eth_keys-0.7.0-py3-none-any.whl", hash = "sha256:b0cdda8ffe8e5ba69c7c5ca33f153828edcace844f67aabd4542d7de38b159cf", size = 20656, upload-time = "2025-04-07T17:40:20.441Z" }, +] + +[[package]] +name = "eth-rlp" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "eth-utils" }, + { name = "hexbytes" }, + { name = "rlp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7f/ea/ad39d001fa9fed07fad66edb00af701e29b48be0ed44a3bcf58cb3adf130/eth_rlp-2.2.0.tar.gz", hash = "sha256:5e4b2eb1b8213e303d6a232dfe35ab8c29e2d3051b86e8d359def80cd21db83d", size = 7720, upload-time = "2025-02-04T21:51:08.134Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/3b/57efe2bc2df0980680d57c01a36516cd3171d2319ceb30e675de19fc2cc5/eth_rlp-2.2.0-py3-none-any.whl", hash = "sha256:5692d595a741fbaef1203db6a2fedffbd2506d31455a6ad378c8449ee5985c47", size = 4446, upload-time = "2025-02-04T21:51:05.823Z" }, +] + +[[package]] +name = "eth-typing" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/60/54/62aa24b9cc708f06316167ee71c362779c8ed21fc8234a5cd94a8f53b623/eth_typing-5.2.1.tar.gz", hash = "sha256:7557300dbf02a93c70fa44af352b5c4a58f94e997a0fd6797fb7d1c29d9538ee", size = 21806, upload-time = "2025-04-14T20:39:28.217Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/30/72/c370bbe4c53da7bf998d3523f5a0f38867654923a82192df88d0705013d3/eth_typing-5.2.1-py3-none-any.whl", hash = "sha256:b0c2812ff978267563b80e9d701f487dd926f1d376d674f3b535cfe28b665d3d", size = 19163, upload-time = "2025-04-14T20:39:26.571Z" }, +] + +[[package]] +name = "eth-utils" +version = "5.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cytoolz", marker = "implementation_name == 'cpython'" }, + { name = "eth-hash" }, + { name = "eth-typing" }, + { name = "pydantic" }, + { name = "toolz", marker = "implementation_name == 'pypy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e6/e1/ee3a8728227c3558853e63ff35bd4c449abdf5022a19601369400deacd39/eth_utils-5.3.1.tar.gz", hash = "sha256:c94e2d2abd024a9a42023b4ddc1c645814ff3d6a737b33d5cfd890ebf159c2d1", size = 123506, upload-time = "2025-08-27T16:37:17.378Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/4d/257cdc01ada430b8e84b9f2385c2553f33218f5b47da9adf0a616308d4b7/eth_utils-5.3.1-py3-none-any.whl", hash = "sha256:1f5476d8f29588d25b8ae4987e1ffdfae6d4c09026e476c4aad13b32dda3ead0", size = 102529, upload-time = "2025-08-27T16:37:15.449Z" }, +] + +[[package]] +name = "hexbytes" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7f/87/adf4635b4b8c050283d74e6db9a81496063229c9263e6acc1903ab79fbec/hexbytes-1.3.1.tar.gz", hash = "sha256:a657eebebdfe27254336f98d8af6e2236f3f83aed164b87466b6cf6c5f5a4765", size = 8633, upload-time = "2025-05-14T16:45:17.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/e0/3b31492b1c89da3c5a846680517871455b30c54738486fc57ac79a5761bd/hexbytes-1.3.1-py3-none-any.whl", hash = "sha256:da01ff24a1a9a2b1881c4b85f0e9f9b0f51b526b379ffa23832ae7899d29c2c7", size = 5074, upload-time = "2025-05-14T16:45:16.179Z" }, +] + +[[package]] +name = "hip-3-pusher" +version = "0.1.3" +source = { virtual = "." } +dependencies = [ + { name = "asn1crypto" }, + { name = "boto3" }, + { name = "cryptography" }, + { name = "hyperliquid-python-sdk" }, + { name = "loguru" }, + { name = "opentelemetry-exporter-prometheus" }, + { name = "opentelemetry-sdk" }, + { name = "prometheus-client" }, + { name = "toml" }, + { name = "websockets" }, +] + +[package.metadata] +requires-dist = [ + { name = "asn1crypto", specifier = ">=1.5.1" }, + { name = "boto3", specifier = ">=1.40.31" }, + { name = "cryptography", specifier = ">=45.0.7" }, + { name = "hyperliquid-python-sdk", specifier = ">=0.19.0" }, + { name = "loguru", specifier = ">=0.7.3" }, + { name = "opentelemetry-exporter-prometheus", specifier = ">=0.58b0" }, + { name = "opentelemetry-sdk", specifier = ">=1.37.0" }, + { name = "prometheus-client", specifier = ">=0.23.1" }, + { name = "toml", specifier = ">=0.10.2" }, + { name = "websockets", specifier = ">=15.0.1" }, +] + +[[package]] +name = "hyperliquid-python-sdk" +version = "0.19.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "eth-account" }, + { name = "eth-utils" }, + { name = "msgpack" }, + { name = "requests" }, + { name = "websocket-client" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/32/fa/98b1281324c6988d75131bd153d82d7182dcb97b382312252eece4eafe9e/hyperliquid_python_sdk-0.19.0.tar.gz", hash = "sha256:1eb181c4f0f86ede56ad2111ddf5a25635dbd697cf44dae274e87c6c04b97e18", size = 24710, upload-time = "2025-09-11T02:01:09.833Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/94/ea445013267347df0da6f41e7bafcbb66f0d7ac8a673f961169b288a5329/hyperliquid_python_sdk-0.19.0-py3-none-any.whl", hash = "sha256:9d02526da98ed2a8c7ae957d6188b1a5285d393056fbb7b57b1dbe38c7773850", size = 24062, upload-time = "2025-09-11T02:01:08.619Z" }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload-time = "2024-09-15T18:07:39.745Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, +] + +[[package]] +name = "importlib-metadata" +version = "8.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641, upload-time = "2025-04-27T15:29:01.736Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd", size = 27656, upload-time = "2025-04-27T15:29:00.214Z" }, +] + +[[package]] +name = "jmespath" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/00/2a/e867e8531cf3e36b41201936b7fa7ba7b5702dbef42922193f05c8976cd6/jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe", size = 25843, upload-time = "2022-06-17T18:00:12.224Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", size = 20256, upload-time = "2022-06-17T18:00:10.251Z" }, +] + +[[package]] +name = "loguru" +version = "0.7.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "win32-setctime", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3a/05/a1dae3dffd1116099471c643b8924f5aa6524411dc6c63fdae648c4f1aca/loguru-0.7.3.tar.gz", hash = "sha256:19480589e77d47b8d85b2c827ad95d49bf31b0dcde16593892eb51dd18706eb6", size = 63559, upload-time = "2024-12-06T11:20:56.608Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/29/0348de65b8cc732daa3e33e67806420b2ae89bdce2b04af740289c5c6c8c/loguru-0.7.3-py3-none-any.whl", hash = "sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c", size = 61595, upload-time = "2024-12-06T11:20:54.538Z" }, +] + +[[package]] +name = "msgpack" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/45/b1/ea4f68038a18c77c9467400d166d74c4ffa536f34761f7983a104357e614/msgpack-1.1.1.tar.gz", hash = "sha256:77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd", size = 173555, upload-time = "2025-06-13T06:52:51.324Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a1/38/561f01cf3577430b59b340b51329803d3a5bf6a45864a55f4ef308ac11e3/msgpack-1.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3765afa6bd4832fc11c3749be4ba4b69a0e8d7b728f78e68120a157a4c5d41f0", size = 81677, upload-time = "2025-06-13T06:52:16.64Z" }, + { url = "https://files.pythonhosted.org/packages/09/48/54a89579ea36b6ae0ee001cba8c61f776451fad3c9306cd80f5b5c55be87/msgpack-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8ddb2bcfd1a8b9e431c8d6f4f7db0773084e107730ecf3472f1dfe9ad583f3d9", size = 78603, upload-time = "2025-06-13T06:52:17.843Z" }, + { url = "https://files.pythonhosted.org/packages/a0/60/daba2699b308e95ae792cdc2ef092a38eb5ee422f9d2fbd4101526d8a210/msgpack-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:196a736f0526a03653d829d7d4c5500a97eea3648aebfd4b6743875f28aa2af8", size = 420504, upload-time = "2025-06-13T06:52:18.982Z" }, + { url = "https://files.pythonhosted.org/packages/20/22/2ebae7ae43cd8f2debc35c631172ddf14e2a87ffcc04cf43ff9df9fff0d3/msgpack-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d592d06e3cc2f537ceeeb23d38799c6ad83255289bb84c2e5792e5a8dea268a", size = 423749, upload-time = "2025-06-13T06:52:20.211Z" }, + { url = "https://files.pythonhosted.org/packages/40/1b/54c08dd5452427e1179a40b4b607e37e2664bca1c790c60c442c8e972e47/msgpack-1.1.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4df2311b0ce24f06ba253fda361f938dfecd7b961576f9be3f3fbd60e87130ac", size = 404458, upload-time = "2025-06-13T06:52:21.429Z" }, + { url = "https://files.pythonhosted.org/packages/2e/60/6bb17e9ffb080616a51f09928fdd5cac1353c9becc6c4a8abd4e57269a16/msgpack-1.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e4141c5a32b5e37905b5940aacbc59739f036930367d7acce7a64e4dec1f5e0b", size = 405976, upload-time = "2025-06-13T06:52:22.995Z" }, + { url = "https://files.pythonhosted.org/packages/ee/97/88983e266572e8707c1f4b99c8fd04f9eb97b43f2db40e3172d87d8642db/msgpack-1.1.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b1ce7f41670c5a69e1389420436f41385b1aa2504c3b0c30620764b15dded2e7", size = 408607, upload-time = "2025-06-13T06:52:24.152Z" }, + { url = "https://files.pythonhosted.org/packages/bc/66/36c78af2efaffcc15a5a61ae0df53a1d025f2680122e2a9eb8442fed3ae4/msgpack-1.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4147151acabb9caed4e474c3344181e91ff7a388b888f1e19ea04f7e73dc7ad5", size = 424172, upload-time = "2025-06-13T06:52:25.704Z" }, + { url = "https://files.pythonhosted.org/packages/8c/87/a75eb622b555708fe0427fab96056d39d4c9892b0c784b3a721088c7ee37/msgpack-1.1.1-cp313-cp313-win32.whl", hash = "sha256:500e85823a27d6d9bba1d057c871b4210c1dd6fb01fbb764e37e4e8847376323", size = 65347, upload-time = "2025-06-13T06:52:26.846Z" }, + { url = "https://files.pythonhosted.org/packages/ca/91/7dc28d5e2a11a5ad804cf2b7f7a5fcb1eb5a4966d66a5d2b41aee6376543/msgpack-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:6d489fba546295983abd142812bda76b57e33d0b9f5d5b71c09a583285506f69", size = 72341, upload-time = "2025-06-13T06:52:27.835Z" }, +] + +[[package]] +name = "opentelemetry-api" +version = "1.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/04/05040d7ce33a907a2a02257e601992f0cdf11c73b33f13c4492bf6c3d6d5/opentelemetry_api-1.37.0.tar.gz", hash = "sha256:540735b120355bd5112738ea53621f8d5edb35ebcd6fe21ada3ab1c61d1cd9a7", size = 64923, upload-time = "2025-09-11T10:29:01.662Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/48/28ed9e55dcf2f453128df738210a980e09f4e468a456fa3c763dbc8be70a/opentelemetry_api-1.37.0-py3-none-any.whl", hash = "sha256:accf2024d3e89faec14302213bc39550ec0f4095d1cf5ca688e1bfb1c8612f47", size = 65732, upload-time = "2025-09-11T10:28:41.826Z" }, +] + +[[package]] +name = "opentelemetry-exporter-prometheus" +version = "0.58b0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-sdk" }, + { name = "prometheus-client" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1a/4c/e351559526ee35fa36d990d3455e81a5607c1fa3e544b599ad802f2481f8/opentelemetry_exporter_prometheus-0.58b0.tar.gz", hash = "sha256:70f2627b4bb82bac65a1fcf95f6e0dcce9e823dd47379ced854753a7e14dfc93", size = 14972, upload-time = "2025-09-11T10:29:05.513Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/e3/50e9cdc5a52c2ab19585dd69e668ec9fee0343fafc4bffa919ca79230a4f/opentelemetry_exporter_prometheus-0.58b0-py3-none-any.whl", hash = "sha256:02005033a7a108ab9f3000ff3aa49e2d03a8893b5bf3431322ffa246affbf951", size = 13016, upload-time = "2025-09-11T10:28:47.67Z" }, +] + +[[package]] +name = "opentelemetry-sdk" +version = "1.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f4/62/2e0ca80d7fe94f0b193135375da92c640d15fe81f636658d2acf373086bc/opentelemetry_sdk-1.37.0.tar.gz", hash = "sha256:cc8e089c10953ded765b5ab5669b198bbe0af1b3f89f1007d19acd32dc46dda5", size = 170404, upload-time = "2025-09-11T10:29:11.779Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/62/9f4ad6a54126fb00f7ed4bb5034964c6e4f00fcd5a905e115bd22707e20d/opentelemetry_sdk-1.37.0-py3-none-any.whl", hash = "sha256:8f3c3c22063e52475c5dbced7209495c2c16723d016d39287dfc215d1771257c", size = 131941, upload-time = "2025-09-11T10:28:57.83Z" }, +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.58b0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/aa/1b/90701d91e6300d9f2fb352153fb1721ed99ed1f6ea14fa992c756016e63a/opentelemetry_semantic_conventions-0.58b0.tar.gz", hash = "sha256:6bd46f51264279c433755767bb44ad00f1c9e2367e1b42af563372c5a6fa0c25", size = 129867, upload-time = "2025-09-11T10:29:12.597Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/90/68152b7465f50285d3ce2481b3aec2f82822e3f52e5152eeeaf516bab841/opentelemetry_semantic_conventions-0.58b0-py3-none-any.whl", hash = "sha256:5564905ab1458b96684db1340232729fce3b5375a06e140e8904c78e4f815b28", size = 207954, upload-time = "2025-09-11T10:28:59.218Z" }, +] + +[[package]] +name = "parsimonious" +version = "0.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "regex" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7b/91/abdc50c4ef06fdf8d047f60ee777ca9b2a7885e1a9cea81343fbecda52d7/parsimonious-0.10.0.tar.gz", hash = "sha256:8281600da180ec8ae35427a4ab4f7b82bfec1e3d1e52f80cb60ea82b9512501c", size = 52172, upload-time = "2022-09-03T17:01:17.004Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/0f/c8b64d9b54ea631fcad4e9e3c8dbe8c11bb32a623be94f22974c88e71eaf/parsimonious-0.10.0-py3-none-any.whl", hash = "sha256:982ab435fabe86519b57f6b35610aa4e4e977e9f02a14353edf4bbc75369fc0f", size = 48427, upload-time = "2022-09-03T17:01:13.814Z" }, +] + +[[package]] +name = "prometheus-client" +version = "0.23.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/23/53/3edb5d68ecf6b38fcbcc1ad28391117d2a322d9a1a3eff04bfdb184d8c3b/prometheus_client-0.23.1.tar.gz", hash = "sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce", size = 80481, upload-time = "2025-09-18T20:47:25.043Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b8/db/14bafcb4af2139e046d03fd00dea7873e48eafe18b7d2797e73d6681f210/prometheus_client-0.23.1-py3-none-any.whl", hash = "sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99", size = 61145, upload-time = "2025-09-18T20:47:23.875Z" }, +] + +[[package]] +name = "pycparser" +version = "2.23" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, +] + +[[package]] +name = "pycryptodome" +version = "3.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8e/a6/8452177684d5e906854776276ddd34eca30d1b1e15aa1ee9cefc289a33f5/pycryptodome-3.23.0.tar.gz", hash = "sha256:447700a657182d60338bab09fdb27518f8856aecd80ae4c6bdddb67ff5da44ef", size = 4921276, upload-time = "2025-05-17T17:21:45.242Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/5d/bdb09489b63cd34a976cc9e2a8d938114f7a53a74d3dd4f125ffa49dce82/pycryptodome-3.23.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0011f7f00cdb74879142011f95133274741778abba114ceca229adbf8e62c3e4", size = 2495152, upload-time = "2025-05-17T17:20:20.833Z" }, + { url = "https://files.pythonhosted.org/packages/a7/ce/7840250ed4cc0039c433cd41715536f926d6e86ce84e904068eb3244b6a6/pycryptodome-3.23.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:90460fc9e088ce095f9ee8356722d4f10f86e5be06e2354230a9880b9c549aae", size = 1639348, upload-time = "2025-05-17T17:20:23.171Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f0/991da24c55c1f688d6a3b5a11940567353f74590734ee4a64294834ae472/pycryptodome-3.23.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4764e64b269fc83b00f682c47443c2e6e85b18273712b98aa43bcb77f8570477", size = 2184033, upload-time = "2025-05-17T17:20:25.424Z" }, + { url = "https://files.pythonhosted.org/packages/54/16/0e11882deddf00f68b68dd4e8e442ddc30641f31afeb2bc25588124ac8de/pycryptodome-3.23.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb8f24adb74984aa0e5d07a2368ad95276cf38051fe2dc6605cbcf482e04f2a7", size = 2270142, upload-time = "2025-05-17T17:20:27.808Z" }, + { url = "https://files.pythonhosted.org/packages/d5/fc/4347fea23a3f95ffb931f383ff28b3f7b1fe868739182cb76718c0da86a1/pycryptodome-3.23.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d97618c9c6684a97ef7637ba43bdf6663a2e2e77efe0f863cce97a76af396446", size = 2309384, upload-time = "2025-05-17T17:20:30.765Z" }, + { url = "https://files.pythonhosted.org/packages/6e/d9/c5261780b69ce66d8cfab25d2797bd6e82ba0241804694cd48be41add5eb/pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9a53a4fe5cb075075d515797d6ce2f56772ea7e6a1e5e4b96cf78a14bac3d265", size = 2183237, upload-time = "2025-05-17T17:20:33.736Z" }, + { url = "https://files.pythonhosted.org/packages/5a/6f/3af2ffedd5cfa08c631f89452c6648c4d779e7772dfc388c77c920ca6bbf/pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:763d1d74f56f031788e5d307029caef067febf890cd1f8bf61183ae142f1a77b", size = 2343898, upload-time = "2025-05-17T17:20:36.086Z" }, + { url = "https://files.pythonhosted.org/packages/9a/dc/9060d807039ee5de6e2f260f72f3d70ac213993a804f5e67e0a73a56dd2f/pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:954af0e2bd7cea83ce72243b14e4fb518b18f0c1649b576d114973e2073b273d", size = 2269197, upload-time = "2025-05-17T17:20:38.414Z" }, + { url = "https://files.pythonhosted.org/packages/f9/34/e6c8ca177cb29dcc4967fef73f5de445912f93bd0343c9c33c8e5bf8cde8/pycryptodome-3.23.0-cp313-cp313t-win32.whl", hash = "sha256:257bb3572c63ad8ba40b89f6fc9d63a2a628e9f9708d31ee26560925ebe0210a", size = 1768600, upload-time = "2025-05-17T17:20:40.688Z" }, + { url = "https://files.pythonhosted.org/packages/e4/1d/89756b8d7ff623ad0160f4539da571d1f594d21ee6d68be130a6eccb39a4/pycryptodome-3.23.0-cp313-cp313t-win_amd64.whl", hash = "sha256:6501790c5b62a29fcb227bd6b62012181d886a767ce9ed03b303d1f22eb5c625", size = 1799740, upload-time = "2025-05-17T17:20:42.413Z" }, + { url = "https://files.pythonhosted.org/packages/5d/61/35a64f0feaea9fd07f0d91209e7be91726eb48c0f1bfc6720647194071e4/pycryptodome-3.23.0-cp313-cp313t-win_arm64.whl", hash = "sha256:9a77627a330ab23ca43b48b130e202582e91cc69619947840ea4d2d1be21eb39", size = 1703685, upload-time = "2025-05-17T17:20:44.388Z" }, + { url = "https://files.pythonhosted.org/packages/db/6c/a1f71542c969912bb0e106f64f60a56cc1f0fabecf9396f45accbe63fa68/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:187058ab80b3281b1de11c2e6842a357a1f71b42cb1e15bce373f3d238135c27", size = 2495627, upload-time = "2025-05-17T17:20:47.139Z" }, + { url = "https://files.pythonhosted.org/packages/6e/4e/a066527e079fc5002390c8acdd3aca431e6ea0a50ffd7201551175b47323/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cfb5cd445280c5b0a4e6187a7ce8de5a07b5f3f897f235caa11f1f435f182843", size = 1640362, upload-time = "2025-05-17T17:20:50.392Z" }, + { url = "https://files.pythonhosted.org/packages/50/52/adaf4c8c100a8c49d2bd058e5b551f73dfd8cb89eb4911e25a0c469b6b4e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67bd81fcbe34f43ad9422ee8fd4843c8e7198dd88dd3d40e6de42ee65fbe1490", size = 2182625, upload-time = "2025-05-17T17:20:52.866Z" }, + { url = "https://files.pythonhosted.org/packages/5f/e9/a09476d436d0ff1402ac3867d933c61805ec2326c6ea557aeeac3825604e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8987bd3307a39bc03df5c8e0e3d8be0c4c3518b7f044b0f4c15d1aa78f52575", size = 2268954, upload-time = "2025-05-17T17:20:55.027Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c5/ffe6474e0c551d54cab931918127c46d70cab8f114e0c2b5a3c071c2f484/pycryptodome-3.23.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa0698f65e5b570426fc31b8162ed4603b0c2841cbb9088e2b01641e3065915b", size = 2308534, upload-time = "2025-05-17T17:20:57.279Z" }, + { url = "https://files.pythonhosted.org/packages/18/28/e199677fc15ecf43010f2463fde4c1a53015d1fe95fb03bca2890836603a/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:53ecbafc2b55353edcebd64bf5da94a2a2cdf5090a6915bcca6eca6cc452585a", size = 2181853, upload-time = "2025-05-17T17:20:59.322Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ea/4fdb09f2165ce1365c9eaefef36625583371ee514db58dc9b65d3a255c4c/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:156df9667ad9f2ad26255926524e1c136d6664b741547deb0a86a9acf5ea631f", size = 2342465, upload-time = "2025-05-17T17:21:03.83Z" }, + { url = "https://files.pythonhosted.org/packages/22/82/6edc3fc42fe9284aead511394bac167693fb2b0e0395b28b8bedaa07ef04/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:dea827b4d55ee390dc89b2afe5927d4308a8b538ae91d9c6f7a5090f397af1aa", size = 2267414, upload-time = "2025-05-17T17:21:06.72Z" }, + { url = "https://files.pythonhosted.org/packages/59/fe/aae679b64363eb78326c7fdc9d06ec3de18bac68be4b612fc1fe8902693c/pycryptodome-3.23.0-cp37-abi3-win32.whl", hash = "sha256:507dbead45474b62b2bbe318eb1c4c8ee641077532067fec9c1aa82c31f84886", size = 1768484, upload-time = "2025-05-17T17:21:08.535Z" }, + { url = "https://files.pythonhosted.org/packages/54/2f/e97a1b8294db0daaa87012c24a7bb714147c7ade7656973fd6c736b484ff/pycryptodome-3.23.0-cp37-abi3-win_amd64.whl", hash = "sha256:c75b52aacc6c0c260f204cbdd834f76edc9fb0d8e0da9fbf8352ef58202564e2", size = 1799636, upload-time = "2025-05-17T17:21:10.393Z" }, + { url = "https://files.pythonhosted.org/packages/18/3d/f9441a0d798bf2b1e645adc3265e55706aead1255ccdad3856dbdcffec14/pycryptodome-3.23.0-cp37-abi3-win_arm64.whl", hash = "sha256:11eeeb6917903876f134b56ba11abe95c0b0fd5e3330def218083c7d98bbcb3c", size = 1703675, upload-time = "2025-05-17T17:21:13.146Z" }, +] + +[[package]] +name = "pydantic" +version = "2.11.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ff/5d/09a551ba512d7ca404d785072700d3f6727a02f6f3c24ecfd081c7cf0aa8/pydantic-2.11.9.tar.gz", hash = "sha256:6b8ffda597a14812a7975c90b82a8a2e777d9257aba3453f973acd3c032a18e2", size = 788495, upload-time = "2025-09-13T11:26:39.325Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3e/d3/108f2006987c58e76691d5ae5d200dd3e0f532cb4e5fa3560751c3a1feba/pydantic-2.11.9-py3-none-any.whl", hash = "sha256:c42dd626f5cfc1c6950ce6205ea58c93efa406da65f479dcb4029d5934857da2", size = 444855, upload-time = "2025-09-13T11:26:36.909Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.33.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", size = 435195, upload-time = "2025-04-23T18:33:52.104Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f", size = 2015688, upload-time = "2025-04-23T18:31:53.175Z" }, + { url = "https://files.pythonhosted.org/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6", size = 1844808, upload-time = "2025-04-23T18:31:54.79Z" }, + { url = "https://files.pythonhosted.org/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef", size = 1885580, upload-time = "2025-04-23T18:31:57.393Z" }, + { url = "https://files.pythonhosted.org/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a", size = 1973859, upload-time = "2025-04-23T18:31:59.065Z" }, + { url = "https://files.pythonhosted.org/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916", size = 2120810, upload-time = "2025-04-23T18:32:00.78Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a", size = 2676498, upload-time = "2025-04-23T18:32:02.418Z" }, + { url = "https://files.pythonhosted.org/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d", size = 2000611, upload-time = "2025-04-23T18:32:04.152Z" }, + { url = "https://files.pythonhosted.org/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56", size = 2107924, upload-time = "2025-04-23T18:32:06.129Z" }, + { url = "https://files.pythonhosted.org/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5", size = 2063196, upload-time = "2025-04-23T18:32:08.178Z" }, + { url = "https://files.pythonhosted.org/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e", size = 2236389, upload-time = "2025-04-23T18:32:10.242Z" }, + { url = "https://files.pythonhosted.org/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162", size = 2239223, upload-time = "2025-04-23T18:32:12.382Z" }, + { url = "https://files.pythonhosted.org/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849", size = 1900473, upload-time = "2025-04-23T18:32:14.034Z" }, + { url = "https://files.pythonhosted.org/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9", size = 1955269, upload-time = "2025-04-23T18:32:15.783Z" }, + { url = "https://files.pythonhosted.org/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9", size = 1893921, upload-time = "2025-04-23T18:32:18.473Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac", size = 1806162, upload-time = "2025-04-23T18:32:20.188Z" }, + { url = "https://files.pythonhosted.org/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5", size = 1981560, upload-time = "2025-04-23T18:32:22.354Z" }, + { url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9", size = 1935777, upload-time = "2025-04-23T18:32:25.088Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "regex" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/5a/4c63457fbcaf19d138d72b2e9b39405954f98c0349b31c601bfcb151582c/regex-2025.9.1.tar.gz", hash = "sha256:88ac07b38d20b54d79e704e38aa3bd2c0f8027432164226bdee201a1c0c9c9ff", size = 400852, upload-time = "2025-09-01T22:10:10.479Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/25/b2959ce90c6138c5142fe5264ee1f9b71a0c502ca4c7959302a749407c79/regex-2025.9.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bc6834727d1b98d710a63e6c823edf6ffbf5792eba35d3fa119531349d4142ef", size = 485932, upload-time = "2025-09-01T22:08:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/49/2e/6507a2a85f3f2be6643438b7bd976e67ad73223692d6988eb1ff444106d3/regex-2025.9.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c3dc05b6d579875719bccc5f3037b4dc80433d64e94681a0061845bd8863c025", size = 289568, upload-time = "2025-09-01T22:08:59.258Z" }, + { url = "https://files.pythonhosted.org/packages/c7/d8/de4a4b57215d99868f1640e062a7907e185ec7476b4b689e2345487c1ff4/regex-2025.9.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:22213527df4c985ec4a729b055a8306272d41d2f45908d7bacb79be0fa7a75ad", size = 286984, upload-time = "2025-09-01T22:09:00.835Z" }, + { url = "https://files.pythonhosted.org/packages/03/15/e8cb403403a57ed316e80661db0e54d7aa2efcd85cb6156f33cc18746922/regex-2025.9.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8e3f6e3c5a5a1adc3f7ea1b5aec89abfc2f4fbfba55dafb4343cd1d084f715b2", size = 797514, upload-time = "2025-09-01T22:09:02.538Z" }, + { url = "https://files.pythonhosted.org/packages/e4/26/2446f2b9585fed61faaa7e2bbce3aca7dd8df6554c32addee4c4caecf24a/regex-2025.9.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bcb89c02a0d6c2bec9b0bb2d8c78782699afe8434493bfa6b4021cc51503f249", size = 862586, upload-time = "2025-09-01T22:09:04.322Z" }, + { url = "https://files.pythonhosted.org/packages/fd/b8/82ffbe9c0992c31bbe6ae1c4b4e21269a5df2559102b90543c9b56724c3c/regex-2025.9.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b0e2f95413eb0c651cd1516a670036315b91b71767af83bc8525350d4375ccba", size = 910815, upload-time = "2025-09-01T22:09:05.978Z" }, + { url = "https://files.pythonhosted.org/packages/2f/d8/7303ea38911759c1ee30cc5bc623ee85d3196b733c51fd6703c34290a8d9/regex-2025.9.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:09a41dc039e1c97d3c2ed3e26523f748e58c4de3ea7a31f95e1cf9ff973fff5a", size = 802042, upload-time = "2025-09-01T22:09:07.865Z" }, + { url = "https://files.pythonhosted.org/packages/fc/0e/6ad51a55ed4b5af512bb3299a05d33309bda1c1d1e1808fa869a0bed31bc/regex-2025.9.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4f0b4258b161094f66857a26ee938d3fe7b8a5063861e44571215c44fbf0e5df", size = 786764, upload-time = "2025-09-01T22:09:09.362Z" }, + { url = "https://files.pythonhosted.org/packages/8d/d5/394e3ffae6baa5a9217bbd14d96e0e5da47bb069d0dbb8278e2681a2b938/regex-2025.9.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:bf70e18ac390e6977ea7e56f921768002cb0fa359c4199606c7219854ae332e0", size = 856557, upload-time = "2025-09-01T22:09:11.129Z" }, + { url = "https://files.pythonhosted.org/packages/cd/80/b288d3910c41194ad081b9fb4b371b76b0bbfdce93e7709fc98df27b37dc/regex-2025.9.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b84036511e1d2bb0a4ff1aec26951caa2dea8772b223c9e8a19ed8885b32dbac", size = 849108, upload-time = "2025-09-01T22:09:12.877Z" }, + { url = "https://files.pythonhosted.org/packages/d1/cd/5ec76bf626d0d5abdc277b7a1734696f5f3d14fbb4a3e2540665bc305d85/regex-2025.9.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c2e05dcdfe224047f2a59e70408274c325d019aad96227ab959403ba7d58d2d7", size = 788201, upload-time = "2025-09-01T22:09:14.561Z" }, + { url = "https://files.pythonhosted.org/packages/b5/36/674672f3fdead107565a2499f3007788b878188acec6d42bc141c5366c2c/regex-2025.9.1-cp313-cp313-win32.whl", hash = "sha256:3b9a62107a7441b81ca98261808fed30ae36ba06c8b7ee435308806bd53c1ed8", size = 264508, upload-time = "2025-09-01T22:09:16.193Z" }, + { url = "https://files.pythonhosted.org/packages/83/ad/931134539515eb64ce36c24457a98b83c1b2e2d45adf3254b94df3735a76/regex-2025.9.1-cp313-cp313-win_amd64.whl", hash = "sha256:b38afecc10c177eb34cfae68d669d5161880849ba70c05cbfbe409f08cc939d7", size = 275469, upload-time = "2025-09-01T22:09:17.462Z" }, + { url = "https://files.pythonhosted.org/packages/24/8c/96d34e61c0e4e9248836bf86d69cb224fd222f270fa9045b24e218b65604/regex-2025.9.1-cp313-cp313-win_arm64.whl", hash = "sha256:ec329890ad5e7ed9fc292858554d28d58d56bf62cf964faf0aa57964b21155a0", size = 268586, upload-time = "2025-09-01T22:09:18.948Z" }, + { url = "https://files.pythonhosted.org/packages/21/b1/453cbea5323b049181ec6344a803777914074b9726c9c5dc76749966d12d/regex-2025.9.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:72fb7a016467d364546f22b5ae86c45680a4e0de6b2a6f67441d22172ff641f1", size = 486111, upload-time = "2025-09-01T22:09:20.734Z" }, + { url = "https://files.pythonhosted.org/packages/f6/0e/92577f197bd2f7652c5e2857f399936c1876978474ecc5b068c6d8a79c86/regex-2025.9.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:c9527fa74eba53f98ad86be2ba003b3ebe97e94b6eb2b916b31b5f055622ef03", size = 289520, upload-time = "2025-09-01T22:09:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/af/c6/b472398116cca7ea5a6c4d5ccd0fc543f7fd2492cb0c48d2852a11972f73/regex-2025.9.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c905d925d194c83a63f92422af7544ec188301451b292c8b487f0543726107ca", size = 287215, upload-time = "2025-09-01T22:09:23.657Z" }, + { url = "https://files.pythonhosted.org/packages/cf/11/f12ecb0cf9ca792a32bb92f758589a84149017467a544f2f6bfb45c0356d/regex-2025.9.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:74df7c74a63adcad314426b1f4ea6054a5ab25d05b0244f0c07ff9ce640fa597", size = 797855, upload-time = "2025-09-01T22:09:25.197Z" }, + { url = "https://files.pythonhosted.org/packages/46/88/bbb848f719a540fb5997e71310f16f0b33a92c5d4b4d72d4311487fff2a3/regex-2025.9.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4f6e935e98ea48c7a2e8be44494de337b57a204470e7f9c9c42f912c414cd6f5", size = 863363, upload-time = "2025-09-01T22:09:26.705Z" }, + { url = "https://files.pythonhosted.org/packages/54/a9/2321eb3e2838f575a78d48e03c1e83ea61bd08b74b7ebbdeca8abc50fc25/regex-2025.9.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4a62d033cd9ebefc7c5e466731a508dfabee827d80b13f455de68a50d3c2543d", size = 910202, upload-time = "2025-09-01T22:09:28.906Z" }, + { url = "https://files.pythonhosted.org/packages/33/07/d1d70835d7d11b7e126181f316f7213c4572ecf5c5c97bdbb969fb1f38a2/regex-2025.9.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ef971ebf2b93bdc88d8337238be4dfb851cc97ed6808eb04870ef67589415171", size = 801808, upload-time = "2025-09-01T22:09:30.733Z" }, + { url = "https://files.pythonhosted.org/packages/13/d1/29e4d1bed514ef2bf3a4ead3cb8bb88ca8af94130239a4e68aa765c35b1c/regex-2025.9.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d936a1db208bdca0eca1f2bb2c1ba1d8370b226785c1e6db76e32a228ffd0ad5", size = 786824, upload-time = "2025-09-01T22:09:32.61Z" }, + { url = "https://files.pythonhosted.org/packages/33/27/20d8ccb1bee460faaa851e6e7cc4cfe852a42b70caa1dca22721ba19f02f/regex-2025.9.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:7e786d9e4469698fc63815b8de08a89165a0aa851720eb99f5e0ea9d51dd2b6a", size = 857406, upload-time = "2025-09-01T22:09:34.117Z" }, + { url = "https://files.pythonhosted.org/packages/74/fe/60c6132262dc36430d51e0c46c49927d113d3a38c1aba6a26c7744c84cf3/regex-2025.9.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:6b81d7dbc5466ad2c57ce3a0ddb717858fe1a29535c8866f8514d785fdb9fc5b", size = 848593, upload-time = "2025-09-01T22:09:35.598Z" }, + { url = "https://files.pythonhosted.org/packages/cc/ae/2d4ff915622fabbef1af28387bf71e7f2f4944a348b8460d061e85e29bf0/regex-2025.9.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:cd4890e184a6feb0ef195338a6ce68906a8903a0f2eb7e0ab727dbc0a3156273", size = 787951, upload-time = "2025-09-01T22:09:37.139Z" }, + { url = "https://files.pythonhosted.org/packages/85/37/dc127703a9e715a284cc2f7dbdd8a9776fd813c85c126eddbcbdd1ca5fec/regex-2025.9.1-cp314-cp314-win32.whl", hash = "sha256:34679a86230e46164c9e0396b56cab13c0505972343880b9e705083cc5b8ec86", size = 269833, upload-time = "2025-09-01T22:09:39.245Z" }, + { url = "https://files.pythonhosted.org/packages/83/bf/4bed4d3d0570e16771defd5f8f15f7ea2311edcbe91077436d6908956c4a/regex-2025.9.1-cp314-cp314-win_amd64.whl", hash = "sha256:a1196e530a6bfa5f4bde029ac5b0295a6ecfaaffbfffede4bbaf4061d9455b70", size = 278742, upload-time = "2025-09-01T22:09:40.651Z" }, + { url = "https://files.pythonhosted.org/packages/cf/3e/7d7ac6fd085023312421e0d69dfabdfb28e116e513fadbe9afe710c01893/regex-2025.9.1-cp314-cp314-win_arm64.whl", hash = "sha256:f46d525934871ea772930e997d577d48c6983e50f206ff7b66d4ac5f8941e993", size = 271860, upload-time = "2025-09-01T22:09:42.413Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "rlp" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "eth-utils" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1b/2d/439b0728a92964a04d9c88ea1ca9ebb128893fbbd5834faa31f987f2fd4c/rlp-4.1.0.tar.gz", hash = "sha256:be07564270a96f3e225e2c107db263de96b5bc1f27722d2855bd3459a08e95a9", size = 33429, upload-time = "2025-02-04T22:05:59.089Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/fb/e4c0ced9893b84ac95b7181d69a9786ce5879aeb3bbbcbba80a164f85d6a/rlp-4.1.0-py3-none-any.whl", hash = "sha256:8eca394c579bad34ee0b937aecb96a57052ff3716e19c7a578883e767bc5da6f", size = 19973, upload-time = "2025-02-04T22:05:57.05Z" }, +] + +[[package]] +name = "s3transfer" +version = "0.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/62/74/8d69dcb7a9efe8baa2046891735e5dfe433ad558ae23d9e3c14c633d1d58/s3transfer-0.14.0.tar.gz", hash = "sha256:eff12264e7c8b4985074ccce27a3b38a485bb7f7422cc8046fee9be4983e4125", size = 151547, upload-time = "2025-09-09T19:23:31.089Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/f0/ae7ca09223a81a1d890b2557186ea015f6e0502e9b8cb8e1813f1d8cfa4e/s3transfer-0.14.0-py3-none-any.whl", hash = "sha256:ea3b790c7077558ed1f02a3072fb3cb992bbbd253392f4b6e9e8976941c7d456", size = 85712, upload-time = "2025-09-09T19:23:30.041Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "toml" +version = "0.10.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/ba/1f744cdc819428fc6b5084ec34d9b30660f6f9daaf70eead706e3203ec3c/toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f", size = 22253, upload-time = "2020-11-01T01:40:22.204Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", size = 16588, upload-time = "2020-11-01T01:40:20.672Z" }, +] + +[[package]] +name = "toolz" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/0b/d80dfa675bf592f636d1ea0b835eab4ec8df6e9415d8cfd766df54456123/toolz-1.0.0.tar.gz", hash = "sha256:2c86e3d9a04798ac556793bced838816296a2f085017664e4995cb40a1047a02", size = 66790, upload-time = "2024-10-04T16:17:04.001Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/03/98/eb27cc78ad3af8e302c9d8ff4977f5026676e130d28dd7578132a457170c/toolz-1.0.0-py3-none-any.whl", hash = "sha256:292c8f1c4e7516bf9086f8850935c799a874039c8bcf959d47b600e4c44a6236", size = 56383, upload-time = "2024-10-04T16:17:01.533Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28", size = 75726, upload-time = "2025-05-21T18:55:23.885Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51", size = 14552, upload-time = "2025-05-21T18:55:22.152Z" }, +] + +[[package]] +name = "urllib3" +version = "2.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" }, +] + +[[package]] +name = "websocket-client" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e6/30/fba0d96b4b5fbf5948ed3f4681f7da2f9f64512e1d303f94b4cc174c24a5/websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da", size = 54648, upload-time = "2024-04-23T22:16:16.976Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526", size = 58826, upload-time = "2024-04-23T22:16:14.422Z" }, +] + +[[package]] +name = "websockets" +version = "15.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016, upload-time = "2025-03-05T20:03:41.606Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/9f/51f0cf64471a9d2b4d0fc6c534f323b664e7095640c34562f5182e5a7195/websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931", size = 175440, upload-time = "2025-03-05T20:02:36.695Z" }, + { url = "https://files.pythonhosted.org/packages/8a/05/aa116ec9943c718905997412c5989f7ed671bc0188ee2ba89520e8765d7b/websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675", size = 173098, upload-time = "2025-03-05T20:02:37.985Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0b/33cef55ff24f2d92924923c99926dcce78e7bd922d649467f0eda8368923/websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151", size = 173329, upload-time = "2025-03-05T20:02:39.298Z" }, + { url = "https://files.pythonhosted.org/packages/31/1d/063b25dcc01faa8fada1469bdf769de3768b7044eac9d41f734fd7b6ad6d/websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22", size = 183111, upload-time = "2025-03-05T20:02:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/93/53/9a87ee494a51bf63e4ec9241c1ccc4f7c2f45fff85d5bde2ff74fcb68b9e/websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f", size = 182054, upload-time = "2025-03-05T20:02:41.926Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8", size = 182496, upload-time = "2025-03-05T20:02:43.304Z" }, + { url = "https://files.pythonhosted.org/packages/98/41/e7038944ed0abf34c45aa4635ba28136f06052e08fc2168520bb8b25149f/websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375", size = 182829, upload-time = "2025-03-05T20:02:48.812Z" }, + { url = "https://files.pythonhosted.org/packages/e0/17/de15b6158680c7623c6ef0db361da965ab25d813ae54fcfeae2e5b9ef910/websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d", size = 182217, upload-time = "2025-03-05T20:02:50.14Z" }, + { url = "https://files.pythonhosted.org/packages/33/2b/1f168cb6041853eef0362fb9554c3824367c5560cbdaad89ac40f8c2edfc/websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", size = 182195, upload-time = "2025-03-05T20:02:51.561Z" }, + { url = "https://files.pythonhosted.org/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393, upload-time = "2025-03-05T20:02:53.814Z" }, + { url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837, upload-time = "2025-03-05T20:02:55.237Z" }, + { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, +] + +[[package]] +name = "win32-setctime" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b3/8f/705086c9d734d3b663af0e9bb3d4de6578d08f46b1b101c2442fd9aecaa2/win32_setctime-1.2.0.tar.gz", hash = "sha256:ae1fdf948f5640aae05c511ade119313fb6a30d7eabe25fef9764dca5873c4c0", size = 4867, upload-time = "2024-12-07T15:28:28.314Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/07/c6fe3ad3e685340704d314d765b7912993bcb8dc198f0e7a89382d37974b/win32_setctime-1.2.0-py3-none-any.whl", hash = "sha256:95d644c4e708aba81dc3704a116d8cbc974d70b3bdb8be1d150e36be6e9d1390", size = 4083, upload-time = "2024-12-07T15:28:26.465Z" }, +] + +[[package]] +name = "zipp" +version = "3.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, +] diff --git a/lazer/publisher_sdk/rust/Cargo.toml b/lazer/publisher_sdk/rust/Cargo.toml index b1cbc3d1e5..a805bef5fe 100644 --- a/lazer/publisher_sdk/rust/Cargo.toml +++ b/lazer/publisher_sdk/rust/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "pyth-lazer-publisher-sdk" -version = "0.12.0" +version = "0.12.1" edition = "2021" description = "Pyth Lazer Publisher SDK types." license = "Apache-2.0" repository = "https://github.com/pyth-network/pyth-crosschain" [dependencies] -pyth-lazer-protocol = { version = "0.15.0", path = "../../sdk/rust/protocol" } +pyth-lazer-protocol = { version = "0.15.1", path = "../../sdk/rust/protocol" } anyhow = "1.0.98" protobuf = "3.7.2" serde_json = "1.0.140" diff --git a/lazer/sdk/rust/client/Cargo.toml b/lazer/sdk/rust/client/Cargo.toml index f93285720c..11d544ee04 100644 --- a/lazer/sdk/rust/client/Cargo.toml +++ b/lazer/sdk/rust/client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyth-lazer-client" -version = "8.0.0" +version = "8.0.1" edition = "2021" description = "A Rust client for Pyth Lazer" license = "Apache-2.0" diff --git a/lazer/sdk/rust/client/src/stream_client.rs b/lazer/sdk/rust/client/src/stream_client.rs index 18fc868227..091b36db4d 100644 --- a/lazer/sdk/rust/client/src/stream_client.rs +++ b/lazer/sdk/rust/client/src/stream_client.rs @@ -183,7 +183,7 @@ impl PythLazerStreamClient { if seen_updates.contains_key(&cache_key) { continue; } - seen_updates.insert(cache_key, response.clone(), DEDUP_TTL); + seen_updates.insert(cache_key, true, DEDUP_TTL); match sender.try_send(response) { Ok(_) => (), diff --git a/lazer/sdk/rust/protocol/Cargo.toml b/lazer/sdk/rust/protocol/Cargo.toml index c95e0e85c0..f73a098bc9 100644 --- a/lazer/sdk/rust/protocol/Cargo.toml +++ b/lazer/sdk/rust/protocol/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyth-lazer-protocol" -version = "0.15.0" +version = "0.15.1" edition = "2021" description = "Pyth Lazer SDK - protocol types." license = "Apache-2.0" diff --git a/lazer/sdk/rust/protocol/src/jrpc.rs b/lazer/sdk/rust/protocol/src/jrpc.rs index ed5e67870d..c14c22f12b 100644 --- a/lazer/sdk/rust/protocol/src/jrpc.rs +++ b/lazer/sdk/rust/protocol/src/jrpc.rs @@ -19,6 +19,7 @@ pub struct PythLazerAgentJrpcV1 { #[serde(rename_all = "snake_case")] pub enum JrpcCall { PushUpdate(FeedUpdateParams), + PushUpdates(Vec), GetMetadata(GetMetadataParams), } diff --git a/packages/component-library/src/theme.scss b/packages/component-library/src/theme.scss index ba1e93b1d5..0587c74df4 100644 --- a/packages/component-library/src/theme.scss +++ b/packages/component-library/src/theme.scss @@ -30,6 +30,21 @@ $font-weight: ( @return map-get-strict($font-weight, $weight); } +$font-family: ( + "monospace": ( + "ui-monospace", + "sfmono-regular", + "consolas", + "Liberation Mono", + "menlo", + "monospace", + ), +); + +@function font-family($family) { + @return map-get-strict($font-family, $family); +} + $font-size: ( "xxs": 0.6875rem, "xs": 0.75rem,