@xyo-network/xl1-protocol-sdk 4.0.7 → 4.0.8
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/config/index.d.ts +2 -0
- package/dist/neutral/config/index.d.ts.map +1 -1
- package/dist/neutral/config/restConnectionFromS3Bucket.d.ts +5 -0
- package/dist/neutral/config/restConnectionFromS3Bucket.d.ts.map +1 -0
- package/dist/neutral/config/synthesizeMemoryViewerBindings.d.ts +8 -0
- package/dist/neutral/config/synthesizeMemoryViewerBindings.d.ts.map +1 -0
- package/dist/neutral/index.mjs +191 -150
- package/dist/neutral/index.mjs.map +4 -4
- package/dist/node/config/index.d.ts +2 -0
- package/dist/node/config/index.d.ts.map +1 -1
- package/dist/node/config/restConnectionFromS3Bucket.d.ts +5 -0
- package/dist/node/config/restConnectionFromS3Bucket.d.ts.map +1 -0
- package/dist/node/config/synthesizeMemoryViewerBindings.d.ts +8 -0
- package/dist/node/config/synthesizeMemoryViewerBindings.d.ts.map +1 -0
- package/dist/node/index-node.mjs +209 -168
- package/dist/node/index-node.mjs.map +4 -4
- package/package.json +7 -7
package/dist/neutral/index.mjs
CHANGED
|
@@ -3089,6 +3089,45 @@ function resolveRestConnectionEndpoint(config, moniker) {
|
|
|
3089
3089
|
return baseUrl;
|
|
3090
3090
|
}
|
|
3091
3091
|
|
|
3092
|
+
// src/config/restConnectionFromS3Bucket.ts
|
|
3093
|
+
import { assertEx as assertEx22, isDefined as isDefined15 } from "@ariestools/sdk";
|
|
3094
|
+
function restConnectionFromS3Bucket(bucket) {
|
|
3095
|
+
const baseUrl = assertEx22(
|
|
3096
|
+
isDefined15(bucket.readUrl) && bucket.readUrl !== "" ? bucket.readUrl : void 0,
|
|
3097
|
+
() => "S3 bucket config has no readUrl \u2014 a public read URL is required to derive a REST connection"
|
|
3098
|
+
);
|
|
3099
|
+
return { type: "rest", baseUrl };
|
|
3100
|
+
}
|
|
3101
|
+
|
|
3102
|
+
// src/config/synthesizeMemoryViewerBindings.ts
|
|
3103
|
+
var MEMORY_CONNECTION = "memory";
|
|
3104
|
+
var MEMORY_MONIKERS = [
|
|
3105
|
+
"AccountBalanceViewer",
|
|
3106
|
+
"BlockRewardViewer",
|
|
3107
|
+
"MempoolViewer",
|
|
3108
|
+
"NetworkStakeViewer",
|
|
3109
|
+
"NetworkStakeStepRewardsByPositionViewer",
|
|
3110
|
+
"NetworkStakeStepRewardsByStakerViewer",
|
|
3111
|
+
"NetworkStakeStepRewardsByStepViewer",
|
|
3112
|
+
"NetworkStakeStepRewardsTotalViewer",
|
|
3113
|
+
"NetworkStakeStepRewardsViewer",
|
|
3114
|
+
"StakeEventsViewer",
|
|
3115
|
+
"StakeTotalsViewer",
|
|
3116
|
+
"StakeViewer",
|
|
3117
|
+
"StepViewer",
|
|
3118
|
+
"TimeSyncViewer",
|
|
3119
|
+
"TransactionViewer",
|
|
3120
|
+
"WindowedBlockViewer",
|
|
3121
|
+
"XyoViewer"
|
|
3122
|
+
];
|
|
3123
|
+
function synthesizeMemoryViewerBindings() {
|
|
3124
|
+
const bindings = {};
|
|
3125
|
+
for (const moniker of MEMORY_MONIKERS) {
|
|
3126
|
+
bindings[moniker] = { connection: MEMORY_CONNECTION };
|
|
3127
|
+
}
|
|
3128
|
+
return bindings;
|
|
3129
|
+
}
|
|
3130
|
+
|
|
3092
3131
|
// src/config/synthesizeRpcConnectionBindings.ts
|
|
3093
3132
|
var DEFAULT_RPC_CONNECTION = "default-rpc";
|
|
3094
3133
|
var RPC_MONIKERS = [
|
|
@@ -3226,7 +3265,7 @@ import { PayloadBundleSchema as PayloadBundleSchema2 } from "@xyo-network/sdk-js
|
|
|
3226
3265
|
import { PayloadBuilder as PayloadBuilder12 } from "@xyo-network/sdk-js";
|
|
3227
3266
|
|
|
3228
3267
|
// src/transaction/buildTransaction.ts
|
|
3229
|
-
import { assertEx as
|
|
3268
|
+
import { assertEx as assertEx23, toHex } from "@ariestools/sdk";
|
|
3230
3269
|
import {
|
|
3231
3270
|
asAnyPayload as asAnyPayload2,
|
|
3232
3271
|
BoundWitnessBuilder as BoundWitnessBuilder2,
|
|
@@ -3252,7 +3291,7 @@ async function buildTransaction(chain, onChainPayloads, offChainPayloads, signer
|
|
|
3252
3291
|
const script = Array.from(elevatedHashes, (elevatedHash) => `elevate|${elevatedHash}`);
|
|
3253
3292
|
const fields = {
|
|
3254
3293
|
...txBoundWitnessFields,
|
|
3255
|
-
from: from ?? (Array.isArray(signer) ?
|
|
3294
|
+
from: from ?? (Array.isArray(signer) ? assertEx23(signer.at(0)?.address) : signer.address)
|
|
3256
3295
|
};
|
|
3257
3296
|
if (script.length > 0) {
|
|
3258
3297
|
fields.script = script;
|
|
@@ -3297,7 +3336,7 @@ async function buildUnsignedTransaction(chain, onChainPayloads, offChainPayloads
|
|
|
3297
3336
|
// src/transaction/confirmSubmittedTransaction.ts
|
|
3298
3337
|
import {
|
|
3299
3338
|
delay,
|
|
3300
|
-
isDefined as
|
|
3339
|
+
isDefined as isDefined16,
|
|
3301
3340
|
isNumber
|
|
3302
3341
|
} from "@ariestools/sdk";
|
|
3303
3342
|
var DEFAULT_CONFIRMATION_ATTEMPTS = 20;
|
|
@@ -3319,7 +3358,7 @@ var confirmSubmittedTransaction = async (viewer, txHash, options) => {
|
|
|
3319
3358
|
let attempts = 0;
|
|
3320
3359
|
while (true) {
|
|
3321
3360
|
const tx = await viewer.transaction.byHash(txHash) ?? void 0;
|
|
3322
|
-
if (
|
|
3361
|
+
if (isDefined16(tx)) {
|
|
3323
3362
|
options?.logger?.debug("Transaction confirmed", txHash);
|
|
3324
3363
|
return tx;
|
|
3325
3364
|
}
|
|
@@ -3337,7 +3376,7 @@ var confirmSubmittedTransaction = async (viewer, txHash, options) => {
|
|
|
3337
3376
|
};
|
|
3338
3377
|
|
|
3339
3378
|
// src/transaction/hydrateTransaction.ts
|
|
3340
|
-
import { assertEx as
|
|
3379
|
+
import { assertEx as assertEx24 } from "@ariestools/sdk";
|
|
3341
3380
|
import {
|
|
3342
3381
|
asAnyPayload as asAnyPayload3,
|
|
3343
3382
|
hydrateTypedBoundWitness,
|
|
@@ -3408,7 +3447,7 @@ var tryHydrateElevatedTransaction = async ({ chainMap }, hash) => {
|
|
|
3408
3447
|
return void 0;
|
|
3409
3448
|
};
|
|
3410
3449
|
var hydrateElevatedTransaction = async (context, hash) => {
|
|
3411
|
-
return
|
|
3450
|
+
return assertEx24(await tryHydrateElevatedTransaction(context, hash), () => "Hydration failed");
|
|
3412
3451
|
};
|
|
3413
3452
|
|
|
3414
3453
|
// src/transaction/primitives/transactionBlockByteCount.ts
|
|
@@ -3461,7 +3500,7 @@ function transactionRequiredGas(hydratedTransaction) {
|
|
|
3461
3500
|
|
|
3462
3501
|
// src/transaction/signTransaction.ts
|
|
3463
3502
|
import {
|
|
3464
|
-
assertEx as
|
|
3503
|
+
assertEx as assertEx25,
|
|
3465
3504
|
hexFromArrayBuffer,
|
|
3466
3505
|
toArrayBuffer
|
|
3467
3506
|
} from "@ariestools/sdk";
|
|
@@ -3478,12 +3517,12 @@ async function signBoundWitness(bw, account) {
|
|
|
3478
3517
|
};
|
|
3479
3518
|
}
|
|
3480
3519
|
async function signTransaction(tx, account) {
|
|
3481
|
-
|
|
3520
|
+
assertEx25(tx.from === account.address, () => "Signer address does not match transaction from address");
|
|
3482
3521
|
return await signBoundWitness(tx, account);
|
|
3483
3522
|
}
|
|
3484
3523
|
|
|
3485
3524
|
// src/transaction/TransactionBuilder.ts
|
|
3486
|
-
import { assertEx as
|
|
3525
|
+
import { assertEx as assertEx26, Base } from "@ariestools/sdk";
|
|
3487
3526
|
import { PayloadBuilder as PayloadBuilder11 } from "@xyo-network/sdk-js";
|
|
3488
3527
|
import {
|
|
3489
3528
|
asXL1BlockNumber as asXL1BlockNumber4,
|
|
@@ -3503,9 +3542,9 @@ var TransactionBuilder = class extends Base {
|
|
|
3503
3542
|
super(options);
|
|
3504
3543
|
}
|
|
3505
3544
|
async build() {
|
|
3506
|
-
const chain =
|
|
3507
|
-
const fees =
|
|
3508
|
-
const blockRange =
|
|
3545
|
+
const chain = assertEx26(this._chain, () => "Chain must be set before building the transaction");
|
|
3546
|
+
const fees = assertEx26(this._fees, () => "Fees must be set before building the transaction");
|
|
3547
|
+
const blockRange = assertEx26(this._blockRange, () => "Block range must be set before building the transaction");
|
|
3509
3548
|
return await buildTransaction(
|
|
3510
3549
|
chain,
|
|
3511
3550
|
this._elevatedPayloads,
|
|
@@ -3535,7 +3574,7 @@ var TransactionBuilder = class extends Base {
|
|
|
3535
3574
|
}
|
|
3536
3575
|
elevatedPayload(payload) {
|
|
3537
3576
|
const allowedPayload = isAllowedBlockPayload2(payload) ? payload : void 0;
|
|
3538
|
-
const allowPayloadExists =
|
|
3577
|
+
const allowPayloadExists = assertEx26(allowedPayload, () => "Payload must be an AllowedBlockPayload");
|
|
3539
3578
|
this._elevatedPayloads.push(allowPayloadExists);
|
|
3540
3579
|
return this;
|
|
3541
3580
|
}
|
|
@@ -3651,7 +3690,7 @@ var toHostActorConfigContext = zodToFactory6(HostActorConfigContext, "toHostActo
|
|
|
3651
3690
|
// src/CreatableProvider/AbstractCreatableProvider.ts
|
|
3652
3691
|
import {
|
|
3653
3692
|
AbstractCreatable,
|
|
3654
|
-
assertEx as
|
|
3693
|
+
assertEx as assertEx27,
|
|
3655
3694
|
IdLogger
|
|
3656
3695
|
} from "@ariestools/sdk";
|
|
3657
3696
|
var AbstractCreatableProvider = class extends AbstractCreatable {
|
|
@@ -3685,9 +3724,9 @@ var AbstractCreatableProvider = class extends AbstractCreatable {
|
|
|
3685
3724
|
return factory;
|
|
3686
3725
|
}
|
|
3687
3726
|
static async paramsHandler(params = {}) {
|
|
3688
|
-
const context =
|
|
3689
|
-
const config =
|
|
3690
|
-
const locator =
|
|
3727
|
+
const context = assertEx27(params.context, () => new Error("Context is required"));
|
|
3728
|
+
const config = assertEx27(context.config, () => new Error("Context config is required"));
|
|
3729
|
+
const locator = assertEx27(context.locator, () => new Error("Context locator is required"));
|
|
3691
3730
|
return await super.paramsHandler({
|
|
3692
3731
|
...params,
|
|
3693
3732
|
statusReporter: params.statusReporter ?? context.statusReporter,
|
|
@@ -3730,13 +3769,13 @@ function labeledCreatableProvider() {
|
|
|
3730
3769
|
}
|
|
3731
3770
|
|
|
3732
3771
|
// src/createDeclarationPayload.ts
|
|
3733
|
-
import { isDefined as
|
|
3772
|
+
import { isDefined as isDefined17 } from "@ariestools/sdk";
|
|
3734
3773
|
import { PayloadBuilder as PayloadBuilder13 } from "@xyo-network/sdk-js";
|
|
3735
3774
|
import {
|
|
3736
3775
|
ChainStakeIntentSchema
|
|
3737
3776
|
} from "@xyo-network/xl1-protocol-lib";
|
|
3738
3777
|
var createDeclarationIntent = (address, intent, nbf, exp) => {
|
|
3739
|
-
const expiration =
|
|
3778
|
+
const expiration = isDefined17(exp) ? exp : nbf + 1e4;
|
|
3740
3779
|
const payloadBuilder = new PayloadBuilder13({ schema: ChainStakeIntentSchema });
|
|
3741
3780
|
const builder = payloadBuilder.fields({
|
|
3742
3781
|
from: address,
|
|
@@ -3918,9 +3957,9 @@ var toPositiveBigInt = (value) => {
|
|
|
3918
3957
|
// src/simple/accountBalance/SimpleAccountBalanceViewer.ts
|
|
3919
3958
|
import {
|
|
3920
3959
|
asHash as asHash4,
|
|
3921
|
-
assertEx as
|
|
3960
|
+
assertEx as assertEx35,
|
|
3922
3961
|
exists as exists3,
|
|
3923
|
-
isDefined as
|
|
3962
|
+
isDefined as isDefined18,
|
|
3924
3963
|
ZERO_ADDRESS
|
|
3925
3964
|
} from "@ariestools/sdk";
|
|
3926
3965
|
import {
|
|
@@ -3986,18 +4025,18 @@ var asTransfersStepSummaryWithStorageMeta = AsObjectFactory7.create(isTransfersS
|
|
|
3986
4025
|
var balancesMaxStep = 5;
|
|
3987
4026
|
|
|
3988
4027
|
// src/summary/primitives/balances/balancesStepSummaryFromRange.ts
|
|
3989
|
-
import { assertEx as
|
|
4028
|
+
import { assertEx as assertEx28, spanRootAsync as spanRootAsync2 } from "@ariestools/sdk";
|
|
3990
4029
|
import { isAnyPayload as isAnyPayload3 } from "@xyo-network/sdk-js";
|
|
3991
4030
|
import { asXL1BlockNumber as asXL1BlockNumber5, StepSizes as StepSizes8 } from "@xyo-network/xl1-protocol-lib";
|
|
3992
4031
|
async function balancesStepSummaryFromRange(context, semaphores, blockViewer, summaryMap, range) {
|
|
3993
4032
|
const cacheKey = `${range[0]}|${range[1]}`;
|
|
3994
4033
|
return await withContextCacheResponse(context, "balancesStepSummaryFromRange", cacheKey, async () => {
|
|
3995
4034
|
return await spanRootAsync2("balancesStepSummaryFromRange", async () => {
|
|
3996
|
-
const [frameHead] =
|
|
4035
|
+
const [frameHead] = assertEx28(await blockViewer.blockByNumber(range[1]), () => `Block not found for number: ${range[1]}`);
|
|
3997
4036
|
const frameSize = range[1] - range[0] + 1;
|
|
3998
4037
|
const key = `${frameHead._hash}|${frameSize}`;
|
|
3999
4038
|
return frameSize === 1 ? await spanRootAsync2(`balancesStepSummaryFromRange.frameSize=1[${key}]`, async () => {
|
|
4000
|
-
const [, payloads] =
|
|
4039
|
+
const [, payloads] = assertEx28(await blockViewer.blockByNumber(range[0]), () => `Block not found for number: ${range[0]}`);
|
|
4001
4040
|
const balances = {};
|
|
4002
4041
|
for (const [address, balance] of Object.entries(netBalancesForPayloads(context, payloads))) {
|
|
4003
4042
|
balances[address] = toSignedBigInt(balance);
|
|
@@ -4010,7 +4049,7 @@ async function balancesStepSummaryFromRange(context, semaphores, blockViewer, su
|
|
|
4010
4049
|
};
|
|
4011
4050
|
}, { ...context, timeBudgetLimit: 500 }) : await spanRootAsync2(`balancesStepSummaryFromRange.frameSize>1[${key}]`, async () => {
|
|
4012
4051
|
const step = StepSizes8.indexOf(asXL1BlockNumber5(frameSize, true));
|
|
4013
|
-
|
|
4052
|
+
assertEx28(step !== -1, () => `Invalid step size: ${frameSize}. Must be one of ${StepSizes8.join(", ")}`);
|
|
4014
4053
|
const summaryResult = await summaryMap.get(`${frameHead._hash}|${frameSize}`);
|
|
4015
4054
|
if (isAnyPayload3(summaryResult)) {
|
|
4016
4055
|
return summaryResult;
|
|
@@ -4053,7 +4092,7 @@ async function balancesStepSummaryFromRange(context, semaphores, blockViewer, su
|
|
|
4053
4092
|
}
|
|
4054
4093
|
|
|
4055
4094
|
// src/summary/primitives/balances/balancesSummary.ts
|
|
4056
|
-
import { assertEx as
|
|
4095
|
+
import { assertEx as assertEx29, spanRootAsync as spanRootAsync3 } from "@ariestools/sdk";
|
|
4057
4096
|
import { asXyoAddress } from "@xyo-network/sdk-js";
|
|
4058
4097
|
import {
|
|
4059
4098
|
asBlockBoundWitnessWithStorageMeta as asBlockBoundWitnessWithStorageMeta3,
|
|
@@ -4064,7 +4103,7 @@ import {
|
|
|
4064
4103
|
async function balancesSummary(context, semaphores, blockViewer, summaryMap, config) {
|
|
4065
4104
|
return await spanRootAsync3("balancesSummary", async () => {
|
|
4066
4105
|
const headHash = isChainQualifiedHeadConfig(config) ? config.head : await blockViewer.currentBlockHash();
|
|
4067
|
-
const [head] =
|
|
4106
|
+
const [head] = assertEx29(await blockViewer.blockByHash(headHash), () => `Block not found for hash: ${headHash}`);
|
|
4068
4107
|
const headBoundWitness = asBlockBoundWitnessWithStorageMeta3(head, () => `Found Block not a BlockWithHashMeta: ${headHash}`);
|
|
4069
4108
|
const range = isChainQualifiedRangeConfig(config) ? config.range : asXL1BlockRange7([0, headBoundWitness.block], true);
|
|
4070
4109
|
const ranges = deepCalculateFramesFromRange(asXL1BlockRange7(
|
|
@@ -4087,7 +4126,7 @@ async function balancesSummary(context, semaphores, blockViewer, summaryMap, con
|
|
|
4087
4126
|
var blocksMaxStep = 3;
|
|
4088
4127
|
|
|
4089
4128
|
// src/summary/primitives/blocks/blocksStepSummaryFromRange.ts
|
|
4090
|
-
import { assertEx as
|
|
4129
|
+
import { assertEx as assertEx30, spanRootAsync as spanRootAsync4 } from "@ariestools/sdk";
|
|
4091
4130
|
import { isAnyPayload as isAnyPayload4 } from "@xyo-network/sdk-js";
|
|
4092
4131
|
import {
|
|
4093
4132
|
asBlocksStepSummary,
|
|
@@ -4102,7 +4141,7 @@ async function blocksStepSummaryFromRange(context, semaphores, blockViewer, summ
|
|
|
4102
4141
|
const cacheKey = `${range[0]}|${range[1]}`;
|
|
4103
4142
|
return await withContextCacheResponse(context, "blocksStepSummaryFromRange", cacheKey, async () => {
|
|
4104
4143
|
return await spanRootAsync4("blocksStepSummaryFromRange", async () => {
|
|
4105
|
-
const frameHead =
|
|
4144
|
+
const frameHead = assertEx30(
|
|
4106
4145
|
await blockViewer.blockByNumber(range[1]),
|
|
4107
4146
|
() => `Block not found for number: ${range[1]}`
|
|
4108
4147
|
);
|
|
@@ -4118,7 +4157,7 @@ async function blocksStepSummaryFromRange(context, semaphores, blockViewer, summ
|
|
|
4118
4157
|
};
|
|
4119
4158
|
} else {
|
|
4120
4159
|
const step = StepSizes9.indexOf(asXL1BlockNumber6(frameSize, true));
|
|
4121
|
-
|
|
4160
|
+
assertEx30(step !== -1, () => `Invalid step size: ${frameSize}. Must be one of ${StepSizes9.join(", ")}`);
|
|
4122
4161
|
const key = blocksStepSummaryKey(frameHeadHash, frameSize);
|
|
4123
4162
|
const summaryResult = await summaryMap.get(key);
|
|
4124
4163
|
if (isAnyPayload4(summaryResult)) {
|
|
@@ -4156,7 +4195,7 @@ async function blocksStepSummaryFromRange(context, semaphores, blockViewer, summ
|
|
|
4156
4195
|
var schemasMaxStep = 5;
|
|
4157
4196
|
|
|
4158
4197
|
// src/summary/primitives/schemas/schemasStepSummaryFromRange.ts
|
|
4159
|
-
import { assertEx as
|
|
4198
|
+
import { assertEx as assertEx31 } from "@ariestools/sdk";
|
|
4160
4199
|
import {
|
|
4161
4200
|
isAnyPayload as isAnyPayload5,
|
|
4162
4201
|
isBoundWitness as isBoundWitness2,
|
|
@@ -4165,11 +4204,11 @@ import {
|
|
|
4165
4204
|
} from "@xyo-network/sdk-js";
|
|
4166
4205
|
import { StepSizes as StepSizes10 } from "@xyo-network/xl1-protocol-lib";
|
|
4167
4206
|
async function schemasStepSummaryFromRange(context, semaphores, blockViewer, summaryMap, range) {
|
|
4168
|
-
const [frameHead] =
|
|
4207
|
+
const [frameHead] = assertEx31(await blockViewer.blockByNumber(range[1]), () => `Block not found for number: ${range[1]}`);
|
|
4169
4208
|
const frameSize = range[1] - range[0] + 1;
|
|
4170
4209
|
let result;
|
|
4171
4210
|
if (frameSize === 1) {
|
|
4172
|
-
const [block, payloads] =
|
|
4211
|
+
const [block, payloads] = assertEx31(await blockViewer.blockByNumber(range[0]), () => `Block not found for number: ${range[0]}`);
|
|
4173
4212
|
const boundWitnesses = [block, ...payloads.filter((x) => isBoundWitness2(x) && isHashMeta(x))];
|
|
4174
4213
|
const schemas = {};
|
|
4175
4214
|
for (const bw of boundWitnesses) {
|
|
@@ -4186,7 +4225,7 @@ async function schemasStepSummaryFromRange(context, semaphores, blockViewer, sum
|
|
|
4186
4225
|
});
|
|
4187
4226
|
} else {
|
|
4188
4227
|
const step = StepSizes10.indexOf(frameSize);
|
|
4189
|
-
|
|
4228
|
+
assertEx31(step !== -1, () => `Invalid step size: ${frameSize}. Must be one of ${StepSizes10.join(", ")}`);
|
|
4190
4229
|
const summaryResult = await summaryMap.get(`${frameHead._hash}|${frameSize}`);
|
|
4191
4230
|
if (isAnyPayload5(summaryResult)) {
|
|
4192
4231
|
result = summaryResult;
|
|
@@ -4225,7 +4264,7 @@ async function schemasStepSummaryFromRange(context, semaphores, blockViewer, sum
|
|
|
4225
4264
|
}
|
|
4226
4265
|
|
|
4227
4266
|
// src/summary/primitives/schemas/schemasSummary.ts
|
|
4228
|
-
import { assertEx as
|
|
4267
|
+
import { assertEx as assertEx32, spanRootAsync as spanRootAsync5 } from "@ariestools/sdk";
|
|
4229
4268
|
import {
|
|
4230
4269
|
asBlockBoundWitnessWithStorageMeta as asBlockBoundWitnessWithStorageMeta4,
|
|
4231
4270
|
asXL1BlockRange as asXL1BlockRange8,
|
|
@@ -4235,7 +4274,7 @@ import {
|
|
|
4235
4274
|
async function schemasSummary(context, semaphores, blockViewer, summaryMap, config) {
|
|
4236
4275
|
return await spanRootAsync5("schemasSummary", async () => {
|
|
4237
4276
|
const headHash = isChainQualifiedHeadConfig2(config) ? config.head : await blockViewer.currentBlockHash();
|
|
4238
|
-
const [head] =
|
|
4277
|
+
const [head] = assertEx32(await blockViewer.blockByHash(headHash), () => `Block not found for hash: ${headHash}`);
|
|
4239
4278
|
const headBoundWitness = asBlockBoundWitnessWithStorageMeta4(head, () => `Found Block not a BlockWithHashMeta: ${headHash}`);
|
|
4240
4279
|
const range = isChainQualifiedRangeConfig2(config) ? config.range : asXL1BlockRange8([0, headBoundWitness.block], true);
|
|
4241
4280
|
const ranges = deepCalculateFramesFromRange(asXL1BlockRange8(
|
|
@@ -4258,7 +4297,7 @@ async function schemasSummary(context, semaphores, blockViewer, summaryMap, conf
|
|
|
4258
4297
|
var transfersMaxStep = 4;
|
|
4259
4298
|
|
|
4260
4299
|
// src/summary/primitives/transfers/transfersStepSummaryFromRange.ts
|
|
4261
|
-
import { assertEx as
|
|
4300
|
+
import { assertEx as assertEx33, spanRootAsync as spanRootAsync6 } from "@ariestools/sdk";
|
|
4262
4301
|
import { isAnyPayload as isAnyPayload6 } from "@xyo-network/sdk-js";
|
|
4263
4302
|
import { asXL1BlockNumber as asXL1BlockNumber7, StepSizes as StepSizes11 } from "@xyo-network/xl1-protocol-lib";
|
|
4264
4303
|
function transfersSummaryKey(frameHeadHash, frameSize) {
|
|
@@ -4268,11 +4307,11 @@ async function transfersStepSummaryFromRange(context, semaphores, blockViewer, s
|
|
|
4268
4307
|
const cacheKey = `${range[0]}|${range[1]}`;
|
|
4269
4308
|
return await withContextCacheResponse(context, "transfersStepSummaryFromRange", cacheKey, async () => {
|
|
4270
4309
|
return await spanRootAsync6("transfersStepSummaryFromRange", async () => {
|
|
4271
|
-
const [frameHead] =
|
|
4310
|
+
const [frameHead] = assertEx33(await blockViewer.blockByNumber(range[1]), () => `Block not found for number: ${range[1]}`);
|
|
4272
4311
|
const frameSize = range[1] - range[0] + 1;
|
|
4273
4312
|
let result;
|
|
4274
4313
|
if (frameSize === 1) {
|
|
4275
|
-
const [, payloads] =
|
|
4314
|
+
const [, payloads] = assertEx33(await blockViewer.blockByNumber(range[0]), () => `Block not found for number: ${range[0]}`);
|
|
4276
4315
|
const transfers = {};
|
|
4277
4316
|
for (const [from, toMap] of Object.entries(netTransfersForPayloads(context, payloads))) {
|
|
4278
4317
|
transfers[from] = transfers[from] ?? {};
|
|
@@ -4288,7 +4327,7 @@ async function transfersStepSummaryFromRange(context, semaphores, blockViewer, s
|
|
|
4288
4327
|
};
|
|
4289
4328
|
} else {
|
|
4290
4329
|
const step = StepSizes11.indexOf(asXL1BlockNumber7(frameSize, true));
|
|
4291
|
-
|
|
4330
|
+
assertEx33(step !== -1, () => `Invalid step size: ${frameSize}. Must be one of ${StepSizes11.join(", ")}`);
|
|
4292
4331
|
const key = transfersSummaryKey(frameHead._hash, frameSize);
|
|
4293
4332
|
const summaryResult = await summaryMap.get(key);
|
|
4294
4333
|
if (isAnyPayload6(summaryResult)) {
|
|
@@ -4339,7 +4378,7 @@ async function transfersStepSummaryFromRange(context, semaphores, blockViewer, s
|
|
|
4339
4378
|
}
|
|
4340
4379
|
|
|
4341
4380
|
// src/summary/primitives/transfers/transfersSummary.ts
|
|
4342
|
-
import { assertEx as
|
|
4381
|
+
import { assertEx as assertEx34, spanRootAsync as spanRootAsync7 } from "@ariestools/sdk";
|
|
4343
4382
|
import { asXyoAddress as asXyoAddress2 } from "@xyo-network/sdk-js";
|
|
4344
4383
|
import {
|
|
4345
4384
|
asBlockBoundWitnessWithStorageMeta as asBlockBoundWitnessWithStorageMeta5,
|
|
@@ -4350,7 +4389,7 @@ import {
|
|
|
4350
4389
|
async function transfersSummary(context, semaphores, blockViewer, summaryMap, config) {
|
|
4351
4390
|
return await spanRootAsync7("transferSummary", async () => {
|
|
4352
4391
|
const headHash = isChainQualifiedHeadConfig3(config) ? config.head : await blockViewer.currentBlockHash();
|
|
4353
|
-
const [head] =
|
|
4392
|
+
const [head] = assertEx34(await blockViewer.blockByHash(headHash), () => `Block not found for hash: ${headHash}`);
|
|
4354
4393
|
const headBoundWitness = asBlockBoundWitnessWithStorageMeta5(head, () => `Found Block not a BlockWithHashMeta: ${headHash}`);
|
|
4355
4394
|
const range = isChainQualifiedRangeConfig3(config) ? config.range : asXL1BlockRange9([0, headBoundWitness.block], true);
|
|
4356
4395
|
const ranges = deepCalculateFramesFromRange(asXL1BlockRange9(
|
|
@@ -4391,8 +4430,8 @@ var SimpleAccountBalanceViewer = class extends AbstractCreatableProvider {
|
|
|
4391
4430
|
static async paramsHandler(params = {}) {
|
|
4392
4431
|
return {
|
|
4393
4432
|
...await super.paramsHandler(params),
|
|
4394
|
-
balancesSummaryMap:
|
|
4395
|
-
transfersSummaryMap:
|
|
4433
|
+
balancesSummaryMap: assertEx35(params.balancesSummaryMap, () => "balancesSummaryMap is required"),
|
|
4434
|
+
transfersSummaryMap: assertEx35(params.transfersSummaryMap, () => "transfersSummaryMap is required")
|
|
4396
4435
|
};
|
|
4397
4436
|
}
|
|
4398
4437
|
async accountBalance(address, config) {
|
|
@@ -4415,11 +4454,11 @@ var SimpleAccountBalanceViewer = class extends AbstractCreatableProvider {
|
|
|
4415
4454
|
const transferIndexes = block[0].payload_schemas.map((schema, index) => schema === TransferSchema2 ? index : void 0).filter(exists3);
|
|
4416
4455
|
const transfers = transferIndexes.map((index) => {
|
|
4417
4456
|
const hash = block[0].payload_hashes[index];
|
|
4418
|
-
return
|
|
4457
|
+
return assertEx35(
|
|
4419
4458
|
block[1].find((p) => p._hash === hash),
|
|
4420
4459
|
() => `Error: Could not find Transfer with hash ${hash} in block ${block[0]._hash}`
|
|
4421
4460
|
);
|
|
4422
|
-
}).filter(exists3).filter((t) => t.from === address ||
|
|
4461
|
+
}).filter(exists3).filter((t) => t.from === address || isDefined18(t.transfers[address]));
|
|
4423
4462
|
if (transfers.length === 0) {
|
|
4424
4463
|
continue;
|
|
4425
4464
|
}
|
|
@@ -4448,7 +4487,7 @@ var SimpleAccountBalanceViewer = class extends AbstractCreatableProvider {
|
|
|
4448
4487
|
const head = isChainQualifiedHeadConfig4(config) ? config.head : await this.blockViewer.currentBlockHash();
|
|
4449
4488
|
const range = isChainQualifiedRangeConfig4(config) ? config.range : asXL1BlockRange10([
|
|
4450
4489
|
0,
|
|
4451
|
-
|
|
4490
|
+
assertEx35(
|
|
4452
4491
|
await this.blockViewer.blockByHash(head),
|
|
4453
4492
|
() => `Error: Could not find block with hash ${head}`
|
|
4454
4493
|
)[0].block
|
|
@@ -4463,11 +4502,11 @@ var SimpleAccountBalanceViewer = class extends AbstractCreatableProvider {
|
|
|
4463
4502
|
const qualifiedRange = qualifiedEntries[0][1][1].range;
|
|
4464
4503
|
const qualifiedHeadHash = qualifiedEntries[0][1][1].head;
|
|
4465
4504
|
for (const [_, [__, { range: range2, head: head2 }]] of qualifiedEntries) {
|
|
4466
|
-
|
|
4505
|
+
assertEx35(
|
|
4467
4506
|
range2[0] === qualifiedRange[0] && range2[1] === qualifiedRange[1],
|
|
4468
4507
|
() => "Inconsistent ranges in qualifiedAccountBalanceHistories"
|
|
4469
4508
|
);
|
|
4470
|
-
|
|
4509
|
+
assertEx35(
|
|
4471
4510
|
head2 === qualifiedHeadHash,
|
|
4472
4511
|
() => "Inconsistent head hashes in qualifiedAccountBalanceHistories"
|
|
4473
4512
|
);
|
|
@@ -4538,7 +4577,7 @@ var SimpleAccountBalanceViewer = class extends AbstractCreatableProvider {
|
|
|
4538
4577
|
return await this.spanAsync("qualifiedAccountBalanceHistory", async () => {
|
|
4539
4578
|
const range = asRange(headOrRange);
|
|
4540
4579
|
const headHash = asHash4(headOrRange);
|
|
4541
|
-
const [head] =
|
|
4580
|
+
const [head] = assertEx35(isDefined18(headHash) ? await this.blockViewer.blockByHash(headHash) : await this.blockViewer.currentBlock(), () => "Could not resolve head block");
|
|
4542
4581
|
const startingRange = asXL1BlockRange10(range ?? [0, head.block], true);
|
|
4543
4582
|
const blockNumbers = await this.distillTransferHistory(address, startingRange);
|
|
4544
4583
|
const blockResults = await Promise.all(blockNumbers.map(async (bn) => await this.blockViewer.blockByNumber(bn)));
|
|
@@ -4548,11 +4587,11 @@ var SimpleAccountBalanceViewer = class extends AbstractCreatableProvider {
|
|
|
4548
4587
|
const transferIndexes = block[0].payload_schemas.map((schema, index) => schema === TransferSchema2 ? index : void 0).filter(exists3);
|
|
4549
4588
|
const transfers = transferIndexes.map((index) => {
|
|
4550
4589
|
const hash = block[0].payload_hashes[index];
|
|
4551
|
-
return
|
|
4590
|
+
return assertEx35(
|
|
4552
4591
|
block[1].find((p) => p._hash === hash),
|
|
4553
4592
|
() => `Error: Could not find Transfer with hash ${hash} in block ${block[0]._hash}`
|
|
4554
4593
|
);
|
|
4555
|
-
}).filter(exists3).filter((t) => t.from === address ||
|
|
4594
|
+
}).filter(exists3).filter((t) => t.from === address || isDefined18(t.transfers[address]));
|
|
4556
4595
|
if (transfers.length === 0) {
|
|
4557
4596
|
continue;
|
|
4558
4597
|
}
|
|
@@ -4580,7 +4619,7 @@ SimpleAccountBalanceViewer = __decorateClass([
|
|
|
4580
4619
|
|
|
4581
4620
|
// src/simple/block/SimpleBlockViewer.ts
|
|
4582
4621
|
import {
|
|
4583
|
-
assertEx as
|
|
4622
|
+
assertEx as assertEx36,
|
|
4584
4623
|
exists as exists4,
|
|
4585
4624
|
isUndefined as isUndefined7
|
|
4586
4625
|
} from "@ariestools/sdk";
|
|
@@ -4644,7 +4683,7 @@ var SimpleBlockViewer = class extends AbstractCreatableProvider {
|
|
|
4644
4683
|
_headPollTimer = null;
|
|
4645
4684
|
_signedHydratedBlockCache;
|
|
4646
4685
|
get finalizedArchivist() {
|
|
4647
|
-
return
|
|
4686
|
+
return assertEx36(this.params.finalizedArchivist, () => "finalizedArchivist is required \u2014 inject it or bind a connection");
|
|
4648
4687
|
}
|
|
4649
4688
|
get blocksSummaryMap() {
|
|
4650
4689
|
this._blocksSummaryMap ??= this.params.blocksSummaryMap ?? new LruCacheMap2({ max: 32 });
|
|
@@ -4668,14 +4707,14 @@ var SimpleBlockViewer = class extends AbstractCreatableProvider {
|
|
|
4668
4707
|
static async paramsHandler(params) {
|
|
4669
4708
|
const headPollIntervalMs = params.headPollIntervalMs;
|
|
4670
4709
|
if (headPollIntervalMs !== void 0) {
|
|
4671
|
-
|
|
4710
|
+
assertEx36(headPollIntervalMs >= MIN_HEAD_POLL_INTERVAL_MS, () => `headPollIntervalMs must be at least ${MIN_HEAD_POLL_INTERVAL_MS}ms`);
|
|
4672
4711
|
}
|
|
4673
4712
|
const connection = params.connection;
|
|
4674
4713
|
const finalizedArchivist = params.finalizedArchivist ?? (connection ? await connectArchivist(connection, { name: CHAIN_ARCHIVIST_ROLE }) : void 0);
|
|
4675
4714
|
return {
|
|
4676
4715
|
...await super.paramsHandler(params),
|
|
4677
4716
|
blocksSummaryMap: params.blocksSummaryMap,
|
|
4678
|
-
finalizedArchivist:
|
|
4717
|
+
finalizedArchivist: assertEx36(finalizedArchivist, () => "finalizedArchivist is required \u2014 inject it or bind a connection"),
|
|
4679
4718
|
headPollIntervalMs
|
|
4680
4719
|
};
|
|
4681
4720
|
}
|
|
@@ -4704,8 +4743,8 @@ var SimpleBlockViewer = class extends AbstractCreatableProvider {
|
|
|
4704
4743
|
}
|
|
4705
4744
|
async blocksByHash(hash, limit = 50) {
|
|
4706
4745
|
return await this.spanAsync("blocksByHash", async () => {
|
|
4707
|
-
|
|
4708
|
-
|
|
4746
|
+
assertEx36(limit > 0, () => "limit must be greater than 0");
|
|
4747
|
+
assertEx36(limit <= 100, () => "limit must be less than 100");
|
|
4709
4748
|
const blocks = [];
|
|
4710
4749
|
let current = await this.blockByHash(hash);
|
|
4711
4750
|
while (current && blocks.length < limit) {
|
|
@@ -4719,8 +4758,8 @@ var SimpleBlockViewer = class extends AbstractCreatableProvider {
|
|
|
4719
4758
|
}
|
|
4720
4759
|
async blocksByNumber(blockNumber, limit = 50) {
|
|
4721
4760
|
return await this.spanAsync("blocksByNumber", async () => {
|
|
4722
|
-
|
|
4723
|
-
|
|
4761
|
+
assertEx36(limit > 0, () => "limit must be greater than 0");
|
|
4762
|
+
assertEx36(limit <= 100, () => "limit must be less than 100");
|
|
4724
4763
|
const chainContext = await this.getChainContextRead();
|
|
4725
4764
|
if (isUndefined7(chainContext.head)) {
|
|
4726
4765
|
return [];
|
|
@@ -4738,9 +4777,9 @@ var SimpleBlockViewer = class extends AbstractCreatableProvider {
|
|
|
4738
4777
|
}
|
|
4739
4778
|
async blocksByStep(stepLevel, stepIndex) {
|
|
4740
4779
|
return await this.spanAsync("blocksByStep", async () => {
|
|
4741
|
-
|
|
4780
|
+
assertEx36(Number.isSafeInteger(stepIndex) && stepIndex >= 0, () => "stepIndex must be a non-negative integer");
|
|
4742
4781
|
const size = stepSize2(stepLevel);
|
|
4743
|
-
|
|
4782
|
+
assertEx36(
|
|
4744
4783
|
stepLevel <= blocksMaxStep,
|
|
4745
4784
|
() => `blocksByStep does not support step levels above ${blocksMaxStep} (requested ${stepLevel})`
|
|
4746
4785
|
);
|
|
@@ -4766,7 +4805,7 @@ var SimpleBlockViewer = class extends AbstractCreatableProvider {
|
|
|
4766
4805
|
const headBlock = await this.finalizationViewer.headBlock();
|
|
4767
4806
|
return headBlock.chain;
|
|
4768
4807
|
}
|
|
4769
|
-
const block =
|
|
4808
|
+
const block = assertEx36(await this.blockByNumber(blockNumber), () => `Block not found [${blockNumber}]`);
|
|
4770
4809
|
return block[0].chain;
|
|
4771
4810
|
}, this.context);
|
|
4772
4811
|
}
|
|
@@ -4902,7 +4941,7 @@ SimpleBlockRewardViewer = __decorateClass([
|
|
|
4902
4941
|
], SimpleBlockRewardViewer);
|
|
4903
4942
|
|
|
4904
4943
|
// src/simple/blockValidation/SimpleBlockValidationViewer.ts
|
|
4905
|
-
import { assertEx as
|
|
4944
|
+
import { assertEx as assertEx37 } from "@ariestools/sdk";
|
|
4906
4945
|
import { PayloadBuilder as PayloadBuilder18 } from "@xyo-network/sdk-js";
|
|
4907
4946
|
import {
|
|
4908
4947
|
AccountBalanceViewerMoniker as AccountBalanceViewerMoniker2,
|
|
@@ -4958,7 +4997,7 @@ var SimpleBlockValidationViewer = class extends AbstractCreatableProvider {
|
|
|
4958
4997
|
let head;
|
|
4959
4998
|
if (isChainQualifiedHeadConfig5(config)) {
|
|
4960
4999
|
const headBlockResult = await this.blockViewer.blockByHash(config.head);
|
|
4961
|
-
head = headBlockResult == null ?
|
|
5000
|
+
head = headBlockResult == null ? assertEx37(
|
|
4962
5001
|
void 0,
|
|
4963
5002
|
() => `Specified a head that is not in the chain [${config.head}]`
|
|
4964
5003
|
) : headBlockResult[0];
|
|
@@ -5046,7 +5085,7 @@ SimpleBlockValidationViewer = __decorateClass([
|
|
|
5046
5085
|
], SimpleBlockValidationViewer);
|
|
5047
5086
|
|
|
5048
5087
|
// src/simple/chainContractViewer/SimpleChainContractViewer.ts
|
|
5049
|
-
import { assertEx as
|
|
5088
|
+
import { assertEx as assertEx38 } from "@ariestools/sdk";
|
|
5050
5089
|
import { ChainContractViewerMoniker as ChainContractViewerMoniker2, FinalizationViewerMoniker as FinalizationViewerMoniker2 } from "@xyo-network/xl1-protocol-lib";
|
|
5051
5090
|
var SimpleChainContractViewer = class extends AbstractCreatableProvider {
|
|
5052
5091
|
moniker = SimpleChainContractViewer.defaultMoniker;
|
|
@@ -5063,7 +5102,7 @@ var SimpleChainContractViewer = class extends AbstractCreatableProvider {
|
|
|
5063
5102
|
let contractViewer = this;
|
|
5064
5103
|
let forkedAtBlockNumber = await contractViewer.forkedAtBlockNumber();
|
|
5065
5104
|
while (forkedAtBlockNumber !== null && blockNumber <= forkedAtBlockNumber) {
|
|
5066
|
-
contractViewer =
|
|
5105
|
+
contractViewer = assertEx38(await contractViewer.forkedChainContractViewer());
|
|
5067
5106
|
forkedAtBlockNumber = await contractViewer.forkedAtBlockNumber();
|
|
5068
5107
|
chainId = await contractViewer.chainId();
|
|
5069
5108
|
}
|
|
@@ -5118,7 +5157,7 @@ var SimpleXyoClient = class {
|
|
|
5118
5157
|
};
|
|
5119
5158
|
|
|
5120
5159
|
// src/simple/datalake/RestDataLakeRunner.ts
|
|
5121
|
-
import { assertEx as
|
|
5160
|
+
import { assertEx as assertEx40, exists as exists6 } from "@ariestools/sdk";
|
|
5122
5161
|
import { isAnyPayload as isAnyPayload8, PayloadZodLoose } from "@xyo-network/sdk-js";
|
|
5123
5162
|
import { DataLakeRunnerMoniker } from "@xyo-network/xl1-protocol-lib";
|
|
5124
5163
|
import { z as z26 } from "zod/mini";
|
|
@@ -5126,9 +5165,9 @@ import { z as z26 } from "zod/mini";
|
|
|
5126
5165
|
// src/simple/datalake/AbstractRestDataLake.ts
|
|
5127
5166
|
import { FetchClientError, FetchJsonClient } from "@ariestools/sdk";
|
|
5128
5167
|
import {
|
|
5129
|
-
assertEx as
|
|
5168
|
+
assertEx as assertEx39,
|
|
5130
5169
|
exists as exists5,
|
|
5131
|
-
isDefined as
|
|
5170
|
+
isDefined as isDefined19
|
|
5132
5171
|
} from "@ariestools/sdk";
|
|
5133
5172
|
import { asAnyPayload as asAnyPayload4, isAnyPayload as isAnyPayload7 } from "@xyo-network/sdk-js";
|
|
5134
5173
|
var AbstractRestDataLake = class extends AbstractCreatableProvider {
|
|
@@ -5146,8 +5185,8 @@ var AbstractRestDataLake = class extends AbstractCreatableProvider {
|
|
|
5146
5185
|
}
|
|
5147
5186
|
static async paramsHandler(params = {}) {
|
|
5148
5187
|
const moniker = this.defaultMoniker;
|
|
5149
|
-
const endpoint =
|
|
5150
|
-
|
|
5188
|
+
const endpoint = isDefined19(params.endpoint) && params.endpoint !== "" ? params.endpoint : resolveRestConnectionEndpoint(
|
|
5189
|
+
assertEx39(params.context?.config, () => "Context config is required to resolve REST data lake endpoint"),
|
|
5151
5190
|
moniker
|
|
5152
5191
|
);
|
|
5153
5192
|
return {
|
|
@@ -5202,7 +5241,7 @@ var RestDataLakeRunner = class extends AbstractRestDataLake {
|
|
|
5202
5241
|
async insert(items) {
|
|
5203
5242
|
const allowedItems = items.map((item) => {
|
|
5204
5243
|
if (isAnyPayload8(item) && this.isAllowed(item)) {
|
|
5205
|
-
|
|
5244
|
+
assertEx40(typeof item === "object" && item !== null, () => "Data must be an object");
|
|
5206
5245
|
return item;
|
|
5207
5246
|
}
|
|
5208
5247
|
return null;
|
|
@@ -5325,13 +5364,13 @@ SimpleDataLakeViewer = __decorateClass([
|
|
|
5325
5364
|
], SimpleDataLakeViewer);
|
|
5326
5365
|
|
|
5327
5366
|
// src/simple/finalization/SimpleFinalizationRunner.ts
|
|
5328
|
-
import { assertEx as
|
|
5367
|
+
import { assertEx as assertEx41 } from "@ariestools/sdk";
|
|
5329
5368
|
import { FinalizationRunnerMoniker } from "@xyo-network/xl1-protocol-lib";
|
|
5330
5369
|
var SimpleFinalizationRunner = class extends AbstractCreatableProvider {
|
|
5331
5370
|
moniker = SimpleFinalizationRunner.defaultMoniker;
|
|
5332
5371
|
_store;
|
|
5333
5372
|
get finalizedArchivist() {
|
|
5334
|
-
return
|
|
5373
|
+
return assertEx41(this.params.finalizedArchivist, () => "finalizedArchivist is required \u2014 inject it or bind a connection");
|
|
5335
5374
|
}
|
|
5336
5375
|
get store() {
|
|
5337
5376
|
return this._store;
|
|
@@ -5341,7 +5380,7 @@ var SimpleFinalizationRunner = class extends AbstractCreatableProvider {
|
|
|
5341
5380
|
const finalizedArchivist = params?.finalizedArchivist ?? (connection ? await connectArchivist(connection, { name: CHAIN_ARCHIVIST_ROLE }) : void 0);
|
|
5342
5381
|
return {
|
|
5343
5382
|
...await super.paramsHandler(params),
|
|
5344
|
-
finalizedArchivist:
|
|
5383
|
+
finalizedArchivist: assertEx41(finalizedArchivist, () => "finalizedArchivist is required \u2014 inject it or bind a connection")
|
|
5345
5384
|
};
|
|
5346
5385
|
}
|
|
5347
5386
|
async createHandler() {
|
|
@@ -5369,7 +5408,7 @@ SimpleFinalizationRunner = __decorateClass([
|
|
|
5369
5408
|
], SimpleFinalizationRunner);
|
|
5370
5409
|
|
|
5371
5410
|
// src/simple/finalization/SimpleFinalizationViewer.ts
|
|
5372
|
-
import { assertEx as
|
|
5411
|
+
import { assertEx as assertEx42 } from "@ariestools/sdk";
|
|
5373
5412
|
import {
|
|
5374
5413
|
asSignedHydratedBlockWithStorageMeta as asSignedHydratedBlockWithStorageMeta2,
|
|
5375
5414
|
ChainContractViewerMoniker as ChainContractViewerMoniker3,
|
|
@@ -5381,7 +5420,7 @@ var SimpleFinalizationViewer = class extends AbstractCreatableProvider {
|
|
|
5381
5420
|
_store;
|
|
5382
5421
|
_signedHydratedBlockCache;
|
|
5383
5422
|
get finalizedArchivist() {
|
|
5384
|
-
return
|
|
5423
|
+
return assertEx42(this.params.finalizedArchivist, () => "finalizedArchivist is required \u2014 inject it or bind a connection");
|
|
5385
5424
|
}
|
|
5386
5425
|
get hydratedBlockCache() {
|
|
5387
5426
|
if (this._signedHydratedBlockCache) return this._signedHydratedBlockCache;
|
|
@@ -5400,7 +5439,7 @@ var SimpleFinalizationViewer = class extends AbstractCreatableProvider {
|
|
|
5400
5439
|
const finalizedArchivist = params.finalizedArchivist ?? (connection ? await connectArchivist(connection, { name: CHAIN_ARCHIVIST_ROLE }) : void 0);
|
|
5401
5440
|
return {
|
|
5402
5441
|
...await super.paramsHandler(params),
|
|
5403
|
-
finalizedArchivist:
|
|
5442
|
+
finalizedArchivist: assertEx42(finalizedArchivist, () => "finalizedArchivist is required \u2014 inject it or bind a connection")
|
|
5404
5443
|
};
|
|
5405
5444
|
}
|
|
5406
5445
|
chainId() {
|
|
@@ -5410,18 +5449,18 @@ var SimpleFinalizationViewer = class extends AbstractCreatableProvider {
|
|
|
5410
5449
|
await super.createHandler();
|
|
5411
5450
|
const finalizedArchivist = this.finalizedArchivist;
|
|
5412
5451
|
const mostRecentBlock = await findMostRecentBlock(finalizedArchivist);
|
|
5413
|
-
this._chainId =
|
|
5452
|
+
this._chainId = assertEx42(this.config.chain.id ?? mostRecentBlock?.chain, () => "chain.id is required if empty archivist");
|
|
5414
5453
|
this._store = { chainMap: finalizedArchivist };
|
|
5415
5454
|
}
|
|
5416
5455
|
async head() {
|
|
5417
5456
|
return await this.spanAsync("head", async () => {
|
|
5418
|
-
const currentHead =
|
|
5457
|
+
const currentHead = assertEx42(await this.getCurrentHead(), () => "Could not find most recent block [currentBlock]");
|
|
5419
5458
|
const cache = this.hydratedBlockCache;
|
|
5420
5459
|
const block = await cache.get(currentHead._hash);
|
|
5421
5460
|
if (!block) {
|
|
5422
5461
|
this.logger?.error(`Could not find current block with hash ${currentHead._hash}`);
|
|
5423
5462
|
}
|
|
5424
|
-
return
|
|
5463
|
+
return assertEx42(block, () => "Could not find current block");
|
|
5425
5464
|
}, this.context);
|
|
5426
5465
|
}
|
|
5427
5466
|
async headBlock() {
|
|
@@ -5451,8 +5490,8 @@ var SimpleFinalizationViewer = class extends AbstractCreatableProvider {
|
|
|
5451
5490
|
}
|
|
5452
5491
|
async getCurrentHead() {
|
|
5453
5492
|
const chainArchivist = this.finalizedArchivist;
|
|
5454
|
-
const result =
|
|
5455
|
-
|
|
5493
|
+
const result = assertEx42(await findMostRecentBlock(chainArchivist), () => "Could not find most recent block [getCurrentHead]");
|
|
5494
|
+
assertEx42(result?.chain === this._chainId, () => "Chain ID does not match head block chain ID");
|
|
5456
5495
|
return result;
|
|
5457
5496
|
}
|
|
5458
5497
|
};
|
|
@@ -5484,9 +5523,9 @@ var SimpleXyoGateway = class _SimpleXyoGateway extends AbstractCreatableProvider
|
|
|
5484
5523
|
|
|
5485
5524
|
// src/simple/gateway/SimpleXyoGatewayRunner.ts
|
|
5486
5525
|
import {
|
|
5487
|
-
assertEx as
|
|
5526
|
+
assertEx as assertEx43,
|
|
5488
5527
|
BigIntToJsonZod,
|
|
5489
|
-
isDefined as
|
|
5528
|
+
isDefined as isDefined20
|
|
5490
5529
|
} from "@ariestools/sdk";
|
|
5491
5530
|
import { PayloadBuilder as PayloadBuilder20 } from "@xyo-network/sdk-js";
|
|
5492
5531
|
import {
|
|
@@ -5517,23 +5556,23 @@ var SimpleXyoGatewayRunner = class _SimpleXyoGatewayRunner extends AbstractCreat
|
|
|
5517
5556
|
return this._signer;
|
|
5518
5557
|
}
|
|
5519
5558
|
async addPayloadsToChain(onChain, offChain, options) {
|
|
5520
|
-
const viewer =
|
|
5559
|
+
const viewer = assertEx43(this.connection.viewer, () => "No viewer available on connection");
|
|
5521
5560
|
const {
|
|
5522
5561
|
nbf,
|
|
5523
5562
|
exp,
|
|
5524
5563
|
chain,
|
|
5525
5564
|
fees
|
|
5526
5565
|
} = options ?? {};
|
|
5527
|
-
const resolvedChainId =
|
|
5528
|
-
const resolvedNbf = asXL1BlockNumber10(
|
|
5529
|
-
const resolvedExp = asXL1BlockNumber10(
|
|
5566
|
+
const resolvedChainId = isDefined20(chain) ? chain : await viewer.chainId();
|
|
5567
|
+
const resolvedNbf = asXL1BlockNumber10(isDefined20(nbf) ? nbf : await viewer.currentBlockNumber(), true);
|
|
5568
|
+
const resolvedExp = asXL1BlockNumber10(isDefined20(exp) ? exp : resolvedNbf + 10, true);
|
|
5530
5569
|
const tx = await buildUnsignedTransaction(resolvedChainId, onChain, offChain, resolvedNbf, resolvedExp, await this.signer.address(), fees);
|
|
5531
5570
|
return await this.addTransactionToChain(tx, await PayloadBuilder20.addHashMeta(offChain));
|
|
5532
5571
|
}
|
|
5533
5572
|
async addTransactionToChain(tx, offChain = []) {
|
|
5534
5573
|
const connection = this.connection;
|
|
5535
5574
|
const signer = this.signer;
|
|
5536
|
-
const runner =
|
|
5575
|
+
const runner = assertEx43(connection.runner, () => "No runner available on connection");
|
|
5537
5576
|
let signedTx;
|
|
5538
5577
|
if (isSignedHydratedTransaction(tx)) {
|
|
5539
5578
|
const [bw, payloads] = tx;
|
|
@@ -5548,7 +5587,7 @@ var SimpleXyoGatewayRunner = class _SimpleXyoGatewayRunner extends AbstractCreat
|
|
|
5548
5587
|
}
|
|
5549
5588
|
async confirmSubmittedTransaction(txHash, options) {
|
|
5550
5589
|
return await confirmSubmittedTransaction(
|
|
5551
|
-
|
|
5590
|
+
assertEx43(this.connection.viewer, () => "Connection viewer is undefined"),
|
|
5552
5591
|
txHash,
|
|
5553
5592
|
options
|
|
5554
5593
|
);
|
|
@@ -5587,7 +5626,7 @@ var SimpleXyoGatewayRunner = class _SimpleXyoGatewayRunner extends AbstractCreat
|
|
|
5587
5626
|
|
|
5588
5627
|
// src/simple/mempool/SimpleMempoolRunner.ts
|
|
5589
5628
|
import {
|
|
5590
|
-
assertEx as
|
|
5629
|
+
assertEx as assertEx44,
|
|
5591
5630
|
exists as exists8
|
|
5592
5631
|
} from "@ariestools/sdk";
|
|
5593
5632
|
import { isPayloadBundle, PayloadBuilder as PayloadBuilder21 } from "@xyo-network/sdk-js";
|
|
@@ -5643,10 +5682,10 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
|
|
|
5643
5682
|
return this.params.maxPendingTransactions ?? 0;
|
|
5644
5683
|
}
|
|
5645
5684
|
get pendingBlocksArchivist() {
|
|
5646
|
-
return
|
|
5685
|
+
return assertEx44(this.params.pendingBlocksArchivist, () => "pendingBlocksArchivist is required \u2014 inject it or bind a connection");
|
|
5647
5686
|
}
|
|
5648
5687
|
get pendingTransactionsArchivist() {
|
|
5649
|
-
return
|
|
5688
|
+
return assertEx44(this.params.pendingTransactionsArchivist, () => "pendingTransactionsArchivist is required \u2014 inject it or bind a connection");
|
|
5650
5689
|
}
|
|
5651
5690
|
get syncInterval() {
|
|
5652
5691
|
return this.params.syncInterval ?? DEFAULT_SYNC_INTERVAL;
|
|
@@ -5666,8 +5705,8 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
|
|
|
5666
5705
|
const pendingTransactionsArchivist = params?.pendingTransactionsArchivist ?? (connection ? await connectArchivist(connection, { name: PENDING_TRANSACTIONS_ARCHIVIST_ROLE }) : void 0);
|
|
5667
5706
|
return {
|
|
5668
5707
|
...await super.paramsHandler(params),
|
|
5669
|
-
pendingBlocksArchivist:
|
|
5670
|
-
pendingTransactionsArchivist:
|
|
5708
|
+
pendingBlocksArchivist: assertEx44(pendingBlocksArchivist, () => "pendingBlocksArchivist is required \u2014 inject it or bind a connection"),
|
|
5709
|
+
pendingTransactionsArchivist: assertEx44(pendingTransactionsArchivist, () => "pendingTransactionsArchivist is required \u2014 inject it or bind a connection")
|
|
5671
5710
|
};
|
|
5672
5711
|
}
|
|
5673
5712
|
async createHandler() {
|
|
@@ -5706,7 +5745,7 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
|
|
|
5706
5745
|
remainingBlockMap.push(i);
|
|
5707
5746
|
return b;
|
|
5708
5747
|
}).filter(exists8);
|
|
5709
|
-
|
|
5748
|
+
assertEx44(
|
|
5710
5749
|
remainingBlockMap.length === remainingBlocks.length,
|
|
5711
5750
|
() => `remainingBlockMap length should match remainingBlocks length [${remainingBlockMap.length}/${remainingBlocks.length}]`
|
|
5712
5751
|
);
|
|
@@ -5769,7 +5808,7 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
|
|
|
5769
5808
|
remainingTransactionMap.push(i);
|
|
5770
5809
|
return t;
|
|
5771
5810
|
}).filter(exists8);
|
|
5772
|
-
|
|
5811
|
+
assertEx44(
|
|
5773
5812
|
remainingTransactionMap.length === remainingTransactions.length,
|
|
5774
5813
|
() => `remainingTransactionMap length should match remainingTransactions length [${remainingTransactionMap.length}/${remainingTransactions.length}]`
|
|
5775
5814
|
);
|
|
@@ -6022,9 +6061,9 @@ SimpleMempoolRunner = __decorateClass([
|
|
|
6022
6061
|
|
|
6023
6062
|
// src/simple/mempool/SimpleMempoolViewer.ts
|
|
6024
6063
|
import {
|
|
6025
|
-
assertEx as
|
|
6064
|
+
assertEx as assertEx45,
|
|
6026
6065
|
exists as exists9,
|
|
6027
|
-
isDefined as
|
|
6066
|
+
isDefined as isDefined21,
|
|
6028
6067
|
isHash as isHash2
|
|
6029
6068
|
} from "@ariestools/sdk";
|
|
6030
6069
|
import { isHashMeta as isHashMeta2, isPayloadBundle as isPayloadBundle2 } from "@xyo-network/sdk-js";
|
|
@@ -6043,10 +6082,10 @@ var SimpleMempoolViewer = class extends AbstractCreatableProvider {
|
|
|
6043
6082
|
return this.params.handoutStatsTtlBlocks ?? DEFAULT_HANDOUT_STATS_TTL_BLOCKS;
|
|
6044
6083
|
}
|
|
6045
6084
|
get pendingBlocksArchivist() {
|
|
6046
|
-
return
|
|
6085
|
+
return assertEx45(this.params.pendingBlocksArchivist, () => "pendingBlocksArchivist is required \u2014 inject it or bind a connection");
|
|
6047
6086
|
}
|
|
6048
6087
|
get pendingTransactionsArchivist() {
|
|
6049
|
-
return
|
|
6088
|
+
return assertEx45(this.params.pendingTransactionsArchivist, () => "pendingTransactionsArchivist is required \u2014 inject it or bind a connection");
|
|
6050
6089
|
}
|
|
6051
6090
|
get windowedBlockViewer() {
|
|
6052
6091
|
return this._windowedBlockViewer;
|
|
@@ -6095,7 +6134,7 @@ var SimpleMempoolViewer = class extends AbstractCreatableProvider {
|
|
|
6095
6134
|
let cursor;
|
|
6096
6135
|
if (isHash2(providedCursor)) {
|
|
6097
6136
|
const [p] = await this.pendingBlocksArchivist.get([providedCursor]);
|
|
6098
|
-
if (
|
|
6137
|
+
if (isDefined21(p)) {
|
|
6099
6138
|
cursor = p._sequence;
|
|
6100
6139
|
}
|
|
6101
6140
|
}
|
|
@@ -6115,7 +6154,7 @@ var SimpleMempoolViewer = class extends AbstractCreatableProvider {
|
|
|
6115
6154
|
let cursor;
|
|
6116
6155
|
if (isHash2(providedCursor)) {
|
|
6117
6156
|
const [p] = await this.pendingTransactionsArchivist.get([providedCursor]);
|
|
6118
|
-
if (
|
|
6157
|
+
if (isDefined21(p)) {
|
|
6119
6158
|
cursor = p._sequence;
|
|
6120
6159
|
}
|
|
6121
6160
|
}
|
|
@@ -6188,7 +6227,7 @@ var SimpleMempoolViewer = class extends AbstractCreatableProvider {
|
|
|
6188
6227
|
const hydratedResults = await Promise.all(
|
|
6189
6228
|
filteredBundles.map(async (bundle3) => {
|
|
6190
6229
|
const tx = await bundledPayloadToHydratedTransaction(bundle3);
|
|
6191
|
-
return
|
|
6230
|
+
return isDefined21(tx) ? { bundle: bundle3, tx } : void 0;
|
|
6192
6231
|
})
|
|
6193
6232
|
);
|
|
6194
6233
|
return hydratedResults.filter(exists9);
|
|
@@ -6332,7 +6371,7 @@ var SimpleXyoNetwork = class {
|
|
|
6332
6371
|
};
|
|
6333
6372
|
|
|
6334
6373
|
// src/simple/permissions/SimpleXyoPermissions.ts
|
|
6335
|
-
import { assertEx as
|
|
6374
|
+
import { assertEx as assertEx46 } from "@ariestools/sdk";
|
|
6336
6375
|
var SimpleXyoPermissions = class {
|
|
6337
6376
|
invoker;
|
|
6338
6377
|
_store;
|
|
@@ -6341,7 +6380,7 @@ var SimpleXyoPermissions = class {
|
|
|
6341
6380
|
this.invoker = store.invoker;
|
|
6342
6381
|
}
|
|
6343
6382
|
get store() {
|
|
6344
|
-
return
|
|
6383
|
+
return assertEx46(this._store, () => "Store must be defined to get permissions");
|
|
6345
6384
|
}
|
|
6346
6385
|
async getPermissions() {
|
|
6347
6386
|
return await this.store.getPermissions();
|
|
@@ -6394,7 +6433,7 @@ var SimpleXyoPermissions = class {
|
|
|
6394
6433
|
};
|
|
6395
6434
|
|
|
6396
6435
|
// src/simple/permissions/store/MemoryPermissions.ts
|
|
6397
|
-
import { assertEx as
|
|
6436
|
+
import { assertEx as assertEx47 } from "@ariestools/sdk";
|
|
6398
6437
|
var MemoryPermissionsStore = class {
|
|
6399
6438
|
_invoker;
|
|
6400
6439
|
permissions = [];
|
|
@@ -6402,7 +6441,7 @@ var MemoryPermissionsStore = class {
|
|
|
6402
6441
|
this._invoker = invoker;
|
|
6403
6442
|
}
|
|
6404
6443
|
get invoker() {
|
|
6405
|
-
return
|
|
6444
|
+
return assertEx47(this._invoker, () => "Invoker must be defined to get permissions");
|
|
6406
6445
|
}
|
|
6407
6446
|
async getPermissions() {
|
|
6408
6447
|
await Promise.resolve();
|
|
@@ -6444,7 +6483,7 @@ SimpleXyoRunner = __decorateClass([
|
|
|
6444
6483
|
], SimpleXyoRunner);
|
|
6445
6484
|
|
|
6446
6485
|
// src/simple/signer/SimpleXyoSigner.ts
|
|
6447
|
-
import { assertEx as
|
|
6486
|
+
import { assertEx as assertEx48 } from "@ariestools/sdk";
|
|
6448
6487
|
import { Account, PayloadBuilder as PayloadBuilder23 } from "@xyo-network/sdk-js";
|
|
6449
6488
|
import { asSignedHydratedTransactionWithHashMeta, XyoSignerMoniker as XyoSignerMoniker2 } from "@xyo-network/xl1-protocol-lib";
|
|
6450
6489
|
var SimpleXyoSigner = class _SimpleXyoSigner extends AbstractCreatableProvider {
|
|
@@ -6478,13 +6517,13 @@ var SimpleXyoSigner = class _SimpleXyoSigner extends AbstractCreatableProvider {
|
|
|
6478
6517
|
];
|
|
6479
6518
|
}
|
|
6480
6519
|
async signTransaction(tx) {
|
|
6481
|
-
|
|
6520
|
+
assertEx48(tx[0].from === this.params.account.address, () => "Signer address does not match transaction from address");
|
|
6482
6521
|
return asSignedHydratedTransactionWithHashMeta(await this.sign(tx), true);
|
|
6483
6522
|
}
|
|
6484
6523
|
};
|
|
6485
6524
|
|
|
6486
6525
|
// src/simple/StakeEventsViewer/SimpleStakeEventsViewer.ts
|
|
6487
|
-
import { isDefined as
|
|
6526
|
+
import { isDefined as isDefined22 } from "@ariestools/sdk";
|
|
6488
6527
|
import { StakeEventsViewerMoniker } from "@xyo-network/xl1-protocol-lib";
|
|
6489
6528
|
var SimpleStakeEventsViewer = class extends AbstractCreatableProvider {
|
|
6490
6529
|
moniker = SimpleStakeEventsViewer.defaultMoniker;
|
|
@@ -6497,7 +6536,7 @@ var SimpleStakeEventsViewer = class extends AbstractCreatableProvider {
|
|
|
6497
6536
|
stakeEvents(range, { name } = {}) {
|
|
6498
6537
|
const positions = this.positionsFromRange(range);
|
|
6499
6538
|
const events = this.eventsFromPositions(positions);
|
|
6500
|
-
if (
|
|
6539
|
+
if (isDefined22(name)) {
|
|
6501
6540
|
return events.filter((event) => event.name === name);
|
|
6502
6541
|
}
|
|
6503
6542
|
return events;
|
|
@@ -6564,7 +6603,7 @@ SimpleStakeEventsViewer = __decorateClass([
|
|
|
6564
6603
|
], SimpleStakeEventsViewer);
|
|
6565
6604
|
|
|
6566
6605
|
// src/simple/StakeTotalsViewer/SimpleStakeTotalsViewer.ts
|
|
6567
|
-
import { assertEx as
|
|
6606
|
+
import { assertEx as assertEx49 } from "@ariestools/sdk";
|
|
6568
6607
|
import { asXyoAddress as asXyoAddress3 } from "@xyo-network/sdk-js";
|
|
6569
6608
|
import {
|
|
6570
6609
|
StakeTotalsViewerMoniker,
|
|
@@ -6608,7 +6647,7 @@ var SimpleStakeTotalsViewer = class extends AbstractCreatableProvider {
|
|
|
6608
6647
|
}
|
|
6609
6648
|
async createHandler() {
|
|
6610
6649
|
await super.createHandler();
|
|
6611
|
-
this._stakeViewer =
|
|
6650
|
+
this._stakeViewer = assertEx49(
|
|
6612
6651
|
await this.locateAndCreate(StakeViewerMoniker),
|
|
6613
6652
|
() => "Failed to create StakeViewer"
|
|
6614
6653
|
);
|
|
@@ -6664,14 +6703,14 @@ SimpleStakeTotalsViewer = __decorateClass([
|
|
|
6664
6703
|
], SimpleStakeTotalsViewer);
|
|
6665
6704
|
|
|
6666
6705
|
// src/simple/StakeViewer/SimpleStakeViewer.ts
|
|
6667
|
-
import { assertEx as
|
|
6706
|
+
import { assertEx as assertEx50, toAddress } from "@ariestools/sdk";
|
|
6668
6707
|
import { asXyoAddress as asXyoAddress4 } from "@xyo-network/sdk-js";
|
|
6669
6708
|
import { StakeEventsViewerMoniker as StakeEventsViewerMoniker2, StakeViewerMoniker as StakeViewerMoniker2 } from "@xyo-network/xl1-protocol-lib";
|
|
6670
6709
|
var SimpleStakeViewer = class extends AbstractCreatableProvider {
|
|
6671
6710
|
moniker = SimpleStakeViewer.defaultMoniker;
|
|
6672
6711
|
_chainStakeEventsViewer;
|
|
6673
6712
|
get stakeEvents() {
|
|
6674
|
-
return
|
|
6713
|
+
return assertEx50(this._chainStakeEventsViewer, () => "Stake events viewer not set");
|
|
6675
6714
|
}
|
|
6676
6715
|
get positions() {
|
|
6677
6716
|
return this.params.positions;
|
|
@@ -6711,7 +6750,7 @@ var SimpleStakeViewer = class extends AbstractCreatableProvider {
|
|
|
6711
6750
|
}
|
|
6712
6751
|
async createHandler() {
|
|
6713
6752
|
await super.createHandler();
|
|
6714
|
-
this._chainStakeEventsViewer =
|
|
6753
|
+
this._chainStakeEventsViewer = assertEx50(
|
|
6715
6754
|
await this.locateAndCreate(StakeEventsViewerMoniker2),
|
|
6716
6755
|
() => "Failed to create StakeEventsViewer"
|
|
6717
6756
|
);
|
|
@@ -6746,7 +6785,7 @@ var SimpleStakeViewer = class extends AbstractCreatableProvider {
|
|
|
6746
6785
|
return toAddress(toAddress(1n));
|
|
6747
6786
|
}
|
|
6748
6787
|
stakeById(id) {
|
|
6749
|
-
return
|
|
6788
|
+
return assertEx50(this.positions[id], () => new Error(`Stake with id ${id} not found`));
|
|
6750
6789
|
}
|
|
6751
6790
|
stakeByStaker(staker, slot) {
|
|
6752
6791
|
return this.positions.filter((s) => asXyoAddress4(s.staker) === asXyoAddress4(staker))[slot];
|
|
@@ -6848,12 +6887,12 @@ RestSyncViewer = __decorateClass([
|
|
|
6848
6887
|
], RestSyncViewer);
|
|
6849
6888
|
|
|
6850
6889
|
// src/simple/systemStatus/SimpleSystemStatusViewer.ts
|
|
6851
|
-
import { assertEx as
|
|
6890
|
+
import { assertEx as assertEx51 } from "@ariestools/sdk";
|
|
6852
6891
|
import { SystemStatusViewerMoniker } from "@xyo-network/xl1-protocol-lib";
|
|
6853
6892
|
var SimpleSystemStatusViewer = class extends AbstractCreatableProvider {
|
|
6854
6893
|
moniker = SimpleSystemStatusViewer.defaultMoniker;
|
|
6855
6894
|
get runner() {
|
|
6856
|
-
return
|
|
6895
|
+
return assertEx51(this.context.statusReporter, () => "SystemStatusViewer requires a SystemStatusRunner (context.statusReporter)");
|
|
6857
6896
|
}
|
|
6858
6897
|
getGlobalStatus() {
|
|
6859
6898
|
return this.runner.getGlobalStatus();
|
|
@@ -6883,8 +6922,8 @@ SimpleSystemStatusViewer = __decorateClass([
|
|
|
6883
6922
|
// src/simple/timeSync2/SimpleTimeSyncViewer.ts
|
|
6884
6923
|
import {
|
|
6885
6924
|
asHash as asHash5,
|
|
6886
|
-
assertEx as
|
|
6887
|
-
isDefined as
|
|
6925
|
+
assertEx as assertEx52,
|
|
6926
|
+
isDefined as isDefined23
|
|
6888
6927
|
} from "@ariestools/sdk";
|
|
6889
6928
|
import {
|
|
6890
6929
|
asTimePayload as asTimePayload2,
|
|
@@ -6905,10 +6944,10 @@ var SimpleTimeSyncViewer = class extends AbstractCreatableProvider {
|
|
|
6905
6944
|
async convertTime(fromDomain, toDomain, from) {
|
|
6906
6945
|
switch (fromDomain) {
|
|
6907
6946
|
case "xl1": {
|
|
6908
|
-
const [block, payloads] =
|
|
6947
|
+
const [block, payloads] = assertEx52(await this.blockViewer.blockByNumber(asXL1BlockNumber11(from, true)), () => "Block not found");
|
|
6909
6948
|
const timeSchemaIndex = block.payload_schemas.indexOf(TimeSchema);
|
|
6910
6949
|
const hash = timeSchemaIndex === -1 ? void 0 : block.payload_hashes[timeSchemaIndex];
|
|
6911
|
-
const timePayload = asTimePayload2(
|
|
6950
|
+
const timePayload = asTimePayload2(isDefined23(hash) ? payloads.find((p) => p._hash === hash) : void 0);
|
|
6912
6951
|
if (timePayload === void 0) return 0;
|
|
6913
6952
|
switch (toDomain) {
|
|
6914
6953
|
case "xl1": {
|
|
@@ -6961,10 +7000,10 @@ var SimpleTimeSyncViewer = class extends AbstractCreatableProvider {
|
|
|
6961
7000
|
return [Date.now(), null];
|
|
6962
7001
|
}
|
|
6963
7002
|
case "ethereum": {
|
|
6964
|
-
const provider =
|
|
7003
|
+
const provider = assertEx52(this.ethProvider, () => "Ethereum provider not configured");
|
|
6965
7004
|
const blockNumber = await provider.getBlockNumber() ?? 0;
|
|
6966
7005
|
const block = await provider.getBlock(blockNumber);
|
|
6967
|
-
const blockHash = asHash5(
|
|
7006
|
+
const blockHash = asHash5(assertEx52(block?.hash, () => "Block hash not found"), true);
|
|
6968
7007
|
return [blockNumber, blockHash];
|
|
6969
7008
|
}
|
|
6970
7009
|
default: {
|
|
@@ -6979,10 +7018,10 @@ var SimpleTimeSyncViewer = class extends AbstractCreatableProvider {
|
|
|
6979
7018
|
// this is for the previous block
|
|
6980
7019
|
xl1,
|
|
6981
7020
|
// this is for the previous block
|
|
6982
|
-
xl1Hash:
|
|
7021
|
+
xl1Hash: assertEx52(xl1Hash, () => "No xl1 hash available from time sync service"),
|
|
6983
7022
|
epoch: Date.now()
|
|
6984
7023
|
};
|
|
6985
|
-
if (
|
|
7024
|
+
if (isDefined23(this.ethProvider)) {
|
|
6986
7025
|
const [ethereum, ethHashOrNull] = await this.currentTimeAndHash("ethereum");
|
|
6987
7026
|
const ethereumHash = asHash5(ethHashOrNull, () => "No ethereum hash available from time sync service");
|
|
6988
7027
|
timePayload.ethereum = ethereum;
|
|
@@ -7001,7 +7040,7 @@ SimpleTimeSyncViewer = __decorateClass([
|
|
|
7001
7040
|
], SimpleTimeSyncViewer);
|
|
7002
7041
|
|
|
7003
7042
|
// src/simple/transactionValidation/SimpleTransactionValidationViewer.ts
|
|
7004
|
-
import { assertEx as
|
|
7043
|
+
import { assertEx as assertEx53 } from "@ariestools/sdk";
|
|
7005
7044
|
import { PayloadBuilder as PayloadBuilder24 } from "@xyo-network/sdk-js";
|
|
7006
7045
|
import {
|
|
7007
7046
|
AccountBalanceViewerMoniker as AccountBalanceViewerMoniker3,
|
|
@@ -7055,7 +7094,7 @@ var SimpleTransactionValidationViewer = class extends AbstractCreatableProvider
|
|
|
7055
7094
|
let head;
|
|
7056
7095
|
if (isChainQualifiedHeadConfig6(config)) {
|
|
7057
7096
|
const headBlockResult = await this.blockViewer.blockByHash(config.head);
|
|
7058
|
-
head = headBlockResult == null ?
|
|
7097
|
+
head = headBlockResult == null ? assertEx53(
|
|
7059
7098
|
void 0,
|
|
7060
7099
|
() => `Specified a head that is not in the chain [${config.head}]`
|
|
7061
7100
|
) : headBlockResult[0];
|
|
@@ -7127,7 +7166,7 @@ SimpleTransactionValidationViewer = __decorateClass([
|
|
|
7127
7166
|
], SimpleTransactionValidationViewer);
|
|
7128
7167
|
|
|
7129
7168
|
// src/simple/TransactionViewer/SimpleTransactionViewer.ts
|
|
7130
|
-
import { assertEx as
|
|
7169
|
+
import { assertEx as assertEx54, exists as exists10 } from "@ariestools/sdk";
|
|
7131
7170
|
import { BoundWitnessSchema } from "@xyo-network/sdk-js";
|
|
7132
7171
|
import {
|
|
7133
7172
|
asSignedHydratedTransactionWithHashMeta as asSignedHydratedTransactionWithHashMeta2,
|
|
@@ -7144,7 +7183,7 @@ var SimpleTransactionViewer = class extends AbstractCreatableProvider {
|
|
|
7144
7183
|
}
|
|
7145
7184
|
async byBlockHashAndIndex(blockHash, transactionIndex) {
|
|
7146
7185
|
return await this.spanAsync("byBlockHashAndIndex", async () => {
|
|
7147
|
-
|
|
7186
|
+
assertEx54(transactionIndex >= 0, () => "transactionIndex must be greater than or equal to 0");
|
|
7148
7187
|
try {
|
|
7149
7188
|
const block = await this.blockViewer.blockByHash(blockHash);
|
|
7150
7189
|
if (!block) return null;
|
|
@@ -7209,7 +7248,7 @@ SimpleTransactionViewer = __decorateClass([
|
|
|
7209
7248
|
|
|
7210
7249
|
// src/simple/windowedBlock/SimpleWindowedBlockViewer.ts
|
|
7211
7250
|
import {
|
|
7212
|
-
assertEx as
|
|
7251
|
+
assertEx as assertEx55,
|
|
7213
7252
|
exists as exists11,
|
|
7214
7253
|
isNull as isNull2
|
|
7215
7254
|
} from "@ariestools/sdk";
|
|
@@ -7291,7 +7330,7 @@ var SimpleWindowedBlockViewer = class extends AbstractCreatableProvider {
|
|
|
7291
7330
|
}
|
|
7292
7331
|
async createHandler() {
|
|
7293
7332
|
await super.createHandler();
|
|
7294
|
-
this._blockViewer =
|
|
7333
|
+
this._blockViewer = assertEx55(
|
|
7295
7334
|
this.params.blockViewer ?? await this.locator.getInstance(BlockViewerMoniker7),
|
|
7296
7335
|
() => "BlockViewer instance is required"
|
|
7297
7336
|
);
|
|
@@ -7300,13 +7339,13 @@ var SimpleWindowedBlockViewer = class extends AbstractCreatableProvider {
|
|
|
7300
7339
|
this._transactionHashMap = new MemoryMap2();
|
|
7301
7340
|
}
|
|
7302
7341
|
currentBlock() {
|
|
7303
|
-
return
|
|
7342
|
+
return assertEx55(this._chain.at(-1));
|
|
7304
7343
|
}
|
|
7305
7344
|
currentBlockHash() {
|
|
7306
|
-
return
|
|
7345
|
+
return assertEx55(this._chain.at(-1)?.[0]._hash);
|
|
7307
7346
|
}
|
|
7308
7347
|
currentBlockNumber() {
|
|
7309
|
-
return
|
|
7348
|
+
return assertEx55(this._chain.at(-1)?.[0].block);
|
|
7310
7349
|
}
|
|
7311
7350
|
async payloadByHash(hash) {
|
|
7312
7351
|
const payloads = await this.payloadsByHash([hash]);
|
|
@@ -7523,7 +7562,7 @@ var SimpleSystemStatusRunner = class extends LoggerStatusReporter {
|
|
|
7523
7562
|
};
|
|
7524
7563
|
|
|
7525
7564
|
// src/test/buildRandomChain.ts
|
|
7526
|
-
import { asAddress as asAddress2, assertEx as
|
|
7565
|
+
import { asAddress as asAddress2, assertEx as assertEx58 } from "@ariestools/sdk";
|
|
7527
7566
|
import {
|
|
7528
7567
|
Account as Account4,
|
|
7529
7568
|
asSchema as asSchema9,
|
|
@@ -7542,7 +7581,7 @@ import {
|
|
|
7542
7581
|
} from "@xyo-network/xl1-protocol-lib";
|
|
7543
7582
|
|
|
7544
7583
|
// src/test/buildBlock.ts
|
|
7545
|
-
import { assertEx as
|
|
7584
|
+
import { assertEx as assertEx56, isDefined as isDefined24 } from "@ariestools/sdk";
|
|
7546
7585
|
import {
|
|
7547
7586
|
asAnyPayload as asAnyPayload5,
|
|
7548
7587
|
BoundWitnessBuilder as BoundWitnessBuilder4,
|
|
@@ -7625,8 +7664,8 @@ function buildStepHashes(blockNumber, inStepHashes, previousBlockHash, chainStep
|
|
|
7625
7664
|
const completedStepReward = calculateCompletedStepReward(i, stepRewardPoolBalance);
|
|
7626
7665
|
completedStepRewardTransfers.push(createTransferPayload(chainStepRewardAddress2, { [completedStepRewardHolderAddress]: completedStepReward }));
|
|
7627
7666
|
}
|
|
7628
|
-
step_hashes.push(
|
|
7629
|
-
} else if (
|
|
7667
|
+
step_hashes.push(assertEx56(previousBlockHash, () => `Previous block hash is required for step ${step} at block ${blockNumber}`));
|
|
7668
|
+
} else if (isDefined24(inStepHashes.at(i))) {
|
|
7630
7669
|
step_hashes.push(inStepHashes[i]);
|
|
7631
7670
|
}
|
|
7632
7671
|
}
|
|
@@ -7679,7 +7718,7 @@ async function buildBlock(options) {
|
|
|
7679
7718
|
protocol
|
|
7680
7719
|
}).meta({ $epoch: Date.now(), $signatures: [] }).signers(signers).payloads(await PayloadBuilder25.addStorageMeta(payloads));
|
|
7681
7720
|
const [bw, txPayloads] = await builder.build();
|
|
7682
|
-
|
|
7721
|
+
assertEx56(isBlockBoundWitness(bw), () => "Build of BlockBoundWitness failed");
|
|
7683
7722
|
return [await PayloadBuilder25.addStorageMeta(bw), txPayloads.map((p) => asAnyPayload5(p, true))];
|
|
7684
7723
|
}
|
|
7685
7724
|
|
|
@@ -7700,7 +7739,7 @@ async function buildNextBlock(previousBlock, txs, blockPayloads, signers, chainS
|
|
|
7700
7739
|
}
|
|
7701
7740
|
|
|
7702
7741
|
// src/test/buildRandomGenesisBlock.ts
|
|
7703
|
-
import { asAddress, assertEx as
|
|
7742
|
+
import { asAddress, assertEx as assertEx57 } from "@ariestools/sdk";
|
|
7704
7743
|
import {
|
|
7705
7744
|
Account as Account3,
|
|
7706
7745
|
asAnyPayload as asAnyPayload6,
|
|
@@ -7744,7 +7783,7 @@ var buildRandomTransaction = async (chain, payloads, account, nbf = asXL1BlockNu
|
|
|
7744
7783
|
};
|
|
7745
7784
|
|
|
7746
7785
|
// src/test/buildRandomGenesisBlock.ts
|
|
7747
|
-
var TestChainId =
|
|
7786
|
+
var TestChainId = assertEx57(asAddress("c5fe2e6F6841Cbab12d8C0618Be2DF8C6156cC44"));
|
|
7748
7787
|
|
|
7749
7788
|
// src/test/createGenesisBlock.ts
|
|
7750
7789
|
import { PayloadBuilder as PayloadBuilder28 } from "@xyo-network/sdk-js";
|
|
@@ -7799,7 +7838,7 @@ var createGenesisBlock = async (initialBlockProducer, nextContractAddress, genes
|
|
|
7799
7838
|
};
|
|
7800
7839
|
|
|
7801
7840
|
// src/test/buildRandomChain.ts
|
|
7802
|
-
var TestGenesisBlockRewardAddress =
|
|
7841
|
+
var TestGenesisBlockRewardAddress = assertEx58(asAddress2("fa7f0bb865a4bfff3d5e2c726d3e063297014da9"));
|
|
7803
7842
|
var buildRandomChain = async (blockProducer, count = 10, previousBlock, chainId, transactionAccount, receiverAddresses) => {
|
|
7804
7843
|
const chainIdToUse = chainId ?? TestChainId;
|
|
7805
7844
|
const blocks = [];
|
|
@@ -7843,7 +7882,7 @@ var buildRandomChain = async (blockProducer, count = 10, previousBlock, chainId,
|
|
|
7843
7882
|
receiverAddress
|
|
7844
7883
|
));
|
|
7845
7884
|
}
|
|
7846
|
-
const previousBlock2 =
|
|
7885
|
+
const previousBlock2 = assertEx58(lastBlock?.[0], () => new Error("No last block"));
|
|
7847
7886
|
const block = await buildNextBlock(previousBlock2, txs, [], [blockProducer], transactionAccountToUse.address);
|
|
7848
7887
|
blocks.push(block);
|
|
7849
7888
|
remaining = remaining - 1;
|
|
@@ -7904,13 +7943,13 @@ function getTestProviderContext2(config) {
|
|
|
7904
7943
|
}
|
|
7905
7944
|
|
|
7906
7945
|
// src/time/primitives/xl1BlockNumberToEthBlockNumber.ts
|
|
7907
|
-
import { assertEx as
|
|
7946
|
+
import { assertEx as assertEx59 } from "@ariestools/sdk";
|
|
7908
7947
|
import { asTimePayload as asTimePayload3, TimeSchema as TimeSchema2 } from "@xyo-network/xl1-protocol-lib";
|
|
7909
7948
|
async function xl1BlockNumberToEthBlockNumber(context, xl1BlockNumber) {
|
|
7910
7949
|
const blockHash = await hashFromBlockNumber(context, xl1BlockNumber);
|
|
7911
7950
|
const hydratedBlock = await hydrateBlock(context, blockHash);
|
|
7912
7951
|
const timePayload = asTimePayload3(hydratedBlock[1].find((p) => p.schema === TimeSchema2), { required: true });
|
|
7913
|
-
return
|
|
7952
|
+
return assertEx59(timePayload.ethereum, () => "No ethereum timestamp found on block");
|
|
7914
7953
|
}
|
|
7915
7954
|
|
|
7916
7955
|
// src/validation/lib/isLocalhost.ts
|
|
@@ -8233,6 +8272,7 @@ export {
|
|
|
8233
8272
|
resolveProviders,
|
|
8234
8273
|
resolveProvidersFromConfig,
|
|
8235
8274
|
resolveRestConnectionEndpoint,
|
|
8275
|
+
restConnectionFromS3Bucket,
|
|
8236
8276
|
rewardFromBlockNumber,
|
|
8237
8277
|
schemasMaxStep,
|
|
8238
8278
|
schemasStepSummaryFromRange,
|
|
@@ -8252,6 +8292,7 @@ export {
|
|
|
8252
8292
|
stepsRewardTotalGenesisPeriod,
|
|
8253
8293
|
stepsRewardTotalRange,
|
|
8254
8294
|
surfaceForBranch,
|
|
8295
|
+
synthesizeMemoryViewerBindings,
|
|
8255
8296
|
synthesizeRpcConnectionBindings,
|
|
8256
8297
|
timeDurations,
|
|
8257
8298
|
toActorConfig,
|