@metaplex-foundation/genesis 0.27.0 → 0.29.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.
@@ -1,3 +1,4 @@
1
+ import { Context } from '@metaplex-foundation/umi';
1
2
  import { BondingCurveBucketV2, SwapDirection } from './generated';
2
3
  /**
3
4
  * Calculate the output amount for a given input amount on a bonding curve.
@@ -45,3 +46,66 @@ export declare function getSwapResult(bucket: BondingCurveBucketV2, amountIn: bi
45
46
  * @returns The current price
46
47
  */
47
48
  export declare function getCurrentPrice(bucket: BondingCurveBucketV2): bigint;
49
+ /**
50
+ * Returns `true` if a first-buy restriction is configured and the first
51
+ * buy has not yet been completed. While pending, only the designated
52
+ * buyer can swap for the exact configured amount — all other swaps
53
+ * will be rejected on-chain.
54
+ */
55
+ export declare function isFirstBuyPending(bucket: BondingCurveBucketV2): boolean;
56
+ /**
57
+ * Returns `true` if the bonding curve is currently accepting swaps.
58
+ *
59
+ * A curve is swappable when:
60
+ * - The swap start condition has been satisfied
61
+ * - The swap end condition has **not** yet been triggered
62
+ * - The first buy (if configured) has been completed
63
+ * - There are still base tokens available in the bucket
64
+ */
65
+ export declare function isSwappable(bucket: BondingCurveBucketV2): boolean;
66
+ /**
67
+ * Returns `true` if the bonding curve has sold out — all base tokens have
68
+ * been purchased.
69
+ *
70
+ * Once sold out, the curve is no longer swappable and graduation to a
71
+ * Raydium CPMM pool will occur (or has already occurred).
72
+ */
73
+ export declare function isSoldOut(bucket: BondingCurveBucketV2): boolean;
74
+ /**
75
+ * Returns the fill percentage of the bonding curve as a value between 0
76
+ * and 100. This represents how much of the token allocation has been
77
+ * purchased.
78
+ *
79
+ * @param bucket - The bonding curve bucket
80
+ * @returns Fill percentage (0 = no tokens sold, 100 = fully sold out)
81
+ */
82
+ export declare function getFillPercentage(bucket: BondingCurveBucketV2): number;
83
+ /**
84
+ * Returns `true` if the bonding curve's liquidity has graduated to a
85
+ * Raydium CPMM pool. This fetches the Raydium bucket account on-chain,
86
+ * so it requires an RPC call.
87
+ *
88
+ * Use {@link isSoldOut} for a quick synchronous check on whether the
89
+ * curve has sold out (graduation follows sell-out but may not have
90
+ * completed yet).
91
+ *
92
+ * @param context - Umi context with RPC, eddsa, and programs
93
+ * @param bucket - The deserialized `BondingCurveBucketV2` account
94
+ * @returns `true` if graduated, `false` otherwise
95
+ */
96
+ export declare function isGraduated(context: Pick<Context, 'rpc' | 'eddsa' | 'programs'>, bucket: BondingCurveBucketV2): Promise<boolean>;
97
+ /**
98
+ * Applies a slippage tolerance to an expected output amount to derive
99
+ * a `minAmountOut` value suitable for the swap instruction.
100
+ *
101
+ * @param expectedAmountOut - The expected output from `getSwapResult`
102
+ * @param slippageBps - Slippage tolerance in basis points (e.g. 50 = 0.5%, 200 = 2%)
103
+ * @returns The minimum acceptable output amount
104
+ *
105
+ * @example
106
+ * ```ts
107
+ * const quote = getSwapResult(bucket, 1_000_000n, SwapDirection.Buy);
108
+ * const minOut = applySlippage(quote.amountOut, 200); // 2% slippage
109
+ * ```
110
+ */
111
+ export declare function applySlippage(expectedAmountOut: bigint, slippageBps: number): bigint;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCurrentPrice = exports.getSwapResult = exports.getSwapAmountInForOut = exports.getSwapAmountOutForIn = void 0;
3
+ exports.applySlippage = exports.isGraduated = exports.getFillPercentage = exports.isSoldOut = exports.isSwappable = exports.isFirstBuyPending = exports.getCurrentPrice = exports.getSwapResult = exports.getSwapAmountInForOut = exports.getSwapAmountOutForIn = void 0;
4
+ const umi_1 = require("@metaplex-foundation/umi");
4
5
  const fees_1 = require("./fees");
