@xyo-network/chain-orchestration 1.19.8 → 1.19.10
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/actor/ValidatorActor.d.ts +10 -31
- package/dist/neutral/actor/ValidatorActor.d.ts.map +1 -1
- package/dist/neutral/actor/index.d.ts +0 -2
- package/dist/neutral/actor/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +93 -213
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/init/initWallet.d.ts +2 -0
- package/dist/neutral/init/initWallet.d.ts.map +1 -1
- package/package.json +10 -11
- package/src/actor/ValidatorActor.ts +24 -57
- package/src/actor/index.ts +0 -2
- package/src/init/initWallet.ts +10 -0
- package/dist/neutral/actor/BalanceActor.d.ts +0 -17
- package/dist/neutral/actor/BalanceActor.d.ts.map +0 -1
- package/dist/neutral/actor/MempoolActor.d.ts +0 -41
- package/dist/neutral/actor/MempoolActor.d.ts.map +0 -1
- package/src/actor/BalanceActor.ts +0 -41
- package/src/actor/MempoolActor.ts +0 -105
package/dist/neutral/index.mjs
CHANGED
|
@@ -1,166 +1,40 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
|
-
// src/actor/BalanceActor.ts
|
|
5
|
-
import { assertEx } from "@xylabs/sdk-js";
|
|
6
|
-
import { Actor } from "@xyo-network/xl1-sdk";
|
|
7
|
-
import { Mutex } from "async-mutex";
|
|
8
|
-
var BalanceActor = class extends Actor {
|
|
9
|
-
static {
|
|
10
|
-
__name(this, "BalanceActor");
|
|
11
|
-
}
|
|
12
|
-
_updateMutex = new Mutex();
|
|
13
|
-
get accountBalanceViewer() {
|
|
14
|
-
return assertEx(this.params.accountBalanceViewer, () => "balanceService not set");
|
|
15
|
-
}
|
|
16
|
-
get blockViewer() {
|
|
17
|
-
return assertEx(this.params.blockViewer, () => "blockViewer not set");
|
|
18
|
-
}
|
|
19
|
-
async startHandler() {
|
|
20
|
-
await super.startHandler();
|
|
21
|
-
this.registerTimer(
|
|
22
|
-
"BalanceTimer",
|
|
23
|
-
async () => {
|
|
24
|
-
await this.updateBalance();
|
|
25
|
-
},
|
|
26
|
-
1e3,
|
|
27
|
-
1e4
|
|
28
|
-
/* 1000 */
|
|
29
|
-
);
|
|
30
|
-
}
|
|
31
|
-
async updateBalance() {
|
|
32
|
-
if (this._updateMutex.isLocked()) return;
|
|
33
|
-
await this._updateMutex.runExclusive(async () => {
|
|
34
|
-
const head = await this.blockViewer.currentBlockHash();
|
|
35
|
-
await this.accountBalanceViewer.accountBalances([], {
|
|
36
|
-
head
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
// src/actor/MempoolActor.ts
|
|
43
|
-
import { assertEx as assertEx2, creatable } from "@xylabs/sdk-js";
|
|
44
|
-
import { Actor as Actor2 } from "@xyo-network/xl1-sdk";
|
|
45
|
-
import { Mutex as Mutex2 } from "async-mutex";
|
|
46
|
-
function _ts_decorate(decorators, target, key, desc) {
|
|
47
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
48
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
49
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
50
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
51
|
-
}
|
|
52
|
-
__name(_ts_decorate, "_ts_decorate");
|
|
53
|
-
var MempoolActor = class extends Actor2 {
|
|
54
|
-
static {
|
|
55
|
-
__name(this, "MempoolActor");
|
|
56
|
-
}
|
|
57
|
-
_blockTimerId = null;
|
|
58
|
-
_blockTimerMutex = new Mutex2();
|
|
59
|
-
_transactionTimerId = null;
|
|
60
|
-
_transactionTimerMutex = new Mutex2();
|
|
61
|
-
get mempoolRunner() {
|
|
62
|
-
return this.params.mempoolRunner;
|
|
63
|
-
}
|
|
64
|
-
get pendingBlocksArchivist() {
|
|
65
|
-
return this.params.pendingBlocksArchivist;
|
|
66
|
-
}
|
|
67
|
-
get pendingTransactionsArchivist() {
|
|
68
|
-
return this.params.pendingTransactionsArchivist;
|
|
69
|
-
}
|
|
70
|
-
static async paramsHandler(params) {
|
|
71
|
-
return {
|
|
72
|
-
...await super.paramsHandler(params),
|
|
73
|
-
mempoolRunner: assertEx2(params?.mempoolRunner, () => "mempoolRunner is required for MempoolActor"),
|
|
74
|
-
pendingBlocksArchivist: assertEx2(params?.pendingBlocksArchivist, () => "pendingBlocksArchivist is required for MempoolActor"),
|
|
75
|
-
pendingTransactionsArchivist: assertEx2(params?.pendingTransactionsArchivist, () => "pendingTransactionsArchivist is required for MempoolActor")
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
async startHandler() {
|
|
79
|
-
await super.startHandler();
|
|
80
|
-
this.restartBlockTimer();
|
|
81
|
-
}
|
|
82
|
-
async stopHandler() {
|
|
83
|
-
await super.stopHandler();
|
|
84
|
-
this.stopBlockTimer();
|
|
85
|
-
}
|
|
86
|
-
restartBlockTimer() {
|
|
87
|
-
this.stopBlockTimer();
|
|
88
|
-
this._blockTimerId = setInterval(() => {
|
|
89
|
-
if (this._blockTimerMutex.isLocked()) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
void this._blockTimerMutex.runExclusive(async () => {
|
|
93
|
-
await this.mempoolRunner.prunePendingBlocks({
|
|
94
|
-
batchSize: 50
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
}, 1e3);
|
|
98
|
-
}
|
|
99
|
-
restartTransactionTimer() {
|
|
100
|
-
this.stopTransactionTimer();
|
|
101
|
-
this._transactionTimerId = setInterval(() => {
|
|
102
|
-
if (this._transactionTimerMutex.isLocked()) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
void this._transactionTimerMutex.runExclusive(async () => {
|
|
106
|
-
await this.mempoolRunner.prunePendingTransactions({
|
|
107
|
-
batchSize: 50
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
}, 1e3);
|
|
111
|
-
}
|
|
112
|
-
stopBlockTimer() {
|
|
113
|
-
if (this._blockTimerId !== null) {
|
|
114
|
-
clearInterval(this._blockTimerId);
|
|
115
|
-
}
|
|
116
|
-
this._blockTimerId = null;
|
|
117
|
-
}
|
|
118
|
-
stopTransactionTimer() {
|
|
119
|
-
if (this._transactionTimerId !== null) {
|
|
120
|
-
clearInterval(this._transactionTimerId);
|
|
121
|
-
}
|
|
122
|
-
this._transactionTimerId = null;
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
MempoolActor = _ts_decorate([
|
|
126
|
-
creatable()
|
|
127
|
-
], MempoolActor);
|
|
128
|
-
|
|
129
4
|
// src/actor/ValidatorActor.ts
|
|
130
|
-
import {
|
|
5
|
+
import { creatable } from "@xylabs/sdk-js";
|
|
131
6
|
import { processPendingBlocks } from "@xyo-network/chain-sdk";
|
|
132
|
-
import {
|
|
133
|
-
|
|
134
|
-
function _ts_decorate2(decorators, target, key, desc) {
|
|
7
|
+
import { ActorV3, BlockViewerMoniker, FinalizationRunnerMoniker, MempoolViewerMoniker } from "@xyo-network/xl1-sdk";
|
|
8
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
135
9
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
136
10
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
137
11
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
138
12
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
139
13
|
}
|
|
140
|
-
__name(
|
|
141
|
-
var ValidatorActor = class extends
|
|
14
|
+
__name(_ts_decorate, "_ts_decorate");
|
|
15
|
+
var ValidatorActor = class extends ActorV3 {
|
|
142
16
|
static {
|
|
143
17
|
__name(this, "ValidatorActor");
|
|
144
18
|
}
|
|
19
|
+
_blockViewer;
|
|
20
|
+
_finalizationRunner;
|
|
145
21
|
_lastValidatedBlock;
|
|
146
22
|
_lastValidatedBlockHash;
|
|
23
|
+
_mempoolViewer;
|
|
147
24
|
get blockViewer() {
|
|
148
|
-
return this.
|
|
25
|
+
return this._blockViewer;
|
|
149
26
|
}
|
|
150
|
-
get
|
|
151
|
-
return
|
|
27
|
+
get finalizationRunner() {
|
|
28
|
+
return this._finalizationRunner;
|
|
152
29
|
}
|
|
153
30
|
get mempoolViewer() {
|
|
154
|
-
return this.
|
|
31
|
+
return this._mempoolViewer;
|
|
155
32
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
finalizedArchivist: assertEx3(params?.finalizedArchivist, () => "finalizedArchivist is required for ValidatorActor"),
|
|
162
|
-
account: assertEx3(params?.account, () => "account is required for ValidatorActor")
|
|
163
|
-
};
|
|
33
|
+
async createHandler() {
|
|
34
|
+
await super.startHandler();
|
|
35
|
+
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker);
|
|
36
|
+
this._finalizationRunner = await this.locator.getInstance(FinalizationRunnerMoniker);
|
|
37
|
+
this._mempoolViewer = await this.locator.getInstance(MempoolViewerMoniker);
|
|
164
38
|
}
|
|
165
39
|
async startHandler() {
|
|
166
40
|
await super.startHandler();
|
|
@@ -174,7 +48,7 @@ var ValidatorActor = class extends Actor3 {
|
|
|
174
48
|
logger: this.logger,
|
|
175
49
|
mempoolViewer: this.mempoolViewer,
|
|
176
50
|
blockViewer: this.blockViewer,
|
|
177
|
-
|
|
51
|
+
finalizationRunner: this.finalizationRunner
|
|
178
52
|
});
|
|
179
53
|
}, {
|
|
180
54
|
...this.context,
|
|
@@ -186,28 +60,18 @@ var ValidatorActor = class extends Actor3 {
|
|
|
186
60
|
/* 500 */
|
|
187
61
|
);
|
|
188
62
|
}
|
|
189
|
-
async slashInvalidBlock(_block) {
|
|
190
|
-
const slashed = await Promise.resolve(true);
|
|
191
|
-
return slashed;
|
|
192
|
-
}
|
|
193
|
-
async validateBlock(block) {
|
|
194
|
-
const valid = await Promise.resolve(true);
|
|
195
|
-
this._lastValidatedBlock = block;
|
|
196
|
-
this._lastValidatedBlockHash = await PayloadBuilder.hash(block);
|
|
197
|
-
return valid;
|
|
198
|
-
}
|
|
199
63
|
};
|
|
200
|
-
ValidatorActor =
|
|
201
|
-
|
|
64
|
+
ValidatorActor = _ts_decorate([
|
|
65
|
+
creatable()
|
|
202
66
|
], ValidatorActor);
|
|
203
67
|
|
|
204
68
|
// src/archivists/ChainFinalized/archivist.ts
|
|
205
69
|
import { startupSpanAsync } from "@xyo-network/chain-utils";
|
|
206
70
|
import { timeBudget } from "@xyo-network/xl1-sdk";
|
|
207
|
-
import { Mutex as
|
|
71
|
+
import { Mutex as Mutex2 } from "async-mutex";
|
|
208
72
|
|
|
209
73
|
// src/archivists/ChainFinalized/local.ts
|
|
210
|
-
import { Mutex
|
|
74
|
+
import { Mutex } from "async-mutex";
|
|
211
75
|
|
|
212
76
|
// src/archivists/lib/localPersistentArchivist.ts
|
|
213
77
|
import { rm } from "fs/promises";
|
|
@@ -235,7 +99,7 @@ var getLocalPersistentArchivist = /* @__PURE__ */ __name((name, dbName, storeNam
|
|
|
235
99
|
}, "getLocalPersistentArchivist");
|
|
236
100
|
|
|
237
101
|
// src/archivists/ChainFinalized/local.ts
|
|
238
|
-
var mutex = new
|
|
102
|
+
var mutex = new Mutex();
|
|
239
103
|
var singleton;
|
|
240
104
|
var initLocalChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config }) => {
|
|
241
105
|
return await mutex.runExclusive(async () => {
|
|
@@ -247,7 +111,7 @@ var initLocalChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config })
|
|
|
247
111
|
}, "initLocalChainFinalizedArchivist");
|
|
248
112
|
|
|
249
113
|
// src/archivists/ChainFinalized/archivist.ts
|
|
250
|
-
var mutex2 = new
|
|
114
|
+
var mutex2 = new Mutex2();
|
|
251
115
|
var singleton2;
|
|
252
116
|
async function initChainFinalizedArchivist(context) {
|
|
253
117
|
return await mutex2.runExclusive(async () => {
|
|
@@ -264,11 +128,11 @@ __name(initChainFinalizedArchivist, "initChainFinalizedArchivist");
|
|
|
264
128
|
// src/archivists/PendingBlocks/archivist.ts
|
|
265
129
|
import { startupSpanAsync as startupSpanAsync2 } from "@xyo-network/chain-utils";
|
|
266
130
|
import { timeBudget as timeBudget2 } from "@xyo-network/xl1-sdk";
|
|
267
|
-
import { Mutex as
|
|
131
|
+
import { Mutex as Mutex4 } from "async-mutex";
|
|
268
132
|
|
|
269
133
|
// src/archivists/PendingBlocks/local.ts
|
|
270
|
-
import { Mutex as
|
|
271
|
-
var mutex3 = new
|
|
134
|
+
import { Mutex as Mutex3 } from "async-mutex";
|
|
135
|
+
var mutex3 = new Mutex3();
|
|
272
136
|
var singleton3;
|
|
273
137
|
var initLocalPendingBlocksArchivist = /* @__PURE__ */ __name(async ({ config }) => {
|
|
274
138
|
return await mutex3.runExclusive(async () => {
|
|
@@ -280,7 +144,7 @@ var initLocalPendingBlocksArchivist = /* @__PURE__ */ __name(async ({ config })
|
|
|
280
144
|
}, "initLocalPendingBlocksArchivist");
|
|
281
145
|
|
|
282
146
|
// src/archivists/PendingBlocks/archivist.ts
|
|
283
|
-
var mutex4 = new
|
|
147
|
+
var mutex4 = new Mutex4();
|
|
284
148
|
var singleton4;
|
|
285
149
|
async function initPendingBlocksArchivist(context) {
|
|
286
150
|
return await mutex4.runExclusive(async () => {
|
|
@@ -297,12 +161,12 @@ __name(initPendingBlocksArchivist, "initPendingBlocksArchivist");
|
|
|
297
161
|
// src/archivists/RejectedTransactions/archivist.ts
|
|
298
162
|
import { startupSpanAsync as startupSpanAsync3 } from "@xyo-network/chain-utils";
|
|
299
163
|
import { timeBudget as timeBudget3 } from "@xyo-network/xl1-sdk";
|
|
300
|
-
import { Mutex as
|
|
164
|
+
import { Mutex as Mutex6 } from "async-mutex";
|
|
301
165
|
|
|
302
166
|
// src/archivists/RejectedTransactions/local.ts
|
|
303
167
|
import { MemoryArchivist, MemoryArchivistConfigSchema } from "@xyo-network/archivist-memory";
|
|
304
|
-
import { Mutex as
|
|
305
|
-
var mutex5 = new
|
|
168
|
+
import { Mutex as Mutex5 } from "async-mutex";
|
|
169
|
+
var mutex5 = new Mutex5();
|
|
306
170
|
var singleton5;
|
|
307
171
|
var initLocalRejectedTransactionsArchivist = /* @__PURE__ */ __name(async () => {
|
|
308
172
|
return await mutex5.runExclusive(async () => {
|
|
@@ -320,7 +184,7 @@ var initLocalRejectedTransactionsArchivist = /* @__PURE__ */ __name(async () =>
|
|
|
320
184
|
}, "initLocalRejectedTransactionsArchivist");
|
|
321
185
|
|
|
322
186
|
// src/archivists/RejectedTransactions/archivist.ts
|
|
323
|
-
var mutex6 = new
|
|
187
|
+
var mutex6 = new Mutex6();
|
|
324
188
|
var singleton6;
|
|
325
189
|
async function initRejectedTransactionsArchivist(params) {
|
|
326
190
|
return await mutex6.runExclusive(async () => {
|
|
@@ -335,27 +199,27 @@ async function initRejectedTransactionsArchivist(params) {
|
|
|
335
199
|
__name(initRejectedTransactionsArchivist, "initRejectedTransactionsArchivist");
|
|
336
200
|
|
|
337
201
|
// src/archivists/StakeIntentState/archivist.ts
|
|
338
|
-
import { assertEx as
|
|
202
|
+
import { assertEx as assertEx2 } from "@xylabs/sdk-js";
|
|
339
203
|
import { startupSpanAsync as startupSpanAsync4 } from "@xyo-network/chain-utils";
|
|
340
204
|
import { timeBudget as timeBudget4 } from "@xyo-network/xl1-sdk";
|
|
341
|
-
import { Mutex as
|
|
205
|
+
import { Mutex as Mutex8 } from "async-mutex";
|
|
342
206
|
|
|
343
207
|
// src/archivists/StakeIntentState/local.ts
|
|
344
|
-
import { assertEx
|
|
345
|
-
import { Mutex as
|
|
346
|
-
var mutex7 = new
|
|
208
|
+
import { assertEx } from "@xylabs/sdk-js";
|
|
209
|
+
import { Mutex as Mutex7 } from "async-mutex";
|
|
210
|
+
var mutex7 = new Mutex7();
|
|
347
211
|
var singleton7;
|
|
348
212
|
var initLocalStakeIntentStateArchivist = /* @__PURE__ */ __name(async ({ config }) => {
|
|
349
213
|
return await mutex7.runExclusive(async () => {
|
|
350
214
|
if (singleton7) return singleton7;
|
|
351
215
|
const { root } = config.storage;
|
|
352
216
|
singleton7 = await getLocalPersistentArchivist("local-stake-intent-state", "stakeIntent", "state", root);
|
|
353
|
-
return
|
|
217
|
+
return assertEx(singleton7, () => new Error("Failed to initialize stake intent state archivist"));
|
|
354
218
|
});
|
|
355
219
|
}, "initLocalStakeIntentStateArchivist");
|
|
356
220
|
|
|
357
221
|
// src/archivists/StakeIntentState/archivist.ts
|
|
358
|
-
var mutex8 = new
|
|
222
|
+
var mutex8 = new Mutex8();
|
|
359
223
|
var singleton8;
|
|
360
224
|
var initStakeIntentStateArchivist = /* @__PURE__ */ __name(async (context) => {
|
|
361
225
|
return await mutex8.runExclusive(async () => {
|
|
@@ -363,7 +227,7 @@ var initStakeIntentStateArchivist = /* @__PURE__ */ __name(async (context) => {
|
|
|
363
227
|
return await timeBudget4("initStakeIntentStateArchivist", context.logger, async () => {
|
|
364
228
|
const local = await startupSpanAsync4("StakeIntentStateArchivist:initLocal", () => initLocalStakeIntentStateArchivist(context));
|
|
365
229
|
singleton8 = local;
|
|
366
|
-
return
|
|
230
|
+
return assertEx2(singleton8, () => "StakeIntentStateArchivist is undefined");
|
|
367
231
|
}, 2e3, true);
|
|
368
232
|
});
|
|
369
233
|
}, "initStakeIntentStateArchivist");
|
|
@@ -401,12 +265,12 @@ async function createProducerChainStakeIntentBlock(prevBlock, producerAccount, r
|
|
|
401
265
|
__name(createProducerChainStakeIntentBlock, "createProducerChainStakeIntentBlock");
|
|
402
266
|
|
|
403
267
|
// src/evm/initChainId.ts
|
|
404
|
-
import { assertEx as
|
|
268
|
+
import { assertEx as assertEx3, hexFrom, isDefined, isHex } from "@xylabs/sdk-js";
|
|
405
269
|
var canUseChainId = /* @__PURE__ */ __name((config) => {
|
|
406
270
|
return isDefined(config.evm.chainId);
|
|
407
271
|
}, "canUseChainId");
|
|
408
272
|
var getChainId = /* @__PURE__ */ __name((config) => {
|
|
409
|
-
const chainId =
|
|
273
|
+
const chainId = assertEx3(config.evm.chainId, () => "Missing config.evm.chainId");
|
|
410
274
|
if (isHex(chainId, {
|
|
411
275
|
prefix: true
|
|
412
276
|
})) {
|
|
@@ -420,10 +284,10 @@ var getChainId = /* @__PURE__ */ __name((config) => {
|
|
|
420
284
|
}, "getChainId");
|
|
421
285
|
|
|
422
286
|
// src/evm/initEvmProvider.ts
|
|
423
|
-
import { assertEx as
|
|
287
|
+
import { assertEx as assertEx6 } from "@xylabs/sdk-js";
|
|
424
288
|
|
|
425
289
|
// src/evm/initInfuraProvider.ts
|
|
426
|
-
import { assertEx as
|
|
290
|
+
import { assertEx as assertEx4, isDefined as isDefined2 } from "@xylabs/sdk-js";
|
|
427
291
|
import { InfuraProvider } from "ethers/providers";
|
|
428
292
|
var instance;
|
|
429
293
|
var initInfuraProvider = /* @__PURE__ */ __name((config) => {
|
|
@@ -436,8 +300,8 @@ var canUseInfuraProvider = /* @__PURE__ */ __name((config) => {
|
|
|
436
300
|
return canUseChainId(config) && isDefined2(config.evm?.infura?.projectId) && isDefined2(config.evm?.infura?.projectSecret);
|
|
437
301
|
}, "canUseInfuraProvider");
|
|
438
302
|
var getInfuraProviderConfig = /* @__PURE__ */ __name((config) => {
|
|
439
|
-
const projectId =
|
|
440
|
-
const projectSecret =
|
|
303
|
+
const projectId = assertEx4(config.evm?.infura?.projectId, () => "Missing config.evm.infura.projectId");
|
|
304
|
+
const projectSecret = assertEx4(config.evm?.infura?.projectSecret, () => "Missing config.evm.infura.projectSecret");
|
|
441
305
|
return [
|
|
442
306
|
getChainId(config),
|
|
443
307
|
projectId,
|
|
@@ -446,7 +310,7 @@ var getInfuraProviderConfig = /* @__PURE__ */ __name((config) => {
|
|
|
446
310
|
}, "getInfuraProviderConfig");
|
|
447
311
|
|
|
448
312
|
// src/evm/initJsonRpcProvider.ts
|
|
449
|
-
import { assertEx as
|
|
313
|
+
import { assertEx as assertEx5, isDefined as isDefined3 } from "@xylabs/sdk-js";
|
|
450
314
|
import { JsonRpcProvider } from "ethers/providers";
|
|
451
315
|
var initJsonRpcProvider = /* @__PURE__ */ __name((config) => {
|
|
452
316
|
const providerConfig = getJsonRpcProviderConfig(config);
|
|
@@ -456,7 +320,7 @@ var canUseJsonRpcProvider = /* @__PURE__ */ __name((config) => {
|
|
|
456
320
|
return canUseChainId(config) && isDefined3(config.evm.jsonRpc?.url);
|
|
457
321
|
}, "canUseJsonRpcProvider");
|
|
458
322
|
var getJsonRpcProviderConfig = /* @__PURE__ */ __name((config) => {
|
|
459
|
-
const jsonRpcUrl =
|
|
323
|
+
const jsonRpcUrl = assertEx5(config.evm.jsonRpc?.url, () => "Missing config.evm.jsonRpc.url");
|
|
460
324
|
return [
|
|
461
325
|
jsonRpcUrl,
|
|
462
326
|
getChainId(config)
|
|
@@ -472,7 +336,7 @@ var initEvmProvider = /* @__PURE__ */ __name(async ({ config }) => {
|
|
|
472
336
|
} else if (canUseJsonRpcProvider(config)) {
|
|
473
337
|
provider = initJsonRpcProvider(config);
|
|
474
338
|
}
|
|
475
|
-
return
|
|
339
|
+
return assertEx6(await provider, () => "No provider available");
|
|
476
340
|
}, "initEvmProvider");
|
|
477
341
|
var canUseEvmProvider = /* @__PURE__ */ __name(({ config }) => {
|
|
478
342
|
return canUseInfuraProvider(config) || canUseJsonRpcProvider(config);
|
|
@@ -575,7 +439,7 @@ var ServiceLifetime = {
|
|
|
575
439
|
|
|
576
440
|
// src/init/initBalanceSummaryMap.ts
|
|
577
441
|
import { BaseMongoSdk } from "@xylabs/mongo";
|
|
578
|
-
import { assertEx as
|
|
442
|
+
import { assertEx as assertEx7 } from "@xylabs/sdk-js";
|
|
579
443
|
import { MongoMap } from "@xyo-network/chain-protocol";
|
|
580
444
|
import { hasMongoConfig, MemoryMap } from "@xyo-network/xl1-sdk";
|
|
581
445
|
async function initBalanceSummaryMap({ config, logger }) {
|
|
@@ -600,7 +464,7 @@ async function initBalanceSummaryMap({ config, logger }) {
|
|
|
600
464
|
maxEntries: 5e3
|
|
601
465
|
}
|
|
602
466
|
});
|
|
603
|
-
|
|
467
|
+
assertEx7(await result.start(), () => "Failed to start transfer summary map");
|
|
604
468
|
return result;
|
|
605
469
|
} else {
|
|
606
470
|
logger?.warn("[API] Mongo configuration not found. Using MemoryMap for BalanceSummaryMap.");
|
|
@@ -610,18 +474,18 @@ async function initBalanceSummaryMap({ config, logger }) {
|
|
|
610
474
|
__name(initBalanceSummaryMap, "initBalanceSummaryMap");
|
|
611
475
|
|
|
612
476
|
// src/init/initBridgedModule.ts
|
|
613
|
-
import { assertEx as
|
|
477
|
+
import { assertEx as assertEx8 } from "@xylabs/sdk-js";
|
|
614
478
|
import { asAttachableArchivistInstance } from "@xyo-network/archivist-model";
|
|
615
479
|
import { asAttachableModuleInstance } from "@xyo-network/module-model";
|
|
616
|
-
import { Mutex as
|
|
617
|
-
var initMutex = new
|
|
480
|
+
import { Mutex as Mutex9 } from "async-mutex";
|
|
481
|
+
var initMutex = new Mutex9();
|
|
618
482
|
var bridgedModuleDictionary = {};
|
|
619
483
|
var initBridgedModule = /* @__PURE__ */ __name(async ({ bridge, moduleName }) => {
|
|
620
484
|
return await initMutex.runExclusive(async () => {
|
|
621
485
|
const existing = bridgedModuleDictionary?.[bridge.address]?.[moduleName];
|
|
622
486
|
if (existing) return existing;
|
|
623
|
-
const mod =
|
|
624
|
-
const moduleInstance =
|
|
487
|
+
const mod = assertEx8(await bridge.resolve(moduleName), () => `Could not resolve ${moduleName}`);
|
|
488
|
+
const moduleInstance = assertEx8(asAttachableModuleInstance(mod), () => `Could not convert ${moduleName} to attachable module instance`);
|
|
625
489
|
let moduleMap = bridgedModuleDictionary[bridge.address];
|
|
626
490
|
if (moduleMap === void 0) {
|
|
627
491
|
moduleMap = {};
|
|
@@ -632,14 +496,14 @@ var initBridgedModule = /* @__PURE__ */ __name(async ({ bridge, moduleName }) =>
|
|
|
632
496
|
});
|
|
633
497
|
}, "initBridgedModule");
|
|
634
498
|
var initBridgedArchivistModule = /* @__PURE__ */ __name(async ({ bridge, moduleName }) => {
|
|
635
|
-
return
|
|
499
|
+
return assertEx8(asAttachableArchivistInstance(await initBridgedModule({
|
|
636
500
|
bridge,
|
|
637
501
|
moduleName
|
|
638
502
|
})), () => `Could not convert ${moduleName} to attachable archivist instance`);
|
|
639
503
|
}, "initBridgedArchivistModule");
|
|
640
504
|
|
|
641
505
|
// src/init/initEvmProvidersIfAvailable.ts
|
|
642
|
-
import { asEthAddress, assertEx as
|
|
506
|
+
import { asEthAddress, assertEx as assertEx9 } from "@xylabs/sdk-js";
|
|
643
507
|
import { EvmChainContractViewer, EvmStakeEventsViewer, EvmStakeTotalsViewer, EvmStakeViewer } from "@xyo-network/chain-ethereum";
|
|
644
508
|
import { SimpleChainContractViewer, SimpleStakeEventsViewer, SimpleStakeTotalsViewer, SimpleStakeViewer, SimpleTimeSyncViewer, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-sdk";
|
|
645
509
|
async function initEvmProvidersIfAvailable(locator) {
|
|
@@ -647,7 +511,7 @@ async function initEvmProvidersIfAvailable(locator) {
|
|
|
647
511
|
if (canUseEvmProvider({
|
|
648
512
|
config
|
|
649
513
|
})) {
|
|
650
|
-
const chainId =
|
|
514
|
+
const chainId = assertEx9(config.chain.id, () => "Missing config.chain.chainId (required for EVM providers)");
|
|
651
515
|
const provider2 = await initEvmProvider({
|
|
652
516
|
config,
|
|
653
517
|
logger
|
|
@@ -675,7 +539,7 @@ async function initEvmProvidersIfAvailable(locator) {
|
|
|
675
539
|
} else {
|
|
676
540
|
logger?.warn("EVM provider not available - running with memory based contract/stake viewers");
|
|
677
541
|
const positions = [];
|
|
678
|
-
const chainId =
|
|
542
|
+
const chainId = assertEx9(config.chain.id, () => "Missing config.chain.chainId (required for non-EVM providers)");
|
|
679
543
|
locator.register(SimpleStakeEventsViewer.factory(SimpleStakeEventsViewer.dependencies, {
|
|
680
544
|
positions
|
|
681
545
|
}));
|
|
@@ -696,7 +560,7 @@ async function initEvmProvidersIfAvailable(locator) {
|
|
|
696
560
|
__name(initEvmProvidersIfAvailable, "initEvmProvidersIfAvailable");
|
|
697
561
|
|
|
698
562
|
// src/init/initFinalizationArchivistIfNeeded.ts
|
|
699
|
-
import { assertEx as
|
|
563
|
+
import { assertEx as assertEx10 } from "@xylabs/sdk-js";
|
|
700
564
|
import { Account } from "@xyo-network/account";
|
|
701
565
|
import { createBootstrapHead } from "@xyo-network/chain-sdk";
|
|
702
566
|
import { asAttoXL1, findMostRecentBlock, flattenHydratedBlock } from "@xyo-network/xl1-sdk";
|
|
@@ -713,8 +577,8 @@ async function initFinalizationArchivistIfNeeded(archivist, config, account) {
|
|
|
713
577
|
const payloads = chain.flatMap((block) => flattenHydratedBlock(block));
|
|
714
578
|
await archivist.insert(payloads);
|
|
715
579
|
}
|
|
716
|
-
const head = possibleHead ??
|
|
717
|
-
const chainId =
|
|
580
|
+
const head = possibleHead ?? assertEx10(await findMostRecentBlock(archivist), () => "No blocks found in chain archivist");
|
|
581
|
+
const chainId = assertEx10(possibleChainId, () => "Chain ID could not be determined");
|
|
718
582
|
return [
|
|
719
583
|
head,
|
|
720
584
|
chainId
|
|
@@ -765,7 +629,7 @@ ${randomMnemonic}
|
|
|
765
629
|
}, "initProducerAccount");
|
|
766
630
|
|
|
767
631
|
// src/init/initSeedPhrase.ts
|
|
768
|
-
import { assertEx as
|
|
632
|
+
import { assertEx as assertEx11, isString } from "@xylabs/sdk-js";
|
|
769
633
|
import { HDWallet as HDWallet2 } from "@xyo-network/wallet";
|
|
770
634
|
async function initSeedPhrase({ config, logger, bios }) {
|
|
771
635
|
const storedSeedPhrase = await bios.seedPhraseStore.get("os");
|
|
@@ -785,12 +649,12 @@ async function initSeedPhrase({ config, logger, bios }) {
|
|
|
785
649
|
}
|
|
786
650
|
await bios.seedPhraseStore.set("os", seedPhrase);
|
|
787
651
|
}
|
|
788
|
-
return
|
|
652
|
+
return assertEx11(await bios.seedPhraseStore.get("os"), () => "Unable to acquire mnemonic from bios");
|
|
789
653
|
}
|
|
790
654
|
__name(initSeedPhrase, "initSeedPhrase");
|
|
791
655
|
|
|
792
656
|
// src/init/initServerNode.ts
|
|
793
|
-
import { assertEx as
|
|
657
|
+
import { assertEx as assertEx12 } from "@xylabs/sdk-js";
|
|
794
658
|
import { asArchivistInstance } from "@xyo-network/archivist-model";
|
|
795
659
|
|
|
796
660
|
// src/manifest/getLocator.ts
|
|
@@ -1026,7 +890,7 @@ async function writableChainArchivistFromNode(node) {
|
|
|
1026
890
|
}
|
|
1027
891
|
__name(writableChainArchivistFromNode, "writableChainArchivistFromNode");
|
|
1028
892
|
async function readonlyChainArchivistFromNode(node) {
|
|
1029
|
-
return
|
|
893
|
+
return assertEx12(asArchivistInstance(await node.resolve("Chain:Validated"), {
|
|
1030
894
|
required: true
|
|
1031
895
|
}));
|
|
1032
896
|
}
|
|
@@ -1051,7 +915,7 @@ async function initServerNode({ wallet, logger, config, node: providedNode, tran
|
|
|
1051
915
|
transfersSummaryMap,
|
|
1052
916
|
balancesSummaryMap
|
|
1053
917
|
});
|
|
1054
|
-
|
|
918
|
+
assertEx12(await node.start(), () => "Failed to start node");
|
|
1055
919
|
const writableChainArchivist = await writableChainArchivistFromNode(node);
|
|
1056
920
|
const readonlyChainArchivist = await readonlyChainArchivistFromNode(node);
|
|
1057
921
|
const pendingTransactionsArchivist = await pendingTransactionsArchivistFromNode(node);
|
|
@@ -1087,7 +951,7 @@ __name(initStatusReporter, "initStatusReporter");
|
|
|
1087
951
|
|
|
1088
952
|
// src/init/initTransferSummaryMap.ts
|
|
1089
953
|
import { BaseMongoSdk as BaseMongoSdk2 } from "@xylabs/mongo";
|
|
1090
|
-
import { assertEx as
|
|
954
|
+
import { assertEx as assertEx13 } from "@xylabs/sdk-js";
|
|
1091
955
|
import { MongoMap as MongoMap2 } from "@xyo-network/chain-protocol";
|
|
1092
956
|
import { hasMongoConfig as hasMongoConfig3, MemoryMap as MemoryMap2 } from "@xyo-network/xl1-sdk";
|
|
1093
957
|
async function initTransferSummaryMap({ config, logger }) {
|
|
@@ -1112,7 +976,7 @@ async function initTransferSummaryMap({ config, logger }) {
|
|
|
1112
976
|
maxEntries: 5e3
|
|
1113
977
|
}
|
|
1114
978
|
});
|
|
1115
|
-
|
|
979
|
+
assertEx13(await result.start(), () => "Failed to start transfer summary map");
|
|
1116
980
|
return result;
|
|
1117
981
|
} else {
|
|
1118
982
|
logger?.warn("[API] Mongo configuration not found. Using MemoryMap for TransferSummaryMap.");
|
|
@@ -1143,6 +1007,14 @@ async function initApiWallet({ config, logger }) {
|
|
|
1143
1007
|
}, mnemonic);
|
|
1144
1008
|
}
|
|
1145
1009
|
__name(initApiWallet, "initApiWallet");
|
|
1010
|
+
async function initBridgeWallet({ config, logger }) {
|
|
1011
|
+
const { mnemonic } = config.actors.bridge;
|
|
1012
|
+
return await initWallet({
|
|
1013
|
+
config,
|
|
1014
|
+
logger
|
|
1015
|
+
}, mnemonic);
|
|
1016
|
+
}
|
|
1017
|
+
__name(initBridgeWallet, "initBridgeWallet");
|
|
1146
1018
|
async function initMempoolWallet({ config, logger }) {
|
|
1147
1019
|
const { mnemonic } = config.actors.mempool;
|
|
1148
1020
|
return await initWallet({
|
|
@@ -1167,16 +1039,24 @@ async function initRewardsRedemptionApiWallet({ config, logger }) {
|
|
|
1167
1039
|
}, mnemonic);
|
|
1168
1040
|
}
|
|
1169
1041
|
__name(initRewardsRedemptionApiWallet, "initRewardsRedemptionApiWallet");
|
|
1042
|
+
async function initValidatorWallet({ config, logger }) {
|
|
1043
|
+
const { mnemonic } = config.actors.mempool;
|
|
1044
|
+
return await initWallet({
|
|
1045
|
+
config,
|
|
1046
|
+
logger
|
|
1047
|
+
}, mnemonic);
|
|
1048
|
+
}
|
|
1049
|
+
__name(initValidatorWallet, "initValidatorWallet");
|
|
1170
1050
|
|
|
1171
1051
|
// src/orchestrator/Orchestrator.ts
|
|
1172
|
-
import { AbstractCreatable, creatable as
|
|
1173
|
-
function
|
|
1052
|
+
import { AbstractCreatable, creatable as creatable2 } from "@xylabs/sdk-js";
|
|
1053
|
+
function _ts_decorate2(decorators, target, key, desc) {
|
|
1174
1054
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1175
1055
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1176
1056
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1177
1057
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1178
1058
|
}
|
|
1179
|
-
__name(
|
|
1059
|
+
__name(_ts_decorate2, "_ts_decorate");
|
|
1180
1060
|
var Orchestrator = class extends AbstractCreatable {
|
|
1181
1061
|
static {
|
|
1182
1062
|
__name(this, "Orchestrator");
|
|
@@ -1229,14 +1109,12 @@ var Orchestrator = class extends AbstractCreatable {
|
|
|
1229
1109
|
this.logger?.log("[Orchestrator] Stopped...");
|
|
1230
1110
|
}
|
|
1231
1111
|
};
|
|
1232
|
-
Orchestrator =
|
|
1233
|
-
|
|
1112
|
+
Orchestrator = _ts_decorate2([
|
|
1113
|
+
creatable2()
|
|
1234
1114
|
], Orchestrator);
|
|
1235
1115
|
export {
|
|
1236
|
-
BalanceActor,
|
|
1237
1116
|
DefaultServiceProvider,
|
|
1238
1117
|
GenericHost,
|
|
1239
|
-
MempoolActor,
|
|
1240
1118
|
NodeManifest,
|
|
1241
1119
|
Orchestrator,
|
|
1242
1120
|
PrivateChildManifests,
|
|
@@ -1255,6 +1133,7 @@ export {
|
|
|
1255
1133
|
getLocator,
|
|
1256
1134
|
initApiWallet,
|
|
1257
1135
|
initBalanceSummaryMap,
|
|
1136
|
+
initBridgeWallet,
|
|
1258
1137
|
initBridgedArchivistModule,
|
|
1259
1138
|
initBridgedModule,
|
|
1260
1139
|
initChainFinalizedArchivist,
|
|
@@ -1276,6 +1155,7 @@ export {
|
|
|
1276
1155
|
initStakeIntentStateArchivist,
|
|
1277
1156
|
initStatusReporter,
|
|
1278
1157
|
initTransferSummaryMap,
|
|
1158
|
+
initValidatorWallet,
|
|
1279
1159
|
loadNode
|
|
1280
1160
|
};
|
|
1281
1161
|
//# sourceMappingURL=index.mjs.map
|