@star-factory/sdk-launchpad 0.1.1 → 0.1.2

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 CHANGED
@@ -50,13 +50,18 @@ const tx = await sdk.buildInitializeLaunchTx(launchpadProgram, {
50
50
  quoteMint: NATIVE_MINT,
51
51
  minRaise: new BN('100000000'),
52
52
  targetRaise: new BN('100000000'),
53
- startTime: new BN(now - 5),
54
- endTime: new BN(now + 300),
53
+ // IMPORTANT: unix seconds (not milliseconds)
54
+ startTime: new BN(nowSec + 60), // starts in 1 minute
55
+ endTime: new BN(nowSec + 4 * 24 * 60 * 60), // 4-day raise window
55
56
  vaultProgramId: VAULT_PROGRAM_ID,
56
57
  });
57
58
  await sendTx(tx, [creator]);
58
59
  ```
59
60
 
61
+ ```typescript
62
+ const nowSec = Math.floor(Date.now() / 1000);
63
+ ```
64
+
60
65
  ### 2. Configure Launch
61
66
 
62
67
  Sets vanity mint configuration and token metadata. Transitions `FundraiseActive → ReadyToLaunch`.
@@ -226,7 +226,7 @@
226
226
  "docs": [
227
227
  "The vault program for CPI."
228
228
  ],
229
- "address": "2izCb6E5VNBa8NMFnKZhDmBptMCv7TyUNjkwFwrvf44B"
229
+ "address": "6A4q7HmaJeTFTxn3de628F8CacdNJ6jxsB8PQRC26dLt"
230
230
  },
231
231
  {
232
232
  "name": "token_program"
@@ -971,7 +971,7 @@
971
971
  "docs": [
972
972
  "The vault program for CPI."
973
973
  ],
974
- "address": "2izCb6E5VNBa8NMFnKZhDmBptMCv7TyUNjkwFwrvf44B"
974
+ "address": "6A4q7HmaJeTFTxn3de628F8CacdNJ6jxsB8PQRC26dLt"
975
975
  },
976
976
  {
977
977
  "name": "position_nft_mint",
@@ -1387,7 +1387,7 @@
1387
1387
  "docs": [
1388
1388
  "The vault program for CPI."
1389
1389
  ],
1390
- "address": "2izCb6E5VNBa8NMFnKZhDmBptMCv7TyUNjkwFwrvf44B"
1390
+ "address": "6A4q7HmaJeTFTxn3de628F8CacdNJ6jxsB8PQRC26dLt"
1391
1391
  },
1392
1392
  {
1393
1393
  "name": "associated_token_program",
@@ -1 +1 @@
1
- {"version":3,"file":"initialize-launch.d.ts","sourceRoot":"","sources":["../../src/instructions/initialize-launch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAMtD,OAAO,EAEH,UAAU,EAGV,WAAW,EAEd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAaxD;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,EAC9B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,WAAW,CAAC,CA2EtB"}
1
+ {"version":3,"file":"initialize-launch.d.ts","sourceRoot":"","sources":["../../src/instructions/initialize-launch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAMtD,OAAO,EAEL,UAAU,EAGV,WAAW,EAEZ,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AA4CxD;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,EAC9B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,WAAW,CAAC,CA6EtB"}
@@ -5,6 +5,25 @@ const spl_token_1 = require("@solana/spl-token");
5
5
  const web3_js_1 = require("@solana/web3.js");
6
6
  const pdas_1 = require("../claims/pdas");
7
7
  const pdas_2 = require("./pdas");
8
+ const MIN_RAISE_WINDOW_SECS = 1n;
9
+ const MAX_RAISE_WINDOW_SECS = 365n * 24n * 60n * 60n; // 31,536,000
10
+ const EPOCH_MS_THRESHOLD = 100000000000n;
11
+ function validateFundraiseTimeWindow(startTime, endTime) {
12
+ const start = BigInt(startTime.toString());
13
+ const end = BigInt(endTime.toString());
14
+ if (end <= start) {
15
+ throw new Error(`Invalid fundraise window: endTime (${end.toString()}) must be greater than startTime (${start.toString()}). ` +
16
+ 'Both values must be unix timestamps in seconds.');
17
+ }
18
+ const window = end - start;
19
+ if (window < MIN_RAISE_WINDOW_SECS || window > MAX_RAISE_WINDOW_SECS) {
20
+ const secondsHint = `Vault requires endTime - startTime to be between ${MIN_RAISE_WINDOW_SECS.toString()} and ${MAX_RAISE_WINDOW_SECS.toString()} seconds.`;
21
+ const msHint = (start > EPOCH_MS_THRESHOLD || end > EPOCH_MS_THRESHOLD)
22
+ ? ' Detected very large timestamp(s), which usually means milliseconds were provided instead of seconds.'
23
+ : '';
24
+ throw new Error(`Invalid fundraise window: endTime - startTime = ${window.toString()} seconds. ${secondsHint}${msHint}`);
25
+ }
26
+ }
8
27
  // ============================================================================
9
28
  // initialize_launch Transaction Builder
10
29
  // ============================================================================
@@ -20,6 +39,7 @@ const pdas_2 = require("./pdas");
20
39
  */
21
40
  async function buildInitializeLaunchTx(connection, launchpadProgram, opts) {
22
41
  const { creator, seed, vaultSeed, totalSupply, tokensToParticipants, quoteMint, minRaise, targetRaise, startTime, endTime, vaultProgramId, feePayer, computeUnits, priorityFee, } = opts;
42
+ validateFundraiseTimeWindow(startTime, endTime);
23
43
  const launchpadProgramId = launchpadProgram.programId;
24
44
  // Derive all accounts deterministically
25
45
  const [launchConfig] = (0, pdas_1.deriveLaunchConfigPda)(creator, BigInt(seed.toString()), launchpadProgramId);
@@ -1 +1 @@
1
- {"version":3,"file":"initialize-launch.js","sourceRoot":"","sources":["../../src/instructions/initialize-launch.ts"],"names":[],"mappings":";;AAuCA,0DA+EC;AArHD,iDAI2B;AAC3B,6CAOyB;AAEzB,yCAAiF;AAEjF,iCAA4D;AAQ5D,+EAA+E;AAC/E,wCAAwC;AACxC,+EAA+E;AAE/E;;;;;;;;;GASG;AACI,KAAK,UAAU,uBAAuB,CAC3C,UAAsB,EACtB,gBAA8B,EAC9B,IAA6B;IAE7B,MAAM,EACJ,OAAO,EACP,IAAI,EACJ,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,OAAO,EACP,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,WAAW,GACZ,GAAG,IAAI,CAAC;IAET,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,SAAsB,CAAC;IAEnE,wCAAwC;IACxC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAA,4BAAqB,EAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACnG,MAAM,CAAC,eAAe,CAAC,GAAG,IAAA,+BAAwB,EAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACrF,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,qBAAc,EAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;IACtF,MAAM,CAAC,SAAS,CAAC,GAAG,IAAA,yBAAkB,EAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAA,yCAA6B,EAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAEvE,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAEhC,CAAC;IAEF,MAAM,EAAE,GAA2B,MAAM,OAAO,CAAC,gBAAgB,CAAC;QAC9D,IAAI;QACJ,SAAS;QACT,WAAW;QACX,oBAAoB;QACpB,eAAe,EAAE;YACf,QAAQ;YACR,WAAW;YACX,SAAS;YACT,OAAO;SACR;KACF,CAAC;SACD,QAAQ,CAAC;QACR,OAAO;QACP,YAAY;QACZ,eAAe;QACf,SAAS;QACT,KAAK;QACL,QAAQ;QACR,SAAS;QACT,YAAY,EAAE,cAAc;QAC5B,sBAAsB,EAAE,uCAA2B;QACnD,YAAY,EAAE,4BAAgB;QAC9B,aAAa,EAAE,uBAAa,CAAC,SAAS;KACvC,CAAC;SACD,WAAW,EAAE,CAAC;IAEjB,MAAM,EAAE,GAAG,IAAI,qBAAW,EAAE,CAAC;IAE7B,IAAI,YAAY,EAAE,CAAC;QACjB,EAAE,CAAC,GAAG,CAAC,8BAAoB,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,EAAE,CAAC,GAAG,CAAC,8BAAoB,CAAC,mBAAmB,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACX,EAAE,CAAC,QAAQ,GAAG,QAAQ,IAAI,OAAO,CAAC;IAElC,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC7F,EAAE,CAAC,eAAe,GAAG,SAAS,CAAC;IAC/B,EAAE,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IAE/C,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"initialize-launch.js","sourceRoot":"","sources":["../../src/instructions/initialize-launch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@star-factory/sdk-launchpad",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "TypeScript SDK for Star Launchpad - Token launches with DAO integration",
5
5
  "license": "MIT",
6
6
  "author": "Star Protocol",