@hyperlane-xyz/sdk 1.3.8 → 1.4.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.
Files changed (53) hide show
  1. package/dist/consts/chainMetadata.d.ts +73 -304
  2. package/dist/consts/chainMetadata.d.ts.map +1 -1
  3. package/dist/consts/chainMetadata.js +169 -204
  4. package/dist/consts/chainMetadata.js.map +1 -1
  5. package/dist/consts/environments/index.d.ts +34 -18
  6. package/dist/consts/environments/index.d.ts.map +1 -1
  7. package/dist/consts/environments/index.js.map +1 -1
  8. package/dist/consts/environments/mainnet.json +18 -18
  9. package/dist/consts/environments/testnet.json +19 -17
  10. package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
  11. package/dist/core/HyperlaneCoreChecker.js +11 -1
  12. package/dist/core/HyperlaneCoreChecker.js.map +1 -1
  13. package/dist/gas/token-prices.d.ts +56 -2
  14. package/dist/gas/token-prices.d.ts.map +1 -1
  15. package/dist/gas/token-prices.js.map +1 -1
  16. package/dist/index.d.ts +6 -4
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +30 -22
  19. package/dist/index.js.map +1 -1
  20. package/dist/metadata/agentConfig.d.ts +344 -0
  21. package/dist/metadata/agentConfig.d.ts.map +1 -0
  22. package/dist/metadata/agentConfig.js +77 -0
  23. package/dist/metadata/agentConfig.js.map +1 -0
  24. package/dist/metadata/chainMetadata.test.d.ts.map +1 -0
  25. package/dist/metadata/chainMetadata.test.js +43 -0
  26. package/dist/metadata/chainMetadata.test.js.map +1 -0
  27. package/dist/metadata/chainMetadataTypes.d.ts +242 -0
  28. package/dist/metadata/chainMetadataTypes.d.ts.map +1 -0
  29. package/dist/metadata/chainMetadataTypes.js +170 -0
  30. package/dist/metadata/chainMetadataTypes.js.map +1 -0
  31. package/dist/metadata/deploymentArtifacts.d.ts +249 -0
  32. package/dist/metadata/deploymentArtifacts.d.ts.map +1 -0
  33. package/dist/metadata/deploymentArtifacts.js +20 -0
  34. package/dist/metadata/deploymentArtifacts.js.map +1 -0
  35. package/dist/middleware/account/InterchainAccountDeployer.js +1 -1
  36. package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
  37. package/dist/providers/MultiProvider.d.ts +2 -2
  38. package/dist/providers/MultiProvider.d.ts.map +1 -1
  39. package/dist/providers/MultiProvider.js +9 -8
  40. package/dist/providers/MultiProvider.js.map +1 -1
  41. package/dist/utils/wagmi.d.ts +3 -1
  42. package/dist/utils/wagmi.d.ts.map +1 -1
  43. package/dist/utils/wagmi.js +6 -3
  44. package/dist/utils/wagmi.js.map +1 -1
  45. package/package.json +4 -4
  46. package/dist/agents/types.d.ts +0 -57
  47. package/dist/agents/types.d.ts.map +0 -1
  48. package/dist/agents/types.js +0 -37
  49. package/dist/agents/types.js.map +0 -1
  50. package/dist/consts/chainMetadata.test.d.ts.map +0 -1
  51. package/dist/consts/chainMetadata.test.js +0 -41
  52. package/dist/consts/chainMetadata.test.js.map +0 -1
  53. /package/dist/{consts → metadata}/chainMetadata.test.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../src/metadata/agentConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainMetadata.test.d.ts","sourceRoot":"","sources":["../../src/metadata/chainMetadata.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const chai_1 = require("chai");
