@xyo-network/xl1-protocol-sdk 1.16.19 → 1.16.21

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 (30) hide show
  1. package/dist/neutral/index.mjs +250 -29
  2. package/dist/neutral/index.mjs.map +1 -1
  3. package/dist/neutral/model/ChainContext/ChainStakeContext.d.ts +1 -2
  4. package/dist/neutral/model/ChainContext/ChainStakeContext.d.ts.map +1 -1
  5. package/dist/neutral/provider/XyoClient.d.ts +2 -1
  6. package/dist/neutral/provider/XyoClient.d.ts.map +1 -1
  7. package/dist/neutral/simple/chainStake/SimpleChainStakeViewer.d.ts +34 -0
  8. package/dist/neutral/simple/chainStake/SimpleChainStakeViewer.d.ts.map +1 -0
  9. package/dist/neutral/simple/chainStake/index.d.ts +2 -0
  10. package/dist/neutral/simple/chainStake/index.d.ts.map +1 -0
  11. package/dist/neutral/simple/chainStakeEvents/SimpleChainStakeEventsViewer.d.ts +15 -0
  12. package/dist/neutral/simple/chainStakeEvents/SimpleChainStakeEventsViewer.d.ts.map +1 -0
  13. package/dist/neutral/simple/chainStakeEvents/index.d.ts +2 -0
  14. package/dist/neutral/simple/chainStakeEvents/index.d.ts.map +1 -0
  15. package/dist/neutral/simple/client/SimpleXyoClient.d.ts +3 -3
  16. package/dist/neutral/simple/client/SimpleXyoClient.d.ts.map +1 -1
  17. package/dist/neutral/simple/index.d.ts +1 -0
  18. package/dist/neutral/simple/index.d.ts.map +1 -1
  19. package/dist/neutral/viewers/Stake.d.ts +2 -1
  20. package/dist/neutral/viewers/Stake.d.ts.map +1 -1
  21. package/package.json +13 -12
  22. package/src/model/ChainContext/ChainStakeContext.ts +1 -4
  23. package/src/provider/XyoClient.ts +2 -1
  24. package/src/simple/chainStake/SimpleChainStakeViewer.ts +147 -0
  25. package/src/simple/chainStake/index.ts +1 -0
  26. package/src/simple/chainStakeEvents/SimpleChainStakeEventsViewer.ts +87 -0
  27. package/src/simple/chainStakeEvents/index.ts +1 -0
  28. package/src/simple/client/SimpleXyoClient.ts +3 -3
  29. package/src/simple/index.ts +1 -0
  30. package/src/viewers/Stake.ts +2 -1
@@ -1504,6 +1504,226 @@ var SimpleAccountBalanceViewer = class {
1504
1504
  }
1505
1505
  };
1506
1506
 
