@xyo-network/xl1-protocol-sdk 3.0.14 → 3.0.15

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.
@@ -0,0 +1,10 @@
1
+ import type { Payload, UnsignedBoundWitness } from '@xyo-network/sdk-js';
2
+ /**
3
+ * Builds an unsigned hydrated bound witness over the given payloads — the bound-witness analog of
4
+ * {@link buildUnsignedTransaction}. The returned `[boundWitness, payloads]` tuple is ready to pass
5
+ * to `XyoSigner.sign`.
6
+ * @param payloads The payloads the bound witness should witness
7
+ * @returns The unsigned bound witness paired with its (hydrated) payloads
8
+ */
9
+ export declare function buildUnsignedBoundWitness(payloads: Payload[]): Promise<[UnsignedBoundWitness, Payload[]]>;
10
+ //# sourceMappingURL=buildUnsignedBoundWitness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildUnsignedBoundWitness.d.ts","sourceRoot":"","sources":["../../../src/boundwitness/buildUnsignedBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAGxE;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC,CAG/G"}
@@ -0,0 +1,2 @@
1
+ export * from './buildUnsignedBoundWitness.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/boundwitness/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA"}
@@ -1,6 +1,7 @@
1
1
  export * from './amount/index.ts';
2
2
  export * from './Archivists/index.ts';
3
3
  export * from './block/index.ts';
4
+ export * from './boundwitness/index.ts';
4
5
  export * from './capabilities/index.ts';
5
6
  export * from './ChainContextHelpers.ts';
6
7
  export * from './config/index.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gCAAgC,CAAA"}
@@ -985,6 +985,13 @@ async function validateTransactionsOpcodes(txs) {
985
985
  return txElevatedPayloads;
986
986
  }
987
987
 
988
+ // src/boundwitness/buildUnsignedBoundWitness.ts
989
+ import { BoundWitnessBuilder } from "@xyo-network/sdk-js";
990
+ async function buildUnsignedBoundWitness(payloads) {
991
+ const [boundWitness, builtPayloads] = await new BoundWitnessBuilder().meta({ $signatures: [] }).payloads(payloads).build(false);
992
+ return [boundWitness, builtPayloads];
993
+ }
994
+
988
995
  // src/capabilities/Backing.ts
