@sparkdotfi/abi-cli 0.2.0-20251014.fc890b4c → 0.2.0-20251029.1a3e2bf9

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.
@@ -50,7 +50,7 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
50
50
  var e = new Error(message);
51
51
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
52
  });
53
- import { entries, uniqueBy } from 'remeda';
53
+ import { entries, isTruthy, uniqueBy } from 'remeda';
54
54
  import { AbiRegistry } from './AbiRegistry.js';
55
55
  export async function buildAbiRegistry(manifest, abiFetcher, logger, progressBarFactory) {
56
56
  const env_1 = { stack: [], error: void 0, hasError: false };
@@ -72,14 +72,22 @@ export async function buildAbiRegistry(manifest, abiFetcher, logger, progressBar
72
72
  function extractContractsToFetch(manifest) {
73
73
  const chainIdAndAddressOfContracts = Object.entries(manifest.contracts).flatMap(([_name, multiDomainAddress]) => {
74
74
  return entries(multiDomainAddress)
75
- .filter(([_, address]) => !address.skipAbiVerification)
76
- .map(([domain, fullAddress]) => [domain, fullAddress.address]);
75
+ .flatMap(([domain, contractDefinitions]) => multiContractInstancesToDomainAddresses(domain, contractDefinitions))
76
+ .filter(isTruthy);
77
77
  });
78
78
  const chainIdAndAddressOfInterfaces = Object.entries(manifest.interfaces).flatMap(([_name, iface]) => {
79
- return entries(iface.addresses)
80
- .filter(([_, address]) => !address.skipAbiVerification)
81
- .map(([domain, fullAddress]) => [domain, fullAddress.address]);
79
+ return entries(iface.addresses).flatMap(([domain, contractDefinitions]) => multiContractInstancesToDomainAddresses(domain, contractDefinitions));
82
80
  });
83
81
  const domainAndAddress = [...chainIdAndAddressOfContracts, ...chainIdAndAddressOfInterfaces];
84
82
  return uniqueBy(domainAndAddress, ([domain, address]) => `${domain}-${address}`);
85
83
  }
84
+ function multiContractInstancesToDomainAddresses(domain, multiContractDefinition) {
85
+ return multiContractDefinition
86
+ .map((contractDefinition) => {
87
+ if (contractDefinition.skipAbiVerification) {
88
+ return undefined;
89
+ }
90
+ return [domain, contractDefinition.address];
91
+ })
92
+ .filter(isTruthy);
93
+ }
@@ -1,16 +1,21 @@
1
1
  import { assert } from '@sparkdotfi/common-universal';
2
2
  import { entries } from 'remeda';
3
3
  export function getAbiForContract(abiRegistry, config, name) {
4
- const abis = entries(config)
5
- .filter(([_, fullAddress]) => {
6
- return !fullAddress.skipAbiVerification;
4
+ const instances = entries(config)
5
+ .flatMap(([domain, instances]) => instances.map((instance) => ({ ...instance, name: instance.name ?? name, domain })))
6
+ .filter((instance) => {
7
+ return !instance.skipAbiVerification;
7
8
  })
8
- .map(([domain, fullAddress]) => abiRegistry.getAbi(domain, fullAddress.address));
9
- assert(abis.length > 0);
10
- const rootAbi = abis[0];
9
+ .map((instance) => ({
10
+ ...instance,
11
+ abi: abiRegistry.getAbi(instance.domain, instance.address),
12
+ }));
13
+ assert(instances.length > 0);
14
+ const rootAbi = instances[0].abi;
11
15
  const rootAbiStringified = JSON.stringify(rootAbi);
12
- assert(abis.every((metadata) => {
13
- return JSON.stringify(metadata) === rootAbiStringified;
14
- }), `Found not matching abis: ${name}`);
16
+ const notMatchingAbi = instances.find(({ abi }) => {
17
+ return JSON.stringify(abi) !== rootAbiStringified;
18
+ });
19
+ assert(!notMatchingAbi, `Found not matching abis: ${notMatchingAbi?.name}`);
15
20
  return rootAbi;
16
21
  }
@@ -1,26 +1,31 @@
1
1
  import { assert } from '@sparkdotfi/common-universal';
2
2
  import { entries } from 'remeda';
3
3
  export function getAbiForInterface(abiRegistry, ifaceDefinition, name) {
4
- const abis = entries(ifaceDefinition.addresses)
5
- .filter(([_, fullAddress]) => {
6
- return !fullAddress.skipAbiVerification;
4
+ const instances = entries(ifaceDefinition.addresses)
5
+ .flatMap(([domain, instances]) => instances.map((instance) => ({ ...instance, name: instance.name ?? name, domain })))
6
+ .filter((instance) => {
7
+ return !instance.skipAbiVerification;
7
8
  })
8
- .map(([domain, fullAddress]) => abiRegistry.getAbi(domain, fullAddress.address));
9
- assert(abis.length > 0);
9
+ .map((instance) => ({
10
+ ...instance,
11
+ abi: abiRegistry.getAbi(instance.domain, instance.address),
12
+ }));
13
+ assert(instances.length > 0);
10
14
  const missingMethods = ifaceDefinition.methods.filter((method) => {
11
- return !abis.every((abi) => abi.some((m) => m.type === 'function' && m.name && m.name === method));
15
+ return !instances.every(({ abi }) => abi.some((m) => m.type === 'function' && m.name && m.name === method));
12
16
  });
13
17
  assert(missingMethods.length === 0, `Found missing methods from the interface ${name}: ${missingMethods.join(',')}`);
14
18
  const missingEvents = ifaceDefinition.events.filter((event) => {
15
- return !abis.every((abi) => abi.some((m) => m.type === 'event' && m.name && m.name === event));
19
+ return !instances.every(({ abi }) => abi.some((m) => m.type === 'event' && m.name && m.name === event));
16
20
  });
17
21
  assert(missingEvents.length === 0, `Found missing events from the interface ${name}: ${missingEvents.join(',')}`);
18
- const trimmedAbis = abis.map((a) => trimAbi(a, ifaceDefinition));
19
- const rootAbi = trimmedAbis[0];
22
+ const trimmedAbis = instances.map((instance) => ({ ...instance, abi: trimAbi(instance.abi, ifaceDefinition) }));
23
+ const rootAbi = trimmedAbis[0].abi;
20
24
  const rootAbiStringified = JSON.stringify(rootAbi);
21
- assert(trimmedAbis.every((metadata) => {
22
- return JSON.stringify(metadata) === rootAbiStringified;
23
- }), `Found not matching abis: ${name}`);
25
+ const notMatchingAbi = trimmedAbis.find(({ abi }) => {
26
+ return JSON.stringify(abi) !== rootAbiStringified;
27
+ });
28
+ assert(!notMatchingAbi, `Found not matching abis: ${notMatchingAbi?.name}`);
24
29
  return rootAbi;
25
30
  }
26
31
  export function trimAbi(abi, ifaceDefinition) {
@@ -11,9 +11,7 @@ export function contractSection(name, metadata) {
11
11
  return `
12
12
  ${headerSection(name, 'contract')}
13
13
  ${abiSection(name, metadata.abi)}
14
- ${linksSection(metadata.addresses)}
15
- ${addressesSection(name, metadata.addresses, 'contract')}
16
- ${configSection(name)}
14
+ ${multiAddressesSection(name, metadata.instances)}
17
15
  `;
18
16
  }
19
17
  export function headerSection(name, type) {
@@ -31,6 +29,15 @@ export function headerSection(name, type) {
31
29
  //////////////////////////////////////////////////////////////////
32
30
  `;
33
31
  }
32
+ export function multiAddressesSection(name, addressesMetadata) {
33
+ return addressesMetadata
34
+ .flatMap((metadata) => [
35
+ linksSection(metadata.addresses),
36
+ addressesSection(metadata.name, metadata.addresses, 'contract'),
37
+ configSection(name, metadata.name),
38
+ ])
39
+ .join('\n');
40
+ }
34
41
  export function linksSection(addresses) {
35
42
  return Object.entries(addresses)
36
43
  .map(([domain, address]) => {
@@ -51,13 +58,13 @@ export function addressesSection(name, addresses, type) {
51
58
  function getAbiSymbol(name) {
52
59
  return `${toCamelCase(name)}Abi`;
53
60
  }
54
- function configSection(name) {
61
+ function configSection(abiName, addressName) {
55
62
  const value = `
56
63
  {
57
- address: ${getAddressSymbol(name, 'contract')},
58
- abi: ${getAbiSymbol(name)},
64
+ address: ${getAddressSymbol(addressName, 'contract')},
65
+ abi: ${getAbiSymbol(abiName)},
59
66
  }`;
60
- return constDeclaration(`${toCamelCase(name)}Config`, value);
67
+ return constDeclaration(`${toCamelCase(addressName)}Config`, value);
61
68
  }
62
69
  function constDeclaration(symbol, value) {
63
70
  return `export const ${symbol} = ${value} as const\n`;
@@ -1,5 +1,5 @@
1
1
  import { CheckedAddress, getUnsafeChainIdToDomain } from '@sparkdotfi/common-universal';
2
- import { mapKeys } from 'remeda';
2
+ import { entries, mapKeys } from 'remeda';
3
3
  import { z } from 'zod';
4
4
  export const CheckedAddressSchema = z.string().transform(CheckedAddress);
5
5
  export const FullAddressSchema = z.object({
@@ -14,10 +14,21 @@ export const NakedOrFullAddressSchema = z
14
14
  }
15
15
  return union;
16
16
  });
17
+ export const MultiOrSingleContractDefinitionSchema = z
18
+ .union([z.record(z.string(), NakedOrFullAddressSchema), NakedOrFullAddressSchema])
19
+ .transform((union) => {
20
+ if (isSingleInstanceContract(union)) {
21
+ return [{ name: undefined, address: union.address, skipAbiVerification: union.skipAbiVerification }];
22
+ }
23
+ return entries(union).map(([key, value]) => ({ ...value, name: key }));
24
+ });
17
25
  export const MultiDomainAddressDefinitionSchema = z
26
+ .record(z.string(), MultiOrSingleContractDefinitionSchema)
27
+ .transform((multiChainAddress) => mapKeys(multiChainAddress, (key) => getUnsafeChainIdToDomain(key)));
28
+ export const MultiDomainEoaDefinitionSchema = z
18
29
  .record(z.string(), NakedOrFullAddressSchema)
19
30
  .transform((multiChainAddress) => mapKeys(multiChainAddress, (key) => getUnsafeChainIdToDomain(key)));
20
- export const EoasSchema = z.record(z.string(), MultiDomainAddressDefinitionSchema);
31
+ export const EoasSchema = z.record(z.string(), MultiDomainEoaDefinitionSchema);
21
32
  export const ContractsSchema = z.record(z.string(), MultiDomainAddressDefinitionSchema);
22
33
  export const InterfaceDefinitionSchema = z.object({
23
34
  methods: z.array(z.string()).default([]),
@@ -37,3 +48,6 @@ export const ManifestSchema = z.object({
37
48
  contracts: ContractsSchema.default({}),
38
49
  interfaces: InterfacesSchema.default({}),
39
50
  });
51
+ function isSingleInstanceContract(contractDefinition) {
52
+ return contractDefinition.address && typeof contractDefinition.skipAbiVerification === 'boolean';
53
+ }
@@ -1,33 +1,42 @@
1
1
  import { groupByOne } from '@sparkdotfi/common-universal';
2
- import { mapValues } from 'remeda';
3
- import { MetadataStore } from './MetadataStore.js';
2
+ import { entries, groupBy, mapToObj, mapValues } from 'remeda';
3
+ import { MetadataStore, } from './MetadataStore.js';
4
4
  export function buildMetadataStore(manifest, abiRegistry) {
5
5
  const metadata = [
6
6
  ...Object.entries(manifest.eoa).map(([name, multiChainAddressDefinition]) => ({
7
7
  type: 'eoa',
8
8
  name,
9
- addresses: multiChainAddressDefinitionToMultiChainAddress(multiChainAddressDefinition),
9
+ addresses: mapValues(multiChainAddressDefinition, (c) => c.address),
10
10
  })),
11
11
  ...Object.entries(manifest.contracts).map(([name, multiChainAddress]) => {
12
12
  return {
13
13
  type: 'contract',
14
14
  name,
15
- addresses: multiChainAddressDefinitionToMultiChainAddress(multiChainAddress),
16
15
  abi: abiRegistry.getContractAbi(multiChainAddress, name),
16
+ instances: multiChainAddressDefinitionToInstancesMetadata(multiChainAddress, name),
17
17
  };
18
18
  }),
19
19
  ...Object.entries(manifest.interfaces).map(([name, ifaceDefinition]) => {
20
20
  return {
21
21
  type: 'interface',
22
22
  name,
23
- addresses: multiChainAddressDefinitionToMultiChainAddress(ifaceDefinition.addresses),
24
23
  abi: abiRegistry.getInterfaceAbi(ifaceDefinition, name),
24
+ instances: multiChainAddressDefinitionToInstancesMetadata(ifaceDefinition.addresses, name),
25
25
  };
26
26
  }),
27
27
  ];
28
28
  const data = groupByOne(metadata, (c) => c.name);
29
29
  return new MetadataStore(data);
30
30
  }
31
- function multiChainAddressDefinitionToMultiChainAddress(multiChainAddressDefinition) {
32
- return mapValues(multiChainAddressDefinition, (c) => c.address);
31
+ function multiChainAddressDefinitionToInstancesMetadata(multiChainAddressDefinition, name) {
32
+ const instances = entries(multiChainAddressDefinition).flatMap(([domain, contracts]) => contracts.map((c) => ({
33
+ domain,
34
+ name: c.name ?? name,
35
+ address: c.address,
36
+ })));
37
+ const nameToInstances = groupBy(instances, (instance) => instance.name);
38
+ return entries(nameToInstances).map(([name, instances]) => ({
39
+ name,
40
+ addresses: mapToObj(instances, ({ domain, address }) => [domain, address]),
41
+ }));
33
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"buildAbiRegistry.d.ts","sourceRoot":"","sources":["../../../../src/abi-registry/buildAbiRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAEnD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,qBAAqB,GACxC,OAAO,CAAC,WAAW,CAAC,CAQtB"}
1
+ {"version":3,"file":"buildAbiRegistry.d.ts","sourceRoot":"","sources":["../../../../src/abi-registry/buildAbiRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAA;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,QAAQ,EAA2B,MAAM,yBAAyB,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAEnD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,qBAAqB,GACxC,OAAO,CAAC,WAAW,CAAC,CAQtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"getAbiForContract.d.ts","sourceRoot":"","sources":["../../../../src/abi-registry/getAbiForContract.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEhC,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,6BAA6B,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAkBpH"}
1
+ {"version":3,"file":"getAbiForContract.d.ts","sourceRoot":"","sources":["../../../../src/abi-registry/getAbiForContract.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEhC,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,6BAA6B,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAuBpH"}
@@ -1 +1 @@
1
- {"version":3,"file":"getAbiForInterface.d.ts","sourceRoot":"","sources":["../../../../src/abi-registry/getAbiForInterface.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEhC,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CA8BpH;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,mBAAmB,GAAG,GAAG,CAa3E"}
1
+ {"version":3,"file":"getAbiForInterface.d.ts","sourceRoot":"","sources":["../../../../src/abi-registry/getAbiForInterface.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAEhC,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAmCpH;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,mBAAmB,GAAG,GAAG,CAa3E"}
@@ -1,9 +1,10 @@
1
1
  import { MultiDomainAddress } from '../manifest/manifest.js';
2
- import { ContractMetadata, EoaMetadata, InterfaceMetadata } from '../metadata-store/MetadataStore.js';
2
+ import { ContractMetadata, EoaMetadata, InstancesMetadata, InterfaceMetadata } from '../metadata-store/MetadataStore.js';
3
3
  import { EntityType } from './types.js';
4
4
  export declare function eoaSection(name: string, metadata: EoaMetadata): string;
5
5
  export declare function contractSection(name: string, metadata: ContractMetadata | InterfaceMetadata): string;
6
6
  export declare function headerSection(name: string, type: EntityType): string;
7
+ export declare function multiAddressesSection(name: string, addressesMetadata: InstancesMetadata): string;
7
8
  export declare function linksSection(addresses: MultiDomainAddress): string;
8
9
  export declare function addressesSection(name: string, addresses: MultiDomainAddress, type: EntityType): string;
9
10
  //# 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,MAAM,oCAAoC,CAAA;AACrG,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,MAAM,CAMtE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,MAAM,CAQpG;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAepE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,CASlE;AAOD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAGtG"}
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;AACxH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,MAAM,CAMtE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,MAAM,CAMpG;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAepE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,MAAM,CAQhG;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,CASlE;AAOD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAGtG"}
@@ -41,7 +41,155 @@ export declare const NakedOrFullAddressSchema: z.ZodEffects<z.ZodUnion<[z.ZodEff
41
41
  address: string;
42
42
  skipAbiVerification?: boolean | undefined;
43
43
  }>;
44
- export declare const MultiDomainAddressDefinitionSchema: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
44
+ export declare const MultiOrSingleContractDefinitionSchema: z.ZodEffects<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
45
+ readonly __TAG__: "CheckedAddress";
46
+ }, string>, z.ZodObject<{
47
+ address: z.ZodEffects<z.ZodString, `0x${string}` & {
48
+ readonly __TAG__: "CheckedAddress";
49
+ }, string>;
50
+ skipAbiVerification: z.ZodDefault<z.ZodBoolean>;
51
+ }, "strip", z.ZodTypeAny, {
52
+ address: `0x${string}` & {
53
+ readonly __TAG__: "CheckedAddress";
54
+ };
55
+ skipAbiVerification: boolean;
56
+ }, {
57
+ address: string;
58
+ skipAbiVerification?: boolean | undefined;
59
+ }>]>, {
60
+ address: `0x${string}` & {
61
+ readonly __TAG__: "CheckedAddress";
62
+ };
63
+ skipAbiVerification: boolean;
64
+ }, string | {
65
+ address: string;
66
+ skipAbiVerification?: boolean | undefined;
67
+ }>>, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
68
+ readonly __TAG__: "CheckedAddress";
69
+ }, string>, z.ZodObject<{
70
+ address: z.ZodEffects<z.ZodString, `0x${string}` & {
71
+ readonly __TAG__: "CheckedAddress";
72
+ }, string>;
73
+ skipAbiVerification: z.ZodDefault<z.ZodBoolean>;
74
+ }, "strip", z.ZodTypeAny, {
75
+ address: `0x${string}` & {
76
+ readonly __TAG__: "CheckedAddress";
77
+ };
78
+ skipAbiVerification: boolean;
79
+ }, {
80
+ address: string;
81
+ skipAbiVerification?: boolean | undefined;
82
+ }>]>, {
83
+ address: `0x${string}` & {
84
+ readonly __TAG__: "CheckedAddress";
85
+ };
86
+ skipAbiVerification: boolean;
87
+ }, string | {
88
+ address: string;
89
+ skipAbiVerification?: boolean | undefined;
90
+ }>]>, {
91
+ name: string;
92
+ address: `0x${string}` & {
93
+ readonly __TAG__: "CheckedAddress";
94
+ };
95
+ skipAbiVerification: boolean;
96
+ }[] | {
97
+ name: undefined;
98
+ address: `0x${string}` & {
99
+ readonly __TAG__: "CheckedAddress";
100
+ };
101
+ skipAbiVerification: boolean;
102
+ }[], string | {
103
+ address: string;
104
+ skipAbiVerification?: boolean | undefined;
105
+ } | Record<string, string | {
106
+ address: string;
107
+ skipAbiVerification?: boolean | undefined;
108
+ }>>;
109
+ export declare const MultiDomainAddressDefinitionSchema: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
110
+ readonly __TAG__: "CheckedAddress";
111
+ }, string>, z.ZodObject<{
112
+ address: z.ZodEffects<z.ZodString, `0x${string}` & {
113
+ readonly __TAG__: "CheckedAddress";
114
+ }, string>;
115
+ skipAbiVerification: z.ZodDefault<z.ZodBoolean>;
116
+ }, "strip", z.ZodTypeAny, {
117
+ address: `0x${string}` & {
118
+ readonly __TAG__: "CheckedAddress";
119
+ };
120
+ skipAbiVerification: boolean;
121
+ }, {
122
+ address: string;
123
+ skipAbiVerification?: boolean | undefined;
124
+ }>]>, {
125
+ address: `0x${string}` & {
126
+ readonly __TAG__: "CheckedAddress";
127
+ };
128
+ skipAbiVerification: boolean;
129
+ }, string | {
130
+ address: string;
131
+ skipAbiVerification?: boolean | undefined;
132
+ }>>, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
133
+ readonly __TAG__: "CheckedAddress";
134
+ }, string>, z.ZodObject<{
135
+ address: z.ZodEffects<z.ZodString, `0x${string}` & {
136
+ readonly __TAG__: "CheckedAddress";
137
+ }, string>;
138
+ skipAbiVerification: z.ZodDefault<z.ZodBoolean>;
139
+ }, "strip", z.ZodTypeAny, {
140
+ address: `0x${string}` & {
141
+ readonly __TAG__: "CheckedAddress";
142
+ };
143
+ skipAbiVerification: boolean;
144
+ }, {
145
+ address: string;
146
+ skipAbiVerification?: boolean | undefined;
147
+ }>]>, {
148
+ address: `0x${string}` & {
149
+ readonly __TAG__: "CheckedAddress";
150
+ };
151
+ skipAbiVerification: boolean;
152
+ }, string | {
153
+ address: string;
154
+ skipAbiVerification?: boolean | undefined;
155
+ }>]>, {
156
+ name: string;
157
+ address: `0x${string}` & {
158
+ readonly __TAG__: "CheckedAddress";
159
+ };
160
+ skipAbiVerification: boolean;
161
+ }[] | {
162
+ name: undefined;
163
+ address: `0x${string}` & {
164
+ readonly __TAG__: "CheckedAddress";
165
+ };
166
+ skipAbiVerification: boolean;
167
+ }[], string | {
168
+ address: string;
169
+ skipAbiVerification?: boolean | undefined;
170
+ } | Record<string, string | {
171
+ address: string;
172
+ skipAbiVerification?: boolean | undefined;
173
+ }>>>, Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
174
+ name: string;
175
+ address: `0x${string}` & {
176
+ readonly __TAG__: "CheckedAddress";
177
+ };
178
+ skipAbiVerification: boolean;
179
+ }[] | {
180
+ name: undefined;
181
+ address: `0x${string}` & {
182
+ readonly __TAG__: "CheckedAddress";
183
+ };
184
+ skipAbiVerification: boolean;
185
+ }[]>>, Record<string, string | {
186
+ address: string;
187
+ skipAbiVerification?: boolean | undefined;
188
+ } | Record<string, string | {
189
+ address: string;
190
+ skipAbiVerification?: boolean | undefined;
191
+ }>>>;
192
+ export declare const MultiDomainEoaDefinitionSchema: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
45
193
  readonly __TAG__: "CheckedAddress";
46
194
  }, string>, z.ZodObject<{
47
195
  address: z.ZodEffects<z.ZodString, `0x${string}` & {
@@ -105,7 +253,7 @@ export declare const EoasSchema: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodReco
105
253
  address: string;
106
254
  skipAbiVerification?: boolean | undefined;
107
255
  }>>>;
108
- export declare const ContractsSchema: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
256
+ export declare const ContractsSchema: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
109
257
  readonly __TAG__: "CheckedAddress";
110
258
  }, string>, z.ZodObject<{
111
259
  address: z.ZodEffects<z.ZodString, `0x${string}` & {
@@ -128,19 +276,70 @@ export declare const ContractsSchema: z.ZodRecord<z.ZodString, z.ZodEffects<z.Zo
128
276
  }, string | {
129
277
  address: string;
130
278
  skipAbiVerification?: boolean | undefined;
131
- }>>, Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
279
+ }>>, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
280
+ readonly __TAG__: "CheckedAddress";
281
+ }, string>, z.ZodObject<{
282
+ address: z.ZodEffects<z.ZodString, `0x${string}` & {
283
+ readonly __TAG__: "CheckedAddress";
284
+ }, string>;
285
+ skipAbiVerification: z.ZodDefault<z.ZodBoolean>;
286
+ }, "strip", z.ZodTypeAny, {
132
287
  address: `0x${string}` & {
133
288
  readonly __TAG__: "CheckedAddress";
134
289
  };
135
290
  skipAbiVerification: boolean;
136
- }>>, Record<string, string | {
291
+ }, {
137
292
  address: string;
138
293
  skipAbiVerification?: boolean | undefined;
139
- }>>>;
294
+ }>]>, {
295
+ address: `0x${string}` & {
296
+ readonly __TAG__: "CheckedAddress";
297
+ };
298
+ skipAbiVerification: boolean;
299
+ }, string | {
300
+ address: string;
301
+ skipAbiVerification?: boolean | undefined;
302
+ }>]>, {
303
+ name: string;
304
+ address: `0x${string}` & {
305
+ readonly __TAG__: "CheckedAddress";
306
+ };
307
+ skipAbiVerification: boolean;
308
+ }[] | {
309
+ name: undefined;
310
+ address: `0x${string}` & {
311
+ readonly __TAG__: "CheckedAddress";
312
+ };
313
+ skipAbiVerification: boolean;
314
+ }[], string | {
315
+ address: string;
316
+ skipAbiVerification?: boolean | undefined;
317
+ } | Record<string, string | {
318
+ address: string;
319
+ skipAbiVerification?: boolean | undefined;
320
+ }>>>, Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
321
+ name: string;
322
+ address: `0x${string}` & {
323
+ readonly __TAG__: "CheckedAddress";
324
+ };
325
+ skipAbiVerification: boolean;
326
+ }[] | {
327
+ name: undefined;
328
+ address: `0x${string}` & {
329
+ readonly __TAG__: "CheckedAddress";
330
+ };
331
+ skipAbiVerification: boolean;
332
+ }[]>>, Record<string, string | {
333
+ address: string;
334
+ skipAbiVerification?: boolean | undefined;
335
+ } | Record<string, string | {
336
+ address: string;
337
+ skipAbiVerification?: boolean | undefined;
338
+ }>>>>;
140
339
  export declare const InterfaceDefinitionSchema: z.ZodObject<{
141
340
  methods: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
142
341
  events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
143
- addresses: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
342
+ addresses: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
144
343
  readonly __TAG__: "CheckedAddress";
145
344
  }, string>, z.ZodObject<{
146
345
  address: z.ZodEffects<z.ZodString, `0x${string}` & {
@@ -163,36 +362,97 @@ export declare const InterfaceDefinitionSchema: z.ZodObject<{
163
362
  }, string | {
164
363
  address: string;
165
364
  skipAbiVerification?: boolean | undefined;
166
- }>>, Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
365
+ }>>, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
366
+ readonly __TAG__: "CheckedAddress";
367
+ }, string>, z.ZodObject<{
368
+ address: z.ZodEffects<z.ZodString, `0x${string}` & {
369
+ readonly __TAG__: "CheckedAddress";
370
+ }, string>;
371
+ skipAbiVerification: z.ZodDefault<z.ZodBoolean>;
372
+ }, "strip", z.ZodTypeAny, {
167
373
  address: `0x${string}` & {
168
374
  readonly __TAG__: "CheckedAddress";
169
375
  };
170
376
  skipAbiVerification: boolean;
171
- }>>, Record<string, string | {
377
+ }, {
172
378
  address: string;
173
379
  skipAbiVerification?: boolean | undefined;
174
- }>>;
380
+ }>]>, {
381
+ address: `0x${string}` & {
382
+ readonly __TAG__: "CheckedAddress";
383
+ };
384
+ skipAbiVerification: boolean;
385
+ }, string | {
386
+ address: string;
387
+ skipAbiVerification?: boolean | undefined;
388
+ }>]>, {
389
+ name: string;
390
+ address: `0x${string}` & {
391
+ readonly __TAG__: "CheckedAddress";
392
+ };
393
+ skipAbiVerification: boolean;
394
+ }[] | {
395
+ name: undefined;
396
+ address: `0x${string}` & {
397
+ readonly __TAG__: "CheckedAddress";
398
+ };
399
+ skipAbiVerification: boolean;
400
+ }[], string | {
401
+ address: string;
402
+ skipAbiVerification?: boolean | undefined;
403
+ } | Record<string, string | {
404
+ address: string;
405
+ skipAbiVerification?: boolean | undefined;
406
+ }>>>, Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
407
+ name: string;
408
+ address: `0x${string}` & {
409
+ readonly __TAG__: "CheckedAddress";
410
+ };
411
+ skipAbiVerification: boolean;
412
+ }[] | {
413
+ name: undefined;
414
+ address: `0x${string}` & {
415
+ readonly __TAG__: "CheckedAddress";
416
+ };
417
+ skipAbiVerification: boolean;
418
+ }[]>>, Record<string, string | {
419
+ address: string;
420
+ skipAbiVerification?: boolean | undefined;
421
+ } | Record<string, string | {
422
+ address: string;
423
+ skipAbiVerification?: boolean | undefined;
424
+ }>>>;
175
425
  }, "strip", z.ZodTypeAny, {
176
426
  methods: string[];
177
427
  events: string[];
178
428
  addresses: Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
429
+ name: string;
179
430
  address: `0x${string}` & {
180
431
  readonly __TAG__: "CheckedAddress";
181
432
  };
182
433
  skipAbiVerification: boolean;
183
- }>>;
434
+ }[] | {
435
+ name: undefined;
436
+ address: `0x${string}` & {
437
+ readonly __TAG__: "CheckedAddress";
438
+ };
439
+ skipAbiVerification: boolean;
440
+ }[]>>;
184
441
  }, {
185
442
  addresses: Record<string, string | {
186
443
  address: string;
187
444
  skipAbiVerification?: boolean | undefined;
188
- }>;
445
+ } | Record<string, string | {
446
+ address: string;
447
+ skipAbiVerification?: boolean | undefined;
448
+ }>>;
189
449
  methods?: string[] | undefined;
190
450
  events?: string[] | undefined;
191
451
  }>;
192
452
  export declare const InterfacesSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
193
453
  methods: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
194
454
  events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
195
- addresses: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
455
+ addresses: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
196
456
  readonly __TAG__: "CheckedAddress";
197
457
  }, string>, z.ZodObject<{
198
458
  address: z.ZodEffects<z.ZodString, `0x${string}` & {
@@ -215,29 +475,90 @@ export declare const InterfacesSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
215
475
  }, string | {
216
476
  address: string;
217
477
  skipAbiVerification?: boolean | undefined;
218
- }>>, Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
478
+ }>>, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
479
+ readonly __TAG__: "CheckedAddress";
480
+ }, string>, z.ZodObject<{
481
+ address: z.ZodEffects<z.ZodString, `0x${string}` & {
482
+ readonly __TAG__: "CheckedAddress";
483
+ }, string>;
484
+ skipAbiVerification: z.ZodDefault<z.ZodBoolean>;
485
+ }, "strip", z.ZodTypeAny, {
219
486
  address: `0x${string}` & {
220
487
  readonly __TAG__: "CheckedAddress";
221
488
  };
222
489
  skipAbiVerification: boolean;
223
- }>>, Record<string, string | {
490
+ }, {
224
491
  address: string;
225
492
  skipAbiVerification?: boolean | undefined;
226
- }>>;
493
+ }>]>, {
494
+ address: `0x${string}` & {
495
+ readonly __TAG__: "CheckedAddress";
496
+ };
497
+ skipAbiVerification: boolean;
498
+ }, string | {
499
+ address: string;
500
+ skipAbiVerification?: boolean | undefined;
501
+ }>]>, {
502
+ name: string;
503
+ address: `0x${string}` & {
504
+ readonly __TAG__: "CheckedAddress";
505
+ };
506
+ skipAbiVerification: boolean;
507
+ }[] | {
508
+ name: undefined;
509
+ address: `0x${string}` & {
510
+ readonly __TAG__: "CheckedAddress";
511
+ };
512
+ skipAbiVerification: boolean;
513
+ }[], string | {
514
+ address: string;
515
+ skipAbiVerification?: boolean | undefined;
516
+ } | Record<string, string | {
517
+ address: string;
518
+ skipAbiVerification?: boolean | undefined;
519
+ }>>>, Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
520
+ name: string;
521
+ address: `0x${string}` & {
522
+ readonly __TAG__: "CheckedAddress";
523
+ };
524
+ skipAbiVerification: boolean;
525
+ }[] | {
526
+ name: undefined;
527
+ address: `0x${string}` & {
528
+ readonly __TAG__: "CheckedAddress";
529
+ };
530
+ skipAbiVerification: boolean;
531
+ }[]>>, Record<string, string | {
532
+ address: string;
533
+ skipAbiVerification?: boolean | undefined;
534
+ } | Record<string, string | {
535
+ address: string;
536
+ skipAbiVerification?: boolean | undefined;
537
+ }>>>;
227
538
  }, "strip", z.ZodTypeAny, {
228
539
  methods: string[];
229
540
  events: string[];
230
541
  addresses: Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
542
+ name: string;
231
543
  address: `0x${string}` & {
232
544
  readonly __TAG__: "CheckedAddress";
233
545
  };
234
546
  skipAbiVerification: boolean;
235
- }>>;
547
+ }[] | {
548
+ name: undefined;
549
+ address: `0x${string}` & {
550
+ readonly __TAG__: "CheckedAddress";
551
+ };
552
+ skipAbiVerification: boolean;
553
+ }[]>>;
236
554
  }, {
237
555
  addresses: Record<string, string | {
238
556
  address: string;
239
557
  skipAbiVerification?: boolean | undefined;
240
- }>;
558
+ } | Record<string, string | {
559
+ address: string;
560
+ skipAbiVerification?: boolean | undefined;
561
+ }>>;
241
562
  methods?: string[] | undefined;
242
563
  events?: string[] | undefined;
243
564
  }>>;
@@ -299,7 +620,7 @@ export declare const ManifestSchema: z.ZodObject<{
299
620
  address: string;
300
621
  skipAbiVerification?: boolean | undefined;
301
622
  }>>>>;
302
- contracts: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
623
+ contracts: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
303
624
  readonly __TAG__: "CheckedAddress";
304
625
  }, string>, z.ZodObject<{
305
626
  address: z.ZodEffects<z.ZodString, `0x${string}` & {
@@ -322,19 +643,70 @@ export declare const ManifestSchema: z.ZodObject<{
322
643
  }, string | {
323
644
  address: string;
324
645
  skipAbiVerification?: boolean | undefined;
325
- }>>, Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
646
+ }>>, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
647
+ readonly __TAG__: "CheckedAddress";
648
+ }, string>, z.ZodObject<{
649
+ address: z.ZodEffects<z.ZodString, `0x${string}` & {
650
+ readonly __TAG__: "CheckedAddress";
651
+ }, string>;
652
+ skipAbiVerification: z.ZodDefault<z.ZodBoolean>;
653
+ }, "strip", z.ZodTypeAny, {
326
654
  address: `0x${string}` & {
327
655
  readonly __TAG__: "CheckedAddress";
328
656
  };
329
657
  skipAbiVerification: boolean;
330
- }>>, Record<string, string | {
658
+ }, {
331
659
  address: string;
332
660
  skipAbiVerification?: boolean | undefined;
333
- }>>>>;
661
+ }>]>, {
662
+ address: `0x${string}` & {
663
+ readonly __TAG__: "CheckedAddress";
664
+ };
665
+ skipAbiVerification: boolean;
666
+ }, string | {
667
+ address: string;
668
+ skipAbiVerification?: boolean | undefined;
669
+ }>]>, {
670
+ name: string;
671
+ address: `0x${string}` & {
672
+ readonly __TAG__: "CheckedAddress";
673
+ };
674
+ skipAbiVerification: boolean;
675
+ }[] | {
676
+ name: undefined;
677
+ address: `0x${string}` & {
678
+ readonly __TAG__: "CheckedAddress";
679
+ };
680
+ skipAbiVerification: boolean;
681
+ }[], string | {
682
+ address: string;
683
+ skipAbiVerification?: boolean | undefined;
684
+ } | Record<string, string | {
685
+ address: string;
686
+ skipAbiVerification?: boolean | undefined;
687
+ }>>>, Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
688
+ name: string;
689
+ address: `0x${string}` & {
690
+ readonly __TAG__: "CheckedAddress";
691
+ };
692
+ skipAbiVerification: boolean;
693
+ }[] | {
694
+ name: undefined;
695
+ address: `0x${string}` & {
696
+ readonly __TAG__: "CheckedAddress";
697
+ };
698
+ skipAbiVerification: boolean;
699
+ }[]>>, Record<string, string | {
700
+ address: string;
701
+ skipAbiVerification?: boolean | undefined;
702
+ } | Record<string, string | {
703
+ address: string;
704
+ skipAbiVerification?: boolean | undefined;
705
+ }>>>>>;
334
706
  interfaces: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
335
707
  methods: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
336
708
  events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
337
- addresses: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
709
+ addresses: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
338
710
  readonly __TAG__: "CheckedAddress";
339
711
  }, string>, z.ZodObject<{
340
712
  address: z.ZodEffects<z.ZodString, `0x${string}` & {
@@ -357,39 +729,107 @@ export declare const ManifestSchema: z.ZodObject<{
357
729
  }, string | {
358
730
  address: string;
359
731
  skipAbiVerification?: boolean | undefined;
360
- }>>, Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
732
+ }>>, z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodString, `0x${string}` & {
733
+ readonly __TAG__: "CheckedAddress";
734
+ }, string>, z.ZodObject<{
735
+ address: z.ZodEffects<z.ZodString, `0x${string}` & {
736
+ readonly __TAG__: "CheckedAddress";
737
+ }, string>;
738
+ skipAbiVerification: z.ZodDefault<z.ZodBoolean>;
739
+ }, "strip", z.ZodTypeAny, {
740
+ address: `0x${string}` & {
741
+ readonly __TAG__: "CheckedAddress";
742
+ };
743
+ skipAbiVerification: boolean;
744
+ }, {
745
+ address: string;
746
+ skipAbiVerification?: boolean | undefined;
747
+ }>]>, {
361
748
  address: `0x${string}` & {
362
749
  readonly __TAG__: "CheckedAddress";
363
750
  };
364
751
  skipAbiVerification: boolean;
365
- }>>, Record<string, string | {
752
+ }, string | {
366
753
  address: string;
367
754
  skipAbiVerification?: boolean | undefined;
368
- }>>;
755
+ }>]>, {
756
+ name: string;
757
+ address: `0x${string}` & {
758
+ readonly __TAG__: "CheckedAddress";
759
+ };
760
+ skipAbiVerification: boolean;
761
+ }[] | {
762
+ name: undefined;
763
+ address: `0x${string}` & {
764
+ readonly __TAG__: "CheckedAddress";
765
+ };
766
+ skipAbiVerification: boolean;
767
+ }[], string | {
768
+ address: string;
769
+ skipAbiVerification?: boolean | undefined;
770
+ } | Record<string, string | {
771
+ address: string;
772
+ skipAbiVerification?: boolean | undefined;
773
+ }>>>, Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
774
+ name: string;
775
+ address: `0x${string}` & {
776
+ readonly __TAG__: "CheckedAddress";
777
+ };
778
+ skipAbiVerification: boolean;
779
+ }[] | {
780
+ name: undefined;
781
+ address: `0x${string}` & {
782
+ readonly __TAG__: "CheckedAddress";
783
+ };
784
+ skipAbiVerification: boolean;
785
+ }[]>>, Record<string, string | {
786
+ address: string;
787
+ skipAbiVerification?: boolean | undefined;
788
+ } | Record<string, string | {
789
+ address: string;
790
+ skipAbiVerification?: boolean | undefined;
791
+ }>>>;
369
792
  }, "strip", z.ZodTypeAny, {
370
793
  methods: string[];
371
794
  events: string[];
372
795
  addresses: Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
796
+ name: string;
373
797
  address: `0x${string}` & {
374
798
  readonly __TAG__: "CheckedAddress";
375
799
  };
376
800
  skipAbiVerification: boolean;
377
- }>>;
801
+ }[] | {
802
+ name: undefined;
803
+ address: `0x${string}` & {
804
+ readonly __TAG__: "CheckedAddress";
805
+ };
806
+ skipAbiVerification: boolean;
807
+ }[]>>;
378
808
  }, {
379
809
  addresses: Record<string, string | {
380
810
  address: string;
381
811
  skipAbiVerification?: boolean | undefined;
382
- }>;
812
+ } | Record<string, string | {
813
+ address: string;
814
+ skipAbiVerification?: boolean | undefined;
815
+ }>>;
383
816
  methods?: string[] | undefined;
384
817
  events?: string[] | undefined;
385
818
  }>>>;
386
819
  }, "strip", z.ZodTypeAny, {
387
820
  contracts: Record<string, Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
821
+ name: string;
388
822
  address: `0x${string}` & {
389
823
  readonly __TAG__: "CheckedAddress";
390
824
  };
391
825
  skipAbiVerification: boolean;
392
- }>>>;
826
+ }[] | {
827
+ name: undefined;
828
+ address: `0x${string}` & {
829
+ readonly __TAG__: "CheckedAddress";
830
+ };
831
+ skipAbiVerification: boolean;
832
+ }[]>>>;
393
833
  config: {
394
834
  out: string;
395
835
  secrets: {
@@ -407,11 +847,18 @@ export declare const ManifestSchema: z.ZodObject<{
407
847
  methods: string[];
408
848
  events: string[];
409
849
  addresses: Partial<Record<"mainnet" | "base" | "gnosis" | "arbitrum" | "optimism" | "worldchain" | "unichain" | "avalanche" | "sepolia" | "baseSepolia", {
850
+ name: string;
410
851
  address: `0x${string}` & {
411
852
  readonly __TAG__: "CheckedAddress";
412
853
  };
413
854
  skipAbiVerification: boolean;
414
- }>>;
855
+ }[] | {
856
+ name: undefined;
857
+ address: `0x${string}` & {
858
+ readonly __TAG__: "CheckedAddress";
859
+ };
860
+ skipAbiVerification: boolean;
861
+ }[]>>;
415
862
  }>;
416
863
  }, {
417
864
  config: {
@@ -428,12 +875,18 @@ export declare const ManifestSchema: z.ZodObject<{
428
875
  contracts?: Record<string, Record<string, string | {
429
876
  address: string;
430
877
  skipAbiVerification?: boolean | undefined;
431
- }>> | undefined;
878
+ } | Record<string, string | {
879
+ address: string;
880
+ skipAbiVerification?: boolean | undefined;
881
+ }>>> | undefined;
432
882
  interfaces?: Record<string, {
433
883
  addresses: Record<string, string | {
434
884
  address: string;
435
885
  skipAbiVerification?: boolean | undefined;
436
- }>;
886
+ } | Record<string, string | {
887
+ address: string;
888
+ skipAbiVerification?: boolean | undefined;
889
+ }>>;
437
890
  methods?: string[] | undefined;
438
891
  events?: string[] | undefined;
439
892
  }> | undefined;
@@ -444,5 +897,6 @@ export type Config = Manifest['config'];
444
897
  export type InterfaceDefinition = z.output<typeof InterfaceDefinitionSchema>;
445
898
  export type MultiDomainContractDefinition = z.output<typeof MultiDomainAddressDefinitionSchema>;
446
899
  export type AddressDefinition = z.output<typeof NakedOrFullAddressSchema>;
900
+ export type MultiContractDefinition = z.output<typeof MultiOrSingleContractDefinitionSchema>;
447
901
  export type MultiDomainAddress = Partial<Record<SparkDomain, CheckedAddress>>;
448
902
  //# sourceMappingURL=manifest.d.ts.map
@@ -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,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAK5C,CAAA;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA2D,CAAA;AAElF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA2D,CAAA;AAEvF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIpC,CAAA;AACF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAkD,CAAA;AAE/E,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWzB,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;AAEzE,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAA"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWzB,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"}
@@ -10,14 +10,18 @@ export type ContractMetadata = {
10
10
  type: 'contract';
11
11
  name: string;
12
12
  abi: Abi;
13
- addresses: MultiDomainAddress;
13
+ instances: InstancesMetadata;
14
14
  };
15
15
  export type InterfaceMetadata = {
16
16
  type: 'interface';
17
17
  name: string;
18
18
  abi: Abi;
19
- addresses: MultiDomainAddress;
19
+ instances: InstancesMetadata;
20
20
  };
21
+ export type InstancesMetadata = {
22
+ name: string;
23
+ addresses: MultiDomainAddress;
24
+ }[];
21
25
  type MetadataMap = Record<string, Metadata>;
22
26
  export declare class MetadataStore {
23
27
  private readonly data;
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataStore.d.ts","sourceRoot":"","sources":["../../../../src/metadata-store/MetadataStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;AAEzE,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,kBAAkB,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;IACR,SAAS,EAAE,kBAAkB,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;IACR,SAAS,EAAE,kBAAkB,CAAA;CAC9B,CAAA;AAED,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAE3C,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,WAAW;IAE9C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAQjC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAQ3C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB;CAO9C"}
1
+ {"version":3,"file":"MetadataStore.d.ts","sourceRoot":"","sources":["../../../../src/metadata-store/MetadataStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;AAEzE,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,kBAAkB,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;IACR,SAAS,EAAE,iBAAiB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;IACR,SAAS,EAAE,iBAAiB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,kBAAkB,CAAA;CAC9B,EAAE,CAAA;AAEH,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAE3C,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,WAAW;IAE9C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAQjC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAQ3C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB;CAO9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildMetadataStore.d.ts","sourceRoot":"","sources":["../../../../src/metadata-store/buildMetadataStore.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAqD,MAAM,yBAAyB,CAAA;AACrG,OAAO,EAA8D,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAE9G,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,GAAG,aAAa,CA8B9F"}
1
+ {"version":3,"file":"buildMetadataStore.d.ts","sourceRoot":"","sources":["../../../../src/metadata-store/buildMetadataStore.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAiC,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAML,aAAa,EACd,MAAM,oBAAoB,CAAA;AAE3B,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,GAAG,aAAa,CA8B9F"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sparkdotfi/abi-cli",
3
- "version": "0.2.0-20251014.fc890b4c",
3
+ "version": "0.2.0-20251029.1a3e2bf9",
4
4
  "engines": {
5
5
  "node": ">=22.0.0"
6
6
  },