0.0.1 • Published 9 months ago

@noves/intent-typescript-sdk v0.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
9 months ago

Noves Intent TypeScript SDK

The official TypeScript SDK for interacting with Noves Intents, providing seamless access to blockchain data and analytics.

Features

  • 🎯 Intent-based data querying
  • 🔄 Real-time data streaming
  • 🔒 Type-safe API
  • ⚡ Optimized for both client and server environments
  • 🌐 Cross-chain support

Installation

npm install @noves/intent-ts-sdk

Quick Start

import { ClientSideIntentSDK } from "@noves/intent-typescript-sdk";
const sdk = new ClientSideIntentSDK();
// Get available intents
const intents = await sdk.getIntents();
console.log(intents);

Client-Side Usage

The client-side SDK is optimized for browser environments and uses WebSocket for streaming data.

import { ClientSideIntentSDK } from "@noves/intent-typescript-sdk";
const sdk = new ClientSideIntentSDK();
// Get a single value
const data = await sdk.getValue("token-price-history", {
  chain: "ethereum",
  token_address: "0x..."
});
// Stream real-time data
sdk.getStream(
  "token-price-ticks",
  {
    chain: "ethereum",
    token_address: "0x..."
  },
  (data) => console.log("New price:", data),
  (error) => console.error("Stream error:", error),
  () => console.log("Stream completed")
);
// Stop streaming
sdk.stopStream("token-price-ticks");

Server-Side Usage

The server-side SDK is optimized for Node.js environments and uses gRPC for streaming data.

import { ServerSideIntentSDK } from "@noves/intent-typescript-sdk/server";
const sdk = new ServerSideIntentSDK();
// Get a single value
const data = await sdk.getValue("wallet-view", {
  chain: "avalanche",
  address: "0x..."
});
// Stream data with gRPC
sdk.getStream(
  "live-bridge-txs",
  {},
  (data) => console.log("New bridge transaction:", data),
  (error) => console.error("Stream error:", error),
  () => console.log("Stream completed")
);
// Stop streaming
sdk.stopStream("live-bridge-txs");

Core Methods

getIntents()

Returns a list of all available intents.

const intents = await sdk.getIntents();

getValue(intentId, params, pageSize?)

Executes a value intent and returns the result.

const result = await sdk.getValue("intent-id", {
  param1: "value1",
  param2: "value2"
});

getStream(intentId, params, onData, onError?, onComplete?)

Initiates a data stream for the specified intent.

sdk.getStream(
  "intent-id",
  { param1: "value1" },
  (data) => console.log(data),
  (error) => console.error(error),
  () => console.log("Stream ended")
);

Type Safety

The SDK provides full TypeScript support with auto-generated types for all intents and their parameters.

import { ValueIntentId, StreamableIntentId } from "@noves/intent-typescript-sdk";
// Type-safe intent IDs
const valueIntent: ValueIntentId = "token-price-history";
const streamIntent: StreamableIntentId = "token-price-ticks";

Error Handling

The SDK handles errors gracefully with proper error types and messages.

import { IntentSDKError } from "@noves/intent-typescript-sdk";
try {
  await sdk.getValue("non-existent-intent");
} catch (error) {
  if (error instanceof IntentSDKError) {
    console.error("SDK Error:", error.message);
  }
}

Support

Feel free to join our Telegram community to get help or feedback.

0.0.1

9 months ago

0.0.1-alpha.18

9 months ago

0.0.1-alpha.17

9 months ago

0.0.1-alpha.16

9 months ago

0.0.1-alpha.15

9 months ago

0.0.1-alpha.14

9 months ago

0.0.1-alpha.13

9 months ago

0.0.1-alpha.12

9 months ago

0.0.1-alpha.11

9 months ago

0.0.1-alpha.10

9 months ago

0.0.1-alpha.9

9 months ago

0.0.1-alpha.8

9 months ago

0.0.1-alpha.6

9 months ago

0.0.1-alpha.5

9 months ago

0.0.1-alpha.4

9 months ago

0.0.1-alpha.2

9 months ago

0.0.1-alpha.1

9 months ago

0.0.1-alpha.0

9 months ago