1.0.2 • Published 6 months ago
@steerprotocol/api-sdk v1.0.2
Smart Rewards SDK
A TypeScript SDK for interacting with the Smart Rewards protocol. This SDK provides a type-safe way to query campaigns, rewards, and user data from the Smart Rewards GraphQL API.
Installation
npm install @steer-protocol/smart-rewards-sdk
# or
yarn add @steer-protocol/smart-rewards-sdk
Quick Start
import { createClient } from '@steer-protocol/smart-rewards-sdk';
// Initialize the SDK
const sdk = createClient('YOUR_API_ENDPOINT', {
// Optional headers
// authorization: 'Bearer YOUR_TOKEN'
});
// Query active campaigns
const campaigns = await sdk.campaigns({
first: 10,
filter: {
status: CampaignStatus.Active
}
});
Features
- 🔒 Type-safe GraphQL queries
- 📊 Campaign management
- 💰 Reward tracking
- 👤 User balance monitoring
- 🏦 Vault interactions
API Reference
Client Initialization
createClient(endpoint: string, headers?: Record<string, string>)
Creates a new SDK client instance.
Campaigns
campaigns()
: Query campaigns with filtering and paginationcampaign(id: string)
: Get details of a specific campaigncampaignsByPool(poolId: string, chainId: number)
: Get campaigns for a specific pool
Rewards
rewards()
: Get all rewards across campaignsuserRewards(options)
: Get rewards for a specific userclaimRewards(options)
: Query claimed rewardsrewardByCampaignId(id: string)
: Get rewards for a specific campaign
Vaults
vaults()
: Query vaults with filtering and paginationvault(id: string, chainId: number)
: Get details of a specific vaultvaultAPRs()
: Get APR data for vaults
Pools
pools()
: Query pools with filtering and paginationpool(id: string, chainId: number)
: Get details of a specific pool
Examples
Check out the examples directory for more detailed usage examples:
- Basic Usage: Core SDK functionality
- Campaign Management
- Reward Tracking
- User Operations
Type Definitions
The SDK provides comprehensive TypeScript definitions for all operations:
- Campaign types
- Reward structures
- Vault configurations
- Pool information
- User data
Error Handling
The SDK uses standard Promise-based error handling. Wrap your calls in try-catch blocks:
try {
const result = await sdk.campaigns();
} catch (error) {
console.error('Error fetching campaigns:', error);
}
Contributing
We welcome contributions! Please see our Contributing Guide for details.