UNPKG

jito-distributor-sdk

Version:

TypeScript SDK for JITO Merkle Distributor with production-ready versioning and double-hashing support

112 lines (111 loc) 2.51 kB
import { PublicKey } from '@solana/web3.js'; import { BN } from '@coral-xyz/anchor'; /** * Program ID for the Merkle Distributor program */ export declare const PROGRAM_ID: PublicKey; /** * Account types */ export interface MerkleDistributor { bump: number; version: BN; root: number[]; mint: PublicKey; tokenVault: PublicKey; maxTotalClaim: BN; maxNumNodes: BN; totalAmountClaimed: BN; numNodesClaimed: BN; startTs: BN; endTs: BN; clawbackStartTs: BN; clawbackReceiver: PublicKey; admin: PublicKey; clawedBack: boolean; } export interface ClaimStatus { claimant: PublicKey; lockedAmount: BN; lockedAmountWithdrawn: BN; unlockedAmount: BN; } /** * Instruction parameter types */ export interface NewDistributorParams { version: BN; root: number[]; maxTotalClaim: BN; maxNumNodes: BN; startVestingTs: BN; endVestingTs: BN; clawbackStartTs: BN; } export interface NewClaimParams { amountUnlocked: BN; amountLocked: BN; proof: number[][]; } /** * Event types */ export interface NewClaimEvent { claimant: PublicKey; timestamp: BN; } export interface ClaimedEvent { claimant: PublicKey; amount: BN; } /** * Error codes */ export declare enum DistributorError { InsufficientUnlockedTokens = 6000, StartTooFarInFuture = 6001, InvalidProof = 6002, ExceededMaxClaim = 6003, MaxNodesExceeded = 6004, Unauthorized = 6005, OwnerMismatch = 6006, ClawbackDuringVesting = 6007, ClawbackBeforeStart = 6008, ClawbackAlreadyClaimed = 6009, InsufficientClawbackDelay = 6010, SameClawbackReceiver = 6011, SameAdmin = 6012, ClaimExpired = 6013, ArithmeticError = 6014, StartTimestampAfterEnd = 6015, TimestampsNotInFuture = 6016, InvalidVersion = 6017 } /** * Helper types for SDK functions */ export interface CreateDistributorArgs { mint: PublicKey; version: bigint; root: Uint8Array; maxTotalClaim: bigint; maxNumNodes: bigint; startVestingTs: bigint; endVestingTs: bigint; clawbackStartTs: bigint; clawbackReceiver: PublicKey; admin: PublicKey; } export interface ClaimArgs { claimant: PublicKey; distributor: PublicKey; claimantTokenAccount: PublicKey; amountUnlocked: bigint; amountLocked: bigint; proof: Uint8Array[]; } export interface ClaimLockedArgs { claimant: PublicKey; distributor: PublicKey; claimantTokenAccount: PublicKey; }