@craftec/flowcraft-sdk 0.1.0
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/README.md +100 -0
- package/dist/client.d.ts +148 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +550 -0
- package/dist/client.js.map +1 -0
- package/dist/constants.d.ts +11 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +15 -0
- package/dist/constants.js.map +1 -0
- package/dist/idl.json +1636 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +135 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +90 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +185 -0
- package/dist/utils.js.map +1 -0
- package/package.json +55 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { FlowcraftClient, IDL } from "./client";
|
|
2
|
+
export { Config, Pool, Stream, Segment, PoolInfo, StreamInfo, SegmentInfo, PoolAggregateStats, StreamWithAddress, CreatePoolParams, SubscribeParams, AddSegmentParams, ClaimParams, CancelSegmentParams, UpgradeSegmentParams, } from "./types";
|
|
3
|
+
export { PROGRAM_ID, RATE_DECIMALS, BPS_DENOMINATOR, MAX_FEE_BPS, MAX_SEGMENTS, CONFIG_SEED, POOL_SEED, STREAM_SEED, VAULT_SEED, } from "./constants";
|
|
4
|
+
export { getConfigPda, getPoolPda, getStreamPda, getVaultPda, calculateFee, calculateNetAmount, calculateRate, calculateRemainingDuration, calculateUpgradeCost, calculateSegmentVested, calculateStreamVesting, bnToNumber, numberToBn, formatTokenAmount, toBN, } from "./utils";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,QAAQ,EACR,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,IAAI,GACL,MAAM,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toBN = exports.formatTokenAmount = exports.numberToBn = exports.bnToNumber = exports.calculateStreamVesting = exports.calculateSegmentVested = exports.calculateUpgradeCost = exports.calculateRemainingDuration = exports.calculateRate = exports.calculateNetAmount = exports.calculateFee = exports.getVaultPda = exports.getStreamPda = exports.getPoolPda = exports.getConfigPda = exports.VAULT_SEED = exports.STREAM_SEED = exports.POOL_SEED = exports.CONFIG_SEED = exports.MAX_SEGMENTS = exports.MAX_FEE_BPS = exports.BPS_DENOMINATOR = exports.RATE_DECIMALS = exports.PROGRAM_ID = exports.IDL = exports.FlowcraftClient = void 0;
|
|
4
|
+
// Main client
|
|
5
|
+
var client_1 = require("./client");
|
|
6
|
+
Object.defineProperty(exports, "FlowcraftClient", { enumerable: true, get: function () { return client_1.FlowcraftClient; } });
|
|
7
|
+
Object.defineProperty(exports, "IDL", { enumerable: true, get: function () { return client_1.IDL; } });
|
|
8
|
+
// Constants
|
|
9
|
+
var constants_1 = require("./constants");
|
|
10
|
+
Object.defineProperty(exports, "PROGRAM_ID", { enumerable: true, get: function () { return constants_1.PROGRAM_ID; } });
|
|
11
|
+
Object.defineProperty(exports, "RATE_DECIMALS", { enumerable: true, get: function () { return constants_1.RATE_DECIMALS; } });
|
|
12
|
+
Object.defineProperty(exports, "BPS_DENOMINATOR", { enumerable: true, get: function () { return constants_1.BPS_DENOMINATOR; } });
|
|
13
|
+
Object.defineProperty(exports, "MAX_FEE_BPS", { enumerable: true, get: function () { return constants_1.MAX_FEE_BPS; } });
|
|
14
|
+
Object.defineProperty(exports, "MAX_SEGMENTS", { enumerable: true, get: function () { return constants_1.MAX_SEGMENTS; } });
|
|
15
|
+
Object.defineProperty(exports, "CONFIG_SEED", { enumerable: true, get: function () { return constants_1.CONFIG_SEED; } });
|
|
16
|
+
Object.defineProperty(exports, "POOL_SEED", { enumerable: true, get: function () { return constants_1.POOL_SEED; } });
|
|
17
|
+
Object.defineProperty(exports, "STREAM_SEED", { enumerable: true, get: function () { return constants_1.STREAM_SEED; } });
|
|
18
|
+
Object.defineProperty(exports, "VAULT_SEED", { enumerable: true, get: function () { return constants_1.VAULT_SEED; } });
|
|
19
|
+
// Utilities
|
|
20
|
+
var utils_1 = require("./utils");
|
|
21
|
+
Object.defineProperty(exports, "getConfigPda", { enumerable: true, get: function () { return utils_1.getConfigPda; } });
|
|
22
|
+
Object.defineProperty(exports, "getPoolPda", { enumerable: true, get: function () { return utils_1.getPoolPda; } });
|
|
23
|
+
Object.defineProperty(exports, "getStreamPda", { enumerable: true, get: function () { return utils_1.getStreamPda; } });
|
|
24
|
+
Object.defineProperty(exports, "getVaultPda", { enumerable: true, get: function () { return utils_1.getVaultPda; } });
|
|
25
|
+
Object.defineProperty(exports, "calculateFee", { enumerable: true, get: function () { return utils_1.calculateFee; } });
|
|
26
|
+
Object.defineProperty(exports, "calculateNetAmount", { enumerable: true, get: function () { return utils_1.calculateNetAmount; } });
|
|
27
|
+
Object.defineProperty(exports, "calculateRate", { enumerable: true, get: function () { return utils_1.calculateRate; } });
|
|
28
|
+
Object.defineProperty(exports, "calculateRemainingDuration", { enumerable: true, get: function () { return utils_1.calculateRemainingDuration; } });
|
|
29
|
+
Object.defineProperty(exports, "calculateUpgradeCost", { enumerable: true, get: function () { return utils_1.calculateUpgradeCost; } });
|
|
30
|
+
Object.defineProperty(exports, "calculateSegmentVested", { enumerable: true, get: function () { return utils_1.calculateSegmentVested; } });
|
|
31
|
+
Object.defineProperty(exports, "calculateStreamVesting", { enumerable: true, get: function () { return utils_1.calculateStreamVesting; } });
|
|
32
|
+
Object.defineProperty(exports, "bnToNumber", { enumerable: true, get: function () { return utils_1.bnToNumber; } });
|
|
33
|
+
Object.defineProperty(exports, "numberToBn", { enumerable: true, get: function () { return utils_1.numberToBn; } });
|
|
34
|
+
Object.defineProperty(exports, "formatTokenAmount", { enumerable: true, get: function () { return utils_1.formatTokenAmount; } });
|
|
35
|
+
Object.defineProperty(exports, "toBN", { enumerable: true, get: function () { return utils_1.toBN; } });
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACd,mCAAgD;AAAvC,yGAAA,eAAe,OAAA;AAAE,6FAAA,GAAG,OAAA;AAqB7B,YAAY;AACZ,yCAUqB;AATnB,uGAAA,UAAU,OAAA;AACV,0GAAA,aAAa,OAAA;AACb,4GAAA,eAAe,OAAA;AACf,wGAAA,WAAW,OAAA;AACX,yGAAA,YAAY,OAAA;AACZ,wGAAA,WAAW,OAAA;AACX,sGAAA,SAAS,OAAA;AACT,wGAAA,WAAW,OAAA;AACX,uGAAA,UAAU,OAAA;AAGZ,YAAY;AACZ,iCAgBiB;AAff,qGAAA,YAAY,OAAA;AACZ,mGAAA,UAAU,OAAA;AACV,qGAAA,YAAY,OAAA;AACZ,oGAAA,WAAW,OAAA;AACX,qGAAA,YAAY,OAAA;AACZ,2GAAA,kBAAkB,OAAA;AAClB,sGAAA,aAAa,OAAA;AACb,mHAAA,0BAA0B,OAAA;AAC1B,6GAAA,oBAAoB,OAAA;AACpB,+GAAA,sBAAsB,OAAA;AACtB,+GAAA,sBAAsB,OAAA;AACtB,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AACV,0GAAA,iBAAiB,OAAA;AACjB,6FAAA,IAAI,OAAA"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
import { BN } from "@coral-xyz/anchor";
|
|
3
|
+
export interface Config {
|
|
4
|
+
admin: PublicKey;
|
|
5
|
+
treasury: PublicKey;
|
|
6
|
+
feeBps: BN;
|
|
7
|
+
bump: number;
|
|
8
|
+
}
|
|
9
|
+
export interface Pool {
|
|
10
|
+
owner: PublicKey;
|
|
11
|
+
mint: PublicKey;
|
|
12
|
+
name: string;
|
|
13
|
+
totalSubscribers: BN;
|
|
14
|
+
totalDeposited: BN;
|
|
15
|
+
totalWithdrawn: BN;
|
|
16
|
+
totalRefunded: BN;
|
|
17
|
+
createdAt: BN;
|
|
18
|
+
bump: number;
|
|
19
|
+
}
|
|
20
|
+
export interface Segment {
|
|
21
|
+
tier: string;
|
|
22
|
+
payer: PublicKey;
|
|
23
|
+
ratePerSecond: BN;
|
|
24
|
+
amount: BN;
|
|
25
|
+
vested: BN;
|
|
26
|
+
cancelled: boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface Stream {
|
|
29
|
+
pool: PublicKey;
|
|
30
|
+
subscriber: PublicKey;
|
|
31
|
+
startTime: BN;
|
|
32
|
+
lastUpdateTime: BN;
|
|
33
|
+
archivedCount: BN;
|
|
34
|
+
archivedAmount: BN;
|
|
35
|
+
archivedVested: BN;
|
|
36
|
+
totalWithdrawn: BN;
|
|
37
|
+
currentSegmentIndex: number;
|
|
38
|
+
bump: number;
|
|
39
|
+
segments: Segment[];
|
|
40
|
+
}
|
|
41
|
+
export interface CreatePoolParams {
|
|
42
|
+
name: string;
|
|
43
|
+
mint: PublicKey;
|
|
44
|
+
}
|
|
45
|
+
export interface SubscribeParams {
|
|
46
|
+
pool: PublicKey;
|
|
47
|
+
tier: string;
|
|
48
|
+
amount: BN | number;
|
|
49
|
+
durationSeconds: BN | number;
|
|
50
|
+
subscriberTokenAccount: PublicKey;
|
|
51
|
+
treasuryTokenAccount: PublicKey;
|
|
52
|
+
}
|
|
53
|
+
export interface AddSegmentParams {
|
|
54
|
+
pool: PublicKey;
|
|
55
|
+
stream: PublicKey;
|
|
56
|
+
tier: string;
|
|
57
|
+
amount: BN | number;
|
|
58
|
+
durationSeconds: BN | number;
|
|
59
|
+
payerTokenAccount: PublicKey;
|
|
60
|
+
treasuryTokenAccount: PublicKey;
|
|
61
|
+
}
|
|
62
|
+
export interface ClaimParams {
|
|
63
|
+
pool: PublicKey;
|
|
64
|
+
stream: PublicKey;
|
|
65
|
+
ownerTokenAccount: PublicKey;
|
|
66
|
+
}
|
|
67
|
+
export interface CancelSegmentParams {
|
|
68
|
+
pool: PublicKey;
|
|
69
|
+
stream: PublicKey;
|
|
70
|
+
segmentIndex: number;
|
|
71
|
+
refundTokenAccount: PublicKey;
|
|
72
|
+
}
|
|
73
|
+
export interface UpgradeSegmentParams {
|
|
74
|
+
pool: PublicKey;
|
|
75
|
+
stream: PublicKey;
|
|
76
|
+
subscriber: PublicKey;
|
|
77
|
+
segmentIndex: number;
|
|
78
|
+
newAmount: BN | number;
|
|
79
|
+
newDuration: BN | number;
|
|
80
|
+
callerTokenAccount: PublicKey;
|
|
81
|
+
payerTokenAccount: PublicKey;
|
|
82
|
+
}
|
|
83
|
+
export interface PoolInfo {
|
|
84
|
+
address: PublicKey;
|
|
85
|
+
owner: PublicKey;
|
|
86
|
+
mint: PublicKey;
|
|
87
|
+
name: string;
|
|
88
|
+
totalSubscribers: number;
|
|
89
|
+
totalDeposited: BN;
|
|
90
|
+
totalWithdrawn: BN;
|
|
91
|
+
totalRefunded: BN;
|
|
92
|
+
createdAt: Date;
|
|
93
|
+
}
|
|
94
|
+
export interface StreamInfo {
|
|
95
|
+
address: PublicKey;
|
|
96
|
+
pool: PublicKey;
|
|
97
|
+
subscriber: PublicKey;
|
|
98
|
+
startTime: Date;
|
|
99
|
+
totalDeposited: BN;
|
|
100
|
+
totalVested: BN;
|
|
101
|
+
totalWithdrawn: BN;
|
|
102
|
+
claimable: BN;
|
|
103
|
+
activeSegments: number;
|
|
104
|
+
cancelledSegments: number;
|
|
105
|
+
isExpired: boolean;
|
|
106
|
+
segments: SegmentInfo[];
|
|
107
|
+
}
|
|
108
|
+
export interface SegmentInfo {
|
|
109
|
+
index: number;
|
|
110
|
+
tier: string;
|
|
111
|
+
payer: PublicKey;
|
|
112
|
+
amount: BN;
|
|
113
|
+
vested: BN;
|
|
114
|
+
unvested: BN;
|
|
115
|
+
ratePerSecond: BN;
|
|
116
|
+
cancelled: boolean;
|
|
117
|
+
isComplete: boolean;
|
|
118
|
+
}
|
|
119
|
+
export interface PoolAggregateStats {
|
|
120
|
+
pool: PublicKey;
|
|
121
|
+
totalStreams: number;
|
|
122
|
+
activeStreams: number;
|
|
123
|
+
expiredStreams: number;
|
|
124
|
+
totalDeposited: BN;
|
|
125
|
+
totalVested: BN;
|
|
126
|
+
totalWithdrawn: BN;
|
|
127
|
+
totalClaimable: BN;
|
|
128
|
+
totalUnvested: BN;
|
|
129
|
+
calculatedAt: Date;
|
|
130
|
+
}
|
|
131
|
+
export interface StreamWithAddress {
|
|
132
|
+
address: PublicKey;
|
|
133
|
+
stream: Stream;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
import { BN } from "@coral-xyz/anchor";
|
|
3
|
+
/**
|
|
4
|
+
* Derive the config PDA
|
|
5
|
+
*/
|
|
6
|
+
export declare function getConfigPda(programId?: PublicKey): [PublicKey, number];
|
|
7
|
+
/**
|
|
8
|
+
* Derive the pool PDA for an owner and pool name
|
|
9
|
+
*/
|
|
10
|
+
export declare function getPoolPda(owner: PublicKey, name: string, programId?: PublicKey): [PublicKey, number];
|
|
11
|
+
/**
|
|
12
|
+
* Derive the stream PDA for a pool and subscriber
|
|
13
|
+
*/
|
|
14
|
+
export declare function getStreamPda(pool: PublicKey, subscriber: PublicKey, programId?: PublicKey): [PublicKey, number];
|
|
15
|
+
/**
|
|
16
|
+
* Derive the vault PDA for a pool
|
|
17
|
+
*/
|
|
18
|
+
export declare function getVaultPda(pool: PublicKey, programId?: PublicKey): [PublicKey, number];
|
|
19
|
+
/**
|
|
20
|
+
* Calculate fee amount from gross amount
|
|
21
|
+
*/
|
|
22
|
+
export declare function calculateFee(amount: BN, feeBps: BN): BN;
|
|
23
|
+
/**
|
|
24
|
+
* Calculate net amount after fee deduction
|
|
25
|
+
*/
|
|
26
|
+
export declare function calculateNetAmount(amount: BN, feeBps: BN): BN;
|
|
27
|
+
/**
|
|
28
|
+
* Calculate rate per second from amount and duration
|
|
29
|
+
*/
|
|
30
|
+
export declare function calculateRate(amount: BN, durationSeconds: BN): BN;
|
|
31
|
+
/**
|
|
32
|
+
* Calculate remaining duration from unvested amount and rate
|
|
33
|
+
*/
|
|
34
|
+
export declare function calculateRemainingDuration(unvested: BN, ratePerSecond: BN): BN;
|
|
35
|
+
/**
|
|
36
|
+
* Calculate new cost at a different rate for remaining duration
|
|
37
|
+
*/
|
|
38
|
+
export declare function calculateUpgradeCost(unvested: BN, currentRate: BN, newRate: BN): {
|
|
39
|
+
newCost: BN;
|
|
40
|
+
difference: BN;
|
|
41
|
+
isUpgrade: boolean;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Convert BN to number (for display purposes)
|
|
45
|
+
*/
|
|
46
|
+
export declare function bnToNumber(bn: BN, decimals?: number): number;
|
|
47
|
+
/**
|
|
48
|
+
* Convert number to BN with decimals
|
|
49
|
+
*/
|
|
50
|
+
export declare function numberToBn(num: number, decimals?: number): BN;
|
|
51
|
+
/**
|
|
52
|
+
* Format token amount with decimals
|
|
53
|
+
*/
|
|
54
|
+
export declare function formatTokenAmount(amount: BN, decimals: number): string;
|
|
55
|
+
/**
|
|
56
|
+
* Ensure value is BN
|
|
57
|
+
*/
|
|
58
|
+
export declare function toBN(value: BN | number): BN;
|
|
59
|
+
/**
|
|
60
|
+
* Calculate real-time vested amount for a segment based on current time
|
|
61
|
+
*/
|
|
62
|
+
export declare function calculateSegmentVested(segment: {
|
|
63
|
+
amount: BN;
|
|
64
|
+
vested: BN;
|
|
65
|
+
ratePerSecond: BN;
|
|
66
|
+
cancelled: boolean;
|
|
67
|
+
}, lastUpdateTime: BN, currentTime: number): BN;
|
|
68
|
+
/**
|
|
69
|
+
* Calculate real-time vesting for an entire stream
|
|
70
|
+
* Returns { totalVested, totalUnvested, claimable, isExpired }
|
|
71
|
+
*/
|
|
72
|
+
export declare function calculateStreamVesting(stream: {
|
|
73
|
+
segments: Array<{
|
|
74
|
+
amount: BN;
|
|
75
|
+
vested: BN;
|
|
76
|
+
ratePerSecond: BN;
|
|
77
|
+
cancelled: boolean;
|
|
78
|
+
}>;
|
|
79
|
+
lastUpdateTime: BN;
|
|
80
|
+
archivedVested: BN;
|
|
81
|
+
archivedAmount: BN;
|
|
82
|
+
totalWithdrawn: BN;
|
|
83
|
+
}, currentTime?: number): {
|
|
84
|
+
totalDeposited: BN;
|
|
85
|
+
totalVested: BN;
|
|
86
|
+
totalUnvested: BN;
|
|
87
|
+
claimable: BN;
|
|
88
|
+
isExpired: boolean;
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConfigPda = getConfigPda;
|
|
4
|
+
exports.getPoolPda = getPoolPda;
|
|
5
|
+
exports.getStreamPda = getStreamPda;
|
|
6
|
+
exports.getVaultPda = getVaultPda;
|
|
7
|
+
exports.calculateFee = calculateFee;
|
|
8
|
+
exports.calculateNetAmount = calculateNetAmount;
|
|
9
|
+
exports.calculateRate = calculateRate;
|
|
10
|
+
exports.calculateRemainingDuration = calculateRemainingDuration;
|
|
11
|
+
exports.calculateUpgradeCost = calculateUpgradeCost;
|
|
12
|
+
exports.bnToNumber = bnToNumber;
|
|
13
|
+
exports.numberToBn = numberToBn;
|
|
14
|
+
exports.formatTokenAmount = formatTokenAmount;
|
|
15
|
+
exports.toBN = toBN;
|
|
16
|
+
exports.calculateSegmentVested = calculateSegmentVested;
|
|
17
|
+
exports.calculateStreamVesting = calculateStreamVesting;
|
|
18
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
19
|
+
const anchor_1 = require("@coral-xyz/anchor");
|
|
20
|
+
const constants_1 = require("./constants");
|
|
21
|
+
/**
|
|
22
|
+
* Derive the config PDA
|
|
23
|
+
*/
|
|
24
|
+
function getConfigPda(programId = constants_1.PROGRAM_ID) {
|
|
25
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.CONFIG_SEED)], programId);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Derive the pool PDA for an owner and pool name
|
|
29
|
+
*/
|
|
30
|
+
function getPoolPda(owner, name, programId = constants_1.PROGRAM_ID) {
|
|
31
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.POOL_SEED), owner.toBuffer(), Buffer.from(name)], programId);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Derive the stream PDA for a pool and subscriber
|
|
35
|
+
*/
|
|
36
|
+
function getStreamPda(pool, subscriber, programId = constants_1.PROGRAM_ID) {
|
|
37
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.STREAM_SEED), pool.toBuffer(), subscriber.toBuffer()], programId);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Derive the vault PDA for a pool
|
|
41
|
+
*/
|
|
42
|
+
function getVaultPda(pool, programId = constants_1.PROGRAM_ID) {
|
|
43
|
+
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(constants_1.VAULT_SEED), pool.toBuffer()], programId);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Calculate fee amount from gross amount
|
|
47
|
+
*/
|
|
48
|
+
function calculateFee(amount, feeBps) {
|
|
49
|
+
return amount.mul(feeBps).div(new anchor_1.BN(constants_1.BPS_DENOMINATOR.toString()));
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Calculate net amount after fee deduction
|
|
53
|
+
*/
|
|
54
|
+
function calculateNetAmount(amount, feeBps) {
|
|
55
|
+
const fee = calculateFee(amount, feeBps);
|
|
56
|
+
return amount.sub(fee);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Calculate rate per second from amount and duration
|
|
60
|
+
*/
|
|
61
|
+
function calculateRate(amount, durationSeconds) {
|
|
62
|
+
return amount
|
|
63
|
+
.mul(new anchor_1.BN(constants_1.RATE_DECIMALS.toString()))
|
|
64
|
+
.div(durationSeconds);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Calculate remaining duration from unvested amount and rate
|
|
68
|
+
*/
|
|
69
|
+
function calculateRemainingDuration(unvested, ratePerSecond) {
|
|
70
|
+
return unvested
|
|
71
|
+
.mul(new anchor_1.BN(constants_1.RATE_DECIMALS.toString()))
|
|
72
|
+
.div(ratePerSecond);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Calculate new cost at a different rate for remaining duration
|
|
76
|
+
*/
|
|
77
|
+
function calculateUpgradeCost(unvested, currentRate, newRate) {
|
|
78
|
+
const remainingDuration = calculateRemainingDuration(unvested, currentRate);
|
|
79
|
+
const newCost = remainingDuration
|
|
80
|
+
.mul(newRate)
|
|
81
|
+
.div(new anchor_1.BN(constants_1.RATE_DECIMALS.toString()));
|
|
82
|
+
const isUpgrade = newCost.gt(unvested);
|
|
83
|
+
const difference = isUpgrade
|
|
84
|
+
? newCost.sub(unvested)
|
|
85
|
+
: unvested.sub(newCost);
|
|
86
|
+
return { newCost, difference, isUpgrade };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Convert BN to number (for display purposes)
|
|
90
|
+
*/
|
|
91
|
+
function bnToNumber(bn, decimals = 0) {
|
|
92
|
+
if (decimals === 0)
|
|
93
|
+
return bn.toNumber();
|
|
94
|
+
return bn.toNumber() / Math.pow(10, decimals);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Convert number to BN with decimals
|
|
98
|
+
*/
|
|
99
|
+
function numberToBn(num, decimals = 0) {
|
|
100
|
+
return new anchor_1.BN(Math.floor(num * Math.pow(10, decimals)));
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Format token amount with decimals
|
|
104
|
+
*/
|
|
105
|
+
function formatTokenAmount(amount, decimals) {
|
|
106
|
+
const str = amount.toString().padStart(decimals + 1, "0");
|
|
107
|
+
const intPart = str.slice(0, -decimals) || "0";
|
|
108
|
+
const decPart = str.slice(-decimals);
|
|
109
|
+
return `${intPart}.${decPart}`;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Ensure value is BN
|
|
113
|
+
*/
|
|
114
|
+
function toBN(value) {
|
|
115
|
+
return typeof value === "number" ? new anchor_1.BN(value) : value;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Calculate real-time vested amount for a segment based on current time
|
|
119
|
+
*/
|
|
120
|
+
function calculateSegmentVested(segment, lastUpdateTime, currentTime) {
|
|
121
|
+
if (segment.cancelled) {
|
|
122
|
+
return segment.vested;
|
|
123
|
+
}
|
|
124
|
+
const elapsed = new anchor_1.BN(currentTime).sub(lastUpdateTime);
|
|
125
|
+
if (elapsed.lten(0)) {
|
|
126
|
+
return segment.vested;
|
|
127
|
+
}
|
|
128
|
+
const additionalVested = elapsed
|
|
129
|
+
.mul(segment.ratePerSecond)
|
|
130
|
+
.div(new anchor_1.BN(constants_1.RATE_DECIMALS.toString()));
|
|
131
|
+
const unvested = segment.amount.sub(segment.vested);
|
|
132
|
+
const newVested = anchor_1.BN.min(additionalVested, unvested);
|
|
133
|
+
return segment.vested.add(newVested);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Calculate real-time vesting for an entire stream
|
|
137
|
+
* Returns { totalVested, totalUnvested, claimable, isExpired }
|
|
138
|
+
*/
|
|
139
|
+
function calculateStreamVesting(stream, currentTime = Math.floor(Date.now() / 1000)) {
|
|
140
|
+
let totalDeposited = stream.archivedAmount;
|
|
141
|
+
let totalVested = stream.archivedVested;
|
|
142
|
+
let remainingTime = new anchor_1.BN(currentTime).sub(stream.lastUpdateTime);
|
|
143
|
+
let allComplete = true;
|
|
144
|
+
for (const segment of stream.segments) {
|
|
145
|
+
totalDeposited = totalDeposited.add(segment.amount);
|
|
146
|
+
if (segment.cancelled) {
|
|
147
|
+
totalVested = totalVested.add(segment.vested);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
const unvested = segment.amount.sub(segment.vested);
|
|
151
|
+
if (unvested.gtn(0)) {
|
|
152
|
+
// Calculate how much time this segment needs
|
|
153
|
+
const timeNeeded = unvested
|
|
154
|
+
.mul(new anchor_1.BN(constants_1.RATE_DECIMALS.toString()))
|
|
155
|
+
.div(segment.ratePerSecond);
|
|
156
|
+
if (remainingTime.gte(timeNeeded)) {
|
|
157
|
+
// Segment fully vests
|
|
158
|
+
totalVested = totalVested.add(segment.amount);
|
|
159
|
+
remainingTime = remainingTime.sub(timeNeeded);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
// Partial vesting
|
|
163
|
+
const additionalVested = remainingTime
|
|
164
|
+
.mul(segment.ratePerSecond)
|
|
165
|
+
.div(new anchor_1.BN(constants_1.RATE_DECIMALS.toString()));
|
|
166
|
+
totalVested = totalVested.add(segment.vested).add(additionalVested);
|
|
167
|
+
remainingTime = new anchor_1.BN(0);
|
|
168
|
+
allComplete = false;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
totalVested = totalVested.add(segment.vested);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
const totalUnvested = totalDeposited.sub(totalVested);
|
|
176
|
+
const claimable = totalVested.sub(stream.totalWithdrawn);
|
|
177
|
+
return {
|
|
178
|
+
totalDeposited,
|
|
179
|
+
totalVested,
|
|
180
|
+
totalUnvested,
|
|
181
|
+
claimable: claimable.gtn(0) ? claimable : new anchor_1.BN(0),
|
|
182
|
+
isExpired: allComplete && totalUnvested.eqn(0),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@craftec/flowcraft-sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "SDK for Flowcraft subscription streaming protocol on Solana",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"clean": "rm -rf dist",
|
|
14
|
+
"prepublishOnly": "npm run clean && npm run build"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"solana",
|
|
18
|
+
"subscription",
|
|
19
|
+
"streaming",
|
|
20
|
+
"payments",
|
|
21
|
+
"anchor",
|
|
22
|
+
"web3",
|
|
23
|
+
"blockchain",
|
|
24
|
+
"defi"
|
|
25
|
+
],
|
|
26
|
+
"author": "Flowcraft",
|
|
27
|
+
"license": "MIT",
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "https://github.com/handcraftdev/flowcraft.git",
|
|
31
|
+
"directory": "sdk"
|
|
32
|
+
},
|
|
33
|
+
"homepage": "https://github.com/handcraftdev/flowcraft#readme",
|
|
34
|
+
"bugs": {
|
|
35
|
+
"url": "https://github.com/handcraftdev/flowcraft/issues"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@coral-xyz/anchor": "^0.32.1",
|
|
39
|
+
"@solana/web3.js": "^1.98.0",
|
|
40
|
+
"@solana/spl-token": "^0.4.13"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"typescript": "^5.0.0"
|
|
44
|
+
},
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"@coral-xyz/anchor": ">=0.30.0",
|
|
47
|
+
"@solana/web3.js": ">=1.90.0"
|
|
48
|
+
},
|
|
49
|
+
"engines": {
|
|
50
|
+
"node": ">=18.0.0"
|
|
51
|
+
},
|
|
52
|
+
"publishConfig": {
|
|
53
|
+
"access": "public"
|
|
54
|
+
}
|
|
55
|
+
}
|