@star-factory/sdk-launchpad 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.
Files changed (86) hide show
  1. package/README.md +343 -0
  2. package/dist/claims/accounts.d.ts +49 -0
  3. package/dist/claims/accounts.d.ts.map +1 -0
  4. package/dist/claims/accounts.js +118 -0
  5. package/dist/claims/accounts.js.map +1 -0
  6. package/dist/claims/eligibility.d.ts +67 -0
  7. package/dist/claims/eligibility.d.ts.map +1 -0
  8. package/dist/claims/eligibility.js +275 -0
  9. package/dist/claims/eligibility.js.map +1 -0
  10. package/dist/claims/index.d.ts +5 -0
  11. package/dist/claims/index.d.ts.map +1 -0
  12. package/dist/claims/index.js +41 -0
  13. package/dist/claims/index.js.map +1 -0
  14. package/dist/claims/pdas.d.ts +24 -0
  15. package/dist/claims/pdas.d.ts.map +1 -0
  16. package/dist/claims/pdas.js +43 -0
  17. package/dist/claims/pdas.js.map +1 -0
  18. package/dist/claims/tx.d.ts +47 -0
  19. package/dist/claims/tx.d.ts.map +1 -0
  20. package/dist/claims/tx.js +126 -0
  21. package/dist/claims/tx.js.map +1 -0
  22. package/dist/index.d.ts +27 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +40 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/instructions/cancel-launch.d.ts +16 -0
  27. package/dist/instructions/cancel-launch.d.ts.map +1 -0
  28. package/dist/instructions/cancel-launch.js +72 -0
  29. package/dist/instructions/cancel-launch.js.map +1 -0
  30. package/dist/instructions/configure-launch.d.ts +16 -0
  31. package/dist/instructions/configure-launch.d.ts.map +1 -0
  32. package/dist/instructions/configure-launch.js +50 -0
  33. package/dist/instructions/configure-launch.js.map +1 -0
  34. package/dist/instructions/constants.d.ts +8 -0
  35. package/dist/instructions/constants.d.ts.map +1 -0
  36. package/dist/instructions/constants.js +14 -0
  37. package/dist/instructions/constants.js.map +1 -0
  38. package/dist/instructions/create-launch-token.d.ts +18 -0
  39. package/dist/instructions/create-launch-token.d.ts.map +1 -0
  40. package/dist/instructions/create-launch-token.js +65 -0
  41. package/dist/instructions/create-launch-token.js.map +1 -0
  42. package/dist/instructions/execute-launch.d.ts +68 -0
  43. package/dist/instructions/execute-launch.d.ts.map +1 -0
  44. package/dist/instructions/execute-launch.js +190 -0
  45. package/dist/instructions/execute-launch.js.map +1 -0
  46. package/dist/instructions/index.d.ts +8 -0
  47. package/dist/instructions/index.d.ts.map +1 -0
  48. package/dist/instructions/index.js +57 -0
  49. package/dist/instructions/index.js.map +1 -0
  50. package/dist/instructions/initialize-launch.d.ts +15 -0
  51. package/dist/instructions/initialize-launch.d.ts.map +1 -0
  52. package/dist/instructions/initialize-launch.js +71 -0
  53. package/dist/instructions/initialize-launch.js.map +1 -0
  54. package/dist/instructions/pdas.d.ts +95 -0
  55. package/dist/instructions/pdas.d.ts.map +1 -0
  56. package/dist/instructions/pdas.js +168 -0
  57. package/dist/instructions/pdas.js.map +1 -0
  58. package/dist/pdas.d.ts +19 -0
  59. package/dist/pdas.d.ts.map +1 -0
  60. package/dist/pdas.js +40 -0
  61. package/dist/pdas.js.map +1 -0
  62. package/dist/sdk.d.ts +274 -0
  63. package/dist/sdk.d.ts.map +1 -0
  64. package/dist/sdk.js +505 -0
  65. package/dist/sdk.js.map +1 -0
  66. package/dist/types.d.ts +578 -0
  67. package/dist/types.d.ts.map +1 -0
  68. package/dist/types.js +8 -0
  69. package/dist/types.js.map +1 -0
  70. package/dist/zc/client.d.ts +69 -0
  71. package/dist/zc/client.d.ts.map +1 -0
  72. package/dist/zc/client.js +121 -0
  73. package/dist/zc/client.js.map +1 -0
  74. package/dist/zc/constants.d.ts +49 -0
  75. package/dist/zc/constants.d.ts.map +1 -0
  76. package/dist/zc/constants.js +64 -0
  77. package/dist/zc/constants.js.map +1 -0
  78. package/dist/zc/index.d.ts +4 -0
  79. package/dist/zc/index.d.ts.map +1 -0
  80. package/dist/zc/index.js +7 -0
  81. package/dist/zc/index.js.map +1 -0
  82. package/dist/zc/types.d.ts +65 -0
  83. package/dist/zc/types.d.ts.map +1 -0
  84. package/dist/zc/types.js +3 -0
  85. package/dist/zc/types.js.map +1 -0
  86. package/package.json +63 -0
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ // ============================================================================
3
+ // Instructions Module
4
+ //
5
+ // Transaction builders for all launchpad program instructions.
6
+ //
7
+ // Architecture:
8
+ // pdas.ts — PDA derivation for external programs (DAMM, Squads, etc.)
9
+ // constants.ts — External program IDs (Squads, Metaplex, Token-2022)
10
+ // initialize-launch.ts — Build initialize_launch TX
11
+ // configure-launch.ts — Build configure_launch TX
12
+ // create-launch-token.ts — Build create_launch_token TX
13
+ // execute-launch.ts — Build execute_launch TX + resolve ~35 accounts
14
+ // cancel-launch.ts — Build cancel_launch TX
15
+ // ============================================================================
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.TOKEN_2022_PROGRAM_ID = exports.SQUADS_PROGRAM_ID = exports.METAPLEX_PROGRAM_ID = exports.deriveVaultPda = exports.deriveTgeConfigPda = exports.deriveSquadsVault = exports.deriveSquadsProgramConfig = exports.deriveSquadsMultisig = exports.derivePositionNftMintPda = exports.deriveModeratorPda = exports.deriveMintCreateKeyPda = exports.deriveMetadataPda = exports.deriveDaoPda = exports.deriveDammTokenVault = exports.deriveDammPositionNftAccount = exports.deriveDammPosition = exports.deriveDammPoolAuthority = exports.deriveDammEventAuthority = exports.buildInitializeLaunchTx = exports.buildExecuteLaunchTx = exports.buildCreateLaunchTokenTx = exports.buildConfigureLaunchTx = exports.buildCancelLaunchTx = void 0;
18
+ // Transaction builders
19
+ var cancel_launch_1 = require("./cancel-launch");
20
+ Object.defineProperty(exports, "buildCancelLaunchTx", { enumerable: true, get: function () { return cancel_launch_1.buildCancelLaunchTx; } });
21
+ var configure_launch_1 = require("./configure-launch");
22
+ Object.defineProperty(exports, "buildConfigureLaunchTx", { enumerable: true, get: function () { return configure_launch_1.buildConfigureLaunchTx; } });
23
+ var create_launch_token_1 = require("./create-launch-token");
24
+ Object.defineProperty(exports, "buildCreateLaunchTokenTx", { enumerable: true, get: function () { return create_launch_token_1.buildCreateLaunchTokenTx; } });
25
+ var execute_launch_1 = require("./execute-launch");
26
+ Object.defineProperty(exports, "buildExecuteLaunchTx", { enumerable: true, get: function () { return execute_launch_1.buildExecuteLaunchTx; } });
27
+ var initialize_launch_1 = require("./initialize-launch");
28
+ Object.defineProperty(exports, "buildInitializeLaunchTx", { enumerable: true, get: function () { return initialize_launch_1.buildInitializeLaunchTx; } });
29
+ // PDA derivation (external programs)
30
+ var pdas_1 = require("./pdas");
31
+ Object.defineProperty(exports, "deriveDammEventAuthority", { enumerable: true, get: function () { return pdas_1.deriveDammEventAuthority; } });
32
+ // DAMM
33
+ Object.defineProperty(exports, "deriveDammPoolAuthority", { enumerable: true, get: function () { return pdas_1.deriveDammPoolAuthority; } });
34
+ Object.defineProperty(exports, "deriveDammPosition", { enumerable: true, get: function () { return pdas_1.deriveDammPosition; } });
35
+ Object.defineProperty(exports, "deriveDammPositionNftAccount", { enumerable: true, get: function () { return pdas_1.deriveDammPositionNftAccount; } });
36
+ Object.defineProperty(exports, "deriveDammTokenVault", { enumerable: true, get: function () { return pdas_1.deriveDammTokenVault; } });
37
+ // Futarchy
38
+ Object.defineProperty(exports, "deriveDaoPda", { enumerable: true, get: function () { return pdas_1.deriveDaoPda; } });
39
+ // Metaplex
40
+ Object.defineProperty(exports, "deriveMetadataPda", { enumerable: true, get: function () { return pdas_1.deriveMetadataPda; } });
41
+ Object.defineProperty(exports, "deriveMintCreateKeyPda", { enumerable: true, get: function () { return pdas_1.deriveMintCreateKeyPda; } });
42
+ Object.defineProperty(exports, "deriveModeratorPda", { enumerable: true, get: function () { return pdas_1.deriveModeratorPda; } });
43
+ // Launchpad
44
+ Object.defineProperty(exports, "derivePositionNftMintPda", { enumerable: true, get: function () { return pdas_1.derivePositionNftMintPda; } });
45
+ // Squads
46
+ Object.defineProperty(exports, "deriveSquadsMultisig", { enumerable: true, get: function () { return pdas_1.deriveSquadsMultisig; } });
47
+ Object.defineProperty(exports, "deriveSquadsProgramConfig", { enumerable: true, get: function () { return pdas_1.deriveSquadsProgramConfig; } });
48
+ Object.defineProperty(exports, "deriveSquadsVault", { enumerable: true, get: function () { return pdas_1.deriveSquadsVault; } });
49
+ Object.defineProperty(exports, "deriveTgeConfigPda", { enumerable: true, get: function () { return pdas_1.deriveTgeConfigPda; } });
50
+ // Vault
51
+ Object.defineProperty(exports, "deriveVaultPda", { enumerable: true, get: function () { return pdas_1.deriveVaultPda; } });
52
+ // Constants
53
+ var constants_1 = require("./constants");
54
+ Object.defineProperty(exports, "METAPLEX_PROGRAM_ID", { enumerable: true, get: function () { return constants_1.METAPLEX_PROGRAM_ID; } });
55
+ Object.defineProperty(exports, "SQUADS_PROGRAM_ID", { enumerable: true, get: function () { return constants_1.SQUADS_PROGRAM_ID; } });
56
+ Object.defineProperty(exports, "TOKEN_2022_PROGRAM_ID", { enumerable: true, get: function () { return constants_1.TOKEN_2022_PROGRAM_ID; } });
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/instructions/index.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,sBAAsB;AACtB,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,gBAAgB;AAChB,qFAAqF;AACrF,+EAA+E;AAC/E,sDAAsD;AACtD,qDAAqD;AACrD,0DAA0D;AAC1D,0EAA0E;AAC1E,kDAAkD;AAClD,+EAA+E;;;AAE/E,uBAAuB;AACvB,iDAAsD;AAA7C,oHAAA,mBAAmB,OAAA;AAC5B,uDAA4D;AAAnD,0HAAA,sBAAsB,OAAA;AAC/B,6DAAiE;AAAxD,+HAAA,wBAAwB,OAAA;AACjC,mDAA4F;AAAnF,sHAAA,oBAAoB,OAAA;AAC7B,yDAA8D;AAArD,4HAAA,uBAAuB,OAAA;AAEhC,qCAAqC;AACrC,+BAegB;AAdZ,gHAAA,wBAAwB,OAAA;AACxB,OAAO;AACP,+GAAA,uBAAuB,OAAA;AAAE,0GAAA,kBAAkB,OAAA;AAC3C,oHAAA,4BAA4B,OAAA;AAAE,4GAAA,oBAAoB,OAAA;AAClD,WAAW;AACX,oGAAA,YAAY,OAAA;AACZ,WAAW;AACX,yGAAA,iBAAiB,OAAA;AAAE,8GAAA,sBAAsB,OAAA;AAAE,0GAAA,kBAAkB,OAAA;AAC7D,YAAY;AACZ,gHAAA,wBAAwB,OAAA;AACxB,SAAS;AACT,4GAAA,oBAAoB,OAAA;AAAE,iHAAA,yBAAyB,OAAA;AAAE,yGAAA,iBAAiB,OAAA;AAAE,0GAAA,kBAAkB,OAAA;AACtF,QAAQ;AACR,sGAAA,cAAc,OAAA;AAGlB,YAAY;AACZ,yCAEqB;AADjB,gHAAA,mBAAmB,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAAE,kHAAA,qBAAqB,OAAA"}
@@ -0,0 +1,15 @@
1
+ import type { Idl, Program } from '@coral-xyz/anchor';
2
+ import { Connection, Transaction } from '@solana/web3.js';
3
+ import type { InitializeLaunchOptions } from '../types';
4
+ /**
5
+ * Build an unsigned `initialize_launch` transaction.
6
+ *
7
+ * Creates a LaunchConfig PDA and the underlying fundraise vault via CPI to vault::make.
8
+ * The creator signs as both the launch initiator and the vault maker.
9
+ *
10
+ * @param connection - Solana RPC connection (for blockhash)
11
+ * @param launchpadProgram - Anchor program instance for the launchpad
12
+ * @param opts - Initialize launch options
13
+ */
14
+ export declare function buildInitializeLaunchTx(connection: Connection, launchpadProgram: Program<Idl>, opts: InitializeLaunchOptions): Promise<Transaction>;
15
+ //# sourceMappingURL=initialize-launch.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildInitializeLaunchTx = buildInitializeLaunchTx;
4
+ const spl_token_1 = require("@solana/spl-token");
5
+ const web3_js_1 = require("@solana/web3.js");
6
+ const pdas_1 = require("../claims/pdas");
7
+ const pdas_2 = require("./pdas");
8
+ // ============================================================================
9
+ // initialize_launch Transaction Builder
10
+ // ============================================================================
11
+ /**
12
+ * Build an unsigned `initialize_launch` transaction.
13
+ *
14
+ * Creates a LaunchConfig PDA and the underlying fundraise vault via CPI to vault::make.
15
+ * The creator signs as both the launch initiator and the vault maker.
16
+ *
17
+ * @param connection - Solana RPC connection (for blockhash)
18
+ * @param launchpadProgram - Anchor program instance for the launchpad
19
+ * @param opts - Initialize launch options
20
+ */
21
+ async function buildInitializeLaunchTx(connection, launchpadProgram, opts) {
22
+ const { creator, seed, vaultSeed, totalSupply, tokensToParticipants, quoteMint, minRaise, targetRaise, startTime, endTime, vaultProgramId, feePayer, computeUnits, priorityFee, } = opts;
23
+ const launchpadProgramId = launchpadProgram.programId;
24
+ // Derive all accounts deterministically
25
+ const [launchConfig] = (0, pdas_1.deriveLaunchConfigPda)(creator, BigInt(seed.toString()), launchpadProgramId);
26
+ const [launchpadSigner] = (0, pdas_1.deriveLaunchpadSignerPda)(launchConfig, launchpadProgramId);
27
+ const [vault] = (0, pdas_2.deriveVaultPda)(creator, BigInt(vaultSeed.toString()), vaultProgramId);
28
+ const [tgeConfig] = (0, pdas_2.deriveTgeConfigPda)(vault, vaultProgramId);
29
+ const vaultAta = (0, spl_token_1.getAssociatedTokenAddressSync)(quoteMint, vault, true);
30
+ const methods = launchpadProgram.methods;
31
+ const ix = await methods.initializeLaunch({
32
+ seed,
33
+ vaultSeed,
34
+ totalSupply,
35
+ tokensToParticipants,
36
+ fundraiseParams: {
37
+ minRaise,
38
+ targetRaise,
39
+ startTime,
40
+ endTime,
41
+ },
42
+ })
43
+ .accounts({
44
+ creator,
45
+ launchConfig,
46
+ launchpadSigner,
47
+ quoteMint,
48
+ vault,
49
+ vaultAta,
50
+ tgeConfig,
51
+ vaultProgram: vaultProgramId,
52
+ associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
53
+ tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
54
+ systemProgram: web3_js_1.SystemProgram.programId,
55
+ })
56
+ .instruction();
57
+ const tx = new web3_js_1.Transaction();
58
+ if (computeUnits) {
59
+ tx.add(web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: computeUnits }));
60
+ }
61
+ if (priorityFee) {
62
+ tx.add(web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({ microLamports: priorityFee }));
63
+ }
64
+ tx.add(ix);
65
+ tx.feePayer = feePayer ?? creator;
66
+ const { blockhash, lastValidBlockHeight } = await connection.getLatestBlockhash('confirmed');
67
+ tx.recentBlockhash = blockhash;
68
+ tx.lastValidBlockHeight = lastValidBlockHeight;
69
+ return tx;
70
+ }
71
+ //# sourceMappingURL=initialize-launch.js.map
@@ -0,0 +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"}
@@ -0,0 +1,95 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ /**
3
+ * Derive the StarVault PDA from the vault program.
4
+ *
5
+ * Seeds: `["vault", maker, seed_le_bytes]`
6
+ */
7
+ export declare function deriveVaultPda(maker: PublicKey, seed: bigint | number, vaultProgramId: PublicKey): [PublicKey, number];
8
+ /**
9
+ * Derive the TGE config PDA from the vault program.
10
+ *
11
+ * Seeds: `["tge_config", vault]`
12
+ */
13
+ export declare function deriveTgeConfigPda(vault: PublicKey, vaultProgramId: PublicKey): [PublicKey, number];
14
+ /**
15
+ * Derive the position NFT mint PDA.
16
+ *
17
+ * Seeds: `["position_nft_mint", launch_config]`
18
+ *
19
+ * Created by the DAMM program during execute_launch.
20
+ * The launchpad program uses this PDA as a signer for the DAMM CPI.
21
+ */
22
+ export declare function derivePositionNftMintPda(launchConfig: PublicKey, launchpadProgramId: PublicKey): [PublicKey, number];
23
+ /**
24
+ * Derive the DAMM pool authority PDA.
25
+ *
26
+ * Seeds: `["pool_authority"]`
27
+ */
28
+ export declare function deriveDammPoolAuthority(dammProgramId: PublicKey): [PublicKey, number];
29
+ /**
30
+ * Derive a DAMM token vault PDA.
31
+ *
32
+ * Seeds: `["token_vault", token_mint, pool]`
33
+ */
34
+ export declare function deriveDammTokenVault(tokenMint: PublicKey, pool: PublicKey, dammProgramId: PublicKey): [PublicKey, number];
35
+ /**
36
+ * Derive a DAMM position PDA.
37
+ *
38
+ * Seeds: `["position", position_nft_mint]`
39
+ */
40
+ export declare function deriveDammPosition(positionNftMint: PublicKey, dammProgramId: PublicKey): [PublicKey, number];
41
+ /**
42
+ * Derive a DAMM position NFT account PDA.
43
+ *
44
+ * Seeds: `["position_nft_account", position_nft_mint]`
45
+ */
46
+ export declare function deriveDammPositionNftAccount(positionNftMint: PublicKey, dammProgramId: PublicKey): [PublicKey, number];
47
+ /**
48
+ * Derive the DAMM event authority PDA.
49
+ *
50
+ * Seeds: `["__event_authority"]`
51
+ */
52
+ export declare function deriveDammEventAuthority(dammProgramId: PublicKey): [PublicKey, number];
53
+ /**
54
+ * Derive a Squads multisig PDA.
55
+ *
56
+ * Seeds: `["multisig", "multisig", create_key]`
57
+ */
58
+ export declare function deriveSquadsMultisig(createKey: PublicKey, squadsProgramId: PublicKey): [PublicKey, number];
59
+ /**
60
+ * Derive a Squads vault PDA.
61
+ *
62
+ * Seeds: `["multisig", multisig, "vault", vault_index_byte]`
63
+ */
64
+ export declare function deriveSquadsVault(multisig: PublicKey, vaultIndex: number, squadsProgramId: PublicKey): [PublicKey, number];
65
+ /**
66
+ * Derive the Squads program config PDA.
67
+ *
68
+ * Seeds: `["multisig", "program_config"]`
69
+ */
70
+ export declare function deriveSquadsProgramConfig(squadsProgramId: PublicKey): [PublicKey, number];
71
+ /**
72
+ * Derive the DAO PDA.
73
+ *
74
+ * Seeds: `["dao", name]`
75
+ */
76
+ export declare function deriveDaoPda(name: string, futarchyProgramId: PublicKey): [PublicKey, number];
77
+ /**
78
+ * Derive the moderator PDA.
79
+ *
80
+ * Seeds: `["moderator", name]`
81
+ */
82
+ export declare function deriveModeratorPda(name: string, futarchyProgramId: PublicKey): [PublicKey, number];
83
+ /**
84
+ * Derive the mint create key PDA.
85
+ *
86
+ * Seeds: `[dao, "mint_key", name]`
87
+ */
88
+ export declare function deriveMintCreateKeyPda(dao: PublicKey, name: string, futarchyProgramId: PublicKey): [PublicKey, number];
89
+ /**
90
+ * Derive the Metaplex metadata PDA for a mint.
91
+ *
92
+ * Seeds: `["metadata", metaplex_program_id, mint]`
93
+ */
94
+ export declare function deriveMetadataPda(mint: PublicKey, metaplexProgramId: PublicKey): [PublicKey, number];
95
+ //# sourceMappingURL=pdas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdas.d.ts","sourceRoot":"","sources":["../../src/instructions/pdas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,cAAc,EAAE,SAAS,GACxB,CAAC,SAAS,EAAE,MAAM,CAAC,CAQrB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,SAAS,GACxB,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAQD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,SAAS,EACvB,kBAAkB,EAAE,SAAS,GAC5B,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAMD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,SAAS,GACvB,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,SAAS,EACf,aAAa,EAAE,SAAS,GACvB,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,SAAS,EAC1B,aAAa,EAAE,SAAS,GACvB,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,eAAe,EAAE,SAAS,EAC1B,aAAa,EAAE,SAAS,GACvB,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,SAAS,GACvB,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,SAAS,GACzB,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,EACnB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,SAAS,GACzB,CAAC,SAAS,EAAE,MAAM,CAAC,CAQrB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,eAAe,EAAE,SAAS,GACzB,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAMD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,SAAS,GAC3B,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,SAAS,GAC3B,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,SAAS,GAC3B,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB;AAMD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,SAAS,GAC3B,CAAC,SAAS,EAAE,MAAM,CAAC,CAKrB"}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deriveVaultPda = deriveVaultPda;
4
+ exports.deriveTgeConfigPda = deriveTgeConfigPda;
5
+ exports.derivePositionNftMintPda = derivePositionNftMintPda;
6
+ exports.deriveDammPoolAuthority = deriveDammPoolAuthority;
7
+ exports.deriveDammTokenVault = deriveDammTokenVault;
8
+ exports.deriveDammPosition = deriveDammPosition;
9
+ exports.deriveDammPositionNftAccount = deriveDammPositionNftAccount;
10
+ exports.deriveDammEventAuthority = deriveDammEventAuthority;
11
+ exports.deriveSquadsMultisig = deriveSquadsMultisig;
12
+ exports.deriveSquadsVault = deriveSquadsVault;
13
+ exports.deriveSquadsProgramConfig = deriveSquadsProgramConfig;
14
+ exports.deriveDaoPda = deriveDaoPda;
15
+ exports.deriveModeratorPda = deriveModeratorPda;
16
+ exports.deriveMintCreateKeyPda = deriveMintCreateKeyPda;
17
+ exports.deriveMetadataPda = deriveMetadataPda;
18
+ const web3_js_1 = require("@solana/web3.js");
19
+ // ============================================================================
20
+ // Vault Program PDA Helpers
21
+ // ============================================================================
22
+ const VAULT_SEED = Buffer.from('vault');
23
+ const TGE_CONFIG_SEED = Buffer.from('tge_config');
24
+ /**
25
+ * Derive the StarVault PDA from the vault program.
26
+ *
27
+ * Seeds: `["vault", maker, seed_le_bytes]`
28
+ */
29
+ function deriveVaultPda(maker, seed, vaultProgramId) {
30
+ const seedBuf = Buffer.alloc(8);
31
+ seedBuf.writeBigUInt64LE(BigInt(seed));
32
+ return web3_js_1.PublicKey.findProgramAddressSync([VAULT_SEED, maker.toBuffer(), seedBuf], vaultProgramId);
33
+ }
34
+ /**
35
+ * Derive the TGE config PDA from the vault program.
36
+ *
37
+ * Seeds: `["tge_config", vault]`
38
+ */
39
+ function deriveTgeConfigPda(vault, vaultProgramId) {
40
+ return web3_js_1.PublicKey.findProgramAddressSync([TGE_CONFIG_SEED, vault.toBuffer()], vaultProgramId);
41
+ }
42
+ // ============================================================================
43
+ // Launchpad Program PDA Helpers (supplementary — core PDAs in claims/pdas.ts)
44
+ // ============================================================================
45
+ const POSITION_NFT_MINT_SEED = Buffer.from('position_nft_mint');
46
+ /**
47
+ * Derive the position NFT mint PDA.
48
+ *
49
+ * Seeds: `["position_nft_mint", launch_config]`
50
+ *
51
+ * Created by the DAMM program during execute_launch.
52
+ * The launchpad program uses this PDA as a signer for the DAMM CPI.
53
+ */
54
+ function derivePositionNftMintPda(launchConfig, launchpadProgramId) {
55
+ return web3_js_1.PublicKey.findProgramAddressSync([POSITION_NFT_MINT_SEED, launchConfig.toBuffer()], launchpadProgramId);
56
+ }
57
+ // ============================================================================
58
+ // DAMM Program PDA Helpers
59
+ // ============================================================================
60
+ /**
61
+ * Derive the DAMM pool authority PDA.
62
+ *
63
+ * Seeds: `["pool_authority"]`
64
+ */
65
+ function deriveDammPoolAuthority(dammProgramId) {
66
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('pool_authority')], dammProgramId);
67
+ }
68
+ /**
69
+ * Derive a DAMM token vault PDA.
70
+ *
71
+ * Seeds: `["token_vault", token_mint, pool]`
72
+ */
73
+ function deriveDammTokenVault(tokenMint, pool, dammProgramId) {
74
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('token_vault'), tokenMint.toBuffer(), pool.toBuffer()], dammProgramId);
75
+ }
76
+ /**
77
+ * Derive a DAMM position PDA.
78
+ *
79
+ * Seeds: `["position", position_nft_mint]`
80
+ */
81
+ function deriveDammPosition(positionNftMint, dammProgramId) {
82
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('position'), positionNftMint.toBuffer()], dammProgramId);
83
+ }
84
+ /**
85
+ * Derive a DAMM position NFT account PDA.
86
+ *
87
+ * Seeds: `["position_nft_account", position_nft_mint]`
88
+ */
89
+ function deriveDammPositionNftAccount(positionNftMint, dammProgramId) {
90
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('position_nft_account'), positionNftMint.toBuffer()], dammProgramId);
91
+ }
92
+ /**
93
+ * Derive the DAMM event authority PDA.
94
+ *
95
+ * Seeds: `["__event_authority"]`
96
+ */
97
+ function deriveDammEventAuthority(dammProgramId) {
98
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('__event_authority')], dammProgramId);
99
+ }
100
+ // ============================================================================
101
+ // Squads Multisig Program PDA Helpers
102
+ // ============================================================================
103
+ const SQUADS_PREFIX = Buffer.from('multisig');
104
+ /**
105
+ * Derive a Squads multisig PDA.
106
+ *
107
+ * Seeds: `["multisig", "multisig", create_key]`
108
+ */
109
+ function deriveSquadsMultisig(createKey, squadsProgramId) {
110
+ return web3_js_1.PublicKey.findProgramAddressSync([SQUADS_PREFIX, Buffer.from('multisig'), createKey.toBuffer()], squadsProgramId);
111
+ }
112
+ /**
113
+ * Derive a Squads vault PDA.
114
+ *
115
+ * Seeds: `["multisig", multisig, "vault", vault_index_byte]`
116
+ */
117
+ function deriveSquadsVault(multisig, vaultIndex, squadsProgramId) {
118
+ const indexBuf = Buffer.alloc(1);
119
+ indexBuf.writeUInt8(vaultIndex);
120
+ return web3_js_1.PublicKey.findProgramAddressSync([SQUADS_PREFIX, multisig.toBuffer(), Buffer.from('vault'), indexBuf], squadsProgramId);
121
+ }
122
+ /**
123
+ * Derive the Squads program config PDA.
124
+ *
125
+ * Seeds: `["multisig", "program_config"]`
126
+ */
127
+ function deriveSquadsProgramConfig(squadsProgramId) {
128
+ return web3_js_1.PublicKey.findProgramAddressSync([SQUADS_PREFIX, Buffer.from('program_config')], squadsProgramId);
129
+ }
130
+ // ============================================================================
131
+ // Futarchy Program PDA Helpers
132
+ // ============================================================================
133
+ /**
134
+ * Derive the DAO PDA.
135
+ *
136
+ * Seeds: `["dao", name]`
137
+ */
138
+ function deriveDaoPda(name, futarchyProgramId) {
139
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('dao'), Buffer.from(name)], futarchyProgramId);
140
+ }
141
+ /**
142
+ * Derive the moderator PDA.
143
+ *
144
+ * Seeds: `["moderator", name]`
145
+ */
146
+ function deriveModeratorPda(name, futarchyProgramId) {
147
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('moderator'), Buffer.from(name)], futarchyProgramId);
148
+ }
149
+ /**
150
+ * Derive the mint create key PDA.
151
+ *
152
+ * Seeds: `[dao, "mint_key", name]`
153
+ */
154
+ function deriveMintCreateKeyPda(dao, name, futarchyProgramId) {
155
+ return web3_js_1.PublicKey.findProgramAddressSync([dao.toBuffer(), Buffer.from('mint_key'), Buffer.from(name)], futarchyProgramId);
156
+ }
157
+ // ============================================================================
158
+ // Metaplex Token Metadata PDA Helpers
159
+ // ============================================================================
160
+ /**
161
+ * Derive the Metaplex metadata PDA for a mint.
162
+ *
163
+ * Seeds: `["metadata", metaplex_program_id, mint]`
164
+ */
165
+ function deriveMetadataPda(mint, metaplexProgramId) {
166
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('metadata'), metaplexProgramId.toBuffer(), mint.toBuffer()], metaplexProgramId);
167
+ }
168
+ //# sourceMappingURL=pdas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdas.js","sourceRoot":"","sources":["../../src/instructions/pdas.ts"],"names":[],"mappings":"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"}
package/dist/pdas.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ import { DerivePoolAddressInput } from './types';
3
+ /**
4
+ * Derive the DAMM pool PDA for a token pair.
5
+ *
6
+ * Pool PDA = PDA(["pool", config, tokenA, tokenB], DAMM_PROGRAM)
7
+ *
8
+ * Where tokenA and tokenB are sorted (min first, max second).
9
+ *
10
+ * IMPORTANT: The pool doesn't exist yet at reservation time!
11
+ * This computes the PREDICTED address.
12
+ */
13
+ export declare function derivePoolAddress(input: DerivePoolAddressInput, dammProgramId: PublicKey): PublicKey;
14
+ /**
15
+ * Sort two mints for consistent PDA derivation.
16
+ * DAMM pools always have tokenA < tokenB lexicographically.
17
+ */
18
+ export declare function sortMints(mintA: PublicKey, mintB: PublicKey): [PublicKey, PublicKey];
19
+ //# sourceMappingURL=pdas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdas.d.ts","sourceRoot":"","sources":["../src/pdas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,sBAAsB,EAC7B,aAAa,EAAE,SAAS,GACvB,SAAS,CAiBX;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,GACf,CAAC,SAAS,EAAE,SAAS,CAAC,CAQxB"}
package/dist/pdas.js ADDED
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.derivePoolAddress = derivePoolAddress;
4
+ exports.sortMints = sortMints;
5
+ const web3_js_1 = require("@solana/web3.js");
6
+ /**
7
+ * Derive the DAMM pool PDA for a token pair.
8
+ *
9
+ * Pool PDA = PDA(["pool", config, tokenA, tokenB], DAMM_PROGRAM)
10
+ *
11
+ * Where tokenA and tokenB are sorted (min first, max second).
12
+ *
13
+ * IMPORTANT: The pool doesn't exist yet at reservation time!
14
+ * This computes the PREDICTED address.
15
+ */
16
+ function derivePoolAddress(input, dammProgramId) {
17
+ const { baseMint, quoteMint, config } = input;
18
+ // Sort token mints (DAMM requires consistent ordering)
19
+ const [tokenA, tokenB] = sortMints(baseMint, quoteMint);
20
+ const [poolPda] = web3_js_1.PublicKey.findProgramAddressSync([
21
+ Buffer.from('pool'),
22
+ config.toBuffer(),
23
+ tokenA.toBuffer(),
24
+ tokenB.toBuffer(),
25
+ ], dammProgramId);
26
+ return poolPda;
27
+ }
28
+ /**
29
+ * Sort two mints for consistent PDA derivation.
30
+ * DAMM pools always have tokenA < tokenB lexicographically.
31
+ */
32
+ function sortMints(mintA, mintB) {
33
+ const a = mintA.toBuffer();
34
+ const b = mintB.toBuffer();
35
+ if (Buffer.compare(a, b) < 0) {
36
+ return [mintA, mintB];
37
+ }
38
+ return [mintB, mintA];
39
+ }
40
+ //# sourceMappingURL=pdas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdas.js","sourceRoot":"","sources":["../src/pdas.ts"],"names":[],"mappings":";;AAaA,8CAoBC;AAMD,8BAWC;AAlDD,6CAA4C;AAG5C;;;;;;;;;GASG;AACH,SAAgB,iBAAiB,CAC/B,KAA6B,EAC7B,aAAwB;IAExB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE9C,uDAAuD;IACvD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAExD,MAAM,CAAC,OAAO,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CAChD;QACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACnB,MAAM,CAAC,QAAQ,EAAE;QACjB,MAAM,CAAC,QAAQ,EAAE;QACjB,MAAM,CAAC,QAAQ,EAAE;KAClB,EACD,aAAa,CACd,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAgB,SAAS,CACvB,KAAgB,EAChB,KAAgB;IAEhB,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAE3B,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxB,CAAC"}