open-index/open-npm huggingface dataset:
npm package: @redstone-finance/cache-service
Description: This is a NestJS web app, which serves as a gateway to the data in the RedStone ecosystem.
Latest version: 0.9.0

# redstone-cache-service

This is a NestJS web app, which serves as a gateway to the data in the RedStone ecosystem.

## Endpoints

- data-packages (main)
  - \[MAYBE\] the first 2 endpoints will be replaced with graphql
  - GET /data-packages/latest (query params: signerAddress, limit, dataServiceId)
  - GET /data-packages (query params: toTimestamp, signerAddress, limit, dataServiceId)
  - POST /data-packages (body = a single package)
  - POST /data-packages/bulk (body = array of data packages)
- other (helpful endpoints)
  - GET /oracle-registry-state
  - GET /symbols-metadata

## Background jobs

- oracle-registry-state-updater (run each 2 minutes)
- streamr-listener (will listen on all data packages in the redstone-ecosystem and save it in DB) (will be disabled in nodes with direct posting)
- db-cleaner (will be launched every 1 hour, will remove too old data, e.g. data older than 7 days)

- Key differences
  - Now we will force each node operator to create a stream in the streamr network
  - Each node will broadcast data packages to the streamr network and additionally will broadcast them to 2 cache services hosted by RedStone (for faster data access)
  - Cache layer nodes will by default listen on streamr and cache data in DB
  - Thanks to streamr cache layers nodes will won't need to push data every 3 seconds, they can do it in the same way as before, in each iteration
  - RedStone community and partners will be able to launch cache services
  - We will use additional hosted uptime-kuma to notify developers in case of problems
    - There are 2 ways to handle this
      1. Use push monitor type with upside-down mode (push errors to the uptime-kuma service with helpful messages)
      2. Use HTTP keyword fetching, and add to cache-services some additonal `/status` endpoint
npm package: @redstone-finance/chain-agnostic-oracle-tests
Description: Unified tests configuration that should be used to test each new RedStone Oracles implementation (e.g. Non-EVM chains).
Latest version: 0.9.0

# Redstone oracle chain-agnostic tests

Unified tests configuration that should be used to test each new RedStone Oracles implementation (e.g. Non-EVM chains).

The test cases are defined in this package, so it should be enough to write an engine to run all of them, minimising code duplication.

Examples of engines:
- packages/evm-connector/test/chain-agnostic/chain-agnostic.test.ts
- packages/on-chain-relayer/test/contracts/chain-agnostic/chain-agnostic.test.ts

## Principles for the test engines
- Connect as close as possible to the real contract instance that will be deployed on a blockchain
- If some tests are difficult (impossible) to connect, don't skip them. Instead, think about the **minimal** required updates in the chain-agnostic-oracle-tests package to support these test cases in your connector
- Add chain-agnostic tests to CI
- Do mutation testing in your tests engine (e.g. switch expectedSuccess to !expectedSuccess and verify if all tests fail)
npm package: @redstone-finance/erc7412
Description: ## [DOCS](https://docs.redstone.finance/docs/smart-contract-devs/get-started/redstone-erc7412)
Latest version: 0.9.0

# ERC7412

## [DOCS](https://docs.redstone.finance/docs/smart-contract-devs/get-started/redstone-erc7412)
npm package: @redstone-finance/evm-connector
Description: A tool to inject RedStone data into EVM compatible smart contracts
Latest version: 0.9.0

# 🔗 @redstone-finance/evm-connector

[![License](https://img.shields.io/badge/license-MIT-green)](https://choosealicense.com/licenses/mit/)
[![Discord](https://img.shields.io/discord/786251205008949258?logo=discord)](https://discord.gg/2CT6hN6C)
[![NPM](https://img.shields.io/npm/v/@redstone-finance/evm-connector)](https://www.npmjs.com/package/@redstone-finance/evm-connector)
[![Twitter](https://img.shields.io/twitter/follow/redstone_defi?style=flat&logo=twitter)](https://twitter.com/intent/follow?screen_name=redstone_defi)

The @redstone-finance/evm-connector module implements an alternative design of providing oracle data to smart contracts. Instead of constantly persisting data on EVM storage (by data providers), the information is brought on-chain only when needed (by end users). Until that moment data remains in the decentralized cache layer, which is powered by RedStone light cache gateways and streamr data broadcasting protocol. Data is transferred to the EVM by end users, who should attach signed data packages to their transaction calldata. The information integrity is verified on-chain through signature checking.

## Getting started

Please refer to [documentation](https://docs.redstone.finance/docs/smart-contract-devs/get-started/redstone-core)

## 👨‍💻 Development and contributions

The codebase consists of a wrapper written in typescript which is responsible for packing the data and solidity smart contracts that extract the information. We encourage anyone to build and test the code and we welcome any issues with suggestions and pull requests.

### Installing the dependencies

```bash
yarn install
```

### Compiling and running the tests

```bash
yarn test
```

## 📄 License

RedStone EVM connector is an open-source and free software released under the BUSL-1.1 License.