5
6
  const generated_1 = require("./generated");
6
7
  const bigInt_1 = require("./utils/bigInt");
@@ -155,6 +156,137 @@ function getCurrentPrice(bucket) {
155
156
  }
156
157
  }
157
158
  exports.getCurrentPrice = getCurrentPrice;
159
+ /**
160
+ * Returns `true` if a first-buy restriction is configured and the first
161
+ * buy has not yet been completed. While pending, only the designated
162
+ * buyer can swap for the exact configured amount — all other swaps
163
+ * will be rejected on-chain.
164
+ */
165
+ function isFirstBuyPending(bucket) {
166
+ return (0, umi_1.isSome)(bucket.extensions.firstBuy) && !bucket.extensions.firstBuyDone;
167
+ }
168
+ exports.isFirstBuyPending = isFirstBuyPending;
169
+ /**
170
+ * Returns `true` if the bonding curve is currently accepting swaps.
171
+ *
172
+ * A curve is swappable when:
173
+ * - The swap start condition has been satisfied
174
+ * - The swap end condition has **not** yet been triggered
175
+ * - The first buy (if configured) has been completed
176
+ * - There are still base tokens available in the bucket
177
+ */
178
+ function isSwappable(bucket) {
179
+ const startOk = isStartConditionMet(bucket);
180
+ const endTriggered = (0, umi_1.isSome)(bucket.swapEndCondition.triggeredTimestamp);
181
+ return (startOk &&
182
+ !endTriggered &&
183
+ !isFirstBuyPending(bucket) &&
184
+ bucket.bucket.baseTokenBalance > 0n);
185
+ }
186
+ exports.isSwappable = isSwappable;
187
+ // The program only allows Always, TimeAbsolute, and TimeRelative as start
188
+ // conditions (validated by `validate_as_start` on-chain). Today all bonding
189
+ // curves use Always so they start immediately.
190
+ //
191
+ // TimeRelative conditions cannot be fully evaluated client-side because they
192
+ // depend on another bucket's on-chain timestamp. For those, we can only
193
+ // return true once the program has set triggeredTimestamp.
194
+ function isStartConditionMet(bucket) {
195
+ const cond = bucket.swapStartCondition;
196
+ switch (cond.__kind) {
197
+ case 'Always':
198
+ return true;
199
+ case 'TimeAbsolute': {
200
+ if ((0, umi_1.isSome)(cond.triggeredTimestamp))
201
+ return true;
202
+ // The on-chain program compares against the validator's Clock
203
+ // sysvar, which may differ slightly from the client's Date.now()
204
+ // near the boundary.
205
+ const nowSec = BigInt(Math.floor(Date.now() / 1000));
206
+ return cond.time <= nowSec;
207
+ }
208
+ case 'TimeRelative':
209
+ return (0, umi_1.isSome)(cond.triggeredTimestamp);
210
+ default:
211
+ // Never, Uninitialized, and Triggered are rejected by the program
212
+ // for start conditions, but handle gracefully if encountered.
213
+ return false;
214
+ }
215
+ }
216
+ /**
217
+ * Returns `true` if the bonding curve has sold out — all base tokens have
218
+ * been purchased.
219
+ *
220
+ * Once sold out, the curve is no longer swappable and graduation to a
221
+ * Raydium CPMM pool will occur (or has already occurred).
222
+ */
223
+ function isSoldOut(bucket) {
224
+ return bucket.bucket.baseTokenBalance === 0n;
225
+ }
226
+ exports.isSoldOut = isSoldOut;
227
+ /**
228
+ * Returns the fill percentage of the bonding curve as a value between 0
229
+ * and 100. This represents how much of the token allocation has been
230
+ * purchased.
231
+ *
232
+ * @param bucket - The bonding curve bucket
233
+ * @returns Fill percentage (0 = no tokens sold, 100 = fully sold out)
234
+ */
235
+ function getFillPercentage(bucket) {
236
+ const allocation = bucket.bucket.baseTokenAllocation;
237
+ if (allocation === 0n)
238
+ return 100;
239
+ const sold = allocation - bucket.bucket.baseTokenBalance;
240
+ return Number((sold * 10000n) / allocation) / 100;
241
+ }
242
+ exports.getFillPercentage = getFillPercentage;
243
+ /**
244
+ * Returns `true` if the bonding curve's liquidity has graduated to a
245
+ * Raydium CPMM pool. This fetches the Raydium bucket account on-chain,
246
+ * so it requires an RPC call.
247
+ *
248
+ * Use {@link isSoldOut} for a quick synchronous check on whether the
249
+ * curve has sold out (graduation follows sell-out but may not have
250
+ * completed yet).
251
+ *
252
+ * @param context - Umi context with RPC, eddsa, and programs
253
+ * @param bucket - The deserialized `BondingCurveBucketV2` account
254
+ * @returns `true` if graduated, `false` otherwise
255
+ */
256
+ async function isGraduated(context, bucket) {
257
+ const raydiumBucket = await (0, generated_1.safeFetchRaydiumCpmmBucketV2)(context, (0, generated_1.findRaydiumCpmmBucketV2Pda)(context, {
258
+ genesisAccount: bucket.bucket.genesis,
259
+ bucketIndex: bucket.bucket.bucketIndex,
260
+ }));
261
+ if (!raydiumBucket)
262
+ return false;
263
+ return raydiumBucket.graduatedBaseTokenAmount > 0n;
264
+ }
265
+ exports.isGraduated = isGraduated;
266
+ /**
267
+ * Applies a slippage tolerance to an expected output amount to derive
268
+ * a `minAmountOut` value suitable for the swap instruction.
269
+ *
270
+ * @param expectedAmountOut - The expected output from `getSwapResult`
271
+ * @param slippageBps - Slippage tolerance in basis points (e.g. 50 = 0.5%, 200 = 2%)
272
+ * @returns The minimum acceptable output amount
273
+ *
274
+ * @example
275
+ * ```ts
276
+ * const quote = getSwapResult(bucket, 1_000_000n, SwapDirection.Buy);
277
+ * const minOut = applySlippage(quote.amountOut, 200); // 2% slippage
278
+ * ```
279
+ */
280
+ function applySlippage(expectedAmountOut, slippageBps) {
281
+ if (!Number.isFinite(slippageBps) ||
282
+ !Number.isInteger(slippageBps) ||
283
+ slippageBps < 0 ||
284
+ slippageBps > 10000) {
285
+ throw new Error(`slippageBps must be an integer between 0 and 10000, got ${slippageBps}`);
286
+ }
287
+ return (expectedAmountOut * BigInt(10000 - slippageBps)) / 10000n;
288
+ }
289
+ exports.applySlippage = applySlippage;
158
290
  // Constant Product swap helpers
159
291
  /**
160
292
  * Calculate the output amount for a given input amount using constant product AMM formula.
@@ -1 +1 @@
1
- {"version":3,"file":"bondingCurveHelpers.js","sourceRoot":"","sources":["../../src/bondingCurveHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bondingCurveHelpers.js","sourceRoot":"","sources":["../../src/bondingCurveHelpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaplex-foundation/genesis",
3
- "version": "0.27.0",
3
+ "version": "0.29.0",
4
4
  "description": "The Metaplex Genesis Program",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",