@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.
- package/dist/src/idls/index.d.ts +7 -4
- package/dist/src/idls/index.js +6 -5
- package/dist/src/idls/index.js.map +1 -1
- package/dist/src/idls/scripts/generate-types.d.ts +1 -0
- package/dist/src/idls/scripts/generate-types.js +131 -0
- package/dist/src/idls/scripts/generate-types.js.map +1 -0
- package/dist/src/idls/types/meteoraDLMM.d.ts +6960 -4162
- package/dist/src/idls/types/splToken.d.ts +1086 -0
- package/dist/src/idls/types/splToken.js +2 -0
- package/dist/src/idls/types/splToken.js.map +1 -0
- package/package.json +2 -1
package/dist/src/idls/index.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { LbClmm } from "./types/meteoraDLMM";
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
[
|
|
8
|
+
[Idls.MeteoraDLMM]: LbClmm;
|
|
9
|
+
[Idls.SplToken]: SplToken;
|
|
7
10
|
};
|
|
8
|
-
export declare function getIdl<T extends
|
|
11
|
+
export declare function getIdl<T extends Idls>(name: T): Promise<IdlTypeMap[T]>;
|
package/dist/src/idls/index.js
CHANGED
|
@@ -6,12 +6,13 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
6
6
|
}
|
|
7
7
|
return path;
|
|
8
8
|
};
|
|
9
|
-
export {
|
|
9
|
+
export { Idls };
|
|
10
10
|
// Idl identifiers
|
|
11
|
-
var
|
|
12
|
-
(function (
|
|
13
|
-
|
|
14
|
-
|
|
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":";;;;;;;;
|
|
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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"}
|