0.5.0 • Published 3 days ago

@redstone-finance/starknet-connector v0.5.0

Weekly downloads
-
License
MIT
Repository
-
Last release
3 days ago

🔗 @redstone-finance/starknet-connector

License Discord NPM Twitter

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

📦 Installation

Install @redstone-finance/starknet-connector from NPM registry

# Using yarn
yarn add @redstone-finance/starknet-connector

# Using NPM
npm install @redstone-finance/starknet-connector

🔥 Getting started

1. The contract

You can read here how the contract works. Here also you can find the description of the whole RedStone Oracle model.

2. Connecting to the contract

First, you need to import the connector code to your project

// Typescript
import {StarknetPricesContractConnector, StarknetContractParamsProvider} from "@redstone-finance/starknet-connector";

// Javascript
const {
    StarknetPricesContractConnector,
    StarknetContractParamsProvider
} = require("@redstone-finance/starknet-connector");

Then you can invoke the contract methods described above pointing to the selected redstone data service and requested data feeds.

const prices = new StarknetPricesContractConnector(account, yourContractAddress, "goerli-alpha");

const paramsProvider = new StarknetContractParamsProvider({
    dataServiceId: "avalanche-main-data-service",
    uniqueSignersCount: 1,
    dataFeeds: ["ETH", "AVAX", "BTC"]
});

The account param is needed to be passed for storage-write-methods. Otherwise, it can remain undefined.

Now you can access any of the contract's methods by invoking the code:

(await prices.getAdapter()).getPricesFromPayload(paramsProvider);
(await prices.getAdapter()).writePricesFromPayloadToContract(paramsProvider);
(await prices.getAdapter()).readPricesFromContract(paramsProvider);
(await prices.getAdapter()).readTimestampFromContract();

👨‍💻 Development and contributions

The codebase consists of a wrapper written in typescript which is responsible for packing the data and cairo 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

yarn install

📄 License

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

0.5.0-alpha.0

3 days ago

0.5.0

3 days ago

0.4.0-alpha.0

1 month ago

0.4.0

1 month ago

0.3.6

6 months ago

0.3.5

6 months ago

0.3.3-alpha.0

8 months ago

0.3.4

7 months ago

0.3.3

7 months ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.1

1 year ago

0.2.0

1 year ago