1507
+ // src/simple/chainStake/SimpleChainStakeViewer.ts
1508
+ import { asAddress as asAddress5, toAddress as toAddress4 } from "@xylabs/sdk-js";
1509
+ import { AbstractCreatable as AbstractCreatable2, assertEx as assertEx8, creatable as creatable2 } from "@xylabs/sdk-js";
1510
+ import { Account } from "@xyo-network/account";
1511
+
1512
+ // src/simple/chainStakeEvents/SimpleChainStakeEventsViewer.ts
1513
+ import { AbstractCreatable, creatable, isDefined as isDefined9 } from "@xylabs/sdk-js";
1514
+ function _ts_decorate(decorators, target, key, desc) {
1515
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1516
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1517
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1518
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1519
+ }
1520
+ __name(_ts_decorate, "_ts_decorate");
1521
+ var SimpleChainStakeEventsViewer = class extends AbstractCreatable {
1522
+ static {
1523
+ __name(this, "SimpleChainStakeEventsViewer");
1524
+ }
1525
+ get positions() {
1526
+ return this.params.positions;
1527
+ }
1528
+ positionCount(range) {
1529
+ return this.positionsFromRange(range).length;
1530
+ }
1531
+ stakeEvents(range, { name } = {}) {
1532
+ const positions = this.positionsFromRange(range);
1533
+ const events = this.eventsFromPositions(positions);
1534
+ if (isDefined9(name)) {
1535
+ return events.filter((event) => event.name === name);
1536
+ }
1537
+ return events;
1538
+ }
1539
+ async startHandler() {
1540
+ await super.startHandler();
1541
+ }
1542
+ eventsFromPositions(positions) {
1543
+ const events = positions.map((position) => {
1544
+ const events2 = [
1545
+ {
1546
+ name: "StakeAdded",
1547
+ time: position.addBlock,
1548
+ args: {
1549
+ staker: position.staker,
1550
+ staked: position.staked,
1551
+ amount: position.amount,
1552
+ id: position.id
1553
+ }
1554
+ }
1555
+ ];
1556
+ if (position.removeBlock !== 0) {
1557
+ events2.push({
1558
+ name: "StakeRemoved",
1559
+ time: position.removeBlock,
1560
+ args: {
1561
+ staker: position.staker,
1562
+ staked: position.staked,
1563
+ amount: position.amount,
1564
+ id: position.id
1565
+ }
1566
+ });
1567
+ }
1568
+ if (position.withdrawBlock !== 0) {
1569
+ events2.push({
1570
+ name: "StakeWithdrawn",
1571
+ time: position.withdrawBlock,
1572
+ args: {
1573
+ staker: position.staker,
1574
+ staked: position.staked,
1575
+ amount: position.amount,
1576
+ id: position.id
1577
+ }
1578
+ });
1579
+ }
1580
+ return events2;
1581
+ });
1582
+ return events.flat();
1583
+ }
1584
+ positionsFromRange(range) {
1585
+ const startBlock = range[0];
1586
+ const endBlock = range[1] === "latest" ? Number.MAX_SAFE_INTEGER : range[1];
1587
+ const filteredPositions = this.positions.filter((position) => {
1588
+ return position.addBlock <= endBlock && (position.removeBlock === 0 || position.removeBlock >= startBlock);
1589
+ });
1590
+ return filteredPositions;
1591
+ }
1592
+ };
1593
+ SimpleChainStakeEventsViewer = _ts_decorate([
1594
+ creatable()
1595
+ ], SimpleChainStakeEventsViewer);
1596
+
1597
+ // src/simple/chainStake/SimpleChainStakeViewer.ts
1598
+ function _ts_decorate2(decorators, target, key, desc) {
1599
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1600
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1601
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1602
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1603
+ }
1604
+ __name(_ts_decorate2, "_ts_decorate");
1605
+ var SimpleChainStakeViewer = class extends AbstractCreatable2 {
1606
+ static {
1607
+ __name(this, "SimpleChainStakeViewer");
1608
+ }
1609
+ _chainId;
1610
+ _chainStakeEventsViewer;
1611
+ get chainId() {
1612
+ return assertEx8(this._chainId, () => "Chain ID not set");
1613
+ }
1614
+ get chainMap() {
1615
+ return this.params.chainMap;
1616
+ }
1617
+ get minWithdrawalBlocks() {
1618
+ return this.params.minWithdrawalBlocks ?? 10;
1619
+ }
1620
+ get rewardsContract() {
1621
+ return toAddress4("0x000000000000000000000000000000");
1622
+ }
1623
+ get stakeEvents() {
1624
+ return assertEx8(this._chainStakeEventsViewer, () => "Stake events viewer not set");
1625
+ }
1626
+ get stakingTokenAddress() {
1627
+ return toAddress4("0x000000000000000000000000000011");
1628
+ }
1629
+ get positions() {
1630
+ return this.params.positions;
1631
+ }
1632
+ active() {
1633
+ let active = 0n;
1634
+ for (const position of this.positions) {
1635
+ if (position.removeBlock === 0) {
1636
+ active += position.amount;
1637
+ }
1638
+ }
1639
+ return active;
1640
+ }
1641
+ activeByAddressStaked(staked) {
1642
+ let active = 0n;
1643
+ for (const position of this.positions) {
1644
+ if (position.removeBlock === 0 && asAddress5(position.staked) === asAddress5(staked)) {
1645
+ active += position.amount;
1646
+ }
1647
+ }
1648
+ return active;
1649
+ }
1650
+ activeByStaker(staker) {
1651
+ let active = 0n;
1652
+ for (const position of this.positions) {
1653
+ if (position.removeBlock === 0 && asAddress5(position.staker) === asAddress5(staker)) {
1654
+ active += position.amount;
1655
+ }
1656
+ }
1657
+ return active;
1658
+ }
1659
+ pending() {
1660
+ let pending = 0n;
1661
+ for (const position of this.positions) {
1662
+ if (position.removeBlock !== 0 && position.withdrawBlock === 0) {
1663
+ pending += position.amount;
1664
+ }
1665
+ }
1666
+ return pending;
1667
+ }
1668
+ pendingByStaker(staker) {
1669
+ let pending = 0n;
1670
+ for (const position of this.positions) {
1671
+ if (position.removeBlock !== 0 && position.withdrawBlock === 0 && asAddress5(position.staker) === asAddress5(staker)) {
1672
+ pending += position.amount;
1673
+ }
1674
+ }
1675
+ return pending;
1676
+ }
1677
+ stakeById(id) {
1678
+ return assertEx8(this.positions[id], () => new Error(`Stake with id ${id} not found`));
1679
+ }
1680
+ stakeByStaker(staker, slot) {
1681
+ return this.positions.filter((s) => asAddress5(s.staker) === asAddress5(staker))[slot];
1682
+ }
1683
+ stakesByStaked(staked, range = [
1684
+ 0,
1685
+ void 0
1686
+ ]) {
1687
+ const endBlock = range[1] ?? Number.MAX_SAFE_INTEGER;
1688
+ return this.positions.filter((s) => asAddress5(s.staked) === asAddress5(staked) && s.addBlock <= endBlock && s.removeBlock <= endBlock);
1689
+ }
1690
+ stakesByStaker(staker, range = [
1691
+ 0,
1692
+ void 0
1693
+ ]) {
1694
+ const endBlock = range[1] ?? Number.MAX_SAFE_INTEGER;
1695
+ return this.positions.filter((s) => asAddress5(s.staker) === asAddress5(staker) && s.addBlock <= endBlock && s.removeBlock <= endBlock);
1696
+ }
1697
+ withdrawn() {
1698
+ let withdrawn = 0n;
1699
+ for (const position of this.positions) {
1700
+ if (position.withdrawBlock !== 0) {
1701
+ withdrawn += position.amount;
1702
+ }
1703
+ }
1704
+ return withdrawn;
1705
+ }
1706
+ withdrawnByStaker(staker) {
1707
+ let withdrawn = 0n;
1708
+ for (const position of this.positions) {
1709
+ if (position.withdrawBlock !== 0 && asAddress5(position.staker) === asAddress5(staker)) {
1710
+ withdrawn += position.amount;
1711
+ }
1712
+ }
1713
+ return withdrawn;
1714
+ }
1715
+ async startHandler() {
1716
+ await super.startHandler();
1717
+ this._chainId = this.params.chainId ?? (await Account.random()).address;
1718
+ this._chainStakeEventsViewer = await SimpleChainStakeEventsViewer.create({
1719
+ positions: this.positions
1720
+ });
1721
+ }
1722
+ };
1723
+ SimpleChainStakeViewer = _ts_decorate2([
1724
+ creatable2()
1725
+ ], SimpleChainStakeViewer);
1726
+
1507
1727
  // src/simple/client/SimpleXyoClient.ts
