mango-sprocket-sdk
v0.1.2
Published
TypeScript SDK for interacting with Daily Check-In Streaks Clarity contracts on the Stacks blockchain
Maintainers
Readme
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/connectrequest APIs - Strict TypeScript + lint + test + build pipeline
Installation
npm install @praiseafk/mango-sprocket-sdk @stacks/transactionsQuick 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 buildPublish Checklist
npm run prepublishOnly
npm run pack:check
npm run publish:dry-runPublish to npm
npm login
npm publish --access publicLicense
MIT
