@xyo-network/xl1-protocol-sdk 1.26.3 → 1.26.6

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.
@@ -2167,7 +2167,7 @@ import {
2167
2167
  } from "@xylabs/sdk-js";
2168
2168
  import { span } from "@xylabs/sdk-js";
2169
2169
  import { isTransfer } from "@xyo-network/xl1-protocol-lib";
2170
- var netBalancesForPayloads = (payloads) => {
2170
+ var netBalancesForPayloads = (context, payloads) => {
2171
2171
  return span("netBalancesForPayloads", () => {
2172
2172
  const balances = {};
2173
2173
  for (const payload of payloads) {
@@ -2180,7 +2180,7 @@ var netBalancesForPayloads = (payloads) => {
2180
2180
  }
2181
2181
  }
2182
2182
  return balances;
2183
- });
2183
+ }, context.traceProvider);
2184
2184
  };
2185
2185
 
2186
2186
  // src/payloads/netSchemasForPayloads.ts
@@ -2190,7 +2190,7 @@ import {
2190
2190
  } from "@xylabs/sdk-js";
2191
2191
  import { span as span2 } from "@xylabs/sdk-js";
2192
2192
  import { isTransfer as isTransfer2 } from "@xyo-network/xl1-protocol-lib";
2193
- var netSchemasForPayloads = (payloads) => {
2193
+ var netSchemasForPayloads = (context, payloads) => {
2194
2194
  return span2("netSchemasForPayloads", () => {
2195
2195
  const balances = {};
2196
2196
  for (const payload of payloads) {
@@ -2203,7 +2203,7 @@ var netSchemasForPayloads = (payloads) => {
2203
2203
  }
2204
2204
  }
2205
2205
  return balances;
2206
- });
2206
+ }, context.traceProvider);
2207
2207
  };
2208
2208
 
2209
2209
  // src/payloads/netTransfersForPayloads.ts
@@ -2212,7 +2212,7 @@ import {
2212
2212
  } from "@xylabs/sdk-js";
2213
2213
  import { span as span3 } from "@xylabs/sdk-js";
2214
2214
  import { isTransfer as isTransfer3 } from "@xyo-network/xl1-protocol-lib";
2215
- function netTransfersForPayloads(payloads) {
2215
+ function netTransfersForPayloads(context, payloads) {
2216
2216
  return span3("netTransfersForPayloads", () => {
2217
2217
  const transfers = {};
2218
2218
  for (const payload of payloads) {
@@ -2227,7 +2227,7 @@ function netTransfersForPayloads(payloads) {
2227
2227
  }
2228
2228
  }
2229
2229
  return transfers;
2230
- });
2230
+ }, context.traceProvider);
2231
2231
  }
2232
2232
 
2233
2233
  // src/primitives/block/range/blockRangeSteps.ts
@@ -2586,7 +2586,7 @@ async function stepRewardTotal(context, blockViewer, { block, step }, multiplier
2586
2586
  () => `No step transfer found for step ${step} at block ${block} (${blockBw._hash})`
2587
2587
  );
2588
2588
  const rewards = assertEx22(
2589
- netTransfersForPayloads([stepTransfer])[XYO_STEP_REWARD_ADDRESS2],
2589
+ netTransfersForPayloads(context, [stepTransfer])[XYO_STEP_REWARD_ADDRESS2],
2590
2590
  () => `No rewards found for step reward address ${XYO_STEP_REWARD_ADDRESS2} at block ${block} (${blockBw._hash})`
2591
2591
  );
2592
2592
  const sortedTransfers = Object.entries(rewards).toSorted(([, a], [, b]) => a > b ? -1 : a < b ? 1 : 0);