4
+ const chainMetadataTypes_1 = require("./chainMetadataTypes");
5
+ const minimalSchema = {
6
+ chainId: 5,
7
+ domainId: 5,
8
+ name: 'goerli',
9
+ protocol: chainMetadataTypes_1.ProtocolType.Ethereum,
10
+ rpcUrls: [{ http: 'https://foobar.com' }],
11
+ };
12
+ const blockExplorers = [
13
+ {
14
+ name: 'scan',
15
+ url: 'https://foobar.com',
16
+ apiUrl: 'https://api.foobar.com',
17
+ },
18
+ ];
19
+ const blocks = {
20
+ confirmations: 1,
21
+ estimateBlockTime: 10,
22
+ };
23
+ describe('ChainMetadataSchema', () => {
24
+ it('Accepts valid schemas', () => {
25
+ (0, chai_1.expect)((0, chainMetadataTypes_1.isValidChainMetadata)(minimalSchema)).to.eq(true);
26
+ (0, chai_1.expect)((0, chainMetadataTypes_1.isValidChainMetadata)(Object.assign(Object.assign({}, minimalSchema), { blockExplorers }))).to.eq(true);
27
+ (0, chai_1.expect)((0, chainMetadataTypes_1.isValidChainMetadata)(Object.assign(Object.assign({}, minimalSchema), { blockExplorers }))).to.eq(true);
28
+ (0, chai_1.expect)((0, chainMetadataTypes_1.isValidChainMetadata)(Object.assign(Object.assign({}, minimalSchema), { blockExplorers,
29
+ blocks }))).to.eq(true);
30
+ });
31
+ it('Rejects invalid schemas', () => {
32
+ (0, chai_1.expect)(
33
+ //@ts-ignore
34
+ (0, chainMetadataTypes_1.isValidChainMetadata)({})).to.eq(false);
35
+ //@ts-ignore
36
+ (0, chai_1.expect)((0, chainMetadataTypes_1.isValidChainMetadata)(Object.assign(Object.assign({}, minimalSchema), { chainId: 'id' }))).to.eq(false);
37
+ (0, chai_1.expect)((0, chainMetadataTypes_1.isValidChainMetadata)(Object.assign(Object.assign({}, minimalSchema), { blockExplorers: [
38
+ Object.assign(Object.assign({}, blockExplorers[0]), { apiUrl: 'not-a-url' }),
39
+ ] }))).to.eq(false);
40
+ (0, chai_1.expect)((0, chainMetadataTypes_1.isValidChainMetadata)(Object.assign(Object.assign({}, minimalSchema), { name: 'Invalid name' }))).to.eq(false);
41
+ });
42
+ });
43
+ //# sourceMappingURL=chainMetadata.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainMetadata.test.js","sourceRoot":"","sources":["../../src/metadata/chainMetadata.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,6DAI8B;AAE9B,MAAM,aAAa,GAAkB;IACnC,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,iCAAY,CAAC,QAAQ;IAC/B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB;QACE,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,oBAAoB;QACzB,MAAM,EAAE,wBAAwB;KACjC;CACF,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,aAAa,EAAE,CAAC;IAChB,iBAAiB,EAAE,EAAE;CACtB,CAAC;AAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,IAAA,aAAM,EAAC,IAAA,yCAAoB,EAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAExD,IAAA,aAAM,EACJ,IAAA,yCAAoB,kCACf,aAAa,KAChB,cAAc,IACd,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEd,IAAA,aAAM,EACJ,IAAA,yCAAoB,kCACf,aAAa,KAChB,cAAc,IACd,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEd,IAAA,aAAM,EACJ,IAAA,yCAAoB,kCACf,aAAa,KAChB,cAAc;YACd,MAAM,IACN,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,IAAA,aAAM;QACJ,YAAY;QACZ,IAAA,yCAAoB,EAAC,EAAE,CAAC,CACzB,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAEf,YAAY;QACZ,IAAA,aAAM,EAAC,IAAA,yCAAoB,kCAAM,aAAa,KAAE,OAAO,EAAE,IAAI,IAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CACrE,KAAK,CACN,CAAC;QAEF,IAAA,aAAM,EACJ,IAAA,yCAAoB,kCACf,aAAa,KAChB,cAAc,EAAE;gDAET,cAAc,CAAC,CAAC,CAAC,KACpB,MAAM,EAAE,WAAW;aAEtB,IACD,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAEf,IAAA,aAAM,EACJ,IAAA,yCAAoB,kCACf,aAAa,KAChB,IAAI,EAAE,cAAc,IACpB,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,242 @@
1
+ import { z } from 'zod';
2
+ export declare enum ProtocolType {
3
+ Ethereum = "ethereum",
4
+ Sealevel = "sealevel",
5
+ Fuel = "fuel"
6
+ }
7
+ export declare type ProtocolTypeValue = `${ProtocolType}`;
8
+ export declare const ProtocolSmallestUnit: {
9
+ ethereum: string;
10
+ sealevel: string;
11
+ };
12
+ export declare enum ExplorerFamily {
13
+ Etherscan = "etherscan",
14
+ Blockscout = "blockscout",
15
+ Other = "other"
16
+ }
17
+ export declare type ExplorerFamilyValue = `${ExplorerFamily}`;
18
+ /**
19
+ * A collection of useful properties and settings for chains using Hyperlane
20
+ * Specified as a Zod schema
21
+ */
22
+ export declare const ChainMetadataSchema: z.ZodObject<{
23
+ protocol: z.ZodNativeEnum<typeof ProtocolType>;
24
+ chainId: z.ZodNumber;
25
+ domainId: z.ZodOptional<z.ZodNumber>;
26
+ name: z.ZodString;
27
+ displayName: z.ZodOptional<z.ZodString>;
28
+ displayNameShort: z.ZodOptional<z.ZodString>;
29
+ logoURI: z.ZodOptional<z.ZodString>;
30
+ nativeToken: z.ZodOptional<z.ZodObject<{
31
+ name: z.ZodString;
32
+ symbol: z.ZodString;
33
+ decimals: z.ZodNumber;
34
+ }, "strip", z.ZodTypeAny, {
35
+ symbol: string;
36
+ name: string;
37
+ decimals: number;
38
+ }, {
39
+ symbol: string;
40
+ name: string;
41
+ decimals: number;
42
+ }>>;
43
+ rpcUrls: z.ZodArray<z.ZodObject<{
44
+ http: z.ZodString;
45
+ webSocket: z.ZodOptional<z.ZodString>;
46
+ pagination: z.ZodOptional<z.ZodObject<{
47
+ maxBlockRange: z.ZodOptional<z.ZodNumber>;
48
+ minBlockNumber: z.ZodOptional<z.ZodNumber>;
49
+ maxBlockAge: z.ZodOptional<z.ZodNumber>;
50
+ }, "strip", z.ZodTypeAny, {
51
+ maxBlockRange?: number | undefined;
52
+ minBlockNumber?: number | undefined;
53
+ maxBlockAge?: number | undefined;
54
+ }, {
55
+ maxBlockRange?: number | undefined;
56
+ minBlockNumber?: number | undefined;
57
+ maxBlockAge?: number | undefined;
58
+ }>>;
59
+ retry: z.ZodOptional<z.ZodObject<{
60
+ maxRequests: z.ZodNumber;
61
+ baseRetryMs: z.ZodNumber;
62
+ }, "strip", z.ZodTypeAny, {
63
+ maxRequests: number;
64
+ baseRetryMs: number;
65
+ }, {
66
+ maxRequests: number;
67
+ baseRetryMs: number;
68
+ }>>;
69
+ }, "strip", z.ZodTypeAny, {
70
+ http: string;
71
+ webSocket?: string | undefined;
72
+ pagination?: {
73
+ maxBlockRange?: number | undefined;
74
+ minBlockNumber?: number | undefined;
75
+ maxBlockAge?: number | undefined;
76
+ } | undefined;
77
+ retry?: {
78
+ maxRequests: number;
79
+ baseRetryMs: number;
80
+ } | undefined;
81
+ }, {
82
+ http: string;
83
+ webSocket?: string | undefined;
84
+ pagination?: {
85
+ maxBlockRange?: number | undefined;
86
+ minBlockNumber?: number | undefined;
87
+ maxBlockAge?: number | undefined;
88
+ } | undefined;
89
+ retry?: {
90
+ maxRequests: number;
91
+ baseRetryMs: number;
92
+ } | undefined;
93
+ }>, "atleastone">;
94
+ blockExplorers: z.ZodOptional<z.ZodArray<z.ZodObject<{
95
+ name: z.ZodString;
96
+ url: z.ZodString;
97
+ apiUrl: z.ZodString;
98
+ apiKey: z.ZodOptional<z.ZodString>;
99
+ family: z.ZodOptional<z.ZodNativeEnum<typeof ExplorerFamily>>;
100
+ }, "strip", z.ZodTypeAny, {
101
+ url: string;
102
+ name: string;
103
+ apiUrl: string;
104
+ apiKey?: string | undefined;
105
+ family?: ExplorerFamily | undefined;
106
+ }, {
107
+ url: string;
108
+ name: string;
109
+ apiUrl: string;
110
+ apiKey?: string | undefined;
111
+ family?: ExplorerFamily | undefined;
112
+ }>, "many">>;
113
+ blocks: z.ZodOptional<z.ZodObject<{
114
+ confirmations: z.ZodNumber;
115
+ reorgPeriod: z.ZodOptional<z.ZodNumber>;
116
+ estimateBlockTime: z.ZodOptional<z.ZodNumber>;
117
+ }, "strip", z.ZodTypeAny, {
118
+ confirmations: number;
119
+ reorgPeriod?: number | undefined;
120
+ estimateBlockTime?: number | undefined;
121
+ }, {
122
+ confirmations: number;
123
+ reorgPeriod?: number | undefined;
124
+ estimateBlockTime?: number | undefined;
125
+ }>>;
126
+ transactionOverrides: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
127
+ gasCurrencyCoinGeckoId: z.ZodOptional<z.ZodString>;
128
+ gnosisSafeTransactionServiceUrl: z.ZodOptional<z.ZodString>;
129
+ isTestnet: z.ZodOptional<z.ZodBoolean>;
130
+ }, "strip", z.ZodTypeAny, {
131
+ name: string;
132
+ chainId: number;
133
+ protocol: ProtocolType;
134
+ rpcUrls: [{
135
+ http: string;
136
+ webSocket?: string | undefined;
137
+ pagination?: {
138
+ maxBlockRange?: number | undefined;
139
+ minBlockNumber?: number | undefined;
140
+ maxBlockAge?: number | undefined;
141
+ } | undefined;
142
+ retry?: {
143
+ maxRequests: number;
144
+ baseRetryMs: number;
145
+ } | undefined;
146
+ }, ...{
147
+ http: string;
148
+ webSocket?: string | undefined;
149
+ pagination?: {
150
+ maxBlockRange?: number | undefined;
151
+ minBlockNumber?: number | undefined;
152
+ maxBlockAge?: number | undefined;
153
+ } | undefined;
154
+ retry?: {
155
+ maxRequests: number;
156
+ baseRetryMs: number;
157
+ } | undefined;
158
+ }[]];
159
+ domainId?: number | undefined;
160
+ displayName?: string | undefined;
161
+ displayNameShort?: string | undefined;
162
+ logoURI?: string | undefined;
163
+ nativeToken?: {
164
+ symbol: string;
165
+ name: string;
166
+ decimals: number;
167
+ } | undefined;
168
+ blockExplorers?: {
169
+ url: string;
170
+ name: string;
171
+ apiUrl: string;
172
+ apiKey?: string | undefined;
173
+ family?: ExplorerFamily | undefined;
174
+ }[] | undefined;
175
+ blocks?: {
176
+ confirmations: number;
177
+ reorgPeriod?: number | undefined;
178
+ estimateBlockTime?: number | undefined;
179
+ } | undefined;
180
+ transactionOverrides?: {} | undefined;
181
+ gasCurrencyCoinGeckoId?: string | undefined;
182
+ gnosisSafeTransactionServiceUrl?: string | undefined;
183
+ isTestnet?: boolean | undefined;
184
+ }, {
185
+ name: string;
186
+ chainId: number;
187
+ protocol: ProtocolType;
188
+ rpcUrls: [{
189
+ http: string;
190
+ webSocket?: string | undefined;
191
+ pagination?: {
192
+ maxBlockRange?: number | undefined;
193
+ minBlockNumber?: number | undefined;
194
+ maxBlockAge?: number | undefined;
195
+ } | undefined;
196
+ retry?: {
197
+ maxRequests: number;
198
+ baseRetryMs: number;
199
+ } | undefined;
200
+ }, ...{
201
+ http: string;
202
+ webSocket?: string | undefined;
203
+ pagination?: {
204
+ maxBlockRange?: number | undefined;
205
+ minBlockNumber?: number | undefined;
206
+ maxBlockAge?: number | undefined;
207
+ } | undefined;
208
+ retry?: {
209
+ maxRequests: number;
210
+ baseRetryMs: number;
211
+ } | undefined;
212
+ }[]];
213
+ domainId?: number | undefined;
214
+ displayName?: string | undefined;
215
+ displayNameShort?: string | undefined;
216
+ logoURI?: string | undefined;
217
+ nativeToken?: {
218
+ symbol: string;
219
+ name: string;
220
+ decimals: number;
221
+ } | undefined;
222
+ blockExplorers?: {
223
+ url: string;
224
+ name: string;
225
+ apiUrl: string;
226
+ apiKey?: string | undefined;
227
+ family?: ExplorerFamily | undefined;
228
+ }[] | undefined;
229
+ blocks?: {
230
+ confirmations: number;
231
+ reorgPeriod?: number | undefined;
232
+ estimateBlockTime?: number | undefined;
233
+ } | undefined;
234
+ transactionOverrides?: {} | undefined;
235
+ gasCurrencyCoinGeckoId?: string | undefined;
236
+ gnosisSafeTransactionServiceUrl?: string | undefined;
237
+ isTestnet?: boolean | undefined;
238
+ }>;
239
+ export declare type ChainMetadata = z.infer<typeof ChainMetadataSchema>;
240
+ export declare function isValidChainMetadata(c: ChainMetadata): boolean;
241
+ export declare function getDomainId(chainMetadata: ChainMetadata): number;
242
+ //# sourceMappingURL=chainMetadataTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainMetadataTypes.d.ts","sourceRoot":"","sources":["../../src/metadata/chainMetadataTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oBAAY,YAAY;IACtB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED,oBAAY,iBAAiB,GAAG,GAAG,YAAY,EAAE,CAAC;AAElD,eAAO,MAAM,oBAAoB;;;CAGhC,CAAC;AAEF,oBAAY,cAAc;IACxB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,KAAK,UAAU;CAChB;AAED,oBAAY,mBAAmB,GAAG,GAAG,cAAc,EAAE,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyK9B,CAAC;AAEH,oBAAY,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAE9D;AAED,wBAAgB,WAAW,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAEhE"}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDomainId = exports.isValidChainMetadata = exports.ChainMetadataSchema = exports.ExplorerFamily = exports.ProtocolSmallestUnit = exports.ProtocolType = void 0;
4
+ const zod_1 = require("zod");
5
+ var ProtocolType;
6
+ (function (ProtocolType) {
7
+ ProtocolType["Ethereum"] = "ethereum";
8
+ ProtocolType["Sealevel"] = "sealevel";
9
+ ProtocolType["Fuel"] = "fuel";
10
+ })(ProtocolType = exports.ProtocolType || (exports.ProtocolType = {}));
11
+ exports.ProtocolSmallestUnit = {
12
+ [ProtocolType.Ethereum]: 'wei',
13
+ [ProtocolType.Sealevel]: 'lamports',
14
+ };
15
+ var ExplorerFamily;
16
+ (function (ExplorerFamily) {
17
+ ExplorerFamily["Etherscan"] = "etherscan";
18
+ ExplorerFamily["Blockscout"] = "blockscout";
19
+ ExplorerFamily["Other"] = "other";
20
+ })(ExplorerFamily = exports.ExplorerFamily || (exports.ExplorerFamily = {}));
21
+ /**
22
+ * A collection of useful properties and settings for chains using Hyperlane
23
+ * Specified as a Zod schema
24
+ */
25
+ exports.ChainMetadataSchema = zod_1.z.object({
26
+ protocol: zod_1.z
27
+ .nativeEnum(ProtocolType)
28
+ .describe('The type of protocol used by this chain. See ProtocolType for valid values.'),
29
+ chainId: zod_1.z
30
+ .number()
31
+ .positive()
32
+ .describe(`The chainId of the chain. Uses EIP-155 for EVM chains`),
33
+ domainId: zod_1.z
34
+ .number()
35
+ .positive()
36
+ .optional()
37
+ .describe('The domainId of the chain, should generally default to `chainId`. Consumer of `ChainMetadata` should use this value if present, but otherwise fallback to `chainId`.'),
38
+ name: zod_1.z
39
+ .string()
40
+ .regex(/^[a-z]+[a-z0-9]*$/)
41
+ .describe('The unique string identifier of the chain, used as the key in ChainMap dictionaries.'),
42
+ displayName: zod_1.z
43
+ .string()
44
+ .optional()
45
+ .describe('Human-readable name of the chain.'),
46
+ displayNameShort: zod_1.z
47
+ .string()
48
+ .optional()
49
+ .describe('A shorter human-readable name of the chain for use in user interfaces.'),
50
+ logoURI: zod_1.z
51
+ .string()
52
+ .optional()
53
+ .describe('A URI to a logo image for this chain for use in user interfaces.'),
54
+ nativeToken: zod_1.z
55
+ .object({
56
+ name: zod_1.z.string(),
57
+ symbol: zod_1.z.string(),
58
+ decimals: zod_1.z.number().nonnegative(),
59
+ })
60
+ .optional()
61
+ .describe('The metadata of the native token of the chain (e.g. ETH for Ethereum).'),
62
+ rpcUrls: zod_1.z
63
+ .array(zod_1.z.object({
64
+ http: zod_1.z
65
+ .string()
66
+ .url()
67
+ .describe('The HTTP URL of the RPC endpoint (preferably HTTPS).'),
68
+ webSocket: zod_1.z
69
+ .string()
70
+ .optional()
71
+ .describe('The WSS URL if the endpoint also supports websockets.'),
72
+ pagination: zod_1.z
73
+ .object({
74
+ maxBlockRange: zod_1.z
75
+ .number()
76
+ .positive()
77
+ .optional()
78
+ .describe('The maximum range between block numbers for which the RPC can query data'),
79
+ minBlockNumber: zod_1.z
80
+ .number()
81
+ .positive()
82
+ .optional()
83
+ .describe('The absolute minimum block number that this RPC supports.'),
84
+ maxBlockAge: zod_1.z
85
+ .number()
86
+ .positive()
87
+ .optional()
88
+ .describe('The relative different from latest block that this RPC supports.'),
89
+ })
90
+ .optional()
91
+ .describe('Limitations on the block range/age that can be queried.'),
92
+ retry: zod_1.z
93
+ .object({
94
+ maxRequests: zod_1.z
95
+ .number()
96
+ .positive()
97
+ .describe('The maximum number of requests to attempt before failing.'),
98
+ baseRetryMs: zod_1.z
99
+ .number()
100
+ .positive()
101
+ .describe('The base retry delay in milliseconds.'),
102
+ })
103
+ .optional()
104
+ .describe('Default retry settings to be used by a provider such as MultiProvider.'),
105
+ }))
106
+ .nonempty()
107
+ .describe('The list of RPC endpoints for interacting with the chain.'),
108
+ blockExplorers: zod_1.z
109
+ .array(zod_1.z.object({
110
+ name: zod_1.z.string().describe('A human readable name for the explorer.'),
111
+ url: zod_1.z.string().url().describe('The base URL for the explorer.'),
112
+ apiUrl: zod_1.z
113
+ .string()
114
+ .url()
115
+ .describe('The base URL for requests to the explorer API.'),
116
+ apiKey: zod_1.z
117
+ .string()
118
+ .optional()
119
+ .describe('An API key for the explorer (recommended for better reliability).'),
120
+ family: zod_1.z
121
+ .nativeEnum(ExplorerFamily)
122
+ .optional()
123
+ .describe('The type of the block explorer. See ExplorerFamily for valid values.'),
124
+ }))
125
+ .optional()
126
+ .describe('A list of block explorers with data for this chain'),
127
+ blocks: zod_1.z
128
+ .object({
129
+ confirmations: zod_1.z
130
+ .number()
131
+ .describe('Number of blocks to wait before considering a transaction confirmed.'),
132
+ reorgPeriod: zod_1.z
133
+ .number()
134
+ .optional()
135
+ .describe('Number of blocks before a transaction has a near-zero chance of reverting.'),
136
+ estimateBlockTime: zod_1.z
137
+ .number()
138
+ .positive()
139
+ .optional()
140
+ .describe('Rough estimate of time per block in seconds.'),
141
+ })
142
+ .optional()
143
+ .describe('Block settings for the chain/deployment.'),
144
+ transactionOverrides: zod_1.z
145
+ .object({})
146
+ .optional()
147
+ .describe('Properties to include when forming transaction requests.'),
148
+ gasCurrencyCoinGeckoId: zod_1.z
149
+ .string()
150
+ .optional()
151
+ .describe('The ID on CoinGecko of the token used for gas payments.'),
152
+ gnosisSafeTransactionServiceUrl: zod_1.z
153
+ .string()
154
+ .optional()
155
+ .describe('The URL of the gnosis safe transaction service.'),
156
+ isTestnet: zod_1.z
157
+ .boolean()
158
+ .optional()
159
+ .describe('Whether the chain is considered a testnet or a mainnet.'),
160
+ });
161
+ function isValidChainMetadata(c) {
162
+ return exports.ChainMetadataSchema.safeParse(c).success;
163
+ }
164
+ exports.isValidChainMetadata = isValidChainMetadata;
165
+ function getDomainId(chainMetadata) {
166
+ var _a;
167
+ return (_a = chainMetadata.domainId) !== null && _a !== void 0 ? _a : chainMetadata.chainId;
168
+ }
169
+ exports.getDomainId = getDomainId;
170
+ //# sourceMappingURL=chainMetadataTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chainMetadataTypes.js","sourceRoot":"","sources":["../../src/metadata/chainMetadataTypes.ts"],"names":[],"mappings":"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"}