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
TypeScript
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;
}