989
996
  function backingsSatisfied(required, available) {
990
997
  for (const need of required) {
@@ -3156,7 +3163,7 @@ import { PayloadBuilder as PayloadBuilder12 } from "@xyo-network/sdk-js";
3156
3163
  import { assertEx as assertEx22, toHex } from "@xylabs/sdk-js";
3157
3164
  import {
3158
3165
  asAnyPayload as asAnyPayload2,
3159
- BoundWitnessBuilder,
3166
+ BoundWitnessBuilder as BoundWitnessBuilder2,
3160
3167
  PayloadBuilder as PayloadBuilder7
3161
3168
  } from "@xyo-network/sdk-js";
3162
3169
  import { defaultTransactionFees } from "@xyo-network/xl1-protocol-lib";
@@ -3184,7 +3191,7 @@ async function buildTransaction(chain, onChainPayloads, offChainPayloads, signer
3184
3191
  if (script.length > 0) {
3185
3192
  fields.script = script;
3186
3193
  }
3187
- const boundWitnessBuilder = new BoundWitnessBuilder();
3194
+ const boundWitnessBuilder = new BoundWitnessBuilder2();
3188
3195
  const builder = boundWitnessBuilder.fields(fields).meta({ $signatures: [] }).payloads([...onChainPayloads, ...offChainPayloads]).signers(Array.isArray(signer) ? signer : [signer]);
3189
3196
  const [tx, txPayloads] = await builder.build();
3190
3197
  return [await PayloadBuilder7.addHashMeta(tx), await PayloadBuilder7.addHashMeta(txPayloads.map((p) => asAnyPayload2(p, true)))];
@@ -3192,7 +3199,7 @@ async function buildTransaction(chain, onChainPayloads, offChainPayloads, signer
3192
3199
 
3193
3200
  // src/transaction/buildUnsignedTransaction.ts
3194
3201
  import { toHex as toHex2 } from "@xylabs/sdk-js";
3195
- import { BoundWitnessBuilder as BoundWitnessBuilder2, PayloadBuilder as PayloadBuilder8 } from "@xyo-network/sdk-js";
3202
+ import { BoundWitnessBuilder as BoundWitnessBuilder3, PayloadBuilder as PayloadBuilder8 } from "@xyo-network/sdk-js";
3196
3203
  import { defaultTransactionFees as defaultTransactionFees2 } from "@xyo-network/xl1-protocol-lib";
3197
3204
  async function buildUnsignedTransaction(chain, onChainPayloads, offChainPayloads, nbf, exp, from, fees = defaultTransactionFees2) {
3198
3205
  const txBoundWitnessFields = {
@@ -3215,7 +3222,7 @@ async function buildUnsignedTransaction(chain, onChainPayloads, offChainPayloads
3215
3222
  if (script.length > 0) {
3216
3223
  fields.script = script;
3217
3224
  }
3218
- const boundWitnessBuilder = new BoundWitnessBuilder2();
3225
+ const boundWitnessBuilder = new BoundWitnessBuilder3();
3219
3226
  const builder = boundWitnessBuilder.fields(fields).meta({ $signatures: [] }).payloads([...onChainPayloads, ...offChainPayloads]);
3220
3227
  const [tx, txPayloads] = await builder.build(false);
3221
3228
  return [tx, txPayloads];
@@ -3393,19 +3400,20 @@ import {
3393
3400
  toArrayBuffer
3394
3401
  } from "@xylabs/sdk-js";
3395
3402
  import { PayloadBuilder as PayloadBuilder10 } from "@xyo-network/sdk-js";
3396
- async function signTransaction(tx, account) {
3397
- assertEx24(tx.from === account.address, () => "Signer address does not match transaction from address");
3398
- const unsignedTx = structuredClone(tx);
3399
- unsignedTx.addresses = [account.address];
3400
- unsignedTx.previous_hashes = [account.previousHash ?? null];
3401
- const hash = await PayloadBuilder10.dataHash(unsignedTx);
3402
- const hashBytes = toArrayBuffer(hash);
3403
- const [signature] = await account.sign(hashBytes);
3404
- const result = {
3405
- ...unsignedTx,
3403
+ async function signBoundWitness(bw, account) {
3404
+ const unsigned = structuredClone(bw);
3405
+ unsigned.addresses = [account.address];
3406
+ unsigned.previous_hashes = [account.previousHash ?? null];
3407
+ const hash = await PayloadBuilder10.dataHash(unsigned);
3408
+ const [signature] = await account.sign(toArrayBuffer(hash));
3409
+ return {
3410
+ ...unsigned,
3406
3411
  $signatures: [hexFromArrayBuffer(signature)]
3407
3412
  };
3408
- return result;
3413
+ }
3414
+ async function signTransaction(tx, account) {
3415
+ assertEx24(tx.from === account.address, () => "Signer address does not match transaction from address");
3416
+ return await signBoundWitness(tx, account);
3409
3417
  }
3410
3418
 
3411
3419
  // src/transaction/TransactionBuilder.ts
@@ -6370,11 +6378,9 @@ SimpleXyoRunner = __decorateClass([
6370
6378
  ], SimpleXyoRunner);
6371
6379
 
6372
6380
  // src/simple/signer/SimpleXyoSigner.ts
6381
+ import { assertEx as assertEx47 } from "@xylabs/sdk-js";
6373
6382
  import { Account, PayloadBuilder as PayloadBuilder23 } from "@xyo-network/sdk-js";
6374
- import {
6375
- SignedHydratedTransactionWithHashMetaZod,
6376
- XyoSignerMoniker as XyoSignerMoniker2
6377
- } from "@xyo-network/xl1-protocol-lib";
6383
+ import { asSignedHydratedTransactionWithHashMeta, XyoSignerMoniker as XyoSignerMoniker2 } from "@xyo-network/xl1-protocol-lib";
6378
6384
  var SimpleXyoSigner = class _SimpleXyoSigner extends AbstractCreatableProvider {
6379
6385
  static connectionTypes = ["wallet"];
6380
6386
  static defaultMoniker = XyoSignerMoniker2;
@@ -6388,7 +6394,7 @@ var SimpleXyoSigner = class _SimpleXyoSigner extends AbstractCreatableProvider {
6388
6394
  account = params.account;
6389
6395
  } else {
6390
6396
  const localLogger = params?.logger ?? params?.context?.logger;
6391
- localLogger?.warn(`No account provided to SimpleXyoSigner, generating a random account.
6397
+ localLogger?.warn(`No account provided to SimpleXyoSigner, generating a random account.
6392
6398
  This account will not be persisted and any transactions signed with it may be lost.
6393
6399
  `);
6394
6400
  account = await Account.random();
@@ -6398,24 +6404,16 @@ var SimpleXyoSigner = class _SimpleXyoSigner extends AbstractCreatableProvider {
6398
6404
  address() {
6399
6405
  return this.params.account.address;
6400
6406
  }
6401
- /** @deprecated - use signTransaction instead */
6402
- async createSignedTransaction(chain, elevatedPayloads, additionalPayloads, nbf, exp, fees, from) {
6403
- const fromAddress = from ?? await this.address();
6404
- const transaction = await buildTransaction(
6405
- chain,
6406
- elevatedPayloads,
6407
- additionalPayloads,
6408
- this.params.account,
6409
- nbf,
6410
- exp,
6411
- fromAddress,
6412
- fees
6413
- );
6414
- return transaction[0];
6407
+ async sign(bw) {
6408
+ const signed = await signBoundWitness(bw[0], this.params.account);
6409
+ return [
6410
+ await PayloadBuilder23.addHashMeta(signed),
6411
+ await PayloadBuilder23.addHashMeta(bw[1])
6412
+ ];
6415
6413
  }
6416
6414
  async signTransaction(tx) {
6417
- const txBW = await signTransaction(tx[0], this.params.account);
6418
- return SignedHydratedTransactionWithHashMetaZod.parse([await PayloadBuilder23.addStorageMeta(txBW), await PayloadBuilder23.addStorageMeta(tx[1])]);
6415
+ assertEx47(tx[0].from === this.params.account.address, () => "Signer address does not match transaction from address");
6416
+ return asSignedHydratedTransactionWithHashMeta(await this.sign(tx), true);
6419
6417
  }
6420
6418
  };
6421
6419
 
@@ -6500,7 +6498,7 @@ SimpleStakeEventsViewer = __decorateClass([
6500
6498
  ], SimpleStakeEventsViewer);
6501
6499
 
6502
6500
  // src/simple/StakeTotalsViewer/SimpleStakeTotalsViewer.ts
6503
- import { assertEx as assertEx47 } from "@xylabs/sdk-js";
6501
+ import { assertEx as assertEx48 } from "@xylabs/sdk-js";
6504
6502
  import { asXyoAddress as asXyoAddress3 } from "@xyo-network/sdk-js";
6505
6503
  import {
6506
6504
  StakeTotalsViewerMoniker,
@@ -6544,7 +6542,7 @@ var SimpleStakeTotalsViewer = class extends AbstractCreatableProvider {
6544
6542
  }
6545
6543
  async createHandler() {
6546
6544
  await super.createHandler();
6547
- this._stakeViewer = assertEx47(
6545
+ this._stakeViewer = assertEx48(
6548
6546
  await this.locateAndCreate(StakeViewerMoniker),
6549
6547
  () => "Failed to create StakeViewer"
6550
6548
  );
@@ -6600,14 +6598,14 @@ SimpleStakeTotalsViewer = __decorateClass([
6600
6598
  ], SimpleStakeTotalsViewer);
6601
6599
 
6602
6600
  // src/simple/StakeViewer/SimpleStakeViewer.ts
6603
- import { assertEx as assertEx48, toAddress } from "@xylabs/sdk-js";
6601
+ import { assertEx as assertEx49, toAddress } from "@xylabs/sdk-js";
6604
6602
  import { asXyoAddress as asXyoAddress4 } from "@xyo-network/sdk-js";
6605
6603
  import { StakeEventsViewerMoniker as StakeEventsViewerMoniker2, StakeViewerMoniker as StakeViewerMoniker2 } from "@xyo-network/xl1-protocol-lib";
6606
6604
  var SimpleStakeViewer = class extends AbstractCreatableProvider {
6607
6605
  moniker = SimpleStakeViewer.defaultMoniker;
6608
6606
  _chainStakeEventsViewer;
6609
6607
  get stakeEvents() {
6610
- return assertEx48(this._chainStakeEventsViewer, () => "Stake events viewer not set");
6608
+ return assertEx49(this._chainStakeEventsViewer, () => "Stake events viewer not set");
6611
6609
  }
6612
6610
  get positions() {
6613
6611
  return this.params.positions;
@@ -6647,7 +6645,7 @@ var SimpleStakeViewer = class extends AbstractCreatableProvider {
6647
6645
  }
6648
6646
  async createHandler() {
6649
6647
  await super.createHandler();
6650
- this._chainStakeEventsViewer = assertEx48(
6648
+ this._chainStakeEventsViewer = assertEx49(
6651
6649
  await this.locateAndCreate(StakeEventsViewerMoniker2),
6652
6650
  () => "Failed to create StakeEventsViewer"
6653
6651
  );
@@ -6682,7 +6680,7 @@ var SimpleStakeViewer = class extends AbstractCreatableProvider {
6682
6680
  return toAddress(toAddress(1n));
6683
6681
  }
6684
6682
  stakeById(id) {
6685
- return assertEx48(this.positions[id], () => new Error(`Stake with id ${id} not found`));
6683
+ return assertEx49(this.positions[id], () => new Error(`Stake with id ${id} not found`));
6686
6684
  }
6687
6685
  stakeByStaker(staker, slot) {
6688
6686
  return this.positions.filter((s) => asXyoAddress4(s.staker) === asXyoAddress4(staker))[slot];
@@ -6786,7 +6784,7 @@ RestSyncViewer = __decorateClass([
6786
6784
  // src/simple/timeSync2/SimpleTimeSyncViewer.ts
6787
6785
  import {
6788
6786
  asHash as asHash5,
6789
- assertEx as assertEx49,
6787
+ assertEx as assertEx50,
6790
6788
  isDefined as isDefined22
6791
6789
  } from "@xylabs/sdk-js";
6792
6790
  import {
@@ -6808,7 +6806,7 @@ var SimpleTimeSyncViewer = class extends AbstractCreatableProvider {
6808
6806
  async convertTime(fromDomain, toDomain, from) {
6809
6807
  switch (fromDomain) {
6810
6808
  case "xl1": {
6811
- const [block, payloads] = assertEx49(await this.blockViewer.blockByNumber(asXL1BlockNumber11(from, true)), () => "Block not found");
6809
+ const [block, payloads] = assertEx50(await this.blockViewer.blockByNumber(asXL1BlockNumber11(from, true)), () => "Block not found");
6812
6810
  const timeSchemaIndex = block.payload_schemas.indexOf(TimeSchema);
6813
6811
  const hash = timeSchemaIndex === -1 ? void 0 : block.payload_hashes[timeSchemaIndex];
6814
6812
  const timePayload = asTimePayload2(isDefined22(hash) ? payloads.find((p) => p._hash === hash) : void 0);
@@ -6864,10 +6862,10 @@ var SimpleTimeSyncViewer = class extends AbstractCreatableProvider {
6864
6862
  return [Date.now(), null];
6865
6863
  }
6866
6864
  case "ethereum": {
6867
- const provider = assertEx49(this.ethProvider, () => "Ethereum provider not configured");
6865
+ const provider = assertEx50(this.ethProvider, () => "Ethereum provider not configured");
6868
6866
  const blockNumber = await provider.getBlockNumber() ?? 0;
6869
6867
  const block = await provider.getBlock(blockNumber);
6870
- const blockHash = asHash5(assertEx49(block?.hash, () => "Block hash not found"), true);
6868
+ const blockHash = asHash5(assertEx50(block?.hash, () => "Block hash not found"), true);
6871
6869
  return [blockNumber, blockHash];
6872
6870
  }
6873
6871
  default: {
@@ -6882,7 +6880,7 @@ var SimpleTimeSyncViewer = class extends AbstractCreatableProvider {
6882
6880
  // this is for the previous block
6883
6881
  xl1,
6884
6882
  // this is for the previous block
6885
- xl1Hash: assertEx49(xl1Hash, () => "No xl1 hash available from time sync service"),
6883
+ xl1Hash: assertEx50(xl1Hash, () => "No xl1 hash available from time sync service"),
6886
6884
  epoch: Date.now()
6887
6885
  };
6888
6886
  if (isDefined22(this.ethProvider)) {
@@ -6904,7 +6902,7 @@ SimpleTimeSyncViewer = __decorateClass([
6904
6902
  ], SimpleTimeSyncViewer);
6905
6903
 
6906
6904
  // src/simple/transactionValidation/SimpleTransactionValidationViewer.ts
6907
- import { assertEx as assertEx50 } from "@xylabs/sdk-js";
6905
+ import { assertEx as assertEx51 } from "@xylabs/sdk-js";
6908
6906
  import { PayloadBuilder as PayloadBuilder24 } from "@xyo-network/sdk-js";
6909
6907
  import {
6910
6908
  AccountBalanceViewerMoniker as AccountBalanceViewerMoniker3,
@@ -6958,7 +6956,7 @@ var SimpleTransactionValidationViewer = class extends AbstractCreatableProvider
6958
6956
  let head;
6959
6957
  if (isChainQualifiedHeadConfig6(config)) {
6960
6958
  const headBlockResult = await this.blockViewer.blockByHash(config.head);
6961
- head = headBlockResult == null ? assertEx50(
6959
+ head = headBlockResult == null ? assertEx51(
6962
6960
  void 0,
6963
6961
  () => `Specified a head that is not in the chain [${config.head}]`
6964
6962
  ) : headBlockResult[0];
@@ -7030,10 +7028,10 @@ SimpleTransactionValidationViewer = __decorateClass([
7030
7028
  ], SimpleTransactionValidationViewer);
7031
7029
 
7032
7030
  // src/simple/TransactionViewer/SimpleTransactionViewer.ts
7033
- import { assertEx as assertEx51, exists as exists10 } from "@xylabs/sdk-js";
7031
+ import { assertEx as assertEx52, exists as exists10 } from "@xylabs/sdk-js";
7034
7032
  import { BoundWitnessSchema } from "@xyo-network/sdk-js";
7035
7033
  import {
7036
- asSignedHydratedTransactionWithHashMeta,
7034
+ asSignedHydratedTransactionWithHashMeta as asSignedHydratedTransactionWithHashMeta2,
7037
7035
  asSignedTransactionBoundWitness,
7038
7036
  BlockViewerMoniker as BlockViewerMoniker6,
7039
7037
  isTransactionBoundWitnessWithHashMeta as isTransactionBoundWitnessWithHashMeta2,
@@ -7047,7 +7045,7 @@ var SimpleTransactionViewer = class extends AbstractCreatableProvider {
7047
7045
  }
7048
7046
  async byBlockHashAndIndex(blockHash, transactionIndex) {
7049
7047
  return await this.spanAsync("byBlockHashAndIndex", async () => {
7050
- assertEx51(transactionIndex >= 0, () => "transactionIndex must be greater than or equal to 0");
7048
+ assertEx52(transactionIndex >= 0, () => "transactionIndex must be greater than or equal to 0");
7051
7049
  try {
7052
7050
  const block = await this.blockViewer.blockByHash(blockHash);
7053
7051
  if (!block) return null;
@@ -7080,7 +7078,7 @@ var SimpleTransactionViewer = class extends AbstractCreatableProvider {
7080
7078
  const transaction = asSignedTransactionBoundWitness(await this.blockViewer.payloadByHash(transactionHash));
7081
7079
  if (transaction) {
7082
7080
  const payloads = await this.blockViewer.payloadsByHash(transaction.payload_hashes);
7083
- return asSignedHydratedTransactionWithHashMeta([transaction, payloads]) ?? null;
7081
+ return asSignedHydratedTransactionWithHashMeta2([transaction, payloads]) ?? null;
7084
7082
  }
7085
7083
  return null;
7086
7084
  } catch {
@@ -7112,7 +7110,7 @@ SimpleTransactionViewer = __decorateClass([
7112
7110
 
7113
7111
  // src/simple/windowedBlock/SimpleWindowedBlockViewer.ts
7114
7112
  import {
7115
- assertEx as assertEx52,
7113
+ assertEx as assertEx53,
7116
7114
  exists as exists11,
7117
7115
  isNull as isNull2
7118
7116
  } from "@xylabs/sdk-js";
@@ -7194,7 +7192,7 @@ var SimpleWindowedBlockViewer = class extends AbstractCreatableProvider {
7194
7192
  }
7195
7193
  async createHandler() {
7196
7194
  await super.createHandler();
7197
- this._blockViewer = assertEx52(
7195
+ this._blockViewer = assertEx53(
7198
7196
  this.params.blockViewer ?? await this.locator.getInstance(BlockViewerMoniker7),
7199
7197
  () => "BlockViewer instance is required"
7200
7198
  );
@@ -7203,13 +7201,13 @@ var SimpleWindowedBlockViewer = class extends AbstractCreatableProvider {
7203
7201
  this._transactionHashMap = new MemoryMap2();
7204
7202
  }
7205
7203
  currentBlock() {
7206
- return assertEx52(this._chain.at(-1));
7204
+ return assertEx53(this._chain.at(-1));
7207
7205
  }
7208
7206
  currentBlockHash() {
7209
- return assertEx52(this._chain.at(-1)?.[0]._hash);
7207
+ return assertEx53(this._chain.at(-1)?.[0]._hash);
7210
7208
  }
7211
7209
  currentBlockNumber() {
7212
- return assertEx52(this._chain.at(-1)?.[0].block);
7210
+ return assertEx53(this._chain.at(-1)?.[0].block);
7213
7211
  }
7214
7212
  async payloadByHash(hash) {
7215
7213
  const payloads = await this.payloadsByHash([hash]);
@@ -7370,7 +7368,7 @@ var RuntimeStatusMonitor = class extends LoggerStatusReporter {
7370
7368
  };
7371
7369
 
7372
7370
  // src/test/buildRandomChain.ts
7373
- import { asAddress as asAddress2, assertEx as assertEx55 } from "@xylabs/sdk-js";
7371
+ import { asAddress as asAddress2, assertEx as assertEx56 } from "@xylabs/sdk-js";
7374
7372
  import {
7375
7373
  Account as Account4,
7376
7374
  asSchema as asSchema9,
@@ -7389,10 +7387,10 @@ import {
7389
7387
  } from "@xyo-network/xl1-protocol-lib";
7390
7388
 
7391
7389
  // src/test/buildBlock.ts
7392
- import { assertEx as assertEx53, isDefined as isDefined23 } from "@xylabs/sdk-js";
7390
+ import { assertEx as assertEx54, isDefined as isDefined23 } from "@xylabs/sdk-js";
7393
7391
  import {
7394
7392
  asAnyPayload as asAnyPayload5,
7395
- BoundWitnessBuilder as BoundWitnessBuilder3,
7393
+ BoundWitnessBuilder as BoundWitnessBuilder4,
7396
7394
  PayloadBuilder as PayloadBuilder25
7397
7395
  } from "@xyo-network/sdk-js";
7398
7396
  import {
@@ -7472,7 +7470,7 @@ function buildStepHashes(blockNumber, inStepHashes, previousBlockHash, chainStep
7472
7470
  const completedStepReward = calculateCompletedStepReward(i, stepRewardPoolBalance);
7473
7471
  completedStepRewardTransfers.push(createTransferPayload(chainStepRewardAddress2, { [completedStepRewardHolderAddress]: completedStepReward }));
7474
7472
  }
7475
- step_hashes.push(assertEx53(previousBlockHash, () => `Previous block hash is required for step ${step} at block ${blockNumber}`));
7473
+ step_hashes.push(assertEx54(previousBlockHash, () => `Previous block hash is required for step ${step} at block ${blockNumber}`));
7476
7474
  } else if (isDefined23(inStepHashes.at(i))) {
7477
7475
  step_hashes.push(inStepHashes[i]);
7478
7476
  }
@@ -7517,7 +7515,7 @@ async function buildBlock(options) {
7517
7515
  ...txElevatedPayloads,
7518
7516
  ...completedStepRewardTransfers
7519
7517
  ];
7520
- const boundWitnessBuilder = new BoundWitnessBuilder3();
7518
+ const boundWitnessBuilder = new BoundWitnessBuilder4();
7521
7519
  const builder = boundWitnessBuilder.fields({
7522
7520
  block,
7523
7521
  chain: chainId,
@@ -7526,7 +7524,7 @@ async function buildBlock(options) {
7526
7524
  protocol
7527
7525
  }).meta({ $epoch: Date.now(), $signatures: [] }).signers(signers).payloads(await PayloadBuilder25.addStorageMeta(payloads));
7528
7526
  const [bw, txPayloads] = await builder.build();
7529
- assertEx53(isBlockBoundWitness(bw), () => "Build of BlockBoundWitness failed");
7527
+ assertEx54(isBlockBoundWitness(bw), () => "Build of BlockBoundWitness failed");
7530
7528
  return [await PayloadBuilder25.addStorageMeta(bw), txPayloads.map((p) => asAnyPayload5(p, true))];
7531
7529
  }
7532
7530
 
@@ -7547,7 +7545,7 @@ async function buildNextBlock(previousBlock, txs, blockPayloads, signers, chainS
7547
7545
  }
7548
7546
 
7549
7547
  // src/test/buildRandomGenesisBlock.ts
7550
- import { asAddress, assertEx as assertEx54 } from "@xylabs/sdk-js";
7548
+ import { asAddress, assertEx as assertEx55 } from "@xylabs/sdk-js";
7551
7549
  import {
7552
7550
  Account as Account3,
7553
7551
  asAnyPayload as asAnyPayload6,
@@ -7591,7 +7589,7 @@ var buildRandomTransaction = async (chain, payloads, account, nbf = asXL1BlockNu
7591
7589
  };
7592
7590
 
7593
7591
  // src/test/buildRandomGenesisBlock.ts
7594
- var TestChainId = assertEx54(asAddress("c5fe2e6F6841Cbab12d8C0618Be2DF8C6156cC44"));
7592
+ var TestChainId = assertEx55(asAddress("c5fe2e6F6841Cbab12d8C0618Be2DF8C6156cC44"));
7595
7593
 
7596
7594
  // src/test/createGenesisBlock.ts
7597
7595
  import { PayloadBuilder as PayloadBuilder28 } from "@xyo-network/sdk-js";
@@ -7646,7 +7644,7 @@ var createGenesisBlock = async (initialBlockProducer, nextContractAddress, genes
7646
7644
  };
7647
7645
 
7648
7646
  // src/test/buildRandomChain.ts
7649
- var TestGenesisBlockRewardAddress = assertEx55(asAddress2("fa7f0bb865a4bfff3d5e2c726d3e063297014da9"));
7647
+ var TestGenesisBlockRewardAddress = assertEx56(asAddress2("fa7f0bb865a4bfff3d5e2c726d3e063297014da9"));
7650
7648
  var buildRandomChain = async (blockProducer, count = 10, previousBlock, chainId, transactionAccount, receiverAddresses) => {
7651
7649
  const chainIdToUse = chainId ?? TestChainId;
7652
7650
  const blocks = [];
@@ -7690,7 +7688,7 @@ var buildRandomChain = async (blockProducer, count = 10, previousBlock, chainId,
7690
7688
  receiverAddress
7691
7689
  ));
7692
7690
  }
7693
- const previousBlock2 = assertEx55(lastBlock?.[0], () => new Error("No last block"));
7691
+ const previousBlock2 = assertEx56(lastBlock?.[0], () => new Error("No last block"));
7694
7692
  const block = await buildNextBlock(previousBlock2, txs, [], [blockProducer], transactionAccountToUse.address);
7695
7693
  blocks.push(block);
7696
7694
  remaining = remaining - 1;
@@ -7751,13 +7749,13 @@ function getTestProviderContext2(config) {
7751
7749
  }
7752
7750
 
7753
7751
  // src/time/primitives/xl1BlockNumberToEthBlockNumber.ts
7754
- import { assertEx as assertEx56 } from "@xylabs/sdk-js";
7752
+ import { assertEx as assertEx57 } from "@xylabs/sdk-js";
7755
7753
  import { asTimePayload as asTimePayload3, TimeSchema as TimeSchema2 } from "@xyo-network/xl1-protocol-lib";
7756
7754
  async function xl1BlockNumberToEthBlockNumber(context, xl1BlockNumber) {
7757
7755
  const blockHash = await hashFromBlockNumber(context, xl1BlockNumber);
7758
7756
  const hydratedBlock = await hydrateBlock(context, blockHash);
7759
7757
  const timePayload = asTimePayload3(hydratedBlock[1].find((p) => p.schema === TimeSchema2), { required: true });
7760
- return assertEx56(timePayload.ethereum, () => "No ethereum timestamp found on block");
7758
+ return assertEx57(timePayload.ethereum, () => "No ethereum timestamp found on block");
7761
7759
  }
7762
7760
 
7763
7761
  // src/validation/lib/isLocalhost.ts
@@ -7968,6 +7966,7 @@ export {
7968
7966
  buildRandomChainArchivist,
7969
7967
  buildRandomTransaction,
7970
7968
  buildTransaction,
7969
+ buildUnsignedBoundWitness,
7971
7970
  buildUnsignedTransaction,
7972
7971
  bundledPayloadToHydratedBlock,
7973
7972
  bundledPayloadToHydratedTransaction,
@@ -8083,6 +8082,7 @@ export {
8083
8082
  schemasStepSummaryFromRange,
8084
8083
  schemasSummary,
8085
8084
  scoreUncle,
8085
+ signBoundWitness,
8086
8086
  signEIP712Message,
8087
8087
  signTransaction,
8088
8088
  splitOnDecimal,