@merkl/contracts 1.10.16 → 1.11.7

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,8 +1,11 @@
1
1
  import type { LbClmm } from "./types/meteoraDLMM";
2
- export declare enum IdlName {
3
- MeteoraDLMM = "meteoraDLMM"
2
+ import type { SplToken } from "./types/splToken";
3
+ export declare enum Idls {
4
+ MeteoraDLMM = "meteoraDLMM",
5
+ SplToken = "splToken"
4
6
  }
5
7
  export type IdlTypeMap = {
6
- [IdlName.MeteoraDLMM]: LbClmm;
8
+ [Idls.MeteoraDLMM]: LbClmm;
9
+ [Idls.SplToken]: SplToken;
7
10
  };
8
- export declare function getIdl<T extends IdlName>(name: T): Promise<IdlTypeMap[T]>;
11
+ export declare function getIdl<T extends Idls>(name: T): Promise<IdlTypeMap[T]>;
@@ -6,12 +6,13 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
6
6
  }
7
7
  return path;
8
8
  };
9
- export { IdlName };
9
+ export { Idls };
10
10
  // Idl identifiers
11
- var IdlName;
12
- (function (IdlName) {
13
- IdlName["MeteoraDLMM"] = "meteoraDLMM";
14
- })(IdlName || (IdlName = {}));
11
+ var Idls;
12
+ (function (Idls) {
13
+ Idls["MeteoraDLMM"] = "meteoraDLMM";
14
+ Idls["SplToken"] = "splToken";
15
+ })(Idls || (Idls = {}));
15
16
  export async function getIdl(name) {
16
17
  const idl = await import(__rewriteRelativeImportExtension(`./idls/${name}.json`));
17
18
  return idl.default ?? idl;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/idls/index.ts"],"names":[],"mappings":";;;;;;;;SAIY,OAAO;AADnB,kBAAkB;AAClB,IAAY,OAEX;AAFD,WAAY,OAAO;IACjB,sCAA2B,CAAA;AAAC,CAC9B,EAFY,OAAO,KAAP,OAAO,QAElB;AAOD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAoB,IAAO,EAA0B;IAC/E,MAAM,GAAG,GAAG,MAAM,MAAM,kCAAC,UAAU,IAAI,OAAO,EAAC,CAAC;IAChD,OAAO,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;AAAA,CAC3B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/idls/index.ts"],"names":[],"mappings":";;;;;;;;SAKY,IAAI;AADhB,kBAAkB;AAClB,IAAY,IAGX;AAHD,WAAY,IAAI;IACd,mCAA2B,CAAA;IAC3B,6BAAqB,CAAA;AAAC,CACxB,EAHY,IAAI,KAAJ,IAAI,QAGf;AAQD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAiB,IAAO,EAA0B;IAC5E,MAAM,GAAG,GAAG,MAAM,MAAM,kCAAC,UAAU,IAAI,OAAO,EAAC,CAAC;IAChD,OAAO,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;AAAA,CAC3B"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,131 @@
1
+ import { execSync } from "node:child_process";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ /**
5
+ * Script to generate TypeScript types from Anchor IDL JSON files
6
+ * Runs `anchor idl type <file>.json -o types/<file>.ts` for each IDL
7
+ * and updates the index.ts with enum and type mappings
8
+ */
9
+ const IDLS_DIR = path.join(__dirname, "../idls");
10
+ const TYPES_DIR = path.join(__dirname, "../types");
11
+ const INDEX_FILE = path.join(__dirname, "../index.ts");
12
+ // Name mappings for cleaner enum names
13
+ const NAME_MAPPINGS = {
14
+ "spl-token": "SplToken",
15
+ "spl-stake-pool": "SplStakePool",
16
+ "spl-governance": "SplGovernance",
17
+ "spl-associated-token-account": "SplAssociatedTokenAccount",
18
+ meteoraDLMM: "MeteoraDLMM",
19
+ };
20
+ function toPascalCase(str) {
21
+ return str
22
+ .split(/[-_]/)
23
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
24
+ .join("");
25
+ }
26
+ function toCamelCase(str) {
27
+ const pascal = toPascalCase(str);
28
+ return pascal.charAt(0).toLowerCase() + pascal.slice(1);
29
+ }
30
+ function getTypeName(jsonFile) {
31
+ try {
32
+ const jsonPath = path.join(IDLS_DIR, jsonFile);
33
+ const content = fs.readFileSync(jsonPath, "utf-8");
34
+ const idl = JSON.parse(content);
35
+ // Use the name from IDL metadata if available
36
+ if (idl.metadata?.name) {
37
+ return toPascalCase(idl.metadata.name);
38
+ }
39
+ if (idl.name) {
40
+ return toPascalCase(idl.name);
41
+ }
42
+ }
43
+ catch (e) {
44
+ // Fallback to filename
45
+ }
46
+ const basename = path.basename(jsonFile, ".json");
47
+ return toPascalCase(basename);
48
+ }
49
+ async function generateTypes() {
50
+ // Ensure types directory exists
51
+ if (!fs.existsSync(TYPES_DIR)) {
52
+ fs.mkdirSync(TYPES_DIR, { recursive: true });
53
+ }
54
+ // Find all JSON files in idls directory
55
+ const files = fs.readdirSync(IDLS_DIR).filter(file => file.endsWith(".json"));
56
+ if (files.length === 0) {
57
+ console.log("⚠️ No IDL JSON files found");
58
+ return;
59
+ }
60
+ const idlInfos = [];
61
+ console.log(`📦 Found ${files.length} IDL files`);
62
+ for (const file of files) {
63
+ const basename = path.basename(file, ".json");
64
+ const outputFile = `${basename}.ts`;
65
+ const outputPath = path.join(TYPES_DIR, outputFile);
66
+ console.log(`🔨 Processing ${file}...`);
67
+ try {
68
+ // Run anchor idl type command
69
+ execSync(`anchor idl type ${file} -o ${outputPath}`, {
70
+ cwd: IDLS_DIR,
71
+ stdio: "pipe",
72
+ });
73
+ // Get the type name from the generated file
74
+ const typeName = getTypeName(file);
75
+ const enumName = NAME_MAPPINGS[basename] || toPascalCase(basename);
76
+ idlInfos.push({
77
+ jsonFile: file,
78
+ enumName,
79
+ typeName,
80
+ typeFile: basename,
81
+ });
82
+ console.log(`✅ Generated ${outputFile} (type: ${typeName})`);
83
+ }
84
+ catch (error) {
85
+ console.error(`❌ Failed to process ${file}:`, error.message);
86
+ }
87
+ }
88
+ // Update index.ts
89
+ if (idlInfos.length > 0) {
90
+ updateIndexFile(idlInfos);
91
+ console.log("\n✅ Updated index.ts");
92
+ }
93
+ console.log(`\n🎉 Successfully processed ${idlInfos.length}/${files.length} IDL files`);
94
+ }
95
+ function updateIndexFile(idlInfos) {
96
+ // Sort by enum name for consistency
97
+ idlInfos.sort((a, b) => a.enumName.localeCompare(b.enumName));
98
+ // Generate imports
99
+ const imports = idlInfos
100
+ .map(info => `import type { ${info.typeName} } from "./types/${info.typeFile}";`)
101
+ .join("\n");
102
+ // Generate enum entries
103
+ const enumEntries = idlInfos.map(info => ` ${info.enumName} = "${toCamelCase(info.typeFile)}",`).join("\n");
104
+ // Generate type map entries
105
+ const typeMapEntries = idlInfos.map(info => ` [IdlName.${info.enumName}]: ${info.typeName};`).join("\n");
106
+ const indexContent = `// Auto-generated by scripts/generate-types.ts
107
+ ${imports}
108
+
109
+ // Idl identifiers
110
+ export enum IdlName {
111
+ ${enumEntries}
112
+ }
113
+
114
+ // Map of IDL names to their TypeScript types
115
+ export type IdlTypeMap = {
116
+ ${typeMapEntries}
117
+ };
118
+
119
+ export async function getIdl<T extends IdlName>(name: T): Promise<IdlTypeMap[T]> {
120
+ const idl = await import(\`./idls/\${name}.json\`);
121
+ return idl.default ?? idl;
122
+ }
123
+ `;
124
+ fs.writeFileSync(INDEX_FILE, indexContent);
125
+ }
126
+ // Run the script
127
+ generateTypes().catch(error => {
128
+ console.error("❌ Script failed:", error);
129
+ process.exit(1);
130
+ });
131
+ //# sourceMappingURL=generate-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../../../src/idls/scripts/generate-types.ts"],"names":[],"mappings":"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"}