@xyo-network/xl1-protocol-sdk 3.0.11 → 3.0.12
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/neutral/Archivists/ArchivistFactory.d.ts +3 -3
- package/dist/neutral/Archivists/ArchivistFactory.d.ts.map +1 -1
- package/dist/neutral/Archivists/MemoryArchivistFactory.d.ts +3 -3
- package/dist/neutral/Archivists/MemoryArchivistFactory.d.ts.map +1 -1
- package/dist/neutral/Archivists/archivistFactoryRegistry.d.ts +3 -3
- package/dist/neutral/Archivists/archivistFactoryRegistry.d.ts.map +1 -1
- package/dist/neutral/CreatableProvider/AbstractCreatableProvider.d.ts +0 -1
- package/dist/neutral/CreatableProvider/AbstractCreatableProvider.d.ts.map +1 -1
- package/dist/neutral/CreatableProvider/CreatableProvider.d.ts +3 -3
- package/dist/neutral/CreatableProvider/CreatableProvider.d.ts.map +1 -1
- package/dist/neutral/capabilities/connectionTypes.d.ts +2 -2
- package/dist/neutral/capabilities/connectionTypes.d.ts.map +1 -1
- package/dist/neutral/capabilities/needsFromProviderBindings.d.ts +2 -2
- package/dist/neutral/capabilities/needsFromProviderBindings.d.ts.map +1 -1
- package/dist/neutral/capabilities/resolveProviders.d.ts +2 -3
- package/dist/neutral/capabilities/resolveProviders.d.ts.map +1 -1
- package/dist/neutral/config/Actor.d.ts +0 -6
- package/dist/neutral/config/Actor.d.ts.map +1 -1
- package/dist/neutral/config/Actors.d.ts +0 -1
- package/dist/neutral/config/Actors.d.ts.map +1 -1
- package/dist/neutral/config/Base.d.ts +0 -1
- package/dist/neutral/config/Base.d.ts.map +1 -1
- package/dist/neutral/config/Config.d.ts +0 -4
- package/dist/neutral/config/Config.d.ts.map +1 -1
- package/dist/neutral/config/HostActor.d.ts +0 -6
- package/dist/neutral/config/HostActor.d.ts.map +1 -1
- package/dist/neutral/config/ProviderBinding.d.ts +0 -2
- package/dist/neutral/config/ProviderBinding.d.ts.map +1 -1
- package/dist/neutral/config/{transports/Transport.d.ts → connections/Connection.d.ts} +29 -29
- package/dist/neutral/config/connections/Connection.d.ts.map +1 -0
- package/dist/neutral/config/connections/Mongo.d.ts.map +1 -0
- package/dist/neutral/config/{transports/Rpc.d.ts → connections/RpcRemote.d.ts} +1 -1
- package/dist/neutral/config/connections/RpcRemote.d.ts.map +1 -0
- package/dist/neutral/config/connections/S3.d.ts.map +1 -0
- package/dist/neutral/config/connections/index.d.ts +4 -5
- package/dist/neutral/config/connections/index.d.ts.map +1 -1
- package/dist/neutral/config/index.d.ts +0 -1
- package/dist/neutral/config/index.d.ts.map +1 -1
- package/dist/neutral/config/normalizeConnectionsConfig.d.ts +2 -2
- package/dist/neutral/config/normalizeConnectionsConfig.d.ts.map +1 -1
- package/dist/neutral/context/Actor.d.ts +0 -6
- package/dist/neutral/context/Actor.d.ts.map +1 -1
- package/dist/neutral/context/HostActor.d.ts +0 -6
- package/dist/neutral/context/HostActor.d.ts.map +1 -1
- package/dist/neutral/getFileConfig.d.ts +0 -2
- package/dist/neutral/getFileConfig.d.ts.map +1 -1
- package/dist/neutral/getFileConfig.mjs +37 -42
- package/dist/neutral/getFileConfig.mjs.map +3 -3
- package/dist/neutral/index.mjs +138 -170
- package/dist/neutral/index.mjs.map +4 -4
- package/dist/neutral/model/CreatableProviderContext.zod.d.ts +0 -6
- package/dist/neutral/model/CreatableProviderContext.zod.d.ts.map +1 -1
- package/dist/neutral/test/index.mjs +37 -42
- package/dist/neutral/test/index.mjs.map +3 -3
- package/package.json +6 -6
- package/dist/neutral/config/transports/Mongo.d.ts.map +0 -1
- package/dist/neutral/config/transports/Rpc.d.ts.map +0 -1
- package/dist/neutral/config/transports/S3.d.ts.map +0 -1
- package/dist/neutral/config/transports/Transport.d.ts.map +0 -1
- package/dist/neutral/config/transports/index.d.ts +0 -5
- package/dist/neutral/config/transports/index.d.ts.map +0 -1
- /package/dist/neutral/config/{transports → connections}/Mongo.d.ts +0 -0
- /package/dist/neutral/config/{transports → connections}/S3.d.ts +0 -0
|
@@ -69,7 +69,6 @@ export declare const ActorConfigContext: z.ZodMiniObject<{
|
|
|
69
69
|
}, z.core.$strip>], "type">>>>;
|
|
70
70
|
providerBindings: z.ZodMiniDefault<import("zod").ZodDefault<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodObject<{
|
|
71
71
|
connection: import("zod").ZodOptional<import("zod").ZodString>;
|
|
72
|
-
transport: import("zod").ZodOptional<import("zod").ZodString>;
|
|
73
72
|
}, z.core.$strip>>>>;
|
|
74
73
|
providers: z.ZodMiniDefault<import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
|
|
75
74
|
moniker: import("zod").ZodString;
|
|
@@ -161,7 +160,6 @@ export declare const isActorConfigContext: <T>(value: T) => value is T & {
|
|
|
161
160
|
}>;
|
|
162
161
|
providerBindings: Record<string, {
|
|
163
162
|
connection?: string | undefined;
|
|
164
|
-
transport?: string | undefined;
|
|
165
163
|
}>;
|
|
166
164
|
providers: {
|
|
167
165
|
[x: string]: unknown;
|
|
@@ -258,7 +256,6 @@ export declare const asActorConfigContext: {
|
|
|
258
256
|
}>;
|
|
259
257
|
providerBindings: Record<string, {
|
|
260
258
|
connection?: string | undefined;
|
|
261
|
-
transport?: string | undefined;
|
|
262
259
|
}>;
|
|
263
260
|
providers: {
|
|
264
261
|
[x: string]: unknown;
|
|
@@ -353,7 +350,6 @@ export declare const asActorConfigContext: {
|
|
|
353
350
|
}>;
|
|
354
351
|
providerBindings: Record<string, {
|
|
355
352
|
connection?: string | undefined;
|
|
356
|
-
transport?: string | undefined;
|
|
357
353
|
}>;
|
|
358
354
|
providers: {
|
|
359
355
|
[x: string]: unknown;
|
|
@@ -451,7 +447,6 @@ export declare const toActorConfigContext: {
|
|
|
451
447
|
}>;
|
|
452
448
|
providerBindings: Record<string, {
|
|
453
449
|
connection?: string | undefined;
|
|
454
|
-
transport?: string | undefined;
|
|
455
450
|
}>;
|
|
456
451
|
providers: {
|
|
457
452
|
[x: string]: unknown;
|
|
@@ -546,7 +541,6 @@ export declare const toActorConfigContext: {
|
|
|
546
541
|
}>;
|
|
547
542
|
providerBindings: Record<string, {
|
|
548
543
|
connection?: string | undefined;
|
|
549
|
-
transport?: string | undefined;
|
|
550
544
|
}>;
|
|
551
545
|
providers: {
|
|
552
546
|
[x: string]: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actor.d.ts","sourceRoot":"","sources":["../../../src/context/Actor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAA;AAK5B,mCAAmC;AACnC,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"Actor.d.ts","sourceRoot":"","sources":["../../../src/context/Actor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAA;AAK5B,mCAAmC;AACnC,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA6D,CAAA;AAE5F,+BAA+B;AAC/B,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEnE,uEAAuE;AACvE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAmC,CAAA;AACpE,mEAAmE;AACnE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA2D,CAAA;AAC5F,qCAAqC;AACrC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA2D,CAAA"}
|
|
@@ -69,7 +69,6 @@ export declare const HostActorConfigContext: z.ZodMiniObject<{
|
|
|
69
69
|
}, z.core.$strip>], "type">>>>;
|
|
70
70
|
providerBindings: z.ZodMiniDefault<import("zod").ZodDefault<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodObject<{
|
|
71
71
|
connection: import("zod").ZodOptional<import("zod").ZodString>;
|
|
72
|
-
transport: import("zod").ZodOptional<import("zod").ZodString>;
|
|
73
72
|
}, z.core.$strip>>>>;
|
|
74
73
|
providers: z.ZodMiniDefault<import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodObject<{
|
|
75
74
|
moniker: import("zod").ZodString;
|
|
@@ -163,7 +162,6 @@ export declare const isHostActorConfigContext: <T>(value: T) => value is T & {
|
|
|
163
162
|
}>;
|
|
164
163
|
providerBindings: Record<string, {
|
|
165
164
|
connection?: string | undefined;
|
|
166
|
-
transport?: string | undefined;
|
|
167
165
|
}>;
|
|
168
166
|
providers: {
|
|
169
167
|
[x: string]: unknown;
|
|
@@ -262,7 +260,6 @@ export declare const asHostActorConfigContext: {
|
|
|
262
260
|
}>;
|
|
263
261
|
providerBindings: Record<string, {
|
|
264
262
|
connection?: string | undefined;
|
|
265
|
-
transport?: string | undefined;
|
|
266
263
|
}>;
|
|
267
264
|
providers: {
|
|
268
265
|
[x: string]: unknown;
|
|
@@ -359,7 +356,6 @@ export declare const asHostActorConfigContext: {
|
|
|
359
356
|
}>;
|
|
360
357
|
providerBindings: Record<string, {
|
|
361
358
|
connection?: string | undefined;
|
|
362
|
-
transport?: string | undefined;
|
|
363
359
|
}>;
|
|
364
360
|
providers: {
|
|
365
361
|
[x: string]: unknown;
|
|
@@ -459,7 +455,6 @@ export declare const toHostActorConfigContext: {
|
|
|
459
455
|
}>;
|
|
460
456
|
providerBindings: Record<string, {
|
|
461
457
|
connection?: string | undefined;
|
|
462
|
-
transport?: string | undefined;
|
|
463
458
|
}>;
|
|
464
459
|
providers: {
|
|
465
460
|
[x: string]: unknown;
|
|
@@ -556,7 +551,6 @@ export declare const toHostActorConfigContext: {
|
|
|
556
551
|
}>;
|
|
557
552
|
providerBindings: Record<string, {
|
|
558
553
|
connection?: string | undefined;
|
|
559
|
-
transport?: string | undefined;
|
|
560
554
|
}>;
|
|
561
555
|
providers: {
|
|
562
556
|
[x: string]: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HostActor.d.ts","sourceRoot":"","sources":["../../../src/context/HostActor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAA;AAK5B,uCAAuC;AACvC,eAAO,MAAM,sBAAsB
|
|
1
|
+
{"version":3,"file":"HostActor.d.ts","sourceRoot":"","sources":["../../../src/context/HostActor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAA;AAK5B,uCAAuC;AACvC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAiE,CAAA;AAEpG,mCAAmC;AACnC,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAuC,CAAA;AAC5E,uEAAuE;AACvE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAmE,CAAA;AACxG,yCAAyC;AACzC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAmE,CAAA"}
|
|
@@ -53,7 +53,6 @@ export declare function getFileConfig(searchPlaces?: string[]): Promise<{
|
|
|
53
53
|
}>;
|
|
54
54
|
providerBindings: Record<string, {
|
|
55
55
|
connection?: string | undefined;
|
|
56
|
-
transport?: string | undefined;
|
|
57
56
|
}>;
|
|
58
57
|
providers: {
|
|
59
58
|
[x: string]: unknown;
|
|
@@ -137,7 +136,6 @@ export declare function getFileConfig(searchPlaces?: string[]): Promise<{
|
|
|
137
136
|
}>;
|
|
138
137
|
providerBindings: Record<string, {
|
|
139
138
|
connection?: string | undefined;
|
|
140
|
-
transport?: string | undefined;
|
|
141
139
|
}>;
|
|
142
140
|
providers: {
|
|
143
141
|
[x: string]: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFileConfig.d.ts","sourceRoot":"","sources":["../../src/getFileConfig.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAsB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"getFileConfig.d.ts","sourceRoot":"","sources":["../../src/getFileConfig.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAsB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiB1D"}
|
|
@@ -31,10 +31,10 @@ var ChainConfigZod = z.object({
|
|
|
31
31
|
})
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
-
// src/config/
|
|
34
|
+
// src/config/connections/Connection.ts
|
|
35
35
|
import { globalRegistry as globalRegistry3, z as z4 } from "zod";
|
|
36
36
|
|
|
37
|
-
// src/config/
|
|
37
|
+
// src/config/connections/Mongo.ts
|
|
38
38
|
import { globalRegistry as globalRegistry2, z as z2 } from "zod";
|
|
39
39
|
var MongoConfigZod = z2.object({
|
|
40
40
|
// TODO: Create from other arguments
|
|
@@ -65,7 +65,7 @@ var MongoConfigZod = z2.object({
|
|
|
65
65
|
})
|
|
66
66
|
});
|
|
67
67
|
|
|
68
|
-
// src/config/
|
|
68
|
+
// src/config/connections/S3.ts
|
|
69
69
|
import { z as z3 } from "zod";
|
|
70
70
|
var S3BucketConfigZod = z3.object({
|
|
71
71
|
accessKeyId: z3.string().nonempty().optional().describe("S3-compatible access key id for this bucket (overrides the shared default)"),
|
|
@@ -76,94 +76,94 @@ var S3BucketConfigZod = z3.object({
|
|
|
76
76
|
secretAccessKey: z3.string().nonempty().optional().describe("S3-compatible secret access key for this bucket (overrides the shared default)")
|
|
77
77
|
});
|
|
78
78
|
|
|
79
|
-
// src/config/
|
|
80
|
-
var
|
|
79
|
+
// src/config/connections/Connection.ts
|
|
80
|
+
var LmdbConnectionConfigZod = z4.object({
|
|
81
81
|
access: z4.enum(["read", "write"]).optional().register(globalRegistry3, {
|
|
82
82
|
description: "Access mode for this LMDB connection (read or write)",
|
|
83
|
-
title: "
|
|
83
|
+
title: "connections.lmdb.access",
|
|
84
84
|
type: "string"
|
|
85
85
|
}),
|
|
86
86
|
root: z4.string().register(globalRegistry3, {
|
|
87
87
|
description: "Root directory for local LMDB storage",
|
|
88
|
-
title: "
|
|
88
|
+
title: "connections.lmdb.root",
|
|
89
89
|
type: "string"
|
|
90
90
|
}),
|
|
91
91
|
store: z4.string().optional().register(globalRegistry3, {
|
|
92
92
|
description: "Logical store name within the LMDB root (e.g. finalized-chain, mempool)",
|
|
93
|
-
title: "
|
|
93
|
+
title: "connections.lmdb.store",
|
|
94
94
|
type: "string"
|
|
95
95
|
}),
|
|
96
96
|
type: z4.literal("lmdb")
|
|
97
|
-
}).describe("LMDB local storage
|
|
98
|
-
var
|
|
97
|
+
}).describe("LMDB local storage connection");
|
|
98
|
+
var MongoConnectionConfigZod = z4.object({
|
|
99
99
|
type: z4.literal("mongo"),
|
|
100
100
|
connectionString: MongoConfigZod.shape.connectionString,
|
|
101
101
|
database: MongoConfigZod.shape.database,
|
|
102
102
|
domain: MongoConfigZod.shape.domain,
|
|
103
103
|
password: MongoConfigZod.shape.password,
|
|
104
104
|
username: MongoConfigZod.shape.username
|
|
105
|
-
}).describe("MongoDB storage
|
|
106
|
-
var
|
|
105
|
+
}).describe("MongoDB storage connection");
|
|
106
|
+
var RpcConnectionConfigZod = z4.object({
|
|
107
107
|
type: z4.literal("rpc"),
|
|
108
108
|
protocol: z4.string().default("http").register(globalRegistry3, {
|
|
109
109
|
description: "Protocol for the RPC connection (http or postMessage)",
|
|
110
|
-
title: "
|
|
110
|
+
title: "connections.rpc.protocol",
|
|
111
111
|
type: "string"
|
|
112
112
|
}),
|
|
113
113
|
url: z4.string().optional().register(globalRegistry3, {
|
|
114
114
|
description: "URL for the Chain RPC API (http protocol)",
|
|
115
|
-
title: "
|
|
115
|
+
title: "connections.rpc.url",
|
|
116
116
|
type: "string"
|
|
117
117
|
}),
|
|
118
118
|
networkId: z4.string().optional().register(globalRegistry3, {
|
|
119
119
|
description: "Network ID for the postMessage RPC connection",
|
|
120
|
-
title: "
|
|
120
|
+
title: "connections.rpc.networkId",
|
|
121
121
|
type: "string"
|
|
122
122
|
}),
|
|
123
123
|
sessionId: z4.string().optional().register(globalRegistry3, {
|
|
124
124
|
description: "Session ID for the postMessage RPC connection",
|
|
125
|
-
title: "
|
|
125
|
+
title: "connections.rpc.sessionId",
|
|
126
126
|
type: "string"
|
|
127
127
|
})
|
|
128
|
-
}).describe("XL1 JSON-RPC
|
|
129
|
-
var
|
|
128
|
+
}).describe("XL1 JSON-RPC connection");
|
|
129
|
+
var RestConnectionConfigZod = z4.object({
|
|
130
130
|
type: z4.literal("rest"),
|
|
131
131
|
baseUrl: z4.string().register(globalRegistry3, {
|
|
132
132
|
description: "HTTP base URL for REST reads",
|
|
133
|
-
title: "
|
|
133
|
+
title: "connections.rest.baseUrl",
|
|
134
134
|
type: "string"
|
|
135
135
|
})
|
|
136
|
-
}).describe("HTTP REST read
|
|
137
|
-
var
|
|
136
|
+
}).describe("HTTP REST read connection");
|
|
137
|
+
var S3ConnectionConfigZod = S3BucketConfigZod.extend({
|
|
138
138
|
type: z4.literal("s3"),
|
|
139
139
|
accessKeyId: z4.string().optional(),
|
|
140
140
|
accountId: z4.string().optional(),
|
|
141
141
|
secretAccessKey: z4.string().optional()
|
|
142
|
-
}).describe("S3-compatible object storage
|
|
143
|
-
var
|
|
142
|
+
}).describe("S3-compatible object storage connection");
|
|
143
|
+
var EvmRpcConnectionConfigZod = z4.object({
|
|
144
144
|
type: z4.literal("evm-rpc"),
|
|
145
145
|
url: z4.string().register(globalRegistry3, {
|
|
146
146
|
description: "EVM JSON-RPC URL",
|
|
147
|
-
title: "
|
|
147
|
+
title: "connections.evm-rpc.url",
|
|
148
148
|
type: "string"
|
|
149
149
|
}),
|
|
150
150
|
chainId: z4.string().optional().register(globalRegistry3, {
|
|
151
151
|
description: "EVM chain ID for this RPC endpoint; auto-detected from the endpoint when omitted",
|
|
152
|
-
title: "
|
|
152
|
+
title: "connections.evm-rpc.chainId",
|
|
153
153
|
type: "string"
|
|
154
154
|
})
|
|
155
|
-
}).describe("EVM JSON-RPC
|
|
156
|
-
var
|
|
157
|
-
var
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
155
|
+
}).describe("EVM JSON-RPC connection");
|
|
156
|
+
var MemoryConnectionConfigZod = z4.object({ type: z4.literal("memory") }).describe("In-process memory connection");
|
|
157
|
+
var ConnectionConfigZod = z4.discriminatedUnion("type", [
|
|
158
|
+
LmdbConnectionConfigZod,
|
|
159
|
+
MongoConnectionConfigZod,
|
|
160
|
+
RpcConnectionConfigZod,
|
|
161
|
+
RestConnectionConfigZod,
|
|
162
|
+
S3ConnectionConfigZod,
|
|
163
|
+
EvmRpcConnectionConfigZod,
|
|
164
|
+
MemoryConnectionConfigZod
|
|
165
165
|
]);
|
|
166
|
-
var
|
|
166
|
+
var ConnectionsConfigZod = z4.record(z4.string(), ConnectionConfigZod).default({});
|
|
167
167
|
|
|
168
168
|
// src/config/Log.ts
|
|
169
169
|
import { LogLevel } from "@xylabs/sdk-js";
|
|
@@ -192,11 +192,6 @@ var ProviderBindingConfigZod = z6.object({
|
|
|
192
192
|
description: "Named connection from the top-level connections map",
|
|
193
193
|
title: "providerBindings.connection",
|
|
194
194
|
type: "string"
|
|
195
|
-
}),
|
|
196
|
-
transport: z6.string().optional().register(globalRegistry5, {
|
|
197
|
-
description: "Deprecated alias for connection (kept in sync during migration)",
|
|
198
|
-
title: "providerBindings.transport",
|
|
199
|
-
type: "string"
|
|
200
195
|
})
|
|
201
196
|
}).describe("Provider connection binding");
|
|
202
197
|
var ProviderBindingsConfigZod = z6.record(z6.string(), ProviderBindingConfigZod).default({});
|
|
@@ -291,7 +286,7 @@ var ValidationConfigZod = z10.object({
|
|
|
291
286
|
var BaseConfigZod = z11.object({
|
|
292
287
|
chain: z11._default(ChainConfigZod, ChainConfigZod.parse({})).check(z11.describe("Configuration for the chain")),
|
|
293
288
|
log: z11._default(LogConfigZod, LogConfigZod.parse({})).check(z11.describe("Configuration for logging")),
|
|
294
|
-
connections: z11._default(
|
|
289
|
+
connections: z11._default(ConnectionsConfigZod, ConnectionsConfigZod.parse({})).check(z11.describe("Named connection profiles (rpc, rest, s3, lmdb, mongo, evm-rpc)")),
|
|
295
290
|
providerBindings: z11._default(ProviderBindingsConfigZod, ProviderBindingsConfigZod.parse({})).check(z11.describe("Per-moniker provider connection bindings")),
|
|
296
291
|
providers: z11._default(ProvidersConfigZod, ProvidersConfigZod.parse([])).check(z11.describe("Configuration for providers")),
|
|
297
292
|
telemetry: z11._default(TelemetryConfigZod, TelemetryConfigZod.parse({})).check(z11.describe("Configuration for telemetry")),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/getFileConfig.ts", "../../src/config/Actor.ts", "../../src/config/Base.ts", "../../src/config/Chain.ts", "../../src/config/
|
|
4
|
-
"sourcesContent": ["import { isDefined, isNull } from '@xylabs/sdk-js'\nimport { cosmiconfig } from 'cosmiconfig'\nimport { z } from 'zod/mini'\n\nimport { ConfigZod } from './config/index.ts'\n\n/**\n * The name of the configuration file to search for.\n */\nconst configName = 'xyo'\n\n/**\n * The name of the section within the configuration file to parse.\n */\nconst configSection = 'xl1' // Default section in the config file\n\n/**\n * Attempts to parse the configuration from a file using cosmiconfig.\n * @returns The parsed configuration object if found and valid, otherwise undefined.\n */\nexport async function getFileConfig(searchPlaces?: string[]) {\n const explorer = cosmiconfig(\n configName,\n {\n cache: true,\n searchPlaces,\n },\n )\n const searchResult = await explorer.search()\n const result: unknown = searchResult?.config\n if (!isNull(result)) {\n const section = (result as Record<string, unknown>)[configSection]\n if (isDefined(section) && typeof section === 'object') {\n return z.looseObject(ConfigZod.shape).parse(section)\n }\n }\n return ConfigZod.parse({})\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { globalRegistry, z } from 'zod/mini'\n\nimport { BaseConfigZod } from './Base.ts'\n\n/**\n * BIP-32 derivation path for an actor wallet.\n *\n * - Absolute form: starts with `m/` (e.g. `m/44'/60'/0'/0/0`). The full path is used as-is,\n * giving the caller complete control over coin type, account, and hardening.\n * - Relative form: a segment list without the `m/` prefix (e.g. `0`, `0/1`, `44'/60'/0'/0/0`).\n * The consumer appends this to its configured root base path.\n *\n * Each segment is a non-negative integer, optionally suffixed with `'` to mark it as hardened.\n */\nexport const AccountPathZod = z.string().check(z.regex(\n /^(m(\\/\\d+'?)+|\\d+'?(\\/\\d+'?)*)$/,\n 'Invalid BIP-32 derivation path. Use either an absolute path like \"m/44\\'/60\\'/0\\'/0/0\" or a relative path like \"0\", \"0/1\", or \"44\\'/60\\'/0\\'/0/0\".',\n))\n\n/** ActorConfigZod constant. */\nexport const ActorConfigZod = z.extend(BaseConfigZod, {\n name: z.string(),\n accountPath: z.optional(AccountPathZod).register(globalRegistry, {\n description: 'BIP-32 derivation path for the actor wallet. Absolute when it starts with \"m/\"; otherwise relative to the root wallet base path. Each actor must derive to a distinct path.',\n title: 'accountPath',\n type: 'string',\n }),\n})\n\n/** ActorConfig type. */\nexport type ActorConfig = z.infer<typeof ActorConfigZod>\n\n/** Type guard that checks if a value is a valid ActorConfig. */\nexport const isActorConfig = zodIsFactory(ActorConfigZod)\n/** Converts a value to ActorConfig, throwing if invalid. */\nexport const asActorConfig = zodAsFactory(ActorConfigZod, 'asActorConfig')\n/** toActorConfig constant. */\nexport const toActorConfig = zodToFactory(ActorConfigZod, 'toActorConfig')\n", "import { z } from 'zod/mini'\n\nimport { ChainConfigZod } from './Chain.ts'\nimport { ConnectionsConfigZod } from './connections/index.ts'\nimport { LogConfigZod } from './Log.ts'\nimport { ProviderBindingsConfigZod } from './ProviderBinding.ts'\nimport { ProvidersConfigZod } from './Providers.ts'\nimport { TelemetryConfigZod } from './Telemetry.ts'\nimport { ValidationConfigZod } from './Validation.ts'\n\n/** BaseConfigZod constant. */\nexport const BaseConfigZod = z.object({\n chain: z._default(ChainConfigZod, ChainConfigZod.parse({})).check(z.describe('Configuration for the chain')),\n log: z._default(LogConfigZod, LogConfigZod.parse({})).check(z.describe('Configuration for logging')),\n connections: z._default(ConnectionsConfigZod, ConnectionsConfigZod.parse({})).check(z.describe('Named connection profiles (rpc, rest, s3, lmdb, mongo, evm-rpc)')),\n providerBindings: z._default(ProviderBindingsConfigZod, ProviderBindingsConfigZod.parse({})).check(z.describe('Per-moniker provider connection bindings')),\n providers: z._default(ProvidersConfigZod, ProvidersConfigZod.parse([])).check(z.describe('Configuration for providers')),\n telemetry: z._default(TelemetryConfigZod, TelemetryConfigZod.parse({})).check(z.describe('Configuration for telemetry')),\n validation: z._default(ValidationConfigZod, ValidationConfigZod.parse({})).check(z.describe('Configuration for validation')),\n})\n\n/** BaseConfig type. */\nexport type BaseConfig = z.infer<typeof BaseConfigZod>\n", "import { HexZod } from '@xylabs/sdk-js'\nimport { XyoAddressZod } from '@xyo-network/sdk-js'\nimport { globalRegistry, z } from 'zod/mini'\n\n/** ChainConfigZod constant. */\nexport const ChainConfigZod = z.object({\n id: z.optional(HexZod)\n .register(globalRegistry, {\n description:\n 'The unique identifier for the chain. Should be the staking contract address for contract-backed chains.',\n title: 'chain.id',\n type: 'string',\n }),\n genesisRewardAddress: z.optional(XyoAddressZod)\n .register(globalRegistry, {\n description:\n 'Address to send the initial genesis rewards to, if a new chain is being created.',\n title: 'chain.genesisRewardAddress',\n type: 'Address',\n }),\n})\n\n/** ChainConfig type. */\nexport type ChainConfig = z.infer<typeof ChainConfigZod>\n", "import { globalRegistry, z } from 'zod'\n\nimport { MongoConfigZod } from './Mongo.ts'\nimport { S3BucketConfigZod } from './S3.ts'\n\n/** Named LMDB backing-store transport. */\nexport const LmdbTransportConfigZod = z.object({\n access: z.enum(['read', 'write']).optional().register(globalRegistry, {\n description: 'Access mode for this LMDB connection (read or write)',\n title: 'transports.lmdb.access',\n type: 'string',\n }),\n root: z.string().register(globalRegistry, {\n description: 'Root directory for local LMDB storage',\n title: 'transports.lmdb.root',\n type: 'string',\n }),\n store: z.string().optional().register(globalRegistry, {\n description: 'Logical store name within the LMDB root (e.g. finalized-chain, mempool)',\n title: 'transports.lmdb.store',\n type: 'string',\n }),\n type: z.literal('lmdb'),\n}).describe('LMDB local storage transport')\n\n/** MongoDB backing-store transport. */\nexport const MongoTransportConfigZod = z.object({\n type: z.literal('mongo'),\n connectionString: MongoConfigZod.shape.connectionString,\n database: MongoConfigZod.shape.database,\n domain: MongoConfigZod.shape.domain,\n password: MongoConfigZod.shape.password,\n username: MongoConfigZod.shape.username,\n}).describe('MongoDB storage transport')\n\n/** JSON-RPC wire transport (HTTP or postMessage). */\nexport const RpcTransportConfigZod = z.object({\n type: z.literal('rpc'),\n protocol: z.string().default('http').register(globalRegistry, {\n description: 'Protocol for the RPC connection (http or postMessage)',\n title: 'transports.rpc.protocol',\n type: 'string',\n }),\n url: z.string().optional().register(globalRegistry, {\n description: 'URL for the Chain RPC API (http protocol)',\n title: 'transports.rpc.url',\n type: 'string',\n }),\n networkId: z.string().optional().register(globalRegistry, {\n description: 'Network ID for the postMessage RPC connection',\n title: 'transports.rpc.networkId',\n type: 'string',\n }),\n sessionId: z.string().optional().register(globalRegistry, {\n description: 'Session ID for the postMessage RPC connection',\n title: 'transports.rpc.sessionId',\n type: 'string',\n }),\n}).describe('XL1 JSON-RPC transport')\n\n/** HTTP REST read transport (CDN / public read base URL). */\nexport const RestTransportConfigZod = z.object({\n type: z.literal('rest'),\n baseUrl: z.string().register(globalRegistry, {\n description: 'HTTP base URL for REST reads',\n title: 'transports.rest.baseUrl',\n type: 'string',\n }),\n}).describe('HTTP REST read transport')\n\n/** S3-compatible object storage transport (API + optional public read URL). */\nexport const S3TransportConfigZod = S3BucketConfigZod.extend({\n type: z.literal('s3'),\n accessKeyId: z.string().optional(),\n accountId: z.string().optional(),\n secretAccessKey: z.string().optional(),\n}).describe('S3-compatible object storage transport')\n\n/** EVM JSON-RPC transport. */\nexport const EvmRpcTransportConfigZod = z.object({\n type: z.literal('evm-rpc'),\n url: z.string().register(globalRegistry, {\n description: 'EVM JSON-RPC URL',\n title: 'transports.evm-rpc.url',\n type: 'string',\n }),\n chainId: z.string().optional().register(globalRegistry, {\n description: 'EVM chain ID for this RPC endpoint; auto-detected from the endpoint when omitted',\n title: 'transports.evm-rpc.chainId',\n type: 'string',\n }),\n}).describe('EVM JSON-RPC transport')\n\n/** In-process shared-memory transport (ephemeral; backed by a MemoryArchivist). */\nexport const MemoryTransportConfigZod = z.object({ type: z.literal('memory') }).describe('In-process memory transport')\n\n/** Discriminated union of all supported transport kinds. */\nexport const TransportConfigZod = z.discriminatedUnion('type', [\n LmdbTransportConfigZod,\n MongoTransportConfigZod,\n RpcTransportConfigZod,\n RestTransportConfigZod,\n S3TransportConfigZod,\n EvmRpcTransportConfigZod,\n MemoryTransportConfigZod,\n])\n\nexport type LmdbTransportConfig = z.infer<typeof LmdbTransportConfigZod>\nexport type MongoTransportConfig = z.infer<typeof MongoTransportConfigZod>\nexport type RpcTransportConfig = z.infer<typeof RpcTransportConfigZod>\nexport type RestTransportConfig = z.infer<typeof RestTransportConfigZod>\nexport type S3TransportConfig = z.infer<typeof S3TransportConfigZod>\nexport type EvmRpcTransportConfig = z.infer<typeof EvmRpcTransportConfigZod>\nexport type MemoryTransportConfig = z.infer<typeof MemoryTransportConfigZod>\nexport type TransportConfig = z.infer<typeof TransportConfigZod>\n\n/** Map of transport name \u2192 transport configuration. */\nexport const TransportsConfigZod = z.record(z.string(), TransportConfigZod).default({})\n\nexport type TransportsConfig = z.infer<typeof TransportsConfigZod>\n\nexport type TransportKind = TransportConfig['type']\n", "import { globalRegistry, z } from 'zod'\n\n/** MongoConfigZod constant. */\nexport const MongoConfigZod = z.object({\n // TODO: Create from other arguments\n connectionString: z.string().nonempty().optional().register(globalRegistry, {\n description: 'MongoDB connection string',\n title: 'storage.mongo.connectionString',\n type: 'string',\n }),\n database: z.string().nonempty().optional().register(globalRegistry, {\n description: 'MongoDB database name',\n title: 'storage.mongo.database',\n type: 'string',\n }),\n domain: z.string().nonempty().optional().register(globalRegistry, {\n description: 'MongoDB domain',\n title: 'storage.mongo.domain',\n type: 'string',\n }),\n password: z.string().nonempty().optional().register(globalRegistry, {\n description: 'MongoDB password',\n title: 'storage.mongo.password',\n type: 'string',\n }),\n username: z.string().nonempty().optional().register(globalRegistry, {\n description: 'MongoDB username',\n title: 'storage.mongo.username',\n type: 'string',\n }),\n})\n\n/** MongoConfig type. */\nexport type MongoConfig = z.infer<typeof MongoConfigZod>\n", "import { z } from 'zod'\n\n/**\n * Per-bucket S3 configuration: the bucket name, an optional public read URL (CDN), and optional\n * credential/prefix overrides. Any omitted credential or prefix falls back to the shared top-level\n * S3 config; an omitted bucket name falls back to the finalized bucket.\n *\n * \"S3\" is the S3-compatible object-storage protocol; Cloudflare R2 is one such implementation.\n */\nexport const S3BucketConfigZod = z.object({\n accessKeyId: z.string().nonempty().optional().describe('S3-compatible access key id for this bucket (overrides the shared default)'),\n accountId: z.string().nonempty().optional().describe('Account id for this bucket; on Cloudflare R2 it forms the endpoint (overrides the shared default)'),\n bucket: z.string().nonempty().optional().describe('S3-compatible bucket name'),\n prefix: z.string().nonempty().optional().describe('Optional key prefix within the bucket'),\n readUrl: z.string().nonempty().optional().describe('Public HTTP/CDN base URL for anonymous reads of this bucket'),\n secretAccessKey: z.string().nonempty().optional().describe('S3-compatible secret access key for this bucket (overrides the shared default)'),\n})\n\n/** S3BucketConfig type. */\nexport type S3BucketConfig = z.infer<typeof S3BucketConfigZod>\n", "import type { LogLevelKey } from '@xylabs/sdk-js'\nimport { LogLevel } from '@xylabs/sdk-js'\nimport { globalRegistry, z } from 'zod'\n\nconst LogLevelNames = Object.keys(LogLevel) as [LogLevelKey]\n\n/** LogConfigZod constant. */\nexport const LogConfigZod = z.object({\n logLevel: z.enum(LogLevelNames).default('info').register(globalRegistry, {\n choices: LogLevelNames,\n default: 'info',\n description: 'Desired process verbosity',\n title: 'logLevel',\n type: 'string',\n }),\n silent: z.boolean().default(false).register(globalRegistry, {\n default: false,\n description: 'Whether to run in silent mode',\n title: 'silent',\n type: 'boolean',\n }),\n})\n\n/** LogConfig type. */\nexport type LogConfig = z.infer<typeof LogConfigZod>\n", "import { globalRegistry, z } from 'zod'\n\n/**\n * Binds a capability moniker to a named connection profile.\n * Keys in `providerBindings` use the provider moniker (e.g. `BlockViewer`).\n */\nexport const ProviderBindingConfigZod = z.object({\n connection: z.string().optional().register(globalRegistry, {\n description: 'Named connection from the top-level connections map',\n title: 'providerBindings.connection',\n type: 'string',\n }),\n transport: z.string().optional().register(globalRegistry, {\n description: 'Deprecated alias for connection (kept in sync during migration)',\n title: 'providerBindings.transport',\n type: 'string',\n }),\n}).describe('Provider connection binding')\n\nexport type ProviderBindingConfig = z.infer<typeof ProviderBindingConfigZod>\n\n/** Map of provider moniker \u2192 binding. */\nexport const ProviderBindingsConfigZod = z.record(z.string(), ProviderBindingConfigZod).default({})\n\nexport type ProviderBindingsConfig = z.infer<typeof ProviderBindingsConfigZod>\n", "import z from 'zod'\n\nimport { ProviderConfigZod } from './Provider.ts'\n\n/** ProvidersConfigZod constant. */\nexport const ProvidersConfigZod = z.array(ProviderConfigZod.loose()).describe('Configuration for providers').default([])\n\n/** ProvidersConfig type. */\nexport type ProvidersConfig = z.infer<typeof ProvidersConfigZod>\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\n/** ProviderConfigZod constant. */\nexport const ProviderConfigZod = z.object({\n moniker: z.string(),\n labels: z.array(z.string()).optional(),\n}).describe('Configuration for a Provider')\n\n/** ProviderConfig type. */\nexport type ProviderConfig = z.infer<typeof ProviderConfigZod>\n\n/** Type guard that checks if a value is a valid ProviderConfig. */\nexport const isProviderConfig = zodIsFactory(ProviderConfigZod)\n/** Converts a value to ProviderConfig, throwing if invalid. */\nexport const asProviderConfig = zodAsFactory(ProviderConfigZod, 'asProviderConfig')\n/** toProviderConfig constant. */\nexport const toProviderConfig = zodToFactory(ProviderConfigZod, 'toProviderConfig')\n", "import { globalRegistry, z } from 'zod'\n\n/** DefaultMetricsScrapePorts constant. */\nexport const DefaultMetricsScrapePorts = {\n api: 9465,\n bridge: 9468,\n mempool: 9466,\n producer: 9464,\n rewardRedemptionApi: 9467,\n}\n\n/** MetricsScrapeConfigZod constant. */\nexport const MetricsScrapeConfigZod = z.object({\n path: z.string().default('/metrics').register(globalRegistry, {\n default: '/metrics',\n description: 'Path for the metrics scrape endpoint',\n title: 'telemetry.metrics.scrape.path',\n type: 'string',\n }),\n port: z.coerce.number().int().nonnegative().optional().register(globalRegistry, {\n description: 'Port for the metrics scrape endpoint (0 disables the scrape endpoint)',\n title: 'telemetry.metrics.scrape.port',\n type: 'number',\n }),\n}).describe('Metrics scrape configuration')\n\n/** MetricsConfigZod constant. */\nexport const MetricsConfigZod = z.object({ scrape: MetricsScrapeConfigZod }).describe('Metrics configuration options')\n\n/** OpenTelemetryConfigZod constant. */\nexport const OpenTelemetryConfigZod = z.object({\n // OpenTelemetry options\n otlpEndpoint: z.url().optional().register(globalRegistry, {\n description: 'OTLP endpoint for exporting telemetry data',\n title: 'telemetry.otel.otlpEndpoint',\n type: 'string',\n }),\n})\n\n/** TelemetryConfigZod constant. */\nexport const TelemetryConfigZod = z.object({\n // Metrics configuration\n metrics: MetricsConfigZod.optional().describe('Metrics configuration'),\n // OpenTelemetry configuration\n otel: OpenTelemetryConfigZod.optional().describe('OpenTelemetry configuration'),\n}).describe('Telemetry configuration options')\n\n/** TelemetryConfig type. */\nexport type TelemetryConfig = z.infer<typeof TelemetryConfigZod>\n", "import { XyoAddressZod } from '@xyo-network/sdk-js'\nimport { globalRegistry, z } from 'zod'\n\nimport { DEFAULT_BACKOFF_MS, DEFAULT_MIN_CANDIDATES } from '../primitives/index.ts'\n\n/** ValidationConfigZod constant. */\nexport const ValidationConfigZod = z.object({\n allowedRewardRedeemers: z.array(XyoAddressZod).optional().register(globalRegistry, {\n description: 'List of allowed reward redeemer addresses, if undefined anyone can participate',\n title: 'allowedRewardRedeemers',\n type: 'array',\n }),\n allowedRewardEscrowAccountSigners: z.array(XyoAddressZod).optional().register(globalRegistry, {\n description: 'List of allowed reward escrow account signer addresses, if undefined anyone can participate',\n title: 'allowedRewardEscrowAccountSigners',\n type: 'array',\n }),\n minCandidates: z.coerce.number().default(DEFAULT_MIN_CANDIDATES).register(globalRegistry, {\n default: DEFAULT_MIN_CANDIDATES,\n description: 'Minimum number of uncle candidates before selecting the best uncle',\n title: 'validation.minCandidates',\n type: 'number',\n }),\n backoffMs: z.coerce.number().default(DEFAULT_BACKOFF_MS).register(globalRegistry, {\n default: DEFAULT_BACKOFF_MS,\n description: 'Back-off timeout in ms. If head age exceeds this, minCandidates is ignored',\n title: 'validation.backoffMs',\n type: 'number',\n }),\n})\n\n/** ValidationConfig type. */\nexport type ValidationConfig = z.infer<typeof ValidationConfigZod>\n", "import type { SignedHydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol-lib'\n\nimport { scoreUncle } from './scoreUncle.ts'\n\n/** Default minimum number of uncle candidates before selecting. */\nexport const DEFAULT_MIN_CANDIDATES = 1\n\n/** Default back-off timeout in milliseconds. If the head has not changed for this long, minCandidates is ignored. */\nexport const DEFAULT_BACKOFF_MS = 120_000\n\n/** Options for findBestUncle block selection. */\nexport interface FindBestUncleOptions {\n /** Back-off timeout in ms. If head age exceeds this, minCandidates is ignored. Default: 120_000. */\n backoffMs?: number\n /** Minimum number of uncle candidates before selecting. Default: 1. */\n minCandidates?: number\n /** Current timestamp in ms. Injectable for testing. Default: Date.now(). */\n now?: number\n}\n\n/** Selects the best uncle chain from candidates using Proof of Perfect scoring. */\nexport function findBestUncle(\n finalizedWindowedChain: SignedHydratedBlockWithHashMeta[],\n uncles: SignedHydratedBlockWithHashMeta[][],\n options?: FindBestUncleOptions,\n): SignedHydratedBlockWithHashMeta[] | undefined {\n if (uncles.length === 0) return undefined\n\n const minCandidates = options?.minCandidates ?? DEFAULT_MIN_CANDIDATES\n const backoffMs = options?.backoffMs ?? DEFAULT_BACKOFF_MS\n const now = options?.now ?? Date.now()\n\n if (uncles.length < minCandidates) {\n const headEpoch = finalizedWindowedChain.at(-1)?.[0].$epoch ?? 0\n const headAge = now - headEpoch\n if (headAge < backoffMs) {\n return undefined\n }\n }\n\n const scores = uncles.map(uncle => ([scoreUncle(finalizedWindowedChain, uncle), uncle] as const)).toSorted((a, b) => b[0] - a[0])\n return scores[0]?.[1]\n}\n", "import { z } from 'zod/mini'\n\nimport { ActorConfigZod } from './Actor.ts'\n\n/** ActorsConfigZod constant. */\nexport const ActorsConfigZod = z._default(\n z.array(z.looseObject(ActorConfigZod.shape)).check(z.describe('Actor-specific configurations that override the base configuration when the actor is running')),\n [],\n)\n\n/** ActorsConfig type. */\nexport type ActorsConfig = z.infer<typeof ActorsConfigZod>\n", "import { globalRegistry, z } from 'zod/mini'\n\nimport { ActorConfigZod } from './Actor.ts'\nimport { ActorsConfigZod } from './Actors.ts'\nimport { BaseConfigZod } from './Base.ts'\nimport type { DeepPartial } from './DeepPartial.ts'\n\n/** ConfigZod constant. */\nexport const ConfigZod = z.extend(BaseConfigZod, {\n actors: ActorsConfigZod,\n healthCheckPort: z.optional(z.coerce.number()).register(globalRegistry, {\n description: 'Port for the system-wide health, readiness, and liveness endpoints (/healthz, /livez, /readyz). Set to 0 to disable.',\n title: 'healthCheckPort',\n type: 'number',\n }),\n}).check(z.describe('The complete configuration for the protocol, including global settings and actor-specific overrides'))\n\n/** Config type. */\nexport type Config = z.infer<typeof ConfigZod>\n\n/** ResolveConfig helper function. */\nexport function resolveConfig(\n config: DeepPartial<Config>,\n) {\n const parsedConfig = ConfigZod.parse(config)\n const {\n actors, healthCheckPort: _healthCheckPort, ...rootConfig\n } = parsedConfig\n parsedConfig.actors = actors.map((actorConfig: z.infer<typeof ActorConfigZod>) => {\n return z.looseObject(ActorConfigZod.shape).parse({ ...rootConfig, ...actorConfig })\n })\n return parsedConfig\n}\n"],
|
|
5
|
-
"mappings": ";AAAA,SAAS,WAAW,cAAc;AAClC,SAAS,mBAAmB;AAC5B,SAAS,KAAAA,WAAS;;;ACFlB;AAAA,EACE,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,OACvB;AACP,SAAS,kBAAAC,iBAAgB,KAAAC,WAAS;;;ACHlC,SAAS,KAAAC,WAAS;;;ACAlB,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB,SAAS;AAG3B,IAAM,iBAAiB,EAAE,OAAO;AAAA,EACrC,IAAI,EAAE,SAAS,MAAM,EAClB,SAAS,gBAAgB;AAAA,IACxB,aACA;AAAA,IACA,OAAO;AAAA,IACP,MAAM;AAAA,EACR,CAAC;AAAA,EACH,sBAAsB,EAAE,SAAS,aAAa,EAC3C,SAAS,gBAAgB;AAAA,IACxB,aACA;AAAA,IACA,OAAO;AAAA,IACP,MAAM;AAAA,EACR,CAAC;AACL,CAAC;;;ACpBD,SAAS,kBAAAC,iBAAgB,KAAAC,UAAS;;;ACAlC,SAAS,kBAAAC,iBAAgB,KAAAC,UAAS;AAG3B,IAAM,iBAAiBA,GAAE,OAAO;AAAA;AAAA,EAErC,kBAAkBA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAASD,iBAAgB;AAAA,IAC1E,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,EACR,CAAC;AAAA,EACD,UAAUC,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAASD,iBAAgB;AAAA,IAClE,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,EACR,CAAC;AAAA,EACD,QAAQC,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAASD,iBAAgB;AAAA,IAChE,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,EACR,CAAC;AAAA,EACD,UAAUC,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAASD,iBAAgB;AAAA,IAClE,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,EACR,CAAC;AAAA,EACD,UAAUC,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAASD,iBAAgB;AAAA,IAClE,aAAa;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,EACR,CAAC;AACH,CAAC;;;AC9BD,SAAS,KAAAE,UAAS;AASX,IAAM,oBAAoBA,GAAE,OAAO;AAAA,EACxC,aAAaA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,4EAA4E;AAAA,EACnI,WAAWA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,mGAAmG;AAAA,EACxJ,QAAQA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,2BAA2B;AAAA,EAC7E,QAAQA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,uCAAuC;AAAA,EACzF,SAASA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,6DAA6D;AAAA,EAChH,iBAAiBA,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,gFAAgF;AAC7I,CAAC;;;AFVM,IAAM,
|
|
3
|
+
"sources": ["../../src/getFileConfig.ts", "../../src/config/Actor.ts", "../../src/config/Base.ts", "../../src/config/Chain.ts", "../../src/config/connections/Connection.ts", "../../src/config/connections/Mongo.ts", "../../src/config/connections/S3.ts", "../../src/config/Log.ts", "../../src/config/ProviderBinding.ts", "../../src/config/Providers.ts", "../../src/config/Provider.ts", "../../src/config/Telemetry.ts", "../../src/config/Validation.ts", "../../src/primitives/uncle/findBestUncle.ts", "../../src/config/Actors.ts", "../../src/config/Config.ts"],
|
|
4
|
+
"sourcesContent": ["import { isDefined, isNull } from '@xylabs/sdk-js'\nimport { cosmiconfig } from 'cosmiconfig'\nimport { z } from 'zod/mini'\n\nimport { ConfigZod } from './config/index.ts'\n\n/**\n * The name of the configuration file to search for.\n */\nconst configName = 'xyo'\n\n/**\n * The name of the section within the configuration file to parse.\n */\nconst configSection = 'xl1' // Default section in the config file\n\n/**\n * Attempts to parse the configuration from a file using cosmiconfig.\n * @returns The parsed configuration object if found and valid, otherwise undefined.\n */\nexport async function getFileConfig(searchPlaces?: string[]) {\n const explorer = cosmiconfig(\n configName,\n {\n cache: true,\n searchPlaces,\n },\n )\n const searchResult = await explorer.search()\n const result: unknown = searchResult?.config\n if (!isNull(result)) {\n const section = (result as Record<string, unknown>)[configSection]\n if (isDefined(section) && typeof section === 'object') {\n return z.looseObject(ConfigZod.shape).parse(section)\n }\n }\n return ConfigZod.parse({})\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { globalRegistry, z } from 'zod/mini'\n\nimport { BaseConfigZod } from './Base.ts'\n\n/**\n * BIP-32 derivation path for an actor wallet.\n *\n * - Absolute form: starts with `m/` (e.g. `m/44'/60'/0'/0/0`). The full path is used as-is,\n * giving the caller complete control over coin type, account, and hardening.\n * - Relative form: a segment list without the `m/` prefix (e.g. `0`, `0/1`, `44'/60'/0'/0/0`).\n * The consumer appends this to its configured root base path.\n *\n * Each segment is a non-negative integer, optionally suffixed with `'` to mark it as hardened.\n */\nexport const AccountPathZod = z.string().check(z.regex(\n /^(m(\\/\\d+'?)+|\\d+'?(\\/\\d+'?)*)$/,\n 'Invalid BIP-32 derivation path. Use either an absolute path like \"m/44\\'/60\\'/0\\'/0/0\" or a relative path like \"0\", \"0/1\", or \"44\\'/60\\'/0\\'/0/0\".',\n))\n\n/** ActorConfigZod constant. */\nexport const ActorConfigZod = z.extend(BaseConfigZod, {\n name: z.string(),\n accountPath: z.optional(AccountPathZod).register(globalRegistry, {\n description: 'BIP-32 derivation path for the actor wallet. Absolute when it starts with \"m/\"; otherwise relative to the root wallet base path. Each actor must derive to a distinct path.',\n title: 'accountPath',\n type: 'string',\n }),\n})\n\n/** ActorConfig type. */\nexport type ActorConfig = z.infer<typeof ActorConfigZod>\n\n/** Type guard that checks if a value is a valid ActorConfig. */\nexport const isActorConfig = zodIsFactory(ActorConfigZod)\n/** Converts a value to ActorConfig, throwing if invalid. */\nexport const asActorConfig = zodAsFactory(ActorConfigZod, 'asActorConfig')\n/** toActorConfig constant. */\nexport const toActorConfig = zodToFactory(ActorConfigZod, 'toActorConfig')\n", "import { z } from 'zod/mini'\n\nimport { ChainConfigZod } from './Chain.ts'\nimport { ConnectionsConfigZod } from './connections/index.ts'\nimport { LogConfigZod } from './Log.ts'\nimport { ProviderBindingsConfigZod } from './ProviderBinding.ts'\nimport { ProvidersConfigZod } from './Providers.ts'\nimport { TelemetryConfigZod } from './Telemetry.ts'\nimport { ValidationConfigZod } from './Validation.ts'\n\n/** BaseConfigZod constant. */\nexport const BaseConfigZod = z.object({\n chain: z._default(ChainConfigZod, ChainConfigZod.parse({})).check(z.describe('Configuration for the chain')),\n log: z._default(LogConfigZod, LogConfigZod.parse({})).check(z.describe('Configuration for logging')),\n connections: z._default(ConnectionsConfigZod, ConnectionsConfigZod.parse({})).check(z.describe('Named connection profiles (rpc, rest, s3, lmdb, mongo, evm-rpc)')),\n providerBindings: z._default(ProviderBindingsConfigZod, ProviderBindingsConfigZod.parse({})).check(z.describe('Per-moniker provider connection bindings')),\n providers: z._default(ProvidersConfigZod, ProvidersConfigZod.parse([])).check(z.describe('Configuration for providers')),\n telemetry: z._default(TelemetryConfigZod, TelemetryConfigZod.parse({})).check(z.describe('Configuration for telemetry')),\n validation: z._default(ValidationConfigZod, ValidationConfigZod.parse({})).check(z.describe('Configuration for validation')),\n})\n\n/** BaseConfig type. */\nexport type BaseConfig = z.infer<typeof BaseConfigZod>\n", "import { HexZod } from '@xylabs/sdk-js'\nimport { XyoAddressZod } from '@xyo-network/sdk-js'\nimport { globalRegistry, z } from 'zod/mini'\n\n/** ChainConfigZod constant. */\nexport const ChainConfigZod = z.object({\n id: z.optional(HexZod)\n .register(globalRegistry, {\n description:\n 'The unique identifier for the chain. Should be the staking contract address for contract-backed chains.',\n title: 'chain.id',\n type: 'string',\n }),\n genesisRewardAddress: z.optional(XyoAddressZod)\n .register(globalRegistry, {\n description:\n 'Address to send the initial genesis rewards to, if a new chain is being created.',\n title: 'chain.genesisRewardAddress',\n type: 'Address',\n }),\n})\n\n/** ChainConfig type. */\nexport type ChainConfig = z.infer<typeof ChainConfigZod>\n", "import { globalRegistry, z } from 'zod'\n\nimport { MongoConfigZod } from './Mongo.ts'\nimport { S3BucketConfigZod } from './S3.ts'\n\n/** Named LMDB backing-store connection. */\nexport const LmdbConnectionConfigZod = z.object({\n access: z.enum(['read', 'write']).optional().register(globalRegistry, {\n description: 'Access mode for this LMDB connection (read or write)',\n title: 'connections.lmdb.access',\n type: 'string',\n }),\n root: z.string().register(globalRegistry, {\n description: 'Root directory for local LMDB storage',\n title: 'connections.lmdb.root',\n type: 'string',\n }),\n store: z.string().optional().register(globalRegistry, {\n description: 'Logical store name within the LMDB root (e.g. finalized-chain, mempool)',\n title: 'connections.lmdb.store',\n type: 'string',\n }),\n type: z.literal('lmdb'),\n}).describe('LMDB local storage connection')\n\n/** MongoDB backing-store connection. */\nexport const MongoConnectionConfigZod = z.object({\n type: z.literal('mongo'),\n connectionString: MongoConfigZod.shape.connectionString,\n database: MongoConfigZod.shape.database,\n domain: MongoConfigZod.shape.domain,\n password: MongoConfigZod.shape.password,\n username: MongoConfigZod.shape.username,\n}).describe('MongoDB storage connection')\n\n/** JSON-RPC wire connection (HTTP or postMessage). */\nexport const RpcConnectionConfigZod = z.object({\n type: z.literal('rpc'),\n protocol: z.string().default('http').register(globalRegistry, {\n description: 'Protocol for the RPC connection (http or postMessage)',\n title: 'connections.rpc.protocol',\n type: 'string',\n }),\n url: z.string().optional().register(globalRegistry, {\n description: 'URL for the Chain RPC API (http protocol)',\n title: 'connections.rpc.url',\n type: 'string',\n }),\n networkId: z.string().optional().register(globalRegistry, {\n description: 'Network ID for the postMessage RPC connection',\n title: 'connections.rpc.networkId',\n type: 'string',\n }),\n sessionId: z.string().optional().register(globalRegistry, {\n description: 'Session ID for the postMessage RPC connection',\n title: 'connections.rpc.sessionId',\n type: 'string',\n }),\n}).describe('XL1 JSON-RPC connection')\n\n/** HTTP REST read connection (CDN / public read base URL). */\nexport const RestConnectionConfigZod = z.object({\n type: z.literal('rest'),\n baseUrl: z.string().register(globalRegistry, {\n description: 'HTTP base URL for REST reads',\n title: 'connections.rest.baseUrl',\n type: 'string',\n }),\n}).describe('HTTP REST read connection')\n\n/** S3-compatible object storage connection (API + optional public read URL). */\nexport const S3ConnectionConfigZod = S3BucketConfigZod.extend({\n type: z.literal('s3'),\n accessKeyId: z.string().optional(),\n accountId: z.string().optional(),\n secretAccessKey: z.string().optional(),\n}).describe('S3-compatible object storage connection')\n\n/** EVM JSON-RPC connection. */\nexport const EvmRpcConnectionConfigZod = z.object({\n type: z.literal('evm-rpc'),\n url: z.string().register(globalRegistry, {\n description: 'EVM JSON-RPC URL',\n title: 'connections.evm-rpc.url',\n type: 'string',\n }),\n chainId: z.string().optional().register(globalRegistry, {\n description: 'EVM chain ID for this RPC endpoint; auto-detected from the endpoint when omitted',\n title: 'connections.evm-rpc.chainId',\n type: 'string',\n }),\n}).describe('EVM JSON-RPC connection')\n\n/** In-process shared-memory connection (ephemeral; backed by a MemoryArchivist). */\nexport const MemoryConnectionConfigZod = z.object({ type: z.literal('memory') }).describe('In-process memory connection')\n\n/** Discriminated union of all supported connection kinds. */\nexport const ConnectionConfigZod = z.discriminatedUnion('type', [\n LmdbConnectionConfigZod,\n MongoConnectionConfigZod,\n RpcConnectionConfigZod,\n RestConnectionConfigZod,\n S3ConnectionConfigZod,\n EvmRpcConnectionConfigZod,\n MemoryConnectionConfigZod,\n])\n\nexport type LmdbConnectionConfig = z.infer<typeof LmdbConnectionConfigZod>\nexport type MongoConnectionConfig = z.infer<typeof MongoConnectionConfigZod>\nexport type RpcConnectionConfig = z.infer<typeof RpcConnectionConfigZod>\nexport type RestConnectionConfig = z.infer<typeof RestConnectionConfigZod>\nexport type S3ConnectionConfig = z.infer<typeof S3ConnectionConfigZod>\nexport type EvmRpcConnectionConfig = z.infer<typeof EvmRpcConnectionConfigZod>\nexport type MemoryConnectionConfig = z.infer<typeof MemoryConnectionConfigZod>\nexport type ConnectionConfig = z.infer<typeof ConnectionConfigZod>\n\n/** Map of connection name \u2192 connection configuration. */\nexport const ConnectionsConfigZod = z.record(z.string(), ConnectionConfigZod).default({})\n\nexport type ConnectionsConfig = z.infer<typeof ConnectionsConfigZod>\n\nexport type ConnectionKind = ConnectionConfig['type']\n", "import { globalRegistry, z } from 'zod'\n\n/** MongoConfigZod constant. */\nexport const MongoConfigZod = z.object({\n // TODO: Create from other arguments\n connectionString: z.string().nonempty().optional().register(globalRegistry, {\n description: 'MongoDB connection string',\n title: 'storage.mongo.connectionString',\n type: 'string',\n }),\n database: z.string().nonempty().optional().register(globalRegistry, {\n description: 'MongoDB database name',\n title: 'storage.mongo.database',\n type: 'string',\n }),\n domain: z.string().nonempty().optional().register(globalRegistry, {\n description: 'MongoDB domain',\n title: 'storage.mongo.domain',\n type: 'string',\n }),\n password: z.string().nonempty().optional().register(globalRegistry, {\n description: 'MongoDB password',\n title: 'storage.mongo.password',\n type: 'string',\n }),\n username: z.string().nonempty().optional().register(globalRegistry, {\n description: 'MongoDB username',\n title: 'storage.mongo.username',\n type: 'string',\n }),\n})\n\n/** MongoConfig type. */\nexport type MongoConfig = z.infer<typeof MongoConfigZod>\n", "import { z } from 'zod'\n\n/**\n * Per-bucket S3 configuration: the bucket name, an optional public read URL (CDN), and optional\n * credential/prefix overrides. Any omitted credential or prefix falls back to the shared top-level\n * S3 config; an omitted bucket name falls back to the finalized bucket.\n *\n * \"S3\" is the S3-compatible object-storage protocol; Cloudflare R2 is one such implementation.\n */\nexport const S3BucketConfigZod = z.object({\n accessKeyId: z.string().nonempty().optional().describe('S3-compatible access key id for this bucket (overrides the shared default)'),\n accountId: z.string().nonempty().optional().describe('Account id for this bucket; on Cloudflare R2 it forms the endpoint (overrides the shared default)'),\n bucket: z.string().nonempty().optional().describe('S3-compatible bucket name'),\n prefix: z.string().nonempty().optional().describe('Optional key prefix within the bucket'),\n readUrl: z.string().nonempty().optional().describe('Public HTTP/CDN base URL for anonymous reads of this bucket'),\n secretAccessKey: z.string().nonempty().optional().describe('S3-compatible secret access key for this bucket (overrides the shared default)'),\n})\n\n/** S3BucketConfig type. */\nexport type S3BucketConfig = z.infer<typeof S3BucketConfigZod>\n", "import type { LogLevelKey } from '@xylabs/sdk-js'\nimport { LogLevel } from '@xylabs/sdk-js'\nimport { globalRegistry, z } from 'zod'\n\nconst LogLevelNames = Object.keys(LogLevel) as [LogLevelKey]\n\n/** LogConfigZod constant. */\nexport const LogConfigZod = z.object({\n logLevel: z.enum(LogLevelNames).default('info').register(globalRegistry, {\n choices: LogLevelNames,\n default: 'info',\n description: 'Desired process verbosity',\n title: 'logLevel',\n type: 'string',\n }),\n silent: z.boolean().default(false).register(globalRegistry, {\n default: false,\n description: 'Whether to run in silent mode',\n title: 'silent',\n type: 'boolean',\n }),\n})\n\n/** LogConfig type. */\nexport type LogConfig = z.infer<typeof LogConfigZod>\n", "import { globalRegistry, z } from 'zod'\n\n/**\n * Binds a capability moniker to a named connection profile.\n * Keys in `providerBindings` use the provider moniker (e.g. `BlockViewer`).\n */\nexport const ProviderBindingConfigZod = z.object({\n connection: z.string().optional().register(globalRegistry, {\n description: 'Named connection from the top-level connections map',\n title: 'providerBindings.connection',\n type: 'string',\n }),\n}).describe('Provider connection binding')\n\nexport type ProviderBindingConfig = z.infer<typeof ProviderBindingConfigZod>\n\n/** Map of provider moniker \u2192 binding. */\nexport const ProviderBindingsConfigZod = z.record(z.string(), ProviderBindingConfigZod).default({})\n\nexport type ProviderBindingsConfig = z.infer<typeof ProviderBindingsConfigZod>\n", "import z from 'zod'\n\nimport { ProviderConfigZod } from './Provider.ts'\n\n/** ProvidersConfigZod constant. */\nexport const ProvidersConfigZod = z.array(ProviderConfigZod.loose()).describe('Configuration for providers').default([])\n\n/** ProvidersConfig type. */\nexport type ProvidersConfig = z.infer<typeof ProvidersConfigZod>\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { z } from 'zod'\n\n/** ProviderConfigZod constant. */\nexport const ProviderConfigZod = z.object({\n moniker: z.string(),\n labels: z.array(z.string()).optional(),\n}).describe('Configuration for a Provider')\n\n/** ProviderConfig type. */\nexport type ProviderConfig = z.infer<typeof ProviderConfigZod>\n\n/** Type guard that checks if a value is a valid ProviderConfig. */\nexport const isProviderConfig = zodIsFactory(ProviderConfigZod)\n/** Converts a value to ProviderConfig, throwing if invalid. */\nexport const asProviderConfig = zodAsFactory(ProviderConfigZod, 'asProviderConfig')\n/** toProviderConfig constant. */\nexport const toProviderConfig = zodToFactory(ProviderConfigZod, 'toProviderConfig')\n", "import { globalRegistry, z } from 'zod'\n\n/** DefaultMetricsScrapePorts constant. */\nexport const DefaultMetricsScrapePorts = {\n api: 9465,\n bridge: 9468,\n mempool: 9466,\n producer: 9464,\n rewardRedemptionApi: 9467,\n}\n\n/** MetricsScrapeConfigZod constant. */\nexport const MetricsScrapeConfigZod = z.object({\n path: z.string().default('/metrics').register(globalRegistry, {\n default: '/metrics',\n description: 'Path for the metrics scrape endpoint',\n title: 'telemetry.metrics.scrape.path',\n type: 'string',\n }),\n port: z.coerce.number().int().nonnegative().optional().register(globalRegistry, {\n description: 'Port for the metrics scrape endpoint (0 disables the scrape endpoint)',\n title: 'telemetry.metrics.scrape.port',\n type: 'number',\n }),\n}).describe('Metrics scrape configuration')\n\n/** MetricsConfigZod constant. */\nexport const MetricsConfigZod = z.object({ scrape: MetricsScrapeConfigZod }).describe('Metrics configuration options')\n\n/** OpenTelemetryConfigZod constant. */\nexport const OpenTelemetryConfigZod = z.object({\n // OpenTelemetry options\n otlpEndpoint: z.url().optional().register(globalRegistry, {\n description: 'OTLP endpoint for exporting telemetry data',\n title: 'telemetry.otel.otlpEndpoint',\n type: 'string',\n }),\n})\n\n/** TelemetryConfigZod constant. */\nexport const TelemetryConfigZod = z.object({\n // Metrics configuration\n metrics: MetricsConfigZod.optional().describe('Metrics configuration'),\n // OpenTelemetry configuration\n otel: OpenTelemetryConfigZod.optional().describe('OpenTelemetry configuration'),\n}).describe('Telemetry configuration options')\n\n/** TelemetryConfig type. */\nexport type TelemetryConfig = z.infer<typeof TelemetryConfigZod>\n", "import { XyoAddressZod } from '@xyo-network/sdk-js'\nimport { globalRegistry, z } from 'zod'\n\nimport { DEFAULT_BACKOFF_MS, DEFAULT_MIN_CANDIDATES } from '../primitives/index.ts'\n\n/** ValidationConfigZod constant. */\nexport const ValidationConfigZod = z.object({\n allowedRewardRedeemers: z.array(XyoAddressZod).optional().register(globalRegistry, {\n description: 'List of allowed reward redeemer addresses, if undefined anyone can participate',\n title: 'allowedRewardRedeemers',\n type: 'array',\n }),\n allowedRewardEscrowAccountSigners: z.array(XyoAddressZod).optional().register(globalRegistry, {\n description: 'List of allowed reward escrow account signer addresses, if undefined anyone can participate',\n title: 'allowedRewardEscrowAccountSigners',\n type: 'array',\n }),\n minCandidates: z.coerce.number().default(DEFAULT_MIN_CANDIDATES).register(globalRegistry, {\n default: DEFAULT_MIN_CANDIDATES,\n description: 'Minimum number of uncle candidates before selecting the best uncle',\n title: 'validation.minCandidates',\n type: 'number',\n }),\n backoffMs: z.coerce.number().default(DEFAULT_BACKOFF_MS).register(globalRegistry, {\n default: DEFAULT_BACKOFF_MS,\n description: 'Back-off timeout in ms. If head age exceeds this, minCandidates is ignored',\n title: 'validation.backoffMs',\n type: 'number',\n }),\n})\n\n/** ValidationConfig type. */\nexport type ValidationConfig = z.infer<typeof ValidationConfigZod>\n", "import type { SignedHydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol-lib'\n\nimport { scoreUncle } from './scoreUncle.ts'\n\n/** Default minimum number of uncle candidates before selecting. */\nexport const DEFAULT_MIN_CANDIDATES = 1\n\n/** Default back-off timeout in milliseconds. If the head has not changed for this long, minCandidates is ignored. */\nexport const DEFAULT_BACKOFF_MS = 120_000\n\n/** Options for findBestUncle block selection. */\nexport interface FindBestUncleOptions {\n /** Back-off timeout in ms. If head age exceeds this, minCandidates is ignored. Default: 120_000. */\n backoffMs?: number\n /** Minimum number of uncle candidates before selecting. Default: 1. */\n minCandidates?: number\n /** Current timestamp in ms. Injectable for testing. Default: Date.now(). */\n now?: number\n}\n\n/** Selects the best uncle chain from candidates using Proof of Perfect scoring. */\nexport function findBestUncle(\n finalizedWindowedChain: SignedHydratedBlockWithHashMeta[],\n uncles: SignedHydratedBlockWithHashMeta[][],\n options?: FindBestUncleOptions,\n): SignedHydratedBlockWithHashMeta[] | undefined {\n if (uncles.length === 0) return undefined\n\n const minCandidates = options?.minCandidates ?? DEFAULT_MIN_CANDIDATES\n const backoffMs = options?.backoffMs ?? DEFAULT_BACKOFF_MS\n const now = options?.now ?? Date.now()\n\n if (uncles.length < minCandidates) {\n const headEpoch = finalizedWindowedChain.at(-1)?.[0].$epoch ?? 0\n const headAge = now - headEpoch\n if (headAge < backoffMs) {\n return undefined\n }\n }\n\n const scores = uncles.map(uncle => ([scoreUncle(finalizedWindowedChain, uncle), uncle] as const)).toSorted((a, b) => b[0] - a[0])\n return scores[0]?.[1]\n}\n", "import { z } from 'zod/mini'\n\nimport { ActorConfigZod } from './Actor.ts'\n\n/** ActorsConfigZod constant. */\nexport const ActorsConfigZod = z._default(\n z.array(z.looseObject(ActorConfigZod.shape)).check(z.describe('Actor-specific configurations that override the base configuration when the actor is running')),\n [],\n)\n\n/** ActorsConfig type. */\nexport type ActorsConfig = z.infer<typeof ActorsConfigZod>\n", "import { globalRegistry, z } from 'zod/mini'\n\nimport { ActorConfigZod } from './Actor.ts'\nimport { ActorsConfigZod } from './Actors.ts'\nimport { BaseConfigZod } from './Base.ts'\nimport type { DeepPartial } from './DeepPartial.ts'\n\n/** ConfigZod constant. */\nexport const ConfigZod = z.extend(BaseConfigZod, {\n actors: ActorsConfigZod,\n healthCheckPort: z.optional(z.coerce.number()).register(globalRegistry, {\n description: 'Port for the system-wide health, readiness, and liveness endpoints (/healthz, /livez, /readyz). Set to 0 to disable.',\n title: 'healthCheckPort',\n type: 'number',\n }),\n}).check(z.describe('The complete configuration for the protocol, including global settings and actor-specific overrides'))\n\n/** Config type. */\nexport type Config = z.infer<typeof ConfigZod>\n\n/** ResolveConfig helper function. */\nexport function resolveConfig(\n config: DeepPartial<Config>,\n) {\n const parsedConfig = ConfigZod.parse(config)\n const {\n actors, healthCheckPort: _healthCheckPort, ...rootConfig\n } = parsedConfig\n parsedConfig.actors = actors.map((actorConfig: z.infer<typeof ActorConfigZod>) => {\n return z.looseObject(ActorConfigZod.shape).parse({ ...rootConfig, ...actorConfig })\n })\n return parsedConfig\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["z", "zodAsFactory", "zodIsFactory", "zodToFactory", "globalRegistry", "z", "z", "globalRegistry", "z", "globalRegistry", "z", "z", "z", "globalRegistry", "globalRegistry", "z", "globalRegistry", "z", "z", "z", "z", "globalRegistry", "z", "z", "globalRegistry", "XyoAddressZod", "globalRegistry", "z", "z", "XyoAddressZod", "globalRegistry", "z", "z", "globalRegistry", "zodIsFactory", "zodAsFactory", "zodToFactory", "z", "z", "globalRegistry", "z", "z", "globalRegistry", "z"]
|
|
7
7
|
}
|