1508
1728
  var SimpleXyoClient = class {
1509
1729
  static {
@@ -1622,12 +1842,12 @@ var SimpleXyoGateway = class {
1622
1842
  };
1623
1843
 
1624
1844
  // src/simple/gateway/SimpleXyoGatewayRunner.ts
1625
- import { assertEx as assertEx12, BigIntToJsonZod, isDefined as isDefined10 } from "@xylabs/sdk-js";
1845
+ import { assertEx as assertEx13, BigIntToJsonZod, isDefined as isDefined11 } from "@xylabs/sdk-js";
1626
1846
  import { PayloadBuilder as PayloadBuilder9 } from "@xyo-network/payload-builder";
1627
1847
  import { TransferSchema as TransferSchema2 } from "@xyo-network/xl1-protocol";
1628
1848
 
1629
1849
  // src/transaction/buildTransaction.ts
1630
- import { assertEx as assertEx8, toHex as toHex2 } from "@xylabs/sdk-js";
1850
+ import { assertEx as assertEx9, toHex as toHex2 } from "@xylabs/sdk-js";
1631
1851
  import { BoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
1632
1852
  import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/payload-builder";
1633
1853
  import { defaultTransactionFees } from "@xyo-network/xl1-protocol";
@@ -1653,7 +1873,7 @@ async function buildTransaction(chain, onChainPayloads, offChainPayloads, signer
1653
1873
  }
1654
1874
  const fields = {
1655
1875
  ...txBoundWitnessFields,
1656
- from: from ?? (Array.isArray(signer) ? assertEx8(signer.at(0)?.address) : signer.address)
1876
+ from: from ?? (Array.isArray(signer) ? assertEx9(signer.at(0)?.address) : signer.address)
1657
1877
  };
1658
1878
  if (script.length > 0) {
1659
1879
  fields.script = script;
@@ -1716,7 +1936,7 @@ async function buildUnsignedTransaction(chain, onChainPayloads, offChainPayloads
1716
1936
  __name(buildUnsignedTransaction, "buildUnsignedTransaction");
1717
1937
 
1718
1938
  // src/transaction/confirmSubmittedTransaction.ts
1719
- import { delay, isDefined as isDefined9 } from "@xylabs/sdk-js";
1939
+ import { delay, isDefined as isDefined10 } from "@xylabs/sdk-js";
1720
1940
  var DEFAULT_CONFIRMATION_ATTEMPTS = 20;
1721
1941
  var DEFAULT_DELAY_BETWEEN_ATTEMPTS = 1e3;
1722
1942
  var confirmSubmittedTransaction = /* @__PURE__ */ __name(async (viewer, txHash, options) => {
@@ -1725,7 +1945,7 @@ var confirmSubmittedTransaction = /* @__PURE__ */ __name(async (viewer, txHash,
1725
1945
  let attempts = 0;
1726
1946
  while (true) {
1727
1947
  const tx = await viewer.transactionByHash(txHash) ?? void 0;
1728
- if (isDefined9(tx)) {
1948
+ if (isDefined10(tx)) {
1729
1949
  options?.logger?.log("\u2705 Transaction confirmed:", txHash, "\n");
1730
1950
  return tx;
1731
1951
  } else {
@@ -1742,7 +1962,7 @@ var confirmSubmittedTransaction = /* @__PURE__ */ __name(async (viewer, txHash,
1742
1962
  }, "confirmSubmittedTransaction");
1743
1963
 
1744
1964
  // src/transaction/hydrateTransaction.ts
1745
- import { assertEx as assertEx9 } from "@xylabs/sdk-js";
1965
+ import { assertEx as assertEx10 } from "@xylabs/sdk-js";
1746
1966
  import { hydrateTypedBoundWitness, tryHydrateTypedBoundWitness } from "@xyo-network/archivist-model";
1747
1967
  import { isAllowedBlockPayload as isAllowedBlockPayload2, isSignedTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
1748
1968
  var tryHydrateTransaction = /* @__PURE__ */ __name(async ({ chainMap }, hash) => {
@@ -1801,7 +2021,7 @@ var tryHydrateElevatedTransaction = /* @__PURE__ */ __name(async ({ chainMap },
1801
2021
  return void 0;
1802
2022
  }, "tryHydrateElevatedTransaction");
1803
2023
  var hydrateElevatedTransaction = /* @__PURE__ */ __name(async (context, hash) => {
1804
- return assertEx9(await tryHydrateElevatedTransaction(context, hash), () => "Hydration failed");
2024
+ return assertEx10(await tryHydrateElevatedTransaction(context, hash), () => "Hydration failed");
1805
2025
  }, "hydrateElevatedTransaction");
1806
2026
 
1807
2027
  // src/transaction/primitives/transactionBlockByteCount.ts
@@ -1867,7 +2087,7 @@ __name(transactionRequiredGas, "transactionRequiredGas");
1867
2087
 
1868
2088
  // src/transaction/script.ts
1869
2089
  import { asHash as asHash4 } from "@xylabs/sdk-js";
1870
- import { assertEx as assertEx10, filterAs as filterAs2 } from "@xylabs/sdk-js";
2090
+ import { assertEx as assertEx11, filterAs as filterAs2 } from "@xylabs/sdk-js";
1871
2091
  import { isAllowedBlockPayloadWithHashMeta } from "@xyo-network/xl1-protocol";
1872
2092
  var tryExtractElevatedHashesFromScript = /* @__PURE__ */ __name((strings) => {
1873
2093
  const hashes = strings.filter((str) => str.startsWith("elevate|")).map((str) => str.split("|")[1]);
@@ -1876,7 +2096,7 @@ var tryExtractElevatedHashesFromScript = /* @__PURE__ */ __name((strings) => {
1876
2096
  var extractElevatedHashesFromScript = /* @__PURE__ */ __name((strings) => {
1877
2097
  const hashes = strings.filter((str) => str.startsWith("elevate|")).map((str) => str.split("|")[1]);
1878
2098
  const filtered = filterAs2(hashes, (h) => asHash4(h));
1879
- assertEx10(filtered.length === hashes.length, () => "Invalid elevated hashes");
2099
+ assertEx11(filtered.length === hashes.length, () => "Invalid elevated hashes");
1880
2100
  return filtered;
1881
2101
  }, "extractElevatedHashesFromScript");
1882
2102
  var tryExtractElevatedHashes = /* @__PURE__ */ __name((tx) => {
@@ -1890,15 +2110,15 @@ var extractElevatedHashes = /* @__PURE__ */ __name((tx) => {
1890
2110
  const { script } = bw;
1891
2111
  const hashes = script ? tryExtractElevatedHashesFromScript(script) : [];
1892
2112
  const filtered = payloads.filter((p) => hashes.includes(p._hash)).filter(isAllowedBlockPayloadWithHashMeta);
1893
- assertEx10(filtered.length === hashes.length, () => "Invalid elevated hashes");
2113
+ assertEx11(filtered.length === hashes.length, () => "Invalid elevated hashes");
1894
2114
  return filtered;
1895
2115
  }, "extractElevatedHashes");
1896
2116
 
1897
2117
  // src/transaction/signTransaction.ts
1898
- import { assertEx as assertEx11, hexFromArrayBuffer, toArrayBuffer } from "@xylabs/sdk-js";
2118
+ import { assertEx as assertEx12, hexFromArrayBuffer, toArrayBuffer } from "@xylabs/sdk-js";
1899
2119
  import { PayloadBuilder as PayloadBuilder8 } from "@xyo-network/payload-builder";
1900
2120
  async function signTransaction(tx, account) {
1901
- assertEx11(tx.from === account.address, () => "Signer address does not match transaction from address");
2121
+ assertEx12(tx.from === account.address, () => "Signer address does not match transaction from address");
1902
2122
  const signedTx = structuredClone(tx);
1903
2123
  signedTx.addresses = [
1904
2124
  account.address
@@ -1945,18 +2165,18 @@ var SimpleXyoGatewayRunner = class {
1945
2165
  return this._dataLakes.length - 1;
1946
2166
  }
1947
2167
  async addPayloadsToChain(onChain, offChain, options) {
1948
- const viewer = assertEx12(this.connectionInstance.viewer, () => "No viewer available on connection");
2168
+ const viewer = assertEx13(this.connectionInstance.viewer, () => "No viewer available on connection");
1949
2169
  const { nbf, exp, chain, fees } = options ?? {};
1950
- const resolvedChainId = isDefined10(chain) ? chain : await viewer.chainId();
1951
- const resolvedNbf = isDefined10(nbf) ? nbf : await viewer?.currentBlockNumber();
1952
- const resolvedExp = isDefined10(exp) ? exp : resolvedNbf + 10;
2170
+ const resolvedChainId = isDefined11(chain) ? chain : await viewer.chainId();
2171
+ const resolvedNbf = isDefined11(nbf) ? nbf : await viewer?.currentBlockNumber();
2172
+ const resolvedExp = isDefined11(exp) ? exp : resolvedNbf + 10;
1953
2173
  const tx = await buildUnsignedTransaction(resolvedChainId, onChain, offChain, resolvedNbf, resolvedExp, await (await this.signer()).address(), fees);
1954
2174
  return await this.addTransactionToChain(tx);
1955
2175
  }
1956
2176
  async addTransactionToChain(tx) {
1957
2177
  const connection = this.connectionInstance;
1958
2178
  const signer = this.signerInstance;
1959
- const runner = assertEx12(connection.runner, () => "No runner available on connection");
2179
+ const runner = assertEx13(connection.runner, () => "No runner available on connection");
1960
2180
  const signedTx = await signer.signTransaction(tx);
1961
2181
  await this.addPayloadsToDataLakes(signedTx[1]);
1962
2182
  return [
@@ -1968,7 +2188,7 @@ var SimpleXyoGatewayRunner = class {
1968
2188
  ];
1969
2189
  }
1970
2190
  async confirmSubmittedTransaction(txHash, options) {
1971
- return await confirmSubmittedTransaction(assertEx12(this.connectionInstance.viewer, () => "Connection viewer is undefined"), txHash, options);
2191
+ return await confirmSubmittedTransaction(assertEx13(this.connectionInstance.viewer, () => "Connection viewer is undefined"), txHash, options);
1972
2192
  }
1973
2193
  /** @deprecated use connectionInstance instead */
1974
2194
  connection() {
@@ -2086,7 +2306,7 @@ var SimpleXyoNetwork = class {
2086
2306
  };
2087
2307
 
2088
2308
  // src/simple/permissions/SimpleXyoPermissions.ts
2089
- import { assertEx as assertEx13 } from "@xylabs/sdk-js";
2309
+ import { assertEx as assertEx14 } from "@xylabs/sdk-js";
2090
2310
  var SimpleXyoPermissions = class {
2091
2311
  static {
2092
2312
  __name(this, "SimpleXyoPermissions");
@@ -2098,7 +2318,7 @@ var SimpleXyoPermissions = class {
2098
2318
  this.invoker = store.invoker;
2099
2319
  }
2100
2320
  get store() {
2101
- return assertEx13(this._store, () => "Store must be defined to get permissions");
2321
+ return assertEx14(this._store, () => "Store must be defined to get permissions");
2102
2322
  }
2103
2323
  async getPermissions() {
2104
2324
  return await this.store.getPermissions();
@@ -2156,7 +2376,7 @@ var SimpleXyoPermissions = class {
2156
2376
  };
2157
2377
 
2158
2378
  // src/simple/permissions/store/MemoryPermissions.ts
2159
- import { assertEx as assertEx14 } from "@xylabs/sdk-js";
2379
+ import { assertEx as assertEx15 } from "@xylabs/sdk-js";
2160
2380
  var MemoryPermissionsStore = class {
2161
2381
  static {
2162
2382
  __name(this, "MemoryPermissionsStore");
@@ -2167,7 +2387,7 @@ var MemoryPermissionsStore = class {
2167
2387
  this._invoker = invoker;
2168
2388
  }
2169
2389
  get invoker() {
2170
- return assertEx14(this._invoker, () => "Invoker must be defined to get permissions");
2390
+ return assertEx15(this._invoker, () => "Invoker must be defined to get permissions");
2171
2391
  }
2172
2392
  async getPermissions() {
2173
2393
  await Promise.resolve();
@@ -2233,7 +2453,7 @@ var SimpleXyoSigner = class {
2233
2453
  };
2234
2454
 
2235
2455
  // src/simple/timesync/SimpleTimeSyncViewer.ts
2236
- import { asHash as asHash5, assertEx as assertEx15, isDefined as isDefined11 } from "@xylabs/sdk-js";
2456
+ import { asHash as asHash5, assertEx as assertEx16, isDefined as isDefined12 } from "@xylabs/sdk-js";
2237
2457
  import { asTimePayload, asXL1BlockNumber as asXL1BlockNumber5, TimeSchema } from "@xyo-network/xl1-protocol";
2238
2458
  var SimpleTimeSyncViewer = class {
2239
2459
  static {
@@ -2248,10 +2468,10 @@ var SimpleTimeSyncViewer = class {
2248
2468
  async convertTime(fromDomain, toDomain, from) {
2249
2469
  switch (fromDomain) {
2250
2470
  case "xl1": {
2251
- const [block, payloads] = assertEx15(await this.blockViewer.blockByNumber(asXL1BlockNumber5(from, true)), () => "Block not found");
2471
+ const [block, payloads] = assertEx16(await this.blockViewer.blockByNumber(asXL1BlockNumber5(from, true)), () => "Block not found");
2252
2472
  const timeSchemaIndex = block.payload_schemas.indexOf(TimeSchema);
2253
2473
  const hash = timeSchemaIndex === -1 ? void 0 : block.payload_hashes[timeSchemaIndex];
2254
- const timePayload = asTimePayload(isDefined11(hash) ? payloads.find((p) => p._hash === hash) : void 0);
2474
+ const timePayload = asTimePayload(isDefined12(hash) ? payloads.find((p) => p._hash === hash) : void 0);
2255
2475
  if (timePayload === void 0) return 0;
2256
2476
  switch (toDomain) {
2257
2477
  case "xl1": {
@@ -2314,10 +2534,10 @@ var SimpleTimeSyncViewer = class {
2314
2534
  ];
2315
2535
  }
2316
2536
  case "ethereum": {
2317
- const provider = assertEx15(this.ethProvider, () => "Ethereum provider not configured");
2537
+ const provider = assertEx16(this.ethProvider, () => "Ethereum provider not configured");
2318
2538
  const blockNumber = await provider.getBlockNumber() ?? 0;
2319
2539
  const block = await provider.getBlock(blockNumber);
2320
- const blockHash = asHash5(assertEx15(block?.hash, () => "Block hash not found"), true);
2540
+ const blockHash = asHash5(assertEx16(block?.hash, () => "Block hash not found"), true);
2321
2541
  return [
2322
2542
  blockNumber,
2323
2543
  blockHash
@@ -2334,7 +2554,7 @@ var SimpleTimeSyncViewer = class {
2334
2554
  };
2335
2555
 
2336
2556
  // src/time/primitives/xl1BlockNumberToEthBlockNumber.ts
2337
- import { assertEx as assertEx16 } from "@xylabs/sdk-js";
2557
+ import { assertEx as assertEx17 } from "@xylabs/sdk-js";
2338
2558
  import { asTimePayload as asTimePayload2, TimeSchema as TimeSchema2 } from "@xyo-network/xl1-protocol";
2339
2559
  async function xl1BlockNumberToEthBlockNumber(context, xl1BlockNumber) {
2340
2560
  const blockHash = await hashFromBlockNumber(context, xl1BlockNumber);
@@ -2342,7 +2562,7 @@ async function xl1BlockNumberToEthBlockNumber(context, xl1BlockNumber) {
2342
2562
  const timePayload = asTimePayload2(hydratedBlock[1].find((p) => p.schema === TimeSchema2), {
2343
2563
  required: true
2344
2564
  });
2345
- return assertEx16(timePayload.ethereum, () => "No ethereum timestamp found on block");
2565
+ return assertEx17(timePayload.ethereum, () => "No ethereum timestamp found on block");
2346
2566
  }
2347
2567
  __name(xl1BlockNumberToEthBlockNumber, "xl1BlockNumberToEthBlockNumber");
2348
2568
 
@@ -2405,6 +2625,7 @@ export {
2405
2625
  MnemonicStringZod,
2406
2626
  RewardMultipliers,
2407
2627
  SimpleAccountBalanceViewer,
2628
+ SimpleChainStakeViewer,
2408
2629
  SimpleDataLakeRunner,
2409
2630
  SimpleDataLakeViewer,
2410
2631
  SimpleTimeSyncViewer,