@aifinpay/deployments 1.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.
- package/README.md +133 -0
- package/USAGE.md +534 -0
- package/dist/artifacts.d.ts +62 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +210 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/build.d.ts +2 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +25 -0
- package/dist/build.js.map +1 -0
- package/dist/grabber.d.ts +42 -0
- package/dist/grabber.d.ts.map +1 -0
- package/dist/grabber.js +379 -0
- package/dist/grabber.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/registry.d.ts +147 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +263 -0
- package/dist/registry.js.map +1 -0
- package/dist/types.d.ts +139 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +14 -0
- package/dist/types.js.map +1 -0
- package/package.json +36 -0
- package/registry/abi/evm/B2BSplitterV14/B2BSplitterV14.json +1318 -0
- package/registry/abi/evm/TimelockWrapper/TimelockWrapper.json +277 -0
- package/registry/abi/tron/.gitkeep +0 -0
- package/registry/idl/aptos/.gitkeep +0 -0
- package/registry/idl/casper/.gitkeep +0 -0
- package/registry/idl/casper/aifinpay-casper-schema.json +108 -0
- package/registry/idl/solana/splitter-v14/splitter.devnet.json +1962 -0
- package/registry/idl/solana/splitter-v14/splitter.mainnet.json +1962 -0
- package/registry/splitter/INDEX.md +163 -0
- package/registry/splitter/casper/README.md +101 -0
- package/registry/splitter/casper/deployments.json +110 -0
- package/registry/splitter/evm/v1.1/README.md +32 -0
- package/registry/splitter/evm/v1.1/deployments.json +45 -0
- package/registry/splitter/evm/v1.2/README.md +47 -0
- package/registry/splitter/evm/v1.2/deployments.json +76 -0
- package/registry/splitter/evm/v1.3/README.md +78 -0
- package/registry/splitter/evm/v1.3/deployments.json +280 -0
- package/registry/splitter/evm/v1.4/README.md +75 -0
- package/registry/splitter/evm/v1.4/deployments.json +358 -0
- package/registry/splitter/solana/README.md +49 -0
- package/registry/splitter/solana/deployments.json +48 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export interface EvmAbiArtifact {
|
|
2
|
+
contractName: string;
|
|
3
|
+
version: string;
|
|
4
|
+
abi: unknown[];
|
|
5
|
+
bytecode?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface SolanaIdlArtifact {
|
|
8
|
+
programName: string;
|
|
9
|
+
version: string;
|
|
10
|
+
cluster: "mainnet" | "devnet";
|
|
11
|
+
idl: unknown;
|
|
12
|
+
}
|
|
13
|
+
export interface CasperIdlArtifact {
|
|
14
|
+
contractName: string;
|
|
15
|
+
version: string;
|
|
16
|
+
network: "mainnet" | "testnet";
|
|
17
|
+
idl: unknown;
|
|
18
|
+
}
|
|
19
|
+
export interface AptosIdlArtifact {
|
|
20
|
+
contractName: string;
|
|
21
|
+
version: string;
|
|
22
|
+
idl: unknown;
|
|
23
|
+
}
|
|
24
|
+
export interface TronAbiArtifact {
|
|
25
|
+
contractName: string;
|
|
26
|
+
version: string;
|
|
27
|
+
abi: unknown[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Programmatic interface to query ABI and IDL artifacts.
|
|
31
|
+
* Provides type-safe access to contract interface definitions.
|
|
32
|
+
*/
|
|
33
|
+
export declare class ArtifactRegistry {
|
|
34
|
+
private evmAbiCache;
|
|
35
|
+
private solanaIdlCache;
|
|
36
|
+
private casperIdlCache;
|
|
37
|
+
private aptosIdlCache;
|
|
38
|
+
private tronAbiCache;
|
|
39
|
+
private constructor();
|
|
40
|
+
static load(): ArtifactRegistry;
|
|
41
|
+
private loadEvmAbiArtifacts;
|
|
42
|
+
private loadSolanaIdlArtifacts;
|
|
43
|
+
private loadCasperIdlArtifacts;
|
|
44
|
+
private loadAptosIdlArtifacts;
|
|
45
|
+
private loadTronAbiArtifacts;
|
|
46
|
+
getEvmAbi(contractName: string, version?: string): EvmAbiArtifact | null;
|
|
47
|
+
getAllEvmAbis(): EvmAbiArtifact[];
|
|
48
|
+
getSolanaIdl(cluster: "mainnet" | "devnet"): SolanaIdlArtifact | null;
|
|
49
|
+
getAllSolanaIdls(): SolanaIdlArtifact[];
|
|
50
|
+
getCasperIdl(network: "mainnet" | "testnet"): CasperIdlArtifact | null;
|
|
51
|
+
getAllCasperIdls(): CasperIdlArtifact[];
|
|
52
|
+
getAptosIdl(contractName: string, version?: string): AptosIdlArtifact | null;
|
|
53
|
+
getAllAptosIdls(): AptosIdlArtifact[];
|
|
54
|
+
getTronAbi(contractName: string, version?: string): TronAbiArtifact | null;
|
|
55
|
+
getAllTronAbis(): TronAbiArtifact[];
|
|
56
|
+
private readDirectories;
|
|
57
|
+
private readJsonFiles;
|
|
58
|
+
private extractContractName;
|
|
59
|
+
private extractVersionFromContractDir;
|
|
60
|
+
private extractVersion;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=artifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,EAAE,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,YAAY,CAA+B;IAEnD,OAAO,eAMN;IAED,MAAM,CAAC,IAAI,IAAI,gBAAgB,CAQ9B;IAED,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,oBAAoB;IAmB5B,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,GAAE,MAAc,GAAG,cAAc,GAAG,IAAI,CAG9E;IAED,aAAa,IAAI,cAAc,EAAE,CAEhC;IAED,YAAY,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,iBAAiB,GAAG,IAAI,CAEpE;IAED,gBAAgB,IAAI,iBAAiB,EAAE,CAEtC;IAED,YAAY,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,IAAI,CAErE;IAED,gBAAgB,IAAI,iBAAiB,EAAE,CAEtC;IAED,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAW3E;IAED,eAAe,IAAI,gBAAgB,EAAE,CAEpC;IAED,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAWzE;IAED,cAAc,IAAI,eAAe,EAAE,CAElC;IAED,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,6BAA6B;IAQrC,OAAO,CAAC,cAAc;CAKvB"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { readFileSync, existsSync, readdirSync } from "node:fs";
|
|
2
|
+
import { join, dirname, extname } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
5
|
+
const REGISTRY_ROOT = join(__dirname, "../registry");
|
|
6
|
+
const ABI_DIR = join(REGISTRY_ROOT, "abi");
|
|
7
|
+
const IDL_DIR = join(REGISTRY_ROOT, "idl");
|
|
8
|
+
/**
|
|
9
|
+
* Programmatic interface to query ABI and IDL artifacts.
|
|
10
|
+
* Provides type-safe access to contract interface definitions.
|
|
11
|
+
*/
|
|
12
|
+
export class ArtifactRegistry {
|
|
13
|
+
evmAbiCache;
|
|
14
|
+
solanaIdlCache;
|
|
15
|
+
casperIdlCache;
|
|
16
|
+
aptosIdlCache;
|
|
17
|
+
tronAbiCache;
|
|
18
|
+
constructor() {
|
|
19
|
+
this.evmAbiCache = new Map();
|
|
20
|
+
this.solanaIdlCache = new Map();
|
|
21
|
+
this.casperIdlCache = new Map();
|
|
22
|
+
this.aptosIdlCache = new Map();
|
|
23
|
+
this.tronAbiCache = new Map();
|
|
24
|
+
}
|
|
25
|
+
static load() {
|
|
26
|
+
const registry = new ArtifactRegistry();
|
|
27
|
+
registry.loadEvmAbiArtifacts();
|
|
28
|
+
registry.loadSolanaIdlArtifacts();
|
|
29
|
+
registry.loadCasperIdlArtifacts();
|
|
30
|
+
registry.loadAptosIdlArtifacts();
|
|
31
|
+
registry.loadTronAbiArtifacts();
|
|
32
|
+
return registry;
|
|
33
|
+
}
|
|
34
|
+
loadEvmAbiArtifacts() {
|
|
35
|
+
const evmDir = join(ABI_DIR, "evm");
|
|
36
|
+
if (!existsSync(evmDir))
|
|
37
|
+
return;
|
|
38
|
+
const contractDirs = this.readDirectories(evmDir);
|
|
39
|
+
for (const dir of contractDirs) {
|
|
40
|
+
const contractName = dir;
|
|
41
|
+
const jsonFiles = this.readJsonFiles(join(evmDir, dir));
|
|
42
|
+
for (const file of jsonFiles) {
|
|
43
|
+
const content = JSON.parse(readFileSync(file, "utf-8"));
|
|
44
|
+
const version = this.extractVersionFromContractDir(dir, content, file);
|
|
45
|
+
const artifact = {
|
|
46
|
+
contractName,
|
|
47
|
+
version,
|
|
48
|
+
abi: content.abi || [],
|
|
49
|
+
bytecode: content.bytecode,
|
|
50
|
+
};
|
|
51
|
+
const key = `${contractName}@${version}`;
|
|
52
|
+
this.evmAbiCache.set(key, artifact);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
loadSolanaIdlArtifacts() {
|
|
57
|
+
const solanaDir = join(IDL_DIR, "solana", "splitter-v14");
|
|
58
|
+
if (!existsSync(solanaDir))
|
|
59
|
+
return;
|
|
60
|
+
const clusters = ["mainnet", "devnet"];
|
|
61
|
+
for (const cluster of clusters) {
|
|
62
|
+
const file = join(solanaDir, `splitter.${cluster}.json`);
|
|
63
|
+
if (existsSync(file)) {
|
|
64
|
+
const content = JSON.parse(readFileSync(file, "utf-8"));
|
|
65
|
+
const artifact = {
|
|
66
|
+
programName: "splitter",
|
|
67
|
+
version: "1.4",
|
|
68
|
+
cluster,
|
|
69
|
+
idl: content,
|
|
70
|
+
};
|
|
71
|
+
this.solanaIdlCache.set(cluster, artifact);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
loadCasperIdlArtifacts() {
|
|
76
|
+
const casperDir = join(IDL_DIR, "casper");
|
|
77
|
+
if (!existsSync(casperDir))
|
|
78
|
+
return;
|
|
79
|
+
const networks = ["mainnet", "testnet"];
|
|
80
|
+
for (const network of networks) {
|
|
81
|
+
const file = join(casperDir, `splitter.${network}.json`);
|
|
82
|
+
if (existsSync(file)) {
|
|
83
|
+
const content = JSON.parse(readFileSync(file, "utf-8"));
|
|
84
|
+
const artifact = {
|
|
85
|
+
contractName: "splitter",
|
|
86
|
+
version: "1.4",
|
|
87
|
+
network,
|
|
88
|
+
idl: content,
|
|
89
|
+
};
|
|
90
|
+
this.casperIdlCache.set(network, artifact);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
loadAptosIdlArtifacts() {
|
|
95
|
+
const aptosDir = join(IDL_DIR, "aptos");
|
|
96
|
+
if (!existsSync(aptosDir))
|
|
97
|
+
return;
|
|
98
|
+
const jsonFiles = this.readJsonFiles(aptosDir);
|
|
99
|
+
for (const file of jsonFiles) {
|
|
100
|
+
const content = JSON.parse(readFileSync(file, "utf-8"));
|
|
101
|
+
const contractName = this.extractContractName(file);
|
|
102
|
+
const version = this.extractVersion(file, contractName);
|
|
103
|
+
const artifact = {
|
|
104
|
+
contractName,
|
|
105
|
+
version,
|
|
106
|
+
idl: content,
|
|
107
|
+
};
|
|
108
|
+
const key = `${contractName}@${version}`;
|
|
109
|
+
this.aptosIdlCache.set(key, artifact);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
loadTronAbiArtifacts() {
|
|
113
|
+
const tronDir = join(ABI_DIR, "tron");
|
|
114
|
+
if (!existsSync(tronDir))
|
|
115
|
+
return;
|
|
116
|
+
const jsonFiles = this.readJsonFiles(tronDir);
|
|
117
|
+
for (const file of jsonFiles) {
|
|
118
|
+
const content = JSON.parse(readFileSync(file, "utf-8"));
|
|
119
|
+
const contractName = this.extractContractName(file);
|
|
120
|
+
const version = this.extractVersion(file, contractName);
|
|
121
|
+
const artifact = {
|
|
122
|
+
contractName,
|
|
123
|
+
version,
|
|
124
|
+
abi: content.abi || [],
|
|
125
|
+
};
|
|
126
|
+
const key = `${contractName}@${version}`;
|
|
127
|
+
this.tronAbiCache.set(key, artifact);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
getEvmAbi(contractName, version = "1.4") {
|
|
131
|
+
const key = `${contractName}@${version}`;
|
|
132
|
+
return this.evmAbiCache.get(key) ?? null;
|
|
133
|
+
}
|
|
134
|
+
getAllEvmAbis() {
|
|
135
|
+
return Array.from(this.evmAbiCache.values());
|
|
136
|
+
}
|
|
137
|
+
getSolanaIdl(cluster) {
|
|
138
|
+
return this.solanaIdlCache.get(cluster) ?? null;
|
|
139
|
+
}
|
|
140
|
+
getAllSolanaIdls() {
|
|
141
|
+
return Array.from(this.solanaIdlCache.values());
|
|
142
|
+
}
|
|
143
|
+
getCasperIdl(network) {
|
|
144
|
+
return this.casperIdlCache.get(network) ?? null;
|
|
145
|
+
}
|
|
146
|
+
getAllCasperIdls() {
|
|
147
|
+
return Array.from(this.casperIdlCache.values());
|
|
148
|
+
}
|
|
149
|
+
getAptosIdl(contractName, version) {
|
|
150
|
+
if (version) {
|
|
151
|
+
const key = `${contractName}@${version}`;
|
|
152
|
+
return this.aptosIdlCache.get(key) ?? null;
|
|
153
|
+
}
|
|
154
|
+
for (const [key, artifact] of this.aptosIdlCache.entries()) {
|
|
155
|
+
if (key.startsWith(`${contractName}@`)) {
|
|
156
|
+
return artifact;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
getAllAptosIdls() {
|
|
162
|
+
return Array.from(this.aptosIdlCache.values());
|
|
163
|
+
}
|
|
164
|
+
getTronAbi(contractName, version) {
|
|
165
|
+
if (version) {
|
|
166
|
+
const key = `${contractName}@${version}`;
|
|
167
|
+
return this.tronAbiCache.get(key) ?? null;
|
|
168
|
+
}
|
|
169
|
+
for (const [key, artifact] of this.tronAbiCache.entries()) {
|
|
170
|
+
if (key.startsWith(`${contractName}@`)) {
|
|
171
|
+
return artifact;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
getAllTronAbis() {
|
|
177
|
+
return Array.from(this.tronAbiCache.values());
|
|
178
|
+
}
|
|
179
|
+
readDirectories(dir) {
|
|
180
|
+
if (!existsSync(dir))
|
|
181
|
+
return [];
|
|
182
|
+
const entries = readdirSync(dir, { withFileTypes: true });
|
|
183
|
+
return entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name);
|
|
184
|
+
}
|
|
185
|
+
readJsonFiles(dir) {
|
|
186
|
+
if (!existsSync(dir))
|
|
187
|
+
return [];
|
|
188
|
+
const entries = readdirSync(dir, { withFileTypes: true });
|
|
189
|
+
return entries
|
|
190
|
+
.filter((entry) => entry.isFile() && extname(entry.name) === ".json")
|
|
191
|
+
.map((entry) => join(dir, entry.name));
|
|
192
|
+
}
|
|
193
|
+
extractContractName(filePath) {
|
|
194
|
+
const base = filePath.split("/").pop() ?? "";
|
|
195
|
+
return base.replace(/\.json$/, "");
|
|
196
|
+
}
|
|
197
|
+
extractVersionFromContractDir(dirName, content, _filePath) {
|
|
198
|
+
if (content && typeof content === "object" && "version" in content) {
|
|
199
|
+
return String(content.version);
|
|
200
|
+
}
|
|
201
|
+
const versionMatch = /v?(\d+\.\d+(?:\.\d+)?)/.exec(dirName);
|
|
202
|
+
return versionMatch ? versionMatch[1] : "1.4";
|
|
203
|
+
}
|
|
204
|
+
extractVersion(filePath, _contractName) {
|
|
205
|
+
const base = filePath.split("/").pop() ?? "";
|
|
206
|
+
const versionMatch = /v?(\d+\.\d+(?:\.\d+)?)/.exec(base);
|
|
207
|
+
return versionMatch ? versionMatch[1] : "1.0";
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACrD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAmC3C;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACnB,WAAW,CAA8B;IACzC,cAAc,CAA+C;IAC7D,cAAc,CAAgD;IAC9D,aAAa,CAAgC;IAC7C,YAAY,CAA+B;IAEnD;QACE,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,IAAI;QACT,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACxC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QAC/B,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QAClC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QAClC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QACjC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,mBAAmB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO;QAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,GAAG,CAAC;YACzB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACxD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACvE,MAAM,QAAQ,GAAmB;oBAC/B,YAAY;oBACZ,OAAO;oBACP,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE;oBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B,CAAC;gBACF,MAAM,GAAG,GAAG,GAAG,YAAY,IAAI,OAAO,EAAE,CAAC;gBACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,sBAAsB;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO;QAEnC,MAAM,QAAQ,GAAgC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,OAAO,OAAO,CAAC,CAAC;YACzD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBACxD,MAAM,QAAQ,GAAsB;oBAClC,WAAW,EAAE,UAAU;oBACvB,OAAO,EAAE,KAAK;oBACd,OAAO;oBACP,GAAG,EAAE,OAAO;iBACb,CAAC;gBACF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAEO,sBAAsB;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO;QAEnC,MAAM,QAAQ,GAAiC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACtE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,OAAO,OAAO,CAAC,CAAC;YACzD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBACxD,MAAM,QAAQ,GAAsB;oBAClC,YAAY,EAAE,UAAU;oBACxB,OAAO,EAAE,KAAK;oBACd,OAAO;oBACP,GAAG,EAAE,OAAO;iBACb,CAAC;gBACF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO;QAElC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAqB;gBACjC,YAAY;gBACZ,OAAO;gBACP,GAAG,EAAE,OAAO;aACb,CAAC;YACF,MAAM,GAAG,GAAG,GAAG,YAAY,IAAI,OAAO,EAAE,CAAC;YACzC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAoB;gBAChC,YAAY;gBACZ,OAAO;gBACP,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE;aACvB,CAAC;YACF,MAAM,GAAG,GAAG,GAAG,YAAY,IAAI,OAAO,EAAE,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,SAAS,CAAC,YAAoB,EAAE,OAAO,GAAW,KAAK;QACrD,MAAM,GAAG,GAAG,GAAG,YAAY,IAAI,OAAO,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IAC3C,CAAC;IAED,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,YAAY,CAAC,OAA6B;QACxC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IAClD,CAAC;IAED,gBAAgB;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,YAAY,CAAC,OAA8B;QACzC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IAClD,CAAC;IAED,gBAAgB;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,WAAW,CAAC,YAAoB,EAAE,OAAgB;QAChD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,GAAG,YAAY,IAAI,OAAO,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QAC7C,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3D,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;gBACvC,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAC,YAAoB,EAAE,OAAgB;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,GAAG,YAAY,IAAI,OAAO,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QAC5C,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;gBACvC,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,eAAe,CAAC,GAAW;QACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;IAEO,aAAa,CAAC,GAAW;QAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC;aACpE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEO,mBAAmB,CAAC,QAAgB;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAEO,6BAA6B,CAAC,OAAe,EAAE,OAAgB,EAAE,SAAiB;QACxF,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACnE,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAChD,CAAC;IAEO,cAAc,CAAC,QAAgB,EAAE,aAAqB;QAC5D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAChD,CAAC;CACF"}
|
package/dist/build.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":""}
|
package/dist/build.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { existsSync, mkdirSync } from "node:fs";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { buildRegistry, writeSplitRegistries } from "./grabber.js";
|
|
5
|
+
const ROOT = dirname(fileURLToPath(import.meta.url));
|
|
6
|
+
const OUT_DIR = join(ROOT, "../registry");
|
|
7
|
+
async function main() {
|
|
8
|
+
if (!existsSync(OUT_DIR))
|
|
9
|
+
mkdirSync(OUT_DIR, { recursive: true });
|
|
10
|
+
const registry = await buildRegistry();
|
|
11
|
+
const split = writeSplitRegistries(registry, OUT_DIR);
|
|
12
|
+
const evmCount = Object.keys(registry.evm).length;
|
|
13
|
+
const solanaCount = Object.keys(registry.solana).length;
|
|
14
|
+
const solanaIdls = Object.values(registry.solana).map((d) => d.idlPath);
|
|
15
|
+
console.log(` EVM: ${evmCount} chain(s)`);
|
|
16
|
+
console.log(` Solana: ${solanaCount} cluster(s)`);
|
|
17
|
+
console.log(` Solana IDLs: ${solanaIdls.join(", ")}`);
|
|
18
|
+
console.log(` Split files: ${split.join(", ")}`);
|
|
19
|
+
console.log(` Generated at: ${registry.generatedAt}`);
|
|
20
|
+
}
|
|
21
|
+
main().catch((error) => {
|
|
22
|
+
console.error(error.message);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAiB,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEnE,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAE1C,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,MAAM,aAAa,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,UAAU,QAAQ,WAAW,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,aAAa,WAAW,aAAa,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { DeploymentRegistry, EvmDeployment, SolanaDeployment } from "./types.js";
|
|
2
|
+
export declare const ABI_DIR: string;
|
|
3
|
+
export declare const IDL_DIR: string;
|
|
4
|
+
/** Ensure an output directory exists. */
|
|
5
|
+
export declare function ensureDir(dir: string): void;
|
|
6
|
+
/**
|
|
7
|
+
* Fetch the directory listing of raw JSON files from a GitHub repository.
|
|
8
|
+
* Uses the public GitHub API (no auth required for public repos).
|
|
9
|
+
*/
|
|
10
|
+
export declare function listGitHubFiles(owner: string, repo: string, path: string, ref: string): Promise<string[]>;
|
|
11
|
+
/** Fetch a single raw JSON document. */
|
|
12
|
+
export declare function fetchJson<T = unknown>(url: string): Promise<T>;
|
|
13
|
+
/**
|
|
14
|
+
* List and fetch EVM deployments. For each chainId keep only the latest record
|
|
15
|
+
* by (version desc, timestamp desc), restricted to v1.2 and v1.4.
|
|
16
|
+
*/
|
|
17
|
+
export declare function grabEvmDeployments(): Promise<Record<string, EvmDeployment>>;
|
|
18
|
+
/**
|
|
19
|
+
* List and fetch Solana splitter_v14 deployments. Keep latest per cluster.
|
|
20
|
+
*/
|
|
21
|
+
export declare function grabSolanaDeployments(): Promise<Record<string, SolanaDeployment>>;
|
|
22
|
+
/**
|
|
23
|
+
* Compare two (version, timestamp) pairs.
|
|
24
|
+
* Higher semantic version wins; if equal, later timestamp wins.
|
|
25
|
+
*/
|
|
26
|
+
export declare function compareVersionTime(aVersion: string, aTime: number, bVersion: string, bTime: number): number;
|
|
27
|
+
/**
|
|
28
|
+
* Build the combined registry from upstream repos.
|
|
29
|
+
*/
|
|
30
|
+
export declare function buildRegistry(): Promise<DeploymentRegistry>;
|
|
31
|
+
/**
|
|
32
|
+
* Write per-ecosystem split registry files from the combined registry.
|
|
33
|
+
* Returns the list of file paths written.
|
|
34
|
+
* Uses the same schema as splitter versioned deployments.json for consistency.
|
|
35
|
+
*/
|
|
36
|
+
export declare function writeSplitRegistries(registry: DeploymentRegistry, outDir: string): string[];
|
|
37
|
+
/**
|
|
38
|
+
* O(1) lookup helpers for generated registry.
|
|
39
|
+
*/
|
|
40
|
+
export declare function getEvmDeployment(registry: DeploymentRegistry, chainId: number | string): EvmDeployment | undefined;
|
|
41
|
+
export declare function getSolanaDeployment(registry: DeploymentRegistry, cluster: "mainnet" | "devnet"): SolanaDeployment | undefined;
|
|
42
|
+
//# sourceMappingURL=grabber.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grabber.d.ts","sourceRoot":"","sources":["../src/grabber.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGtF,eAAO,MAAM,OAAO,QAAgC,CAAC;AACrD,eAAO,MAAM,OAAO,QAAgC,CAAC;AAKrD,yCAAyC;AACzC,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,EAAE,CAAC,CAYnB;AAED,wCAAwC;AACxC,wBAAsB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAMpE;AAoFD;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CA+CjF;AA+BD;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAwCvF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK3G;AASD;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAYjE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAgI3F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,CAElH;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAE7H"}
|