@xyo-network/xl1-protocol-sdk 1.25.2 → 1.25.3

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.
Files changed (44) hide show
  1. package/dist/neutral/block/hydrate/hydrateBlock.d.ts +10 -0
  2. package/dist/neutral/block/hydrate/hydrateBlock.d.ts.map +1 -1
  3. package/dist/neutral/index.mjs +35 -33
  4. package/dist/neutral/index.mjs.map +1 -1
  5. package/dist/neutral/model/ChainStore.d.ts +3 -4
  6. package/dist/neutral/model/ChainStore.d.ts.map +1 -1
  7. package/dist/neutral/primitives/readPayloadMapFromStore.d.ts +3 -3
  8. package/dist/neutral/primitives/readPayloadMapFromStore.d.ts.map +1 -1
  9. package/dist/neutral/primitives/uncle/findBestUncle.d.ts +1 -0
  10. package/dist/neutral/primitives/uncle/findBestUncle.d.ts.map +1 -1
  11. package/dist/neutral/primitives/uncle/findUncles.d.ts +1 -0
  12. package/dist/neutral/primitives/uncle/findUncles.d.ts.map +1 -1
  13. package/dist/neutral/simple/TransactionViewer/SimpleTransactionViewer.d.ts.map +1 -1
  14. package/dist/neutral/simple/block/SimpleBlockViewer.d.ts +1 -0
  15. package/dist/neutral/simple/block/SimpleBlockViewer.d.ts.map +1 -1
  16. package/dist/neutral/simple/chainContractViewer/SimpleChainContractViewer.d.ts +2 -2
  17. package/dist/neutral/simple/chainContractViewer/SimpleChainContractViewer.d.ts.map +1 -1
  18. package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts +4 -1
  19. package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts.map +1 -1
  20. package/dist/neutral/simple/finalization/SimpleFinalizationRunner.d.ts.map +1 -1
  21. package/dist/neutral/simple/windowedBlock/SimpleWindowedBlockViewer.d.ts +5 -0
  22. package/dist/neutral/simple/windowedBlock/SimpleWindowedBlockViewer.d.ts.map +1 -1
  23. package/dist/neutral/test/buildBlock.d.ts.map +1 -1
  24. package/dist/neutral/test/buildRandomGenesisBlock.d.ts.map +1 -1
  25. package/dist/neutral/test/index.mjs +17 -38
  26. package/dist/neutral/test/index.mjs.map +1 -1
  27. package/dist/neutral/transaction/TransactionBuilder.d.ts +2 -0
  28. package/dist/neutral/transaction/TransactionBuilder.d.ts.map +1 -1
  29. package/dist/neutral/transaction/buildTransaction.d.ts.map +1 -1
  30. package/dist/neutral/transaction/hydrateTransaction.d.ts.map +1 -1
  31. package/package.json +6 -6
  32. package/src/block/hydrate/hydrateBlock.ts +9 -5
  33. package/src/block/primitives/blockFromBlockNumber.ts +3 -3
  34. package/src/model/ChainStore.ts +5 -4
  35. package/src/primitives/readPayloadMapFromStore.ts +7 -6
  36. package/src/simple/TransactionViewer/SimpleTransactionViewer.ts +2 -5
  37. package/src/simple/block/SimpleBlockViewer.ts +2 -2
  38. package/src/simple/chainContractViewer/SimpleChainContractViewer.ts +0 -1
  39. package/src/simple/finalization/SimpleFinalizationRunner.ts +3 -5
  40. package/src/simple/finalization/SimpleFinalizationViewer.ts +2 -2
  41. package/src/test/buildBlock.ts +2 -1
  42. package/src/test/buildRandomGenesisBlock.ts +2 -1
  43. package/src/transaction/buildTransaction.ts +3 -1
  44. package/src/transaction/hydrateTransaction.ts +4 -3
@@ -1,4 +1,14 @@
1
1
  import type { Hash } from '@xylabs/sdk-js';
