@xyo-network/xl1-protocol-sdk 1.16.26 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/neutral/ChainServiceCollectionV2.d.ts +5 -9
- package/dist/neutral/ChainServiceCollectionV2.d.ts.map +1 -1
- package/dist/neutral/index.mjs +242 -59
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/primitives/index.d.ts +1 -0
- package/dist/neutral/primitives/index.d.ts.map +1 -1
- package/dist/neutral/primitives/state/findMostRecentBlock.d.ts +11 -0
- package/dist/neutral/primitives/state/findMostRecentBlock.d.ts.map +1 -0
- package/dist/neutral/primitives/state/hydratedBlockByNumber.d.ts +4 -0
- package/dist/neutral/primitives/state/hydratedBlockByNumber.d.ts.map +1 -0
- package/dist/neutral/primitives/state/index.d.ts +3 -0
- package/dist/neutral/primitives/state/index.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/XyoViewer.d.ts +4 -4
- package/dist/neutral/provider/viewer/XyoViewer.d.ts.map +1 -1
- package/dist/neutral/provider/viewer/index.d.ts +0 -1
- package/dist/neutral/provider/viewer/index.d.ts.map +1 -1
- package/dist/neutral/services/Chain/BaseChainService.d.ts +0 -2
- package/dist/neutral/services/Chain/BaseChainService.d.ts.map +1 -1
- package/dist/neutral/services/Chain/ChainService.d.ts +2 -2
- package/dist/neutral/services/Chain/ChainService.d.ts.map +1 -1
- package/dist/neutral/services/Chain/interfaces/ChainStakeViewer.d.ts +2 -2
- package/dist/neutral/services/Chain/interfaces/ChainStakeViewer.d.ts.map +1 -1
- package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts +2 -2
- package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts.map +1 -1
- package/dist/neutral/simple/block/SimpleBlockViewer.d.ts +50 -0
- package/dist/neutral/simple/block/SimpleBlockViewer.d.ts.map +1 -0
- package/dist/neutral/simple/block/index.d.ts +2 -0
- package/dist/neutral/simple/block/index.d.ts.map +1 -0
- package/dist/neutral/simple/index.d.ts +1 -0
- package/dist/neutral/simple/index.d.ts.map +1 -1
- package/dist/neutral/utils/HydratedCache.d.ts +16 -0
- package/dist/neutral/utils/HydratedCache.d.ts.map +1 -0
- package/dist/neutral/utils/index.d.ts +1 -0
- package/dist/neutral/utils/index.d.ts.map +1 -1
- package/dist/neutral/viewers/Block.d.ts +6 -5
- package/dist/neutral/viewers/Block.d.ts.map +1 -1
- package/dist/neutral/viewers/Chain.d.ts +2 -0
- package/dist/neutral/viewers/Chain.d.ts.map +1 -1
- package/dist/neutral/{provider/viewer → viewers}/StepViewer.d.ts +2 -2
- package/dist/neutral/viewers/StepViewer.d.ts.map +1 -0
- package/dist/neutral/viewers/index.d.ts +1 -0
- package/dist/neutral/viewers/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/ChainServiceCollectionV2.ts +7 -10
- package/src/primitives/index.ts +1 -0
- package/src/primitives/state/findMostRecentBlock.ts +44 -0
- package/src/primitives/state/hydratedBlockByNumber.ts +19 -0
- package/src/primitives/state/index.ts +2 -0
- package/src/provider/viewer/XyoViewer.ts +6 -4
- package/src/provider/viewer/index.ts +0 -1
- package/src/services/Chain/BaseChainService.ts +1 -3
- package/src/services/Chain/ChainService.ts +2 -2
- package/src/services/Chain/interfaces/ChainStakeViewer.ts +4 -2
- package/src/simple/accountBalance/SimpleAccountBalanceViewer.ts +5 -5
- package/src/simple/block/SimpleBlockViewer.ts +133 -0
- package/src/simple/block/index.ts +1 -0
- package/src/simple/index.ts +1 -0
- package/src/utils/HydratedCache.ts +38 -0
- package/src/utils/index.ts +1 -0
- package/src/viewers/Block.ts +7 -6
- package/src/viewers/Chain.ts +2 -0
- package/src/{provider/viewer → viewers}/StepViewer.ts +2 -2
- package/src/viewers/index.ts +1 -0
- package/dist/neutral/provider/viewer/StepViewer.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ArchivistInstance, WriteArchivist } from '@xyo-network/archivist-model';
|
|
2
2
|
import type { WalletInstance } from '@xyo-network/wallet-model';
|
|
3
|
-
import type { BlockProducerService, BlockRewardService, ChainStaker, ChainStakeViewer, ElectionService,
|
|
4
|
-
import type { AccountBalanceViewer, ChainContractViewer } from './viewers/index.ts';
|
|
3
|
+
import type { BlockProducerService, BlockRewardService, ChainStaker, ChainStakeViewer, ElectionService, StakeIntentService } from './services/index.ts';
|
|
4
|
+
import type { AccountBalanceViewer, BlockViewer, ChainContractViewer, MempoolViewer } from './viewers/index.ts';
|
|
5
5
|
export interface ChainServiceCollectionV2 {
|
|
6
6
|
/**
|
|
7
7
|
* The account which is used to sign transactions
|
|
@@ -12,18 +12,14 @@ export interface ChainServiceCollectionV2 {
|
|
|
12
12
|
*/
|
|
13
13
|
balance: AccountBalanceViewer;
|
|
14
14
|
/**
|
|
15
|
-
* The
|
|
15
|
+
* The chain iterator
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
blockViewer?: BlockViewer;
|
|
18
18
|
/**
|
|
19
19
|
* Service for viewing codified chain information
|
|
20
20
|
* from a contract
|
|
21
21
|
*/
|
|
22
22
|
chainContractViewer: ChainContractViewer;
|
|
23
|
-
/**
|
|
24
|
-
* The chain iterator
|
|
25
|
-
*/
|
|
26
|
-
chainIterator?: EventingChainBlockNumberIteratorService;
|
|
27
23
|
/**
|
|
28
24
|
* Service for viewing stake information
|
|
29
25
|
*/
|
|
@@ -48,7 +44,7 @@ export interface ChainServiceCollectionV2 {
|
|
|
48
44
|
/**
|
|
49
45
|
* Service for managing pending transactions
|
|
50
46
|
*/
|
|
51
|
-
pendingTransactions:
|
|
47
|
+
pendingTransactions: MempoolViewer;
|
|
52
48
|
/**
|
|
53
49
|
* The block producer service
|
|
54
50
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChainServiceCollectionV2.d.ts","sourceRoot":"","sources":["../../src/ChainServiceCollectionV2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE/D,OAAO,KAAK,EACV,oBAAoB,EAAE,kBAAkB,EACxC,WAAW,EAAE,gBAAgB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"ChainServiceCollectionV2.d.ts","sourceRoot":"","sources":["../../src/ChainServiceCollectionV2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE/D,OAAO,KAAK,EACV,oBAAoB,EAAE,kBAAkB,EACxC,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAC9C,kBAAkB,EACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EACV,oBAAoB,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EACtE,MAAM,oBAAoB,CAAA;AAE3B,MAAM,WAAW,wBAAwB;IAEvC;;OAEG;IACH,OAAO,EAAE,cAAc,CAAA;IACvB;;OAEG;IACH,OAAO,EAAE,oBAAoB,CAAA;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB;;;OAGG;IACH,mBAAmB,EAAE,mBAAmB,CAAA;IACxC;;OAEG;IACH,gBAAgB,EAAE,gBAAgB,CAAA;IAClC;;OAEG;IACH,WAAW,EAAE,WAAW,CAAA;IACxB;;OAEG;IACH,8BAA8B,EAAE,cAAc,CAAA;IAC9C;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAA;IACzB;;;OAGG;IACH,wCAAwC,EAAE,iBAAiB,CAAA;IAC3D;;OAEG;IACH,mBAAmB,EAAE,aAAa,CAAA;IAClC;;OAEG;IACH,QAAQ,EAAE,oBAAoB,CAAA;IAC9B;;OAEG;IACH,MAAM,EAAE,kBAAkB,CAAA;IAC1B;;OAEG;IACH,WAAW,EAAE,kBAAkB,CAAA;CAChC"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -225,6 +225,49 @@ function readPayloadMapFromStore(store) {
|
|
|
225
225
|
}
|
|
226
226
|
__name(readPayloadMapFromStore, "readPayloadMapFromStore");
|
|
227
227
|
|
|
228
|
+
// src/primitives/state/findMostRecentBlock.ts
|
|
229
|
+
import { isSignedBlockBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
|
|
230
|
+
var DEFAULT_NEXT_OPTIONS = {
|
|
231
|
+
limit: 50
|
|
232
|
+
};
|
|
233
|
+
var findMostRecentBlock = /* @__PURE__ */ __name(async (chainArchivist, nextOptions = DEFAULT_NEXT_OPTIONS, maxIterations = Number.POSITIVE_INFINITY) => {
|
|
234
|
+
let mostRecentBlock;
|
|
235
|
+
let cursor;
|
|
236
|
+
let batch;
|
|
237
|
+
let iterations = 0;
|
|
238
|
+
do {
|
|
239
|
+
batch = await chainArchivist.next({
|
|
240
|
+
...nextOptions,
|
|
241
|
+
order: "desc",
|
|
242
|
+
cursor
|
|
243
|
+
});
|
|
244
|
+
const blocks = batch.filter(isSignedBlockBoundWitnessWithStorageMeta);
|
|
245
|
+
const last = blocks?.at(0);
|
|
246
|
+
if (last) {
|
|
247
|
+
mostRecentBlock = last;
|
|
248
|
+
break;
|
|
249
|
+
} else {
|
|
250
|
+
cursor = batch.at(-1)?._sequence;
|
|
251
|
+
}
|
|
252
|
+
iterations = iterations + 1;
|
|
253
|
+
} while (batch.length > 0 && iterations < maxIterations);
|
|
254
|
+
return mostRecentBlock;
|
|
255
|
+
}, "findMostRecentBlock");
|
|
256
|
+
|
|
257
|
+
// src/primitives/state/hydratedBlockByNumber.ts
|
|
258
|
+
import { assertEx as assertEx4 } from "@xylabs/sdk-js";
|
|
259
|
+
async function hydratedBlockByNumber(context, blockNumber) {
|
|
260
|
+
if (blockNumber < 0) throw new Error(`Block number ${blockNumber} is less than 0`);
|
|
261
|
+
if (blockNumber > Number.MAX_SAFE_INTEGER) throw new Error(`Block number ${blockNumber} is greater than the maximum safe integer`);
|
|
262
|
+
if (blockNumber % 1 !== 0) throw new Error(`Block number ${blockNumber} is not an integer`);
|
|
263
|
+
const cacheKey = `${blockNumber}`;
|
|
264
|
+
return await withContextCacheResponse(context, "hydratedBlockByNumber", cacheKey, async () => {
|
|
265
|
+
const block = assertEx4(await blockFromBlockNumber(context, blockNumber), () => `Could not find block for block number ${blockNumber}`);
|
|
266
|
+
return await hydrateBlock(context.store, block._hash);
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
__name(hydratedBlockByNumber, "hydratedBlockByNumber");
|
|
270
|
+
|
|
228
271
|
// src/primitives/step/completedStepRewardAddress.ts
|
|
229
272
|
import { toAddress } from "@xylabs/sdk-js";
|
|
230
273
|
import { StepSizes } from "@xyo-network/xl1-protocol";
|
|
@@ -265,7 +308,7 @@ function stepBlockRange({ block, step }) {
|
|
|
265
308
|
__name(stepBlockRange, "stepBlockRange");
|
|
266
309
|
|
|
267
310
|
// src/primitives/step/stepTransferIndex.ts
|
|
268
|
-
import { assertEx as
|
|
311
|
+
import { assertEx as assertEx5 } from "@xylabs/sdk-js";
|
|
269
312
|
import { StepSizes as StepSizes3 } from "@xyo-network/xl1-protocol";
|
|
270
313
|
function stepTransferIndex(block, step) {
|
|
271
314
|
let rewardTransferCount = 0;
|
|
@@ -279,7 +322,7 @@ function stepTransferIndex(block, step) {
|
|
|
279
322
|
rewardTransferCount++;
|
|
280
323
|
}
|
|
281
324
|
}
|
|
282
|
-
|
|
325
|
+
assertEx5(rewardTransferIndex >= 0, () => `Could not find step size for step ${step} at block ${block}`);
|
|
283
326
|
return [
|
|
284
327
|
rewardTransferIndex,
|
|
285
328
|
rewardTransferCount
|
|
@@ -288,7 +331,7 @@ function stepTransferIndex(block, step) {
|
|
|
288
331
|
__name(stepTransferIndex, "stepTransferIndex");
|
|
289
332
|
|
|
290
333
|
// src/primitives/summary/balances/balancesStepSummaryFromRange.ts
|
|
291
|
-
import { assertEx as
|
|
334
|
+
import { assertEx as assertEx6 } from "@xylabs/sdk-js";
|
|
292
335
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
293
336
|
import { isAnyPayload } from "@xyo-network/payload-model";
|
|
294
337
|
import { StepSizes as StepSizes4 } from "@xyo-network/xl1-protocol";
|
|
@@ -465,7 +508,7 @@ async function balancesStepSummaryFromRange(context, range) {
|
|
|
465
508
|
};
|
|
466
509
|
} else {
|
|
467
510
|
const step = StepSizes4.indexOf(frameSize);
|
|
468
|
-
|
|
511
|
+
assertEx6(step !== -1, () => `Invalid step size: ${frameSize}. Must be one of ${StepSizes4.join(", ")}`);
|
|
469
512
|
const summaryResult = await context.summaryMap.get(`${frameHeadHash}|${frameSize}`);
|
|
470
513
|
if (isAnyPayload(summaryResult)) {
|
|
471
514
|
result = summaryResult;
|
|
@@ -532,7 +575,7 @@ async function balancesSummary(context) {
|
|
|
532
575
|
__name(balancesSummary, "balancesSummary");
|
|
533
576
|
|
|
534
577
|
// src/primitives/summary/schemas/schemasStepSummaryFromRange.ts
|
|
535
|
-
import { assertEx as
|
|
578
|
+
import { assertEx as assertEx7 } from "@xylabs/sdk-js";
|
|
536
579
|
import { isBoundWitness } from "@xyo-network/boundwitness-model";
|
|
537
580
|
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
538
581
|
import { isAnyPayload as isAnyPayload2, isHashMeta } from "@xyo-network/payload-model";
|
|
@@ -564,7 +607,7 @@ async function schemasStepSummaryFromRange(context, range) {
|
|
|
564
607
|
};
|
|
565
608
|
} else {
|
|
566
609
|
const step = StepSizes5.indexOf(frameSize);
|
|
567
|
-
|
|
610
|
+
assertEx7(step !== -1, () => `Invalid step size: ${frameSize}. Must be one of ${StepSizes5.join(", ")}`);
|
|
568
611
|
const summaryResult = await context.summaryMap.get(`${frameHeadHash}|${frameSize}`);
|
|
569
612
|
if (isAnyPayload2(summaryResult)) {
|
|
570
613
|
result = summaryResult;
|
|
@@ -625,7 +668,7 @@ async function schemasSummary(context) {
|
|
|
625
668
|
__name(schemasSummary, "schemasSummary");
|
|
626
669
|
|
|
627
670
|
// src/primitives/summary/transfers/transfersStepSummaryFromRange.ts
|
|
628
|
-
import { assertEx as
|
|
671
|
+
import { assertEx as assertEx8 } from "@xylabs/sdk-js";
|
|
629
672
|
import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
|
|
630
673
|
import { isAnyPayload as isAnyPayload3 } from "@xyo-network/payload-model";
|
|
631
674
|
import { StepSizes as StepSizes6 } from "@xyo-network/xl1-protocol";
|
|
@@ -691,7 +734,7 @@ async function transfersStepSummaryFromRange(context, range) {
|
|
|
691
734
|
};
|
|
692
735
|
} else {
|
|
693
736
|
const step = StepSizes6.indexOf(frameSize);
|
|
694
|
-
|
|
737
|
+
assertEx8(step !== -1, () => `Invalid step size: ${frameSize}. Must be one of ${StepSizes6.join(", ")}`);
|
|
695
738
|
const key = transfersSummaryKey(frameHeadHash, frameSize);
|
|
696
739
|
const summaryResult = await context.summaryMap.get(key);
|
|
697
740
|
if (isAnyPayload3(summaryResult)) {
|
|
@@ -822,7 +865,7 @@ import { PayloadBuilder as PayloadBuilder9 } from "@xyo-network/payload-builder"
|
|
|
822
865
|
import { PayloadBundleSchema } from "@xyo-network/payload-model";
|
|
823
866
|
|
|
824
867
|
// src/transaction/buildTransaction.ts
|
|
825
|
-
import { assertEx as
|
|
868
|
+
import { assertEx as assertEx9, toHex as toHex2 } from "@xylabs/sdk-js";
|
|
826
869
|
import { BoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
|
|
827
870
|
import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/payload-builder";
|
|
828
871
|
import { defaultTransactionFees } from "@xyo-network/xl1-protocol";
|
|
@@ -848,7 +891,7 @@ async function buildTransaction(chain, onChainPayloads, offChainPayloads, signer
|
|
|
848
891
|
}
|
|
849
892
|
const fields = {
|
|
850
893
|
...txBoundWitnessFields,
|
|
851
|
-
from: from ?? (Array.isArray(signer) ?
|
|
894
|
+
from: from ?? (Array.isArray(signer) ? assertEx9(signer.at(0)?.address) : signer.address)
|
|
852
895
|
};
|
|
853
896
|
if (script.length > 0) {
|
|
854
897
|
fields.script = script;
|
|
@@ -937,7 +980,7 @@ var confirmSubmittedTransaction = /* @__PURE__ */ __name(async (viewer, txHash,
|
|
|
937
980
|
}, "confirmSubmittedTransaction");
|
|
938
981
|
|
|
939
982
|
// src/transaction/hydrateTransaction.ts
|
|
940
|
-
import { assertEx as
|
|
983
|
+
import { assertEx as assertEx10 } from "@xylabs/sdk-js";
|
|
941
984
|
import { hydrateTypedBoundWitness, tryHydrateTypedBoundWitness } from "@xyo-network/archivist-model";
|
|
942
985
|
import { isAllowedBlockPayload as isAllowedBlockPayload2, isSignedTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
|
|
943
986
|
var tryHydrateTransaction = /* @__PURE__ */ __name(async ({ chainMap }, hash) => {
|
|
@@ -996,7 +1039,7 @@ var tryHydrateElevatedTransaction = /* @__PURE__ */ __name(async ({ chainMap },
|
|
|
996
1039
|
return void 0;
|
|
997
1040
|
}, "tryHydrateElevatedTransaction");
|
|
998
1041
|
var hydrateElevatedTransaction = /* @__PURE__ */ __name(async (context, hash) => {
|
|
999
|
-
return
|
|
1042
|
+
return assertEx10(await tryHydrateElevatedTransaction(context, hash), () => "Hydration failed");
|
|
1000
1043
|
}, "hydrateElevatedTransaction");
|
|
1001
1044
|
|
|
1002
1045
|
// src/transaction/primitives/transactionBlockByteCount.ts
|
|
@@ -1062,7 +1105,7 @@ __name(transactionRequiredGas, "transactionRequiredGas");
|
|
|
1062
1105
|
|
|
1063
1106
|
// src/transaction/script.ts
|
|
1064
1107
|
import { asHash as asHash2 } from "@xylabs/sdk-js";
|
|
1065
|
-
import { assertEx as
|
|
1108
|
+
import { assertEx as assertEx11, filterAs } from "@xylabs/sdk-js";
|
|
1066
1109
|
import { isAllowedBlockPayloadWithHashMeta } from "@xyo-network/xl1-protocol";
|
|
1067
1110
|
var tryExtractElevatedHashesFromScript = /* @__PURE__ */ __name((strings) => {
|
|
1068
1111
|
const hashes = strings.filter((str) => str.startsWith("elevate|")).map((str) => str.split("|")[1]);
|
|
@@ -1071,7 +1114,7 @@ var tryExtractElevatedHashesFromScript = /* @__PURE__ */ __name((strings) => {
|
|
|
1071
1114
|
var extractElevatedHashesFromScript = /* @__PURE__ */ __name((strings) => {
|
|
1072
1115
|
const hashes = strings.filter((str) => str.startsWith("elevate|")).map((str) => str.split("|")[1]);
|
|
1073
1116
|
const filtered = filterAs(hashes, (h) => asHash2(h));
|
|
1074
|
-
|
|
1117
|
+
assertEx11(filtered.length === hashes.length, () => "Invalid elevated hashes");
|
|
1075
1118
|
return filtered;
|
|
1076
1119
|
}, "extractElevatedHashesFromScript");
|
|
1077
1120
|
var tryExtractElevatedHashes = /* @__PURE__ */ __name((tx) => {
|
|
@@ -1085,15 +1128,15 @@ var extractElevatedHashes = /* @__PURE__ */ __name((tx) => {
|
|
|
1085
1128
|
const { script } = bw;
|
|
1086
1129
|
const hashes = script ? tryExtractElevatedHashesFromScript(script) : [];
|
|
1087
1130
|
const filtered = payloads.filter((p) => hashes.includes(p._hash)).filter(isAllowedBlockPayloadWithHashMeta);
|
|
1088
|
-
|
|
1131
|
+
assertEx11(filtered.length === hashes.length, () => "Invalid elevated hashes");
|
|
1089
1132
|
return filtered;
|
|
1090
1133
|
}, "extractElevatedHashes");
|
|
1091
1134
|
|
|
1092
1135
|
// src/transaction/signTransaction.ts
|
|
1093
|
-
import { assertEx as
|
|
1136
|
+
import { assertEx as assertEx12, hexFromArrayBuffer, toArrayBuffer } from "@xylabs/sdk-js";
|
|
1094
1137
|
import { PayloadBuilder as PayloadBuilder8 } from "@xyo-network/payload-builder";
|
|
1095
1138
|
async function signTransaction(tx, account) {
|
|
1096
|
-
|
|
1139
|
+
assertEx12(tx.from === account.address, () => "Signer address does not match transaction from address");
|
|
1097
1140
|
const unsignedTx = structuredClone(tx);
|
|
1098
1141
|
unsignedTx.addresses = [
|
|
1099
1142
|
account.address
|
|
@@ -1882,7 +1925,7 @@ var isChainIndexingServiceStateWithStorageMeta = /* @__PURE__ */ __name((value)
|
|
|
1882
1925
|
var asChainIndexingServiceStateWithStorageMeta = AsObjectFactory7.create(isChainIndexingServiceStateWithStorageMeta);
|
|
1883
1926
|
|
|
1884
1927
|
// src/simple/accountBalance/SimpleAccountBalanceViewer.ts
|
|
1885
|
-
import { AbstractCreatable, assertEx as
|
|
1928
|
+
import { AbstractCreatable, assertEx as assertEx13, exists, isDefined as isDefined11 } from "@xylabs/sdk-js";
|
|
1886
1929
|
import { spanRootAsync as spanRootAsync4 } from "@xylabs/telemetry";
|
|
1887
1930
|
import { asRange, asXL1BlockNumber as asXL1BlockNumber5, asXL1BlockRange as asXL1BlockRange5, AttoXL1 as AttoXL12, StepSizes as StepSizes9, TransferSchema } from "@xyo-network/xl1-protocol";
|
|
1888
1931
|
var SimpleAccountBalanceViewer = class extends AbstractCreatable {
|
|
@@ -1895,13 +1938,13 @@ var SimpleAccountBalanceViewer = class extends AbstractCreatable {
|
|
|
1895
1938
|
get context() {
|
|
1896
1939
|
return this.params.context;
|
|
1897
1940
|
}
|
|
1898
|
-
get
|
|
1899
|
-
return this.params.
|
|
1941
|
+
get transfersSummaryContext() {
|
|
1942
|
+
return this.params.transfersSummaryContext;
|
|
1900
1943
|
}
|
|
1901
1944
|
static async paramsHandler(params) {
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1945
|
+
assertEx13(params.blockViewer, () => "blockViewer is required");
|
|
1946
|
+
assertEx13(params.context, () => "context is required");
|
|
1947
|
+
assertEx13(params.transfersSummaryContext, () => "transfersSummaryContext is required");
|
|
1905
1948
|
return {
|
|
1906
1949
|
...await super.paramsHandler(params)
|
|
1907
1950
|
};
|
|
@@ -1925,7 +1968,7 @@ var SimpleAccountBalanceViewer = class extends AbstractCreatable {
|
|
|
1925
1968
|
const transferIndexes = block[0].payload_schemas.map((schema, index) => schema === TransferSchema ? index : void 0).filter(exists);
|
|
1926
1969
|
const transfers = transferIndexes.map((index) => {
|
|
1927
1970
|
const hash = block[0].payload_hashes[index];
|
|
1928
|
-
return
|
|
1971
|
+
return assertEx13(block[1].find((p) => p._hash === hash), () => `Error: Could not find Transfer with hash ${hash} in block ${block[0]._hash}`);
|
|
1929
1972
|
}).filter(exists).filter((t) => t.from === address || isDefined11(t.transfers[address]));
|
|
1930
1973
|
if (transfers.length === 0) {
|
|
1931
1974
|
continue;
|
|
@@ -1968,7 +2011,7 @@ var SimpleAccountBalanceViewer = class extends AbstractCreatable {
|
|
|
1968
2011
|
const transferSummaryPairs = await Promise.all(frames.map(async (frame) => {
|
|
1969
2012
|
return [
|
|
1970
2013
|
frame,
|
|
1971
|
-
await transfersStepSummaryFromRange(this.
|
|
2014
|
+
await transfersStepSummaryFromRange(this.transfersSummaryContext, frame)
|
|
1972
2015
|
];
|
|
1973
2016
|
}));
|
|
1974
2017
|
const filteredTransferSummaryPairs = transferSummaryPairs.filter(([_, summary]) => Object.keys(summary.transfers).includes(address));
|
|
@@ -2001,13 +2044,158 @@ var SimpleAccountBalanceViewer = class extends AbstractCreatable {
|
|
|
2001
2044
|
}
|
|
2002
2045
|
};
|
|
2003
2046
|
|
|
2047
|
+
// src/simple/block/SimpleBlockViewer.ts
|
|
2048
|
+
import { AbstractCreatable as AbstractCreatable2, assertEx as assertEx14, spanRootAsync as spanRootAsync5 } from "@xylabs/sdk-js";
|
|
2049
|
+
import { asSignedHydratedBlockWithHashMeta, asXL1BlockNumber as asXL1BlockNumber6 } from "@xyo-network/xl1-protocol";
|
|
2050
|
+
|
|
2051
|
+
// src/utils/HydratedCache.ts
|
|
2052
|
+
import { LRUCache as LRUCache2 } from "lru-cache";
|
|
2053
|
+
var HydratedCache = class {
|
|
2054
|
+
static {
|
|
2055
|
+
__name(this, "HydratedCache");
|
|
2056
|
+
}
|
|
2057
|
+
cache;
|
|
2058
|
+
chainMap;
|
|
2059
|
+
hydrateFunction;
|
|
2060
|
+
constructor(chainMap, hydrateFunction, maxSize = 200) {
|
|
2061
|
+
this.chainMap = chainMap;
|
|
2062
|
+
this.hydrateFunction = hydrateFunction;
|
|
2063
|
+
this.cache = new LRUCache2({
|
|
2064
|
+
max: maxSize
|
|
2065
|
+
});
|
|
2066
|
+
}
|
|
2067
|
+
async get(hash) {
|
|
2068
|
+
const existing = this.cache.get(hash);
|
|
2069
|
+
if (existing !== void 0) return existing;
|
|
2070
|
+
const block = await this.hydrateFunction({
|
|
2071
|
+
chainMap: this.chainMap
|
|
2072
|
+
}, hash) ?? null;
|
|
2073
|
+
if (block !== null) this.cache.set(hash, block);
|
|
2074
|
+
return block;
|
|
2075
|
+
}
|
|
2076
|
+
has(hash) {
|
|
2077
|
+
return this.cache.has(hash);
|
|
2078
|
+
}
|
|
2079
|
+
};
|
|
2080
|
+
|
|
2081
|
+
// src/utils/isZodError.ts
|
|
2082
|
+
import * as z20 from "zod";
|
|
2083
|
+
var isZodError = /* @__PURE__ */ __name((error) => {
|
|
2084
|
+
return error instanceof z20.ZodError;
|
|
2085
|
+
}, "isZodError");
|
|
2086
|
+
var prettifyZodError = /* @__PURE__ */ __name((error) => {
|
|
2087
|
+
return z20.prettifyError(error);
|
|
2088
|
+
}, "prettifyZodError");
|
|
2089
|
+
|
|
2090
|
+
// src/simple/block/SimpleBlockViewer.ts
|
|
2091
|
+
var SimpleBlockViewer = class extends AbstractCreatable2 {
|
|
2092
|
+
static {
|
|
2093
|
+
__name(this, "SimpleBlockViewer");
|
|
2094
|
+
}
|
|
2095
|
+
_signedHydratedBlockCache;
|
|
2096
|
+
get context() {
|
|
2097
|
+
return this.params.context;
|
|
2098
|
+
}
|
|
2099
|
+
get finalizedArchivist() {
|
|
2100
|
+
return this.params.finalizedArchivist;
|
|
2101
|
+
}
|
|
2102
|
+
static async paramsHandler(params) {
|
|
2103
|
+
assertEx14(params.context, () => "context is required");
|
|
2104
|
+
assertEx14(params.finalizedArchivist, () => "finalizedArchivist is required");
|
|
2105
|
+
return {
|
|
2106
|
+
...await super.paramsHandler(params)
|
|
2107
|
+
};
|
|
2108
|
+
}
|
|
2109
|
+
async blockByHash(hash) {
|
|
2110
|
+
return await spanRootAsync5("blockByHash", async () => {
|
|
2111
|
+
const cache = this.getHydratedBlockCache();
|
|
2112
|
+
return await cache.get(hash);
|
|
2113
|
+
}, this.tracer);
|
|
2114
|
+
}
|
|
2115
|
+
async blockByNumber(blockNumber) {
|
|
2116
|
+
return await spanRootAsync5("blockByNumber", async () => {
|
|
2117
|
+
return asSignedHydratedBlockWithHashMeta(await hydratedBlockByNumber(this.context, blockNumber)) ?? null;
|
|
2118
|
+
}, this.tracer);
|
|
2119
|
+
}
|
|
2120
|
+
async blocksByHash(hash, limit = 50) {
|
|
2121
|
+
return await spanRootAsync5("blocksByHash", async () => {
|
|
2122
|
+
assertEx14(limit > 0, () => "limit must be greater than 0");
|
|
2123
|
+
assertEx14(limit <= 100, () => "limit must be less than 100");
|
|
2124
|
+
const blocks = [];
|
|
2125
|
+
let current = await this.blockByHash(hash);
|
|
2126
|
+
while (current && blocks.length < limit) {
|
|
2127
|
+
blocks.push(current);
|
|
2128
|
+
const previousHash = current[0].previous;
|
|
2129
|
+
if (previousHash === null) break;
|
|
2130
|
+
current = await this.blockByHash(previousHash);
|
|
2131
|
+
}
|
|
2132
|
+
return blocks.map((b) => asSignedHydratedBlockWithHashMeta(b, true));
|
|
2133
|
+
}, this.tracer);
|
|
2134
|
+
}
|
|
2135
|
+
async blocksByNumber(blockNumber, limit = 50) {
|
|
2136
|
+
return await spanRootAsync5("blocksByHash", async () => {
|
|
2137
|
+
assertEx14(limit > 0, () => "limit must be greater than 0");
|
|
2138
|
+
assertEx14(limit <= 100, () => "limit must be less than 100");
|
|
2139
|
+
const blocks = [];
|
|
2140
|
+
let current = await this.blockByNumber(blockNumber);
|
|
2141
|
+
while (current && blocks.length < limit) {
|
|
2142
|
+
blocks.push(current);
|
|
2143
|
+
if (current[0].block === 0) break;
|
|
2144
|
+
const previousNumber = asXL1BlockNumber6(current[0].block - 1, true);
|
|
2145
|
+
current = await this.blockByNumber(previousNumber);
|
|
2146
|
+
}
|
|
2147
|
+
return blocks.map((b) => asSignedHydratedBlockWithHashMeta(b, true));
|
|
2148
|
+
}, this.tracer);
|
|
2149
|
+
}
|
|
2150
|
+
async currentBlock() {
|
|
2151
|
+
return await spanRootAsync5("currentBlock", async () => {
|
|
2152
|
+
const currentHead = assertEx14(await this.getCurrentHead(), () => "Could not find most recent block");
|
|
2153
|
+
const cache = this.getHydratedBlockCache();
|
|
2154
|
+
const block = await cache.get(currentHead._hash);
|
|
2155
|
+
if (!block) {
|
|
2156
|
+
console.log(`Could not find current block with hash ${currentHead._hash}`);
|
|
2157
|
+
}
|
|
2158
|
+
return assertEx14(block, () => "Could not find current block");
|
|
2159
|
+
}, this.tracer);
|
|
2160
|
+
}
|
|
2161
|
+
async currentBlockHash() {
|
|
2162
|
+
return await spanRootAsync5("currentBlockHash", async () => {
|
|
2163
|
+
const currentHead = assertEx14(await this.getCurrentHead(), () => "Could not find most recent block");
|
|
2164
|
+
return currentHead._hash;
|
|
2165
|
+
}, this.tracer);
|
|
2166
|
+
}
|
|
2167
|
+
async currentBlockNumber() {
|
|
2168
|
+
return await spanRootAsync5("currentBlockNumber", async () => {
|
|
2169
|
+
const currentHead = assertEx14(await this.getCurrentHead(), () => "Could not find most recent block");
|
|
2170
|
+
return asXL1BlockNumber6(currentHead.block, {
|
|
2171
|
+
name: "currentBlockNumber"
|
|
2172
|
+
});
|
|
2173
|
+
}, this.tracer);
|
|
2174
|
+
}
|
|
2175
|
+
async getCurrentHead() {
|
|
2176
|
+
const chainArchivist = this.finalizedArchivist;
|
|
2177
|
+
return await findMostRecentBlock(chainArchivist);
|
|
2178
|
+
}
|
|
2179
|
+
getHydratedBlockCache() {
|
|
2180
|
+
if (this._signedHydratedBlockCache) return this._signedHydratedBlockCache;
|
|
2181
|
+
const chainMap = this.context.store.chainMap;
|
|
2182
|
+
this._signedHydratedBlockCache = new HydratedCache(chainMap, async ({ chainMap: chainMap2 }, hash, maxDepth, minDepth) => {
|
|
2183
|
+
const result = await hydrateBlock({
|
|
2184
|
+
chainMap: chainMap2
|
|
2185
|
+
}, hash, maxDepth, minDepth);
|
|
2186
|
+
return asSignedHydratedBlockWithHashMeta(result, true);
|
|
2187
|
+
}, 200);
|
|
2188
|
+
return this._signedHydratedBlockCache;
|
|
2189
|
+
}
|
|
2190
|
+
};
|
|
2191
|
+
|
|
2004
2192
|
// src/simple/chainStake/SimpleChainStakeViewer.ts
|
|
2005
2193
|
import { asAddress as asAddress5, toAddress as toAddress5 } from "@xylabs/sdk-js";
|
|
2006
|
-
import { AbstractCreatable as
|
|
2194
|
+
import { AbstractCreatable as AbstractCreatable4, assertEx as assertEx15, creatable as creatable2 } from "@xylabs/sdk-js";
|
|
2007
2195
|
import { Account } from "@xyo-network/account";
|
|
2008
2196
|
|
|
2009
2197
|
// src/simple/chainStakeEvents/SimpleChainStakeEventsViewer.ts
|
|
2010
|
-
import { AbstractCreatable as
|
|
2198
|
+
import { AbstractCreatable as AbstractCreatable3, creatable, isDefined as isDefined12 } from "@xylabs/sdk-js";
|
|
2011
2199
|
function _ts_decorate(decorators, target, key, desc) {
|
|
2012
2200
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2013
2201
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -2015,7 +2203,7 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
2015
2203
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
2016
2204
|
}
|
|
2017
2205
|
__name(_ts_decorate, "_ts_decorate");
|
|
2018
|
-
var SimpleChainStakeEventsViewer = class extends
|
|
2206
|
+
var SimpleChainStakeEventsViewer = class extends AbstractCreatable3 {
|
|
2019
2207
|
static {
|
|
2020
2208
|
__name(this, "SimpleChainStakeEventsViewer");
|
|
2021
2209
|
}
|
|
@@ -2099,14 +2287,14 @@ function _ts_decorate2(decorators, target, key, desc) {
|
|
|
2099
2287
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
2100
2288
|
}
|
|
2101
2289
|
__name(_ts_decorate2, "_ts_decorate");
|
|
2102
|
-
var SimpleChainStakeViewer = class extends
|
|
2290
|
+
var SimpleChainStakeViewer = class extends AbstractCreatable4 {
|
|
2103
2291
|
static {
|
|
2104
2292
|
__name(this, "SimpleChainStakeViewer");
|
|
2105
2293
|
}
|
|
2106
2294
|
_chainId;
|
|
2107
2295
|
_chainStakeEventsViewer;
|
|
2108
2296
|
get chainId() {
|
|
2109
|
-
return
|
|
2297
|
+
return assertEx15(this._chainId, () => "Chain ID not set");
|
|
2110
2298
|
}
|
|
2111
2299
|
get chainMap() {
|
|
2112
2300
|
return this.params.chainMap;
|
|
@@ -2118,7 +2306,7 @@ var SimpleChainStakeViewer = class extends AbstractCreatable3 {
|
|
|
2118
2306
|
return toAddress5(toAddress5(1n));
|
|
2119
2307
|
}
|
|
2120
2308
|
get stakeEvents() {
|
|
2121
|
-
return
|
|
2309
|
+
return assertEx15(this._chainStakeEventsViewer, () => "Stake events viewer not set");
|
|
2122
2310
|
}
|
|
2123
2311
|
get stakingTokenAddress() {
|
|
2124
2312
|
return toAddress5("0x000000000000000000000000000011");
|
|
@@ -2172,7 +2360,7 @@ var SimpleChainStakeViewer = class extends AbstractCreatable3 {
|
|
|
2172
2360
|
return pending;
|
|
2173
2361
|
}
|
|
2174
2362
|
stakeById(id) {
|
|
2175
|
-
return
|
|
2363
|
+
return assertEx15(this.positions[id], () => new Error(`Stake with id ${id} not found`));
|
|
2176
2364
|
}
|
|
2177
2365
|
stakeByStaker(staker, slot) {
|
|
2178
2366
|
return this.positions.filter((s) => asAddress5(s.staker) === asAddress5(staker))[slot];
|
|
@@ -2339,9 +2527,9 @@ var SimpleXyoGateway = class {
|
|
|
2339
2527
|
};
|
|
2340
2528
|
|
|
2341
2529
|
// src/simple/gateway/SimpleXyoGatewayRunner.ts
|
|
2342
|
-
import { assertEx as
|
|
2530
|
+
import { assertEx as assertEx16, BigIntToJsonZod, isDefined as isDefined13 } from "@xylabs/sdk-js";
|
|
2343
2531
|
import { PayloadBuilder as PayloadBuilder12 } from "@xyo-network/payload-builder";
|
|
2344
|
-
import { asXL1BlockNumber as
|
|
2532
|
+
import { asXL1BlockNumber as asXL1BlockNumber7, TransferSchema as TransferSchema2 } from "@xyo-network/xl1-protocol";
|
|
2345
2533
|
var SimpleXyoGatewayRunner = class {
|
|
2346
2534
|
static {
|
|
2347
2535
|
__name(this, "SimpleXyoGatewayRunner");
|
|
@@ -2370,18 +2558,18 @@ var SimpleXyoGatewayRunner = class {
|
|
|
2370
2558
|
return this._dataLakes.length - 1;
|
|
2371
2559
|
}
|
|
2372
2560
|
async addPayloadsToChain(onChain, offChain, options) {
|
|
2373
|
-
const viewer =
|
|
2561
|
+
const viewer = assertEx16(this.connectionInstance.viewer, () => "No viewer available on connection");
|
|
2374
2562
|
const { nbf, exp, chain, fees } = options ?? {};
|
|
2375
2563
|
const resolvedChainId = isDefined13(chain) ? chain : await viewer.chainId();
|
|
2376
|
-
const resolvedNbf =
|
|
2377
|
-
const resolvedExp =
|
|
2564
|
+
const resolvedNbf = asXL1BlockNumber7(isDefined13(nbf) ? nbf : await viewer.currentBlockNumber(), true);
|
|
2565
|
+
const resolvedExp = asXL1BlockNumber7(isDefined13(exp) ? exp : resolvedNbf + 10, true);
|
|
2378
2566
|
const tx = await buildUnsignedTransaction(resolvedChainId, onChain, offChain, resolvedNbf, resolvedExp, await (await this.signer()).address(), fees);
|
|
2379
2567
|
return await this.addTransactionToChain(tx);
|
|
2380
2568
|
}
|
|
2381
2569
|
async addTransactionToChain(tx) {
|
|
2382
2570
|
const connection = this.connectionInstance;
|
|
2383
2571
|
const signer = this.signerInstance;
|
|
2384
|
-
const runner =
|
|
2572
|
+
const runner = assertEx16(connection.runner, () => "No runner available on connection");
|
|
2385
2573
|
const signedTx = await signer.signTransaction(tx);
|
|
2386
2574
|
await this.addPayloadsToDataLakes(signedTx[1]);
|
|
2387
2575
|
return [
|
|
@@ -2393,7 +2581,7 @@ var SimpleXyoGatewayRunner = class {
|
|
|
2393
2581
|
];
|
|
2394
2582
|
}
|
|
2395
2583
|
async confirmSubmittedTransaction(txHash, options) {
|
|
2396
|
-
return await confirmSubmittedTransaction(
|
|
2584
|
+
return await confirmSubmittedTransaction(assertEx16(this.connectionInstance.viewer, () => "Connection viewer is undefined"), txHash, options);
|
|
2397
2585
|
}
|
|
2398
2586
|
/** @deprecated use connectionInstance instead */
|
|
2399
2587
|
connection() {
|
|
@@ -2511,7 +2699,7 @@ var SimpleXyoNetwork = class {
|
|
|
2511
2699
|
};
|
|
2512
2700
|
|
|
2513
2701
|
// src/simple/permissions/SimpleXyoPermissions.ts
|
|
2514
|
-
import { assertEx as
|
|
2702
|
+
import { assertEx as assertEx17 } from "@xylabs/sdk-js";
|
|
2515
2703
|
var SimpleXyoPermissions = class {
|
|
2516
2704
|
static {
|
|
2517
2705
|
__name(this, "SimpleXyoPermissions");
|
|
@@ -2523,7 +2711,7 @@ var SimpleXyoPermissions = class {
|
|
|
2523
2711
|
this.invoker = store.invoker;
|
|
2524
2712
|
}
|
|
2525
2713
|
get store() {
|
|
2526
|
-
return
|
|
2714
|
+
return assertEx17(this._store, () => "Store must be defined to get permissions");
|
|
2527
2715
|
}
|
|
2528
2716
|
async getPermissions() {
|
|
2529
2717
|
return await this.store.getPermissions();
|
|
@@ -2581,7 +2769,7 @@ var SimpleXyoPermissions = class {
|
|
|
2581
2769
|
};
|
|
2582
2770
|
|
|
2583
2771
|
// src/simple/permissions/store/MemoryPermissions.ts
|
|
2584
|
-
import { assertEx as
|
|
2772
|
+
import { assertEx as assertEx18 } from "@xylabs/sdk-js";
|
|
2585
2773
|
var MemoryPermissionsStore = class {
|
|
2586
2774
|
static {
|
|
2587
2775
|
__name(this, "MemoryPermissionsStore");
|
|
@@ -2592,7 +2780,7 @@ var MemoryPermissionsStore = class {
|
|
|
2592
2780
|
this._invoker = invoker;
|
|
2593
2781
|
}
|
|
2594
2782
|
get invoker() {
|
|
2595
|
-
return
|
|
2783
|
+
return assertEx18(this._invoker, () => "Invoker must be defined to get permissions");
|
|
2596
2784
|
}
|
|
2597
2785
|
async getPermissions() {
|
|
2598
2786
|
await Promise.resolve();
|
|
@@ -2659,8 +2847,8 @@ var SimpleXyoSigner = class {
|
|
|
2659
2847
|
};
|
|
2660
2848
|
|
|
2661
2849
|
// src/simple/timesync/SimpleTimeSyncViewer.ts
|
|
2662
|
-
import { asHash as asHash5, assertEx as
|
|
2663
|
-
import { asTimePayload, asXL1BlockNumber as
|
|
2850
|
+
import { asHash as asHash5, assertEx as assertEx19, isDefined as isDefined14 } from "@xylabs/sdk-js";
|
|
2851
|
+
import { asTimePayload, asXL1BlockNumber as asXL1BlockNumber8, TimeSchema } from "@xyo-network/xl1-protocol";
|
|
2664
2852
|
var SimpleTimeSyncViewer = class {
|
|
2665
2853
|
static {
|
|
2666
2854
|
__name(this, "SimpleTimeSyncViewer");
|
|
@@ -2674,7 +2862,7 @@ var SimpleTimeSyncViewer = class {
|
|
|
2674
2862
|
async convertTime(fromDomain, toDomain, from) {
|
|
2675
2863
|
switch (fromDomain) {
|
|
2676
2864
|
case "xl1": {
|
|
2677
|
-
const [block, payloads] =
|
|
2865
|
+
const [block, payloads] = assertEx19(await this.blockViewer.blockByNumber(asXL1BlockNumber8(from, true)), () => "Block not found");
|
|
2678
2866
|
const timeSchemaIndex = block.payload_schemas.indexOf(TimeSchema);
|
|
2679
2867
|
const hash = timeSchemaIndex === -1 ? void 0 : block.payload_hashes[timeSchemaIndex];
|
|
2680
2868
|
const timePayload = asTimePayload(isDefined14(hash) ? payloads.find((p) => p._hash === hash) : void 0);
|
|
@@ -2740,10 +2928,10 @@ var SimpleTimeSyncViewer = class {
|
|
|
2740
2928
|
];
|
|
2741
2929
|
}
|
|
2742
2930
|
case "ethereum": {
|
|
2743
|
-
const provider =
|
|
2931
|
+
const provider = assertEx19(this.ethProvider, () => "Ethereum provider not configured");
|
|
2744
2932
|
const blockNumber = await provider.getBlockNumber() ?? 0;
|
|
2745
2933
|
const block = await provider.getBlock(blockNumber);
|
|
2746
|
-
const blockHash = asHash5(
|
|
2934
|
+
const blockHash = asHash5(assertEx19(block?.hash, () => "Block hash not found"), true);
|
|
2747
2935
|
return [
|
|
2748
2936
|
blockNumber,
|
|
2749
2937
|
blockHash
|
|
@@ -2760,7 +2948,7 @@ var SimpleTimeSyncViewer = class {
|
|
|
2760
2948
|
};
|
|
2761
2949
|
|
|
2762
2950
|
// src/time/primitives/xl1BlockNumberToEthBlockNumber.ts
|
|
2763
|
-
import { assertEx as
|
|
2951
|
+
import { assertEx as assertEx20 } from "@xylabs/sdk-js";
|
|
2764
2952
|
import { asTimePayload as asTimePayload2, TimeSchema as TimeSchema2 } from "@xyo-network/xl1-protocol";
|
|
2765
2953
|
async function xl1BlockNumberToEthBlockNumber(context, xl1BlockNumber) {
|
|
2766
2954
|
const blockHash = await hashFromBlockNumber(context, xl1BlockNumber);
|
|
@@ -2768,19 +2956,10 @@ async function xl1BlockNumberToEthBlockNumber(context, xl1BlockNumber) {
|
|
|
2768
2956
|
const timePayload = asTimePayload2(hydratedBlock[1].find((p) => p.schema === TimeSchema2), {
|
|
2769
2957
|
required: true
|
|
2770
2958
|
});
|
|
2771
|
-
return
|
|
2959
|
+
return assertEx20(timePayload.ethereum, () => "No ethereum timestamp found on block");
|
|
2772
2960
|
}
|
|
2773
2961
|
__name(xl1BlockNumberToEthBlockNumber, "xl1BlockNumberToEthBlockNumber");
|
|
2774
2962
|
|
|
2775
|
-
// src/utils/isZodError.ts
|
|
2776
|
-
import * as z20 from "zod";
|
|
2777
|
-
var isZodError = /* @__PURE__ */ __name((error) => {
|
|
2778
|
-
return error instanceof z20.ZodError;
|
|
2779
|
-
}, "isZodError");
|
|
2780
|
-
var prettifyZodError = /* @__PURE__ */ __name((error) => {
|
|
2781
|
-
return z20.prettifyError(error);
|
|
2782
|
-
}, "prettifyZodError");
|
|
2783
|
-
|
|
2784
2963
|
// src/viewers/AccountBalance.ts
|
|
2785
2964
|
import { WithHashMetaZod } from "@xyo-network/payload-model";
|
|
2786
2965
|
import { TransferZod } from "@xyo-network/xl1-protocol";
|
|
@@ -2855,6 +3034,7 @@ export {
|
|
|
2855
3034
|
GlobalMetaSchema,
|
|
2856
3035
|
HydratedBlockStateValidationError,
|
|
2857
3036
|
HydratedBlockValidationError,
|
|
3037
|
+
HydratedCache,
|
|
2858
3038
|
JSONSchemaMetaSchema,
|
|
2859
3039
|
LruCacheMap,
|
|
2860
3040
|
MemoryMap,
|
|
@@ -2864,6 +3044,7 @@ export {
|
|
|
2864
3044
|
RewardMultipliers,
|
|
2865
3045
|
SchemasStepSummarySchema,
|
|
2866
3046
|
SimpleAccountBalanceViewer,
|
|
3047
|
+
SimpleBlockViewer,
|
|
2867
3048
|
SimpleChainStakeViewer,
|
|
2868
3049
|
SimpleDataLakeRunner,
|
|
2869
3050
|
SimpleDataLakeViewer,
|
|
@@ -2922,6 +3103,7 @@ export {
|
|
|
2922
3103
|
elevatedPayloads,
|
|
2923
3104
|
extractElevatedHashes,
|
|
2924
3105
|
extractElevatedHashesFromScript,
|
|
3106
|
+
findMostRecentBlock,
|
|
2925
3107
|
flattenHydratedBlock,
|
|
2926
3108
|
flattenHydratedBlocks,
|
|
2927
3109
|
flattenHydratedTransaction,
|
|
@@ -2934,6 +3116,7 @@ export {
|
|
|
2934
3116
|
hydrateBlock,
|
|
2935
3117
|
hydrateElevatedTransaction,
|
|
2936
3118
|
hydrateTransaction,
|
|
3119
|
+
hydratedBlockByNumber,
|
|
2937
3120
|
hydratedTransactionToPayloadBundle,
|
|
2938
3121
|
isAddressPairPayload,
|
|
2939
3122
|
isBalancesStepSummary,
|