@craftec/flowcraft-sdk 0.1.12 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Connection, PublicKey, Keypair } from "@solana/web3.js";
2
2
  import { Program, AnchorProvider, Wallet, BN, Idl } from "@coral-xyz/anchor";
3
- import { Config, Pool, Stream, PoolInfo, StreamInfo, PoolAggregateStats, StreamWithAddress, CreatePoolParams, SubscribeParams, AddSegmentParams, ClaimParams, CancelSegmentParams, ChangeSegmentParams } from "./types";
3
+ import { Config, Pool, Pass, PoolInfo, PassInfo, PoolAggregateStats, PassWithAddress, CreatePoolParams, CreatePassParams, AddSegmentParams, ClaimParams, CancelSegmentParams, ChangeSegmentParams } from "./types";
4
4
  export declare const IDL: Idl;
5
5
  export declare class FlowcraftClient {
6
6
  readonly program: Program;
@@ -16,7 +16,7 @@ export declare class FlowcraftClient {
16
16
  */
17
17
  getPoolPda(owner: PublicKey, name: string): [PublicKey, number];
18
18
  /**
19
- * Get the stream PDA for a pool and subscriber
19
+ * Get the pass PDA for a pool and holder
20
20
  */
21
21
  getPassPda(pool: PublicKey, holder: PublicKey): [PublicKey, number];
22
22
  /**
@@ -36,21 +36,21 @@ export declare class FlowcraftClient {
36
36
  */
37
37
  fetchPoolByOwner(owner: PublicKey, name: string): Promise<Pool | null>;
38
38
  /**
39
- * Fetch a stream by address
39
+ * Fetch a pass by address
40
40
  */
41
- fetchStream(stream: PublicKey): Promise<Stream | null>;
41
+ fetchPass(pass: PublicKey): Promise<Pass | null>;
42
42
  /**
43
- * Fetch a stream by pool and subscriber
43
+ * Fetch a pass by pool and holder
44
44
  */
45
- fetchPassByHolder(pool: PublicKey, subscriber: PublicKey): Promise<Stream | null>;
45
+ fetchPassByHolder(pool: PublicKey, holder: PublicKey): Promise<Pass | null>;
46
46
  /**
47
47
  * Fetch pool with computed info
48
48
  */
49
49
  getPoolInfo(pool: PublicKey): Promise<PoolInfo | null>;
50
50
  /**
51
- * Fetch stream with computed info
51
+ * Fetch pass with computed info
52
52
  */
53
- getStreamInfo(stream: PublicKey): Promise<StreamInfo | null>;
53
+ getPassInfo(pass: PublicKey): Promise<PassInfo | null>;
54
54
  /**
55
55
  * Initialize the protocol config (one-time setup)
56
56
  */
@@ -60,7 +60,7 @@ export declare class FlowcraftClient {
60
60
  */
61
61
  updateConfig(admin: Keypair, newTreasury?: PublicKey, newFeeBps?: number, newAdmin?: PublicKey): Promise<string>;
62
62
  /**
63
- * Create a new subscription pool
63
+ * Create a new pool
64
64
  * @param payer - Keypair that pays for rent (signs the transaction)
65
65
  * @param owner - PublicKey of pool owner (can be any account, including PDA)
66
66
  * @param params - Pool creation parameters
@@ -71,78 +71,83 @@ export declare class FlowcraftClient {
71
71
  vault: PublicKey;
72
72
  }>;
73
73
  /**
74
- * Subscribe to a pool (creates stream with first segment)
74
+ * Create a pass (creates pass with first segment)
75
+ * For new passes, segmentIndex is 0. For reactivated expired passes, segments are cleared so index is also 0.
75
76
  */
76
- subscribe(subscriber: Keypair, params: SubscribeParams): Promise<{
77
+ createPass(holder: Keypair, params: CreatePassParams): Promise<{
77
78
  signature: string;
78
- stream: PublicKey;
79
+ pass: PublicKey;
80
+ segmentIndex: number;
79
81
  }>;
80
82
  /**
81
- * Add a new segment to an existing subscription
83
+ * Add a new segment to an existing pass
82
84
  */
83
- addSegment(payer: Keypair, params: AddSegmentParams): Promise<string>;
85
+ addSegment(payer: Keypair, params: AddSegmentParams): Promise<{
86
+ signature: string;
87
+ segmentIndex: number;
88
+ }>;
84
89
  /**
85
90
  * Claim vested tokens (pool owner only)
86
91
  */
87
92
  claim(owner: Keypair, params: ClaimParams): Promise<string>;
88
93
  /**
89
- * Claim vested tokens from multiple streams in a single transaction
94
+ * Claim vested tokens from multiple passes in a single transaction
90
95
  */
91
96
  claimBatch(owner: Keypair, params: {
92
97
  pool: PublicKey;
93
- streams: PublicKey[];
98
+ passes: PublicKey[];
94
99
  ownerTokenAccount: PublicKey;
95
100
  }): Promise<string>;
96
101
  /**
97
- * Build batch claim transactions for all streams in a pool
102
+ * Build batch claim transactions for all passes in a pool
98
103
  * Returns transactions ready to be signed with signAllTransactions
99
104
  */
100
105
  buildClaimAllTransactions(owner: PublicKey, pool: PublicKey, ownerTokenAccount: PublicKey, batchSize?: number): Promise<{
101
106
  transactions: any[];
102
- totalStreams: number;
107
+ totalPasses: number;
103
108
  }>;
104
109
  /**
105
- * Cancel a segment (subscriber only)
110
+ * Cancel a segment (holder only)
106
111
  */
107
- cancelSegment(subscriber: Keypair, params: CancelSegmentParams): Promise<string>;
112
+ cancelSegment(holder: Keypair, params: CancelSegmentParams): Promise<string>;
108
113
  /**
109
- * Upgrade or downgrade a segment
114
+ * Change segment tier (upgrade or downgrade)
110
115
  */
111
- upgradeSegment(caller: Keypair, params: ChangeSegmentParams): Promise<string>;
116
+ changeSegment(caller: Keypair, params: ChangeSegmentParams): Promise<string>;
112
117
  /**
113
118
  * Check if a pool exists
114
119
  */
115
120
  poolExists(owner: PublicKey, name: string): Promise<boolean>;
116
121
  /**
117
- * Check if a subscription stream exists
122
+ * Check if a pass exists
118
123
  */
119
- subscriptionExists(pool: PublicKey, holder: PublicKey): Promise<boolean>;
124
+ passExists(pool: PublicKey, holder: PublicKey): Promise<boolean>;
120
125
  /**
121
- * Get claimable amount for a stream
126
+ * Get claimable amount for a pass
122
127
  */
123
- getClaimable(stream: PublicKey): Promise<BN>;
128
+ getClaimable(pass: PublicKey): Promise<BN>;
124
129
  /**
125
- * Check if subscription is expired
130
+ * Check if pass is expired
126
131
  */
127
- isSubscriptionExpired(stream: PublicKey): Promise<boolean>;
132
+ isPassExpired(pass: PublicKey): Promise<boolean>;
128
133
  /**
129
- * Fetch all streams for a pool using getProgramAccounts
130
- * Stream account layout: [8 discriminator][32 pool][32 subscriber]...
134
+ * Fetch all passes for a pool using getProgramAccounts
135
+ * Pass account layout: [8 discriminator][32 pool][32 holder]...
131
136
  * Filter by pool pubkey at offset 8
132
137
  */
133
- fetchStreamsByPool(pool: PublicKey): Promise<StreamWithAddress[]>;
138
+ fetchPassesByPool(pool: PublicKey): Promise<PassWithAddress[]>;
134
139
  /**
135
140
  * Calculate real-time aggregate statistics for a pool
136
- * Fetches all streams and calculates vesting off-chain
141
+ * Fetches all passes and calculates vesting off-chain
137
142
  */
138
143
  getPoolAggregateStats(pool: PublicKey): Promise<PoolAggregateStats>;
139
144
  /**
140
- * Get real-time claimable amount for a stream (calculated off-chain)
145
+ * Get real-time claimable amount for a pass (calculated off-chain)
141
146
  */
142
- getRealTimeClaimable(streamAddress: PublicKey): Promise<BN>;
147
+ getRealTimeClaimable(passAddress: PublicKey): Promise<BN>;
143
148
  /**
144
- * Get detailed stream info with real-time vesting calculation
149
+ * Get detailed pass info with real-time vesting calculation
145
150
  */
146
- getStreamInfoRealTime(streamAddress: PublicKey): Promise<StreamInfo | null>;
151
+ getPassInfoRealTime(passAddress: PublicKey): Promise<PassInfo | null>;
147
152
  }
148
153
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}