2
2
  import type { BlockContextRead, HydratedBlockWithStorageMeta } from '@xyo-network/xl1-protocol';
3
+ export declare const asAnyPayload: {
4
+ <T>(value: T): (T & {
5
+ [x: string]: unknown;
6
+ schema: import("@xyo-network/sdk-js").BrandedSchema<string>;
7
+ }) | undefined;
8
+ <T>(value: T, assert: import("@xylabs/sdk-js").ZodFactoryConfig): T & {
9
+ [x: string]: unknown;
10
+ schema: import("@xyo-network/sdk-js").BrandedSchema<string>;
11
+ };
12
+ };
3
13
  export declare const hydrateBlock: (context: BlockContextRead, hash: Hash, maxDepth?: number, minDepth?: number) => Promise<HydratedBlockWithStorageMeta>;
4
14
  //# sourceMappingURL=hydrateBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hydrateBlock.d.ts","sourceRoot":"","sources":["../../../../src/block/hydrate/hydrateBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AAK/F,eAAO,MAAM,YAAY,GACvB,SAAS,gBAAgB,EACzB,MAAM,IAAI,EACV,WAAU,MAAU,EACpB,iBAAmB,KAClB,OAAO,CAAC,4BAA4B,CA2BtC,CAAA"}
1
+ {"version":3,"file":"hydrateBlock.d.ts","sourceRoot":"","sources":["../../../../src/block/hydrate/hydrateBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAG1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AAK/F,eAAO,MAAM,YAAY;;;;;;;;;CAA8C,CAAA;AAEvE,eAAO,MAAM,YAAY,GACvB,SAAS,gBAAgB,EACzB,MAAM,IAAI,EACV,WAAU,MAAU,EACpB,iBAAmB,KAClB,OAAO,CAAC,4BAA4B,CA4BtC,CAAA"}
@@ -175,26 +175,29 @@ var unflattenHydratedBlock = (flattened) => toHydratedBlock(tryUnflattenHydrated
175
175
  var flattenHydratedBlocks = (hydratedBlocks) => hydratedBlocks.flatMap((blk) => flattenHydratedBlock(blk));
176
176
 
177
177
  // src/block/hydrate/hydrateBlock.ts
178
- import { assertEx as assertEx3 } from "@xylabs/sdk-js";
178
+ import { assertEx as assertEx3, zodAsFactory } from "@xylabs/sdk-js";
179
+ import { AnyPayloadZod } from "@xyo-network/sdk-js";
179
180
  import { asBlockBoundWitnessWithStorageMeta, isTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
181
+ var asAnyPayload = zodAsFactory(AnyPayloadZod, "asAnyPayload");
180
182
  var hydrateBlock = async (context, hash, maxDepth = 1, minDepth = maxDepth) => {
181
183
  assertEx3(maxDepth >= 0, () => "maxDepth must be greater than or equal to 0");
182
184
  assertEx3(minDepth >= 0, () => "minDepth must be greater than or equal to 0");
183
185
  assertEx3(maxDepth >= minDepth, () => "maxDepth must be greater than or equal to minDepth");
184
186
  const { chainMap } = context;
187
+ const [block] = await chainMap.get([hash]);
185
188
  const bw = assertEx3(asBlockBoundWitnessWithStorageMeta(
186
- assertEx3(await chainMap.get(hash), () => `block ${hash} not found`)
189
+ assertEx3(block, () => `block ${hash} not found`)
187
190
  ), () => `hash ${hash} is not a BlockBoundWitness`);
188
191
  if (maxDepth === 0) return [bw, []];
189
- const blkPayloads = await chainMap.getMany(bw.payload_hashes);
192
+ const blkPayloads = (await chainMap.get(bw.payload_hashes)).map((p) => asAnyPayload(p, true));
190
193
  if (minDepth === 1) assertEx3(allHashesPresent(bw.payload_hashes, blkPayloads), () => `Unable to find all payloads for block ${hash}`);
191
194
  if (maxDepth === 1) return [bw, blkPayloads];
192
195
  const transactions = blkPayloads.filter(isTransactionBoundWitnessWithStorageMeta);
193
196
  const transactionsPayloadHashes = transactions.flatMap((tx) => tx.payload_hashes);
194
- const transactionsPayloads = await chainMap.getMany(transactionsPayloadHashes);
197
+ const transactionsPayloads = (await chainMap.get(transactionsPayloadHashes)).map((p) => asAnyPayload(p, true));
195
198
  assertEx3(allHashesPresent(transactionsPayloadHashes, transactionsPayloads), () => `Unable to find all payloads for transactions in block ${hash}`);
196
199
  const allPayloadsHashes = new Set([...blkPayloads, ...transactionsPayloads].flatMap((p) => p._hash));
197
- const allPayloads = await chainMap.getMany([...allPayloadsHashes]);
200
+ const allPayloads = (await chainMap.get([...allPayloadsHashes])).map((p) => asAnyPayload(p, true));
198
201
  const allPayloadsFiltered = allPayloads.filter((p) => allPayloadsHashes.has(p._hash));
199
202
  if (maxDepth === 2) assertEx3(allHashesPresent(
200
203
  [...allPayloadsHashes],
@@ -357,7 +360,7 @@ async function blockFromBlockNumber(context, blockNumber) {
357
360
  const cacheKey = `${blockNumber}`;
358
361
  const { chainMap, head } = context;
359
362
  return await withContextCacheResponse(context, "blockFromBlockNumber", cacheKey, async () => {
360
- const result = await chainMap.get(head._hash);
363
+ const [result] = await chainMap.get([head._hash]);
361
364
  if (!isDefined3(result)) {
362
365
  throw new Error(`Head block not found for hash: ${head._hash}`);
363
366
  }
@@ -378,9 +381,9 @@ async function blockFromBlockNumber(context, blockNumber) {
378
381
  jumpHash = asHash(currentBlock.step_hashes?.at(step), () => `Step hash not found for step ${step} in block ${currentBlock.block}`);
379
382
  }
380
383
  }
381
- const newBlock = await chainMap.get(
384
+ const [newBlock] = await chainMap.get([
382
385
  asHash(jumpHash, () => `Jump hash not found for block number [${blockNumber}]: ${jumpBlockNumber} ${toSafeJsonString(currentBlock, 10)}`)
383
- );
386
+ ]);
384
387
  if (!isDefined3(newBlock)) {
385
388
  throw new Error(`Block not found for jump hash: ${jumpHash}`);
386
389
  }
@@ -471,7 +474,7 @@ function toStepIdentityString({ block, step }) {
471
474
 
472
475
  // src/config/Actor.ts
473
476
  import {
474
- zodAsFactory,
477
+ zodAsFactory as zodAsFactory2,
475
478
  zodIsFactory,
476
479
  zodToFactory
477
480
  } from "@xylabs/sdk-js";
@@ -740,7 +743,7 @@ var ActorConfigZod = BaseConfigZod.extend({
740
743
  })
741
744
  });
742
745
  var isActorConfig = zodIsFactory(ActorConfigZod);
743
- var asActorConfig = zodAsFactory(ActorConfigZod, "asActorConfig");
746
+ var asActorConfig = zodAsFactory2(ActorConfigZod, "asActorConfig");
744
747
  var toActorConfig = zodToFactory(ActorConfigZod, "toActorConfig");
745
748
 
746
749
  // src/config/Config.ts
@@ -758,7 +761,7 @@ function resolveConfig(config) {
758
761
 
759
762
  // src/config/HostActor.ts
760
763
  import {
761
- zodAsFactory as zodAsFactory2,
764
+ zodAsFactory as zodAsFactory3,
762
765
  zodIsFactory as zodIsFactory2,
763
766
  zodToFactory as zodToFactory2
764
767
  } from "@xylabs/sdk-js";
@@ -778,7 +781,7 @@ var HostActorConfigZod = ActorConfigZod.extend({
778
781
  })
779
782
  });
780
783
  var isHostActorConfig = zodIsFactory2(HostActorConfigZod);
781
- var asHostActorConfig = zodAsFactory2(HostActorConfigZod, "asHostActorConfig");
784
+ var asHostActorConfig = zodAsFactory3(HostActorConfigZod, "asHostActorConfig");
782
785
  var toHostActorConfig = zodToFactory2(HostActorConfigZod, "toHostActorConfig");
783
786
 
784
787
  // src/config/UsageMeta.ts
@@ -818,14 +821,14 @@ var XL1_NETWORK_STAKING_GENESIS_PERIOD_END_XL1_BLOCK = 107496;
818
821
 
819
822
  // src/context/Actor.ts
820
823
  import {
821
- zodAsFactory as zodAsFactory4,
824
+ zodAsFactory as zodAsFactory5,
822
825
  zodIsFactory as zodIsFactory4,
823
826
  zodToFactory as zodToFactory4
824
827
  } from "@xylabs/sdk-js";
825
828
 
826
829
  // src/model/CreatableProviderContext.zod.ts
827
830
  import {
828
- zodAsFactory as zodAsFactory3,
831
+ zodAsFactory as zodAsFactory4,
829
832
  zodIsFactory as zodIsFactory3,
830
833
  zodToFactory as zodToFactory3
831
834
  } from "@xylabs/sdk-js";
@@ -843,10 +846,10 @@ var CreatableProviderContextZod = z16.lazy(() => BaseConfigContextZod.extend({
843
846
  statusReporter: RuntimeStatusMonitorZod.optional()
844
847
  }));
845
848
  var isBaseConfigContext = zodIsFactory3(BaseConfigContextZod);
846
- var asBaseConfigContext = zodAsFactory3(BaseConfigContextZod, "asBaseConfigContext");
849
+ var asBaseConfigContext = zodAsFactory4(BaseConfigContextZod, "asBaseConfigContext");
847
850
  var toBaseConfigContext = zodToFactory3(BaseConfigContextZod, "toBaseConfigContext");
848
851
  var isCreatableProviderContext = zodIsFactory3(CreatableProviderContextZod);
849
- var asCreatableProviderContext = zodAsFactory3(CreatableProviderContextZod, "asCreatableProviderContext");
852
+ var asCreatableProviderContext = zodAsFactory4(CreatableProviderContextZod, "asCreatableProviderContext");
850
853
  var toCreatableProviderContext = zodToFactory3(CreatableProviderContextZod, "toCreatableProviderContext");
851
854
 
852
855
  // src/model/PayloadBundle/bundledPayloadToHydratedBlock.ts
@@ -936,7 +939,7 @@ async function buildTransaction(chain, onChainPayloads, offChainPayloads, signer
936
939
  fields.script = script;
937
940
  }
938
941
  const [tx, txPayloads] = await new BoundWitnessBuilder().fields(fields).meta({ $signatures: [] }).payloads([...onChainPayloads, ...offChainPayloads]).signers(Array.isArray(signer) ? signer : [signer]).build();
939
- return [await PayloadBuilder5.addHashMeta(tx), await PayloadBuilder5.addHashMeta(txPayloads)];
942
+ return [await PayloadBuilder5.addHashMeta(tx), await PayloadBuilder5.addHashMeta(txPayloads.map((p) => asAnyPayload(p, true)))];
940
943
  }
941
944
 
942
945
  // src/transaction/buildRandomTransaction.ts
@@ -1023,7 +1026,7 @@ var tryHydrateTransaction = async ({ chainMap }, hash) => {
1023
1026
  return await tryHydrateTypedBoundWitness(
1024
1027
  {
1025
1028
  get(hashes) {
1026
- return chainMap.getMany(hashes);
1029
+ return chainMap.get(hashes);
1027
1030
  },
1028
1031
  next() {
1029
1032
  throw new Error("Not implemented");
@@ -1037,7 +1040,7 @@ var hydrateTransaction = async ({ chainMap }, hash) => {
1037
1040
  return await hydrateTypedBoundWitness(
1038
1041
  {
1039
1042
  get(hashes) {
1040
- return chainMap.getMany(hashes);
1043
+ return chainMap.get(hashes);
1041
1044
  },
1042
1045
  next() {
1043
1046
  throw new Error("Not implemented");
@@ -1078,7 +1081,7 @@ var tryHydrateElevatedTransaction = async ({ chainMap }, hash) => {
1078
1081
  }
1079
1082
  }
1080
1083
  if (opCodes.length === elevatedPayloads2.length) {
1081
- return [transaction, elevatedPayloads2];
1084
+ return [transaction, elevatedPayloads2.map((p) => asAnyPayload(p, true))];
1082
1085
  }
1083
1086
  return void 0;
1084
1087
  };
@@ -1334,7 +1337,7 @@ var bundle2 = (root, transaction) => {
1334
1337
  // src/context/Actor.ts
1335
1338
  var ActorConfigContext = BaseConfigContextZod.extend({ config: ActorConfigZod });
1336
1339
  var isActorConfigContext = zodIsFactory4(ActorConfigContext);
1337
- var asActorConfigContext = zodAsFactory4(ActorConfigContext, "asActorConfigContext");
1340
+ var asActorConfigContext = zodAsFactory5(ActorConfigContext, "asActorConfigContext");
1338
1341
  var toActorConfigContext = zodToFactory4(ActorConfigContext, "toActorConfigContext");
1339
1342
 
1340
1343
  // src/CreatableProvider/AbstractCreatableProvider.ts
@@ -1692,13 +1695,13 @@ function getEmptyContext(config) {
1692
1695
 
1693
1696
  // src/context/HostActor.ts
1694
1697
  import {
1695
- zodAsFactory as zodAsFactory5,
1698
+ zodAsFactory as zodAsFactory6,
1696
1699
  zodIsFactory as zodIsFactory5,
1697
1700
  zodToFactory as zodToFactory5
1698
1701
  } from "@xylabs/sdk-js";
1699
1702
  var HostActorConfigContext = BaseConfigContextZod.extend({ config: HostActorConfigZod });
1700
1703
  var isHostActorConfigContext = zodIsFactory5(HostActorConfigContext);
1701
- var asHostActorConfigContext = zodAsFactory5(HostActorConfigContext, "asHostActorConfigContext");
1704
+ var asHostActorConfigContext = zodAsFactory6(HostActorConfigContext, "asHostActorConfigContext");
1702
1705
  var toHostActorConfigContext = zodToFactory5(HostActorConfigContext, "toHostActorConfigContext");
1703
1706
 
1704
1707
  // src/createDeclarationPayload.ts
@@ -3529,7 +3532,7 @@ var SimpleBlockViewer = class extends AbstractCreatableProvider {
3529
3532
  await super.createHandler();
3530
3533
  this.dataLakeViewer = await this.locator.tryGetInstance(DataLakeViewerMoniker);
3531
3534
  this.finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker);
3532
- this._store = { chainMap: readPayloadMapFromStore(this.params.finalizedArchivist) };
3535
+ this._store = { chainMap: this.params.finalizedArchivist };
3533
3536
  }
3534
3537
  async currentBlock() {
3535
3538
  const [result] = await addDataLakePayloads(await this.finalizationViewer.head(), this.dataLakeViewer);
@@ -3826,7 +3829,7 @@ import { axiosJsonConfig } from "@xylabs/sdk-js";
3826
3829
  import {
3827
3830
  exists as exists5
3828
3831
  } from "@xylabs/sdk-js";
3829
- import { asAnyPayload, isAnyPayload as isAnyPayload5 } from "@xyo-network/sdk-js";
3832
+ import { asAnyPayload as asAnyPayload2, isAnyPayload as isAnyPayload5 } from "@xyo-network/sdk-js";
3830
3833
  import { Axios } from "axios";
3831
3834
  var AbstractRestDataLake = class extends AbstractCreatableProvider {
3832
3835
  get allowedSchemas() {
@@ -3848,7 +3851,7 @@ var AbstractRestDataLake = class extends AbstractCreatableProvider {
3848
3851
  throw new Error("Method not implemented.");
3849
3852
  }
3850
3853
  async getOne(hash) {
3851
- return asAnyPayload((await this.axios.get(`${this.params.endpoint}/get/${hash}`)).data);
3854
+ return asAnyPayload2((await this.axios.get(`${this.params.endpoint}/get/${hash}`)).data);
3852
3855
  }
3853
3856
  isAllowed(value) {
3854
3857
  if (isAnyPayload5(value)) {
@@ -4008,15 +4011,15 @@ var SimpleFinalizationRunner = class extends AbstractCreatableProvider {
4008
4011
  }
4009
4012
  async createHandler() {
4010
4013
  await super.createHandler();
4011
- this._store = { chainMap: payloadMapFromStore(this.params.finalizedArchivist) };
4014
+ this._store = { chainMap: this.params.finalizedArchivist };
4012
4015
  }
4013
4016
  async finalizeBlock(block) {
4014
4017
  return (await this.finalizeBlocks([block]))[0];
4015
4018
  }
4016
4019
  async finalizeBlocks(blocks) {
4017
4020
  const sortedBlocks = blocks.toSorted((a, b) => a[0].block - b[0].block);
4018
- const payloads = sortedBlocks.flatMap((block) => [...block[1], block[0]].map((p) => [p._hash, p]));
4019
- await this.store.chainMap.setMany(payloads);
4021
+ const payloads = sortedBlocks.flatMap((block) => [...block[1], block[0]]);
4022
+ await this.store.chainMap.insert(payloads);
4020
4023
  return sortedBlocks.map((b) => b[0]._hash);
4021
4024
  }
4022
4025
  };
@@ -4068,7 +4071,7 @@ var SimpleFinalizationViewer = class extends AbstractCreatableProvider {
4068
4071
  async createHandler() {
4069
4072
  await super.createHandler();
4070
4073
  this._chainId = assertEx35(this.config.chain.id ?? (await findMostRecentBlock(this.params.finalizedArchivist))?.chain, () => "chain.id is required if empty archivist");
4071
- this._store = { chainMap: readPayloadMapFromStore(this.params.finalizedArchivist) };
4074
+ this._store = { chainMap: this.params.finalizedArchivist };
4072
4075
  }
4073
4076
  async head() {
4074
4077
  return await this.spanAsync("head", async () => {
@@ -5189,9 +5192,7 @@ import {
5189
5192
  assertEx as assertEx43,
5190
5193
  exists as exists10
5191
5194
  } from "@xylabs/sdk-js";
5192
- import {
5193
- BoundWitnessSchema
5194
- } from "@xyo-network/sdk-js";
5195
+ import { BoundWitnessSchema } from "@xyo-network/sdk-js";
5195
5196
  import {
5196
5197
  BlockViewerMoniker as BlockViewerMoniker5,
5197
5198
  isTransactionBoundWitnessWithStorageMeta as isTransactionBoundWitnessWithStorageMeta4,
@@ -5640,6 +5641,7 @@ export {
5640
5641
  asActorConfig,
5641
5642
  asActorConfigContext,
5642
5643
  asAddressPairPayload,
5644
+ asAnyPayload,
5643
5645
  asBalancesStepSummary,
5644
5646
  asBalancesStepSummaryWithStorageMeta,
5645
5647
  asBaseConfigContext,