@sparkdotfi/abi-cli 0.2.0-20251029.1a3e2bf9 → 0.2.0-20251031.00360a84
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/codegen/codegenCheckedAddressMap.js +6 -0
- package/dist/src/codegen/codegenModule.js +8 -4
- package/dist/src/codegen/sections.js +22 -8
- package/dist/src/manifest/manifest.js +1 -0
- package/dist/types/src/codegen/codegenCheckedAddressMap.d.ts +3 -0
- package/dist/types/src/codegen/codegenCheckedAddressMap.d.ts.map +1 -0
- package/dist/types/src/codegen/codegenModule.d.ts.map +1 -1
- package/dist/types/src/codegen/sections.d.ts +6 -5
- package/dist/types/src/codegen/sections.d.ts.map +1 -1
- package/dist/types/src/codegen/types.d.ts +3 -0
- package/dist/types/src/codegen/types.d.ts.map +1 -1
- package/dist/types/src/manifest/manifest.d.ts +5 -0
- package/dist/types/src/manifest/manifest.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { formatWithPrettier } from './formatWithPrettier.js';
|
|
2
|
-
import { contractSection, eoaSection } from './sections.js';
|
|
2
|
+
import { contractSection, eoaSection, importsSection } from './sections.js';
|
|
3
3
|
export function codegenModule(manifest, metadataStore) {
|
|
4
|
+
const options = {
|
|
5
|
+
useCheckedAddress: manifest.config.useCheckedAddress,
|
|
6
|
+
};
|
|
4
7
|
const sections = [
|
|
5
|
-
...
|
|
6
|
-
...Object.keys(manifest.
|
|
7
|
-
...Object.keys(manifest.
|
|
8
|
+
...importsSection(options),
|
|
9
|
+
...Object.keys(manifest.eoa).map((name) => eoaSection(name, metadataStore.getEoa(name), options)),
|
|
10
|
+
...Object.keys(manifest.contracts).map((name) => contractSection(name, metadataStore.getContract(name), options)),
|
|
11
|
+
...Object.keys(manifest.interfaces).map((name) => contractSection(name, metadataStore.getInterface(name), options)),
|
|
8
12
|
];
|
|
9
13
|
const source = sections.join('\n');
|
|
10
14
|
return formatWithPrettier(source);
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { domainToChain, domainToChainId } from '@sparkdotfi/common-universal';
|
|
2
2
|
import { toCamelCase } from 'remeda';
|
|
3
|
-
|
|
3
|
+
import { codegenCheckedAddressMap } from './codegenCheckedAddressMap.js';
|
|
4
|
+
export function eoaSection(name, metadata, options) {
|
|
4
5
|
return `
|
|
5
6
|
${headerSection(name, 'eoa')}
|
|
6
7
|
${linksSection(metadata.addresses)}
|
|
7
|
-
${addressesSection(name, metadata.addresses, 'eoa')}
|
|
8
|
+
${addressesSection(name, metadata.addresses, 'eoa', options)}
|
|
8
9
|
`;
|
|
9
10
|
}
|
|
10
|
-
export function contractSection(name, metadata) {
|
|
11
|
+
export function contractSection(name, metadata, options) {
|
|
11
12
|
return `
|
|
12
13
|
${headerSection(name, 'contract')}
|
|
13
14
|
${abiSection(name, metadata.abi)}
|
|
14
|
-
${multiAddressesSection(name, metadata.instances)}
|
|
15
|
+
${multiAddressesSection(name, metadata.instances, options)}
|
|
15
16
|
`;
|
|
16
17
|
}
|
|
17
18
|
export function headerSection(name, type) {
|
|
@@ -29,11 +30,17 @@ export function headerSection(name, type) {
|
|
|
29
30
|
//////////////////////////////////////////////////////////////////
|
|
30
31
|
`;
|
|
31
32
|
}
|
|
32
|
-
export function
|
|
33
|
+
export function importsSection(options) {
|
|
34
|
+
if (options.useCheckedAddress) {
|
|
35
|
+
return ["import { CheckedAddress } from '@sparkdotfi/common-universal'"];
|
|
36
|
+
}
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
export function multiAddressesSection(name, addressesMetadata, options) {
|
|
33
40
|
return addressesMetadata
|
|
34
41
|
.flatMap((metadata) => [
|
|
35
42
|
linksSection(metadata.addresses),
|
|
36
|
-
addressesSection(metadata.name, metadata.addresses, 'contract'),
|
|
43
|
+
addressesSection(metadata.name, metadata.addresses, 'contract', options),
|
|
37
44
|
configSection(name, metadata.name),
|
|
38
45
|
])
|
|
39
46
|
.join('\n');
|
|
@@ -51,8 +58,8 @@ function abiSection(name, data) {
|
|
|
51
58
|
const stringified = JSON.stringify(data);
|
|
52
59
|
return constDeclaration(getAbiSymbol(name), stringified);
|
|
53
60
|
}
|
|
54
|
-
export function addressesSection(name, addresses, type) {
|
|
55
|
-
const stringified =
|
|
61
|
+
export function addressesSection(name, addresses, type, options) {
|
|
62
|
+
const stringified = stringifyAddresses(addresses, options);
|
|
56
63
|
return constDeclaration(getAddressSymbol(name, type), stringified);
|
|
57
64
|
}
|
|
58
65
|
function getAbiSymbol(name) {
|
|
@@ -73,6 +80,13 @@ function getAddressSymbol(name, type) {
|
|
|
73
80
|
const typePostfix = type === 'eoa' ? 'Eoa' : '';
|
|
74
81
|
return `${toCamelCase(name)}${typePostfix}Address`;
|
|
75
82
|
}
|
|
83
|
+
function stringifyAddresses(addresses, options) {
|
|
84
|
+
const multiChainAddresses = multiDomainAddressToMultiChain(addresses);
|
|
85
|
+
if (options.useCheckedAddress) {
|
|
86
|
+
return codegenCheckedAddressMap(multiChainAddresses);
|
|
87
|
+
}
|
|
88
|
+
return JSON.stringify(multiChainAddresses, null, 2);
|
|
89
|
+
}
|
|
76
90
|
function multiDomainAddressToMultiChain(address) {
|
|
77
91
|
const entries = Object.entries(address).map(([domain, address]) => [domainToChainId[domain], address]);
|
|
78
92
|
return Object.fromEntries(entries);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegenCheckedAddressMap.d.ts","sourceRoot":"","sources":["../../../../src/codegen/codegenCheckedAddressMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,MAAM,CAM1F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegenModule.d.ts","sourceRoot":"","sources":["../../../../src/codegen/codegenModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"codegenModule.d.ts","sourceRoot":"","sources":["../../../../src/codegen/codegenModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAKlE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAe/F"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { MultiDomainAddress } from '../manifest/manifest.js';
|
|
2
2
|
import { ContractMetadata, EoaMetadata, InstancesMetadata, InterfaceMetadata } from '../metadata-store/MetadataStore.js';
|
|
3
|
-
import { EntityType } from './types.js';
|
|
4
|
-
export declare function eoaSection(name: string, metadata: EoaMetadata): string;
|
|
5
|
-
export declare function contractSection(name: string, metadata: ContractMetadata | InterfaceMetadata): string;
|
|
3
|
+
import { CodegenOptions, EntityType } from './types.js';
|
|
4
|
+
export declare function eoaSection(name: string, metadata: EoaMetadata, options: CodegenOptions): string;
|
|
5
|
+
export declare function contractSection(name: string, metadata: ContractMetadata | InterfaceMetadata, options: CodegenOptions): string;
|
|
6
6
|
export declare function headerSection(name: string, type: EntityType): string;
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function importsSection(options: CodegenOptions): string[];
|
|
8
|
+
export declare function multiAddressesSection(name: string, addressesMetadata: InstancesMetadata, options: CodegenOptions): string;
|
|
8
9
|
export declare function linksSection(addresses: MultiDomainAddress): string;
|
|
9
|
-
export declare function addressesSection(name: string, addresses: MultiDomainAddress, type: EntityType): string;
|
|
10
|
+
export declare function addressesSection(name: string, addresses: MultiDomainAddress, type: EntityType, options: CodegenOptions): string;
|
|
10
11
|
//# sourceMappingURL=sections.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sections.d.ts","sourceRoot":"","sources":["../../../../src/codegen/sections.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"sections.d.ts","sourceRoot":"","sources":["../../../../src/codegen/sections.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAExH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAM/F;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,gBAAgB,GAAG,iBAAiB,EAC9C,OAAO,EAAE,cAAc,GACtB,MAAM,CAMR;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAepE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,EAAE,CAKhE;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,cAAc,GACtB,MAAM,CAQR;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,CASlE;AAOD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,kBAAkB,EAC7B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,cAAc,GACtB,MAAM,CAGR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/codegen/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,KAAK,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/codegen/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,KAAK,CAAA;AAE3C,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,OAAO,CAAA;CAC3B"}
|
|
@@ -575,18 +575,21 @@ export declare const ManifestSchema: z.ZodObject<{
|
|
|
575
575
|
drpcApiKey: string;
|
|
576
576
|
etherscanApiKey: string;
|
|
577
577
|
}>;
|
|
578
|
+
useCheckedAddress: z.ZodDefault<z.ZodBoolean>;
|
|
578
579
|
}, "strip", z.ZodTypeAny, {
|
|
579
580
|
out: string;
|
|
580
581
|
secrets: {
|
|
581
582
|
drpcApiKey: string;
|
|
582
583
|
etherscanApiKey: string;
|
|
583
584
|
};
|
|
585
|
+
useCheckedAddress: boolean;
|
|
584
586
|
}, {
|
|
585
587
|
out: string;
|
|
586
588
|
secrets: {
|
|
587
589
|
drpcApiKey: string;
|
|
588
590
|
etherscanApiKey: string;
|
|
589
591
|
};
|
|
592
|
+
useCheckedAddress?: boolean | undefined;
|
|
590
593
|
}>;
|
|
591
594
|
eoa: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
|
|
592
595
|
readonly __TAG__: "CheckedAddress";
|
|
@@ -836,6 +839,7 @@ export declare const ManifestSchema: z.ZodObject<{
|
|
|
836
839
|
drpcApiKey: string;
|
|
837
840
|
etherscanApiKey: string;
|
|
838
841
|
};
|
|
842
|
+
useCheckedAddress: boolean;
|
|
839
843
|
};
|
|
840
844
|
eoa: Record<string, Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
|
|
841
845
|
address: `0x${string}` & {
|
|
@@ -867,6 +871,7 @@ export declare const ManifestSchema: z.ZodObject<{
|
|
|
867
871
|
drpcApiKey: string;
|
|
868
872
|
etherscanApiKey: string;
|
|
869
873
|
};
|
|
874
|
+
useCheckedAddress?: boolean | undefined;
|
|
870
875
|
};
|
|
871
876
|
eoa?: Record<string, Record<string, string | {
|
|
872
877
|
address: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../../src/manifest/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA4B,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAEpG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,oBAAoB;;UAAuC,CAAA;AACxE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;EAG5B,CAAA;AACF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;EAQjC,CAAA;AAEJ,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAO9C,CAAA;AAEJ,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAK5C,CAAA;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAKxC,CAAA;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAuD,CAAA;AAE9E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAA2D,CAAA;AAEvF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIpC,CAAA;AACF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAkD,CAAA;AAE/E,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../../src/manifest/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA4B,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAEpG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,oBAAoB;;UAAuC,CAAA;AACxE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;EAG5B,CAAA;AACF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;EAQjC,CAAA;AAEJ,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAO9C,CAAA;AAEJ,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAK5C,CAAA;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAKxC,CAAA;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAuD,CAAA;AAE9E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAA2D,CAAA;AAEvF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIpC,CAAA;AACF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAkD,CAAA;AAE/E,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYzB,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AACxD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,cAAc,CAAC,CAAA;AACtD,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;AACvC,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC5E,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAC/F,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAA;AACzE,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qCAAqC,CAAC,CAAA;AAE5F,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAA"}
|