@@ -3218,7 +3218,7 @@ async function balancesStepSummaryFromRange(context, semaphores, blockViewer, su
3218
3218
  return frameSize === 1 ? await spanRootAsync2(`balancesStepSummaryFromRange.frameSize=1[${key}]`, async () => {
3219
3219
  const [, payloads] = assertEx26(await blockViewer.blockByNumber(range[0]), () => `Block not found for number: ${range[0]}`);
3220
3220
  const balances = {};
3221
- for (const [address, balance] of Object.entries(netBalancesForPayloads(payloads))) {
3221
+ for (const [address, balance] of Object.entries(netBalancesForPayloads(context, payloads))) {
3222
3222
  balances[address] = toSignedBigInt(balance);
3223
3223
  }
3224
3224
  return {
@@ -3422,7 +3422,7 @@ async function transfersStepSummaryFromRange(context, semaphores, blockViewer, s
3422
3422
  if (frameSize === 1) {
3423
3423
  const [, payloads] = assertEx30(await blockViewer.blockByNumber(range[0]), () => `Block not found for number: ${range[0]}`);
3424
3424
  const transfers = {};
3425
- for (const [from, toMap] of Object.entries(netTransfersForPayloads(payloads))) {
3425
+ for (const [from, toMap] of Object.entries(netTransfersForPayloads(context, payloads))) {
3426
3426
  transfers[from] = transfers[from] ?? {};
3427
3427
  for (const [to, amount] of Object.entries(toMap)) {
3428
3428
  transfers[from][to] = toSignedBigInt(amount);
@@ -3818,13 +3818,11 @@ var SimpleBlockViewer = class extends AbstractCreatableProvider {
3818
3818
  }
3819
3819
  async blockByNumber(blockNumber) {
3820
3820
  return await this.spanAsync("blockByNumber", async () => {
3821
- const [head] = await this.currentBlock();
3822
- if (isUndefined6(head)) {
3821
+ const chainContext = await this.getChainContextRead();
3822
+ if (isUndefined6(chainContext.head)) {
3823
3823
  return null;
3824
3824
  }
3825
- const block = asSignedHydratedBlockWithHashMeta(await hydratedBlockByNumber(await this.getChainContextRead(), blockNumber)) ?? null;
3826
- const [result] = block ? await addDataLakePayloads(block, this.dataLakeViewer) : [null, []];
3827
- return result;
3825
+ return await this.blockByNumberWithContext(chainContext, blockNumber);
3828
3826
  }, { ...this.context, timeBudgetLimit: 100 });
3829
3827
  }
3830
3828
  async blocksByHash(hash, limit = 50) {
@@ -3846,13 +3844,17 @@ var SimpleBlockViewer = class extends AbstractCreatableProvider {
3846
3844
  return await this.spanAsync("blocksByNumber", async () => {
3847
3845
  assertEx33(limit > 0, () => "limit must be greater than 0");
3848
3846
  assertEx33(limit <= 100, () => "limit must be less than 100");
3847
+ const chainContext = await this.getChainContextRead();
3848
+ if (isUndefined6(chainContext.head)) {
3849
+ return [];
3850
+ }
3849
3851
  const blocks = [];
3850
- let current = await this.blockByNumber(blockNumber);
3852
+ let current = await this.blockByNumberWithContext(chainContext, blockNumber);
3851
3853
  while (current && blocks.length < limit) {
3852
3854
  blocks.push(current);
3853
3855
  if (current[0].block === 0) break;
3854
3856
  const previousNumber = asXL1BlockNumber9(current[0].block - 1, true);
3855
- current = await this.blockByNumber(previousNumber);
3857
+ current = await this.blockByNumberWithContext(chainContext, previousNumber);
3856
3858
  }
3857
3859
  return blocks.map((b) => asSignedHydratedBlockWithHashMeta(b, true));
3858
3860
  }, this.context);
@@ -3915,6 +3917,11 @@ var SimpleBlockViewer = class extends AbstractCreatableProvider {
3915
3917
  head: (await this.finalizationViewer.head())[0]
3916
3918
  };
3917
3919
  }
3920
+ async blockByNumberWithContext(chainContext, blockNumber) {
3921
+ const block = asSignedHydratedBlockWithHashMeta(await hydratedBlockByNumber(chainContext, blockNumber)) ?? null;
3922
+ const [result] = block ? await addDataLakePayloads(block, this.dataLakeViewer) : [null, []];
3923
+ return result;
3924
+ }
3918
3925
  };
3919
3926
  __publicField(SimpleBlockViewer, "defaultMoniker", BlockViewerMoniker2);
3920
3927
  __publicField(SimpleBlockViewer, "dependencies", [FinalizationViewerMoniker]);
@@ -4586,7 +4593,8 @@ import {
4586
4593
  isHydratedTransactionWithHashMeta,
4587
4594
  isSignedHydratedBlockWithHashMeta,
4588
4595
  isSignedHydratedTransactionWithHashMeta,
4589
- MempoolRunnerMoniker
4596
+ MempoolRunnerMoniker,
4597
+ TransactionValidationViewerMoniker
4590
4598
  } from "@xyo-network/xl1-protocol-lib";
4591
4599
  import { Mutex } from "async-mutex";
4592
4600
  var DEFAULT_SYNC_INTERVAL = 3e4;
@@ -4596,6 +4604,7 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
4596
4604
  _blockValidationViewer;
4597
4605
  _chainContractViewer;
4598
4606
  _finalizationViewer;
4607
+ _transactionValidationViewer;
4599
4608
  _syncMutex = new Mutex();
4600
4609
  _syncTimerId = null;
4601
4610
  get blockValidationViewer() {
@@ -4625,6 +4634,9 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
4625
4634
  get syncLimit() {
4626
4635
  return this.params.syncLimit ?? DEFAULT_SYNC_LIMIT;
4627
4636
  }
4637
+ get transactionValidationViewer() {
4638
+ return this._transactionValidationViewer;
4639
+ }
4628
4640
  static async paramsHandler(params) {
4629
4641
  return {
4630
4642
  ...await super.paramsHandler(params),
@@ -4637,6 +4649,7 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
4637
4649
  this._blockValidationViewer = await this.locator.getInstance(BlockValidationViewerMoniker2);
4638
4650
  this._chainContractViewer = await this.locator.getInstance(ChainContractViewerMoniker4);
4639
4651
  this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker4);
4652
+ this._transactionValidationViewer = await this.locator.getInstance(TransactionValidationViewerMoniker);
4640
4653
  }
4641
4654
  async prunePendingBlocks({
4642
4655
  batchSize = 10,
@@ -4668,7 +4681,7 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
4668
4681
  remainingBlockMap.length === remainingBlocks.length,
4669
4682
  () => `remainingBlockMap length should match remainingBlocks length [${remainingBlockMap.length}/${remainingBlocks.length}]`
4670
4683
  );
4671
- const validationResults = remainingBlocks.map((b) => b);
4684
+ const validationResults = await this.blockValidationViewer.validateBlocks(remainingBlocks, { value: true, state: true });
4672
4685
  for (const [i, r] of validationResults.entries()) {
4673
4686
  const validated = isHydratedBlockWithHashMeta(r);
4674
4687
  if (!validated) {
@@ -4725,7 +4738,7 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
4725
4738
  remainingTransactionMap.length === remainingTransactions.length,
4726
4739
  () => `remainingTransactionMap length should match remainingTransactions length [${remainingTransactionMap.length}/${remainingTransactions.length}]`
4727
4740
  );
4728
- const validationResults = remainingTransactions.map((t) => t);
4741
+ const validationResults = await this.transactionValidationViewer.validateTransactions(remainingTransactions, { value: true, state: true });
4729
4742
  for (const [i, r] of validationResults.entries()) {
4730
4743
  const validated = isHydratedTransactionWithHashMeta(r);
4731
4744
  if (!validated) {
@@ -4881,7 +4894,7 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
4881
4894
  }
4882
4895
  };
4883
4896
  __publicField(SimpleMempoolRunner, "defaultMoniker", MempoolRunnerMoniker);
4884
- __publicField(SimpleMempoolRunner, "dependencies", [FinalizationViewerMoniker4, BlockValidationViewerMoniker2, ChainContractViewerMoniker4]);
4897
+ __publicField(SimpleMempoolRunner, "dependencies", [FinalizationViewerMoniker4, BlockValidationViewerMoniker2, TransactionValidationViewerMoniker, ChainContractViewerMoniker4]);
4885
4898
  __publicField(SimpleMempoolRunner, "monikers", [MempoolRunnerMoniker]);
4886
4899
  SimpleMempoolRunner = __decorateClass([
4887
4900
  creatableProvider()