Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

mango-sprocket-sdk

TypeScript SDK for interacting with the Daily Check-In Streaks Clarity contract on Stacks.

Deployed Mainnet Contract

  • Contract ID: SP2V3QE7H5D09N108CJ4QPS281Z3XAZVD87R8FJ27.daily-streaks

Features

  • Typed read-only helpers for profile, challenge, and aggregate stats
  • Transaction payload builders for all core write functions
  • Compatible with @stacks/connect request APIs
  • Strict TypeScript + lint + test + build pipeline

Installation

npm install @praiseafk/mango-sprocket-sdk @stacks/transactions

Quick Start

import {
  DAILY_STREAKS_CONTRACT_NAME,
  DAILY_STREAKS_MAINNET_CONTRACT_ADDRESS,
  DailyCheckinSDK,
} from "@praiseafk/mango-sprocket-sdk";

const sdk = new DailyCheckinSDK({
  contractAddress: DAILY_STREAKS_MAINNET_CONTRACT_ADDRESS,
  contractName: DAILY_STREAKS_CONTRACT_NAME,
  network: "mainnet",
  apiBaseUrl: "https://api.hiro.so",
});

const globalStats = await sdk.getGlobalStats();
console.log(globalStats.totalUsers);

const payload = sdk.buildCheckIn("checked in from sdk");

Contract Call with Stacks Connect

import { request } from "@stacks/connect";

const payload = sdk.buildCheckIn("shipping this today");
await sdk.requestContractCall(request, payload);

End-to-End Examples

A write flow example (check-in + challenge submission) is available in:

  • examples/connect-flow.ts

A read-only dashboard example (global stats + profile + latest note) is available in:

  • examples/read-only-dashboard.ts

API Overview

Read-only methods

  • getGlobalStats(sender?)
  • getProfile(principal, sender?)
  • getLatestNote(principal, sender?)
  • getChallenge(challengeId, sender?)

Transaction payload builders

  • buildCheckIn(note?)
  • buildUseFreezePass()
  • buildCreateChallenge(title, startBurnHeight, endBurnHeight)
  • buildJoinChallenge(challengeId)
  • buildSubmitChallengeCheckin(challengeId, note?)
  • buildAddFriend(friendPrincipal)
  • buildCreateGroup(name, maxMembers)
  • buildJoinGroup(groupId)

Development

npm run lint
npm run typecheck
npm test
npm run build

Publish Checklist

npm run prepublishOnly
npm run pack:check
npm run publish:dry-run

Publish to npm

npm login
npm publish --access public

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages