@xyo-network/xl1-protocol-sdk 1.16.1 → 1.16.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 (206) hide show
  1. package/dist/neutral/ChainServiceCollectionV2.d.ts +2 -1
  2. package/dist/neutral/ChainServiceCollectionV2.d.ts.map +1 -1
  3. package/dist/neutral/config/Config.d.ts +6 -18
  4. package/dist/neutral/config/Config.d.ts.map +1 -1
  5. package/dist/neutral/config/Producer.d.ts +2 -6
  6. package/dist/neutral/config/Producer.d.ts.map +1 -1
  7. package/dist/neutral/config/Validation.d.ts +4 -12
  8. package/dist/neutral/config/Validation.d.ts.map +1 -1
  9. package/dist/neutral/driver/cache/LruCacheMap.d.ts +1 -0
  10. package/dist/neutral/driver/cache/LruCacheMap.d.ts.map +1 -1
  11. package/dist/neutral/driver/memory/MemoryMap.d.ts +1 -0
  12. package/dist/neutral/driver/memory/MemoryMap.d.ts.map +1 -1
  13. package/dist/neutral/eip-712/Payloads/EIP712Signature.d.ts +1 -9
  14. package/dist/neutral/eip-712/Payloads/EIP712Signature.d.ts.map +1 -1
  15. package/dist/neutral/index.d.ts +1 -0
  16. package/dist/neutral/index.d.ts.map +1 -1
  17. package/dist/neutral/index.mjs +462 -21
  18. package/dist/neutral/index.mjs.map +1 -1
  19. package/dist/neutral/interfaces/viewers/AccountBalance.d.ts +2 -2
  20. package/dist/neutral/interfaces/viewers/Block.d.ts +1 -1
  21. package/dist/neutral/interfaces/viewers/Block.d.ts.map +1 -1
  22. package/dist/neutral/interfaces/viewers/Chain.d.ts +1 -1
  23. package/dist/neutral/interfaces/viewers/ChainContract.d.ts +3 -1
  24. package/dist/neutral/interfaces/viewers/ChainContract.d.ts.map +1 -1
  25. package/dist/neutral/interfaces/viewers/Fork.d.ts +1 -1
  26. package/dist/neutral/interfaces/viewers/Fork.d.ts.map +1 -1
  27. package/dist/neutral/interfaces/viewers/NetworkStakeStepReward.d.ts +4 -4
  28. package/dist/neutral/interfaces/viewers/NetworkStakeStepReward.d.ts.map +1 -1
  29. package/dist/neutral/interfaces/viewers/StakeTotalsViewer.d.ts +3 -1
  30. package/dist/neutral/interfaces/viewers/StakeTotalsViewer.d.ts.map +1 -1
  31. package/dist/neutral/interfaces/viewers/StakeViewer.d.ts +2 -2
  32. package/dist/neutral/interfaces/viewers/StakeViewer.d.ts.map +1 -1
  33. package/dist/neutral/interfaces/viewers/StepStake.d.ts +3 -1
  34. package/dist/neutral/interfaces/viewers/StepStake.d.ts.map +1 -1
  35. package/dist/neutral/interfaces/viewers/TimeSync.d.ts +3 -3
  36. package/dist/neutral/interfaces/viewers/TimeSync.d.ts.map +1 -1
  37. package/dist/neutral/interfaces/viewers/Transaction.d.ts +1 -1
  38. package/dist/neutral/interfaces/viewers/TransferBalance.d.ts +2 -2
  39. package/dist/neutral/interfaces/viewers/index.d.ts +0 -1
  40. package/dist/neutral/interfaces/viewers/index.d.ts.map +1 -1
  41. package/dist/neutral/map/AsynchronousMap.d.ts +1 -0
  42. package/dist/neutral/map/AsynchronousMap.d.ts.map +1 -1
  43. package/dist/neutral/map/SynchronousMap.d.ts +1 -0
  44. package/dist/neutral/map/SynchronousMap.d.ts.map +1 -1
  45. package/dist/neutral/model/ChainStake/ChainStakeRead.d.ts +1 -1
  46. package/dist/neutral/model/ChainStake/ChainStakeRead.d.ts.map +1 -1
  47. package/dist/neutral/{interfaces/viewers/Stake.d.ts → model/Position.d.ts} +1 -1
  48. package/dist/neutral/model/Position.d.ts.map +1 -0
  49. package/dist/neutral/model/index.d.ts +1 -0
  50. package/dist/neutral/model/index.d.ts.map +1 -1
  51. package/dist/neutral/payloads/netBalancesForPayloads.d.ts +2 -3
  52. package/dist/neutral/payloads/netBalancesForPayloads.d.ts.map +1 -1
  53. package/dist/neutral/provider/DataLake.d.ts +6 -2
  54. package/dist/neutral/provider/DataLake.d.ts.map +1 -1
  55. package/dist/neutral/provider/XyoClient.d.ts +3 -3
  56. package/dist/neutral/provider/XyoClient.d.ts.map +1 -1
  57. package/dist/neutral/provider/XyoConnection.d.ts +1 -23
  58. package/dist/neutral/provider/XyoConnection.d.ts.map +1 -1
  59. package/dist/neutral/provider/XyoGateway.d.ts +4 -10
  60. package/dist/neutral/provider/XyoGateway.d.ts.map +1 -1
  61. package/dist/neutral/provider/XyoGatewayRunner.d.ts +25 -0
  62. package/dist/neutral/provider/XyoGatewayRunner.d.ts.map +1 -0
  63. package/dist/neutral/provider/index.d.ts +2 -2
  64. package/dist/neutral/provider/index.d.ts.map +1 -1
  65. package/dist/neutral/provider/{XyoSigner.d.ts → signer/XyoSigner.d.ts} +2 -2
  66. package/dist/neutral/provider/signer/XyoSigner.d.ts.map +1 -0
  67. package/dist/neutral/provider/signer/index.d.ts +2 -0
  68. package/dist/neutral/provider/signer/index.d.ts.map +1 -0
  69. package/dist/neutral/provider/viewer/StepViewer.d.ts +2 -2
  70. package/dist/neutral/provider/viewer/StepViewer.d.ts.map +1 -1
  71. package/dist/neutral/provider/viewer/XyoViewer.d.ts +2 -2
  72. package/dist/neutral/provider/viewer/XyoViewer.d.ts.map +1 -1
  73. package/dist/neutral/services/Chain/ChainService.d.ts +2 -1
  74. package/dist/neutral/services/Chain/ChainService.d.ts.map +1 -1
  75. package/dist/neutral/services/Chain/interfaces/ChainStakeViewer.d.ts +1 -2
  76. package/dist/neutral/services/Chain/interfaces/ChainStakeViewer.d.ts.map +1 -1
  77. package/dist/neutral/services/Chain/interfaces/index.d.ts +0 -1
  78. package/dist/neutral/services/Chain/interfaces/index.d.ts.map +1 -1
  79. package/dist/neutral/services/NetworkStakeService.d.ts +2 -2
  80. package/dist/neutral/services/NetworkStakeService.d.ts.map +1 -1
  81. package/dist/neutral/services/StepStakeService.d.ts +2 -2
  82. package/dist/neutral/services/StepStakeService.d.ts.map +1 -1
  83. package/dist/neutral/services/TimeSyncService.d.ts +2 -4
  84. package/dist/neutral/services/TimeSyncService.d.ts.map +1 -1
  85. package/dist/neutral/simple/client/SimpleXyoClient.d.ts +7 -0
  86. package/dist/neutral/simple/client/SimpleXyoClient.d.ts.map +1 -0
  87. package/dist/neutral/simple/client/index.d.ts +2 -0
  88. package/dist/neutral/simple/client/index.d.ts.map +1 -0
  89. package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts +15 -0
  90. package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts.map +1 -0
  91. package/dist/neutral/simple/datalake/SimpleDataLakeViewer.d.ts +23 -0
  92. package/dist/neutral/simple/datalake/SimpleDataLakeViewer.d.ts.map +1 -0
  93. package/dist/neutral/simple/datalake/index.d.ts +3 -0
  94. package/dist/neutral/simple/datalake/index.d.ts.map +1 -0
  95. package/dist/neutral/simple/gateway/SimpleXyoGateway.d.ts +9 -0
  96. package/dist/neutral/simple/gateway/SimpleXyoGateway.d.ts.map +1 -0
  97. package/dist/neutral/simple/gateway/SimpleXyoGatewayRunner.d.ts +20 -0
  98. package/dist/neutral/simple/gateway/SimpleXyoGatewayRunner.d.ts.map +1 -0
  99. package/dist/neutral/simple/gateway/index.d.ts +3 -0
  100. package/dist/neutral/simple/gateway/index.d.ts.map +1 -0
  101. package/dist/neutral/simple/index.d.ts +8 -0
  102. package/dist/neutral/simple/index.d.ts.map +1 -0
  103. package/dist/neutral/simple/network/SimpleXyoNetwork.d.ts +9 -0
  104. package/dist/neutral/simple/network/SimpleXyoNetwork.d.ts.map +1 -0
  105. package/dist/neutral/simple/network/index.d.ts +2 -0
  106. package/dist/neutral/simple/network/index.d.ts.map +1 -0
  107. package/dist/neutral/simple/network/lib/FailedNetworkStatusPayloads.d.ts +4 -0
  108. package/dist/neutral/simple/network/lib/FailedNetworkStatusPayloads.d.ts.map +1 -0
  109. package/dist/neutral/simple/network/lib/StatusNetworks.d.ts +10 -0
  110. package/dist/neutral/simple/network/lib/StatusNetworks.d.ts.map +1 -0
  111. package/dist/neutral/simple/network/lib/index.d.ts +3 -0
  112. package/dist/neutral/simple/network/lib/index.d.ts.map +1 -0
  113. package/dist/neutral/simple/network/spec/XyoNetwork.spec.d.ts +2 -0
  114. package/dist/neutral/simple/network/spec/XyoNetwork.spec.d.ts.map +1 -0
  115. package/dist/neutral/simple/permissions/SimpleXyoPermissions.d.ts +17 -0
  116. package/dist/neutral/simple/permissions/SimpleXyoPermissions.d.ts.map +1 -0
  117. package/dist/neutral/simple/permissions/index.d.ts +3 -0
  118. package/dist/neutral/simple/permissions/index.d.ts.map +1 -0
  119. package/dist/neutral/simple/permissions/spec/SimpleXyoPermissions.spec.d.ts +2 -0
  120. package/dist/neutral/simple/permissions/spec/SimpleXyoPermissions.spec.d.ts.map +1 -0
  121. package/dist/neutral/simple/permissions/store/MemoryPermissions.d.ts +16 -0
  122. package/dist/neutral/simple/permissions/store/MemoryPermissions.d.ts.map +1 -0
  123. package/dist/neutral/simple/permissions/store/PermissionsStore.d.ts +12 -0
  124. package/dist/neutral/simple/permissions/store/PermissionsStore.d.ts.map +1 -0
  125. package/dist/neutral/simple/permissions/store/index.d.ts +3 -0
  126. package/dist/neutral/simple/permissions/store/index.d.ts.map +1 -0
  127. package/dist/neutral/simple/runner/SimpleXyoRunner.d.ts +11 -0
  128. package/dist/neutral/simple/runner/SimpleXyoRunner.d.ts.map +1 -0
  129. package/dist/neutral/simple/runner/index.d.ts +2 -0
  130. package/dist/neutral/simple/runner/index.d.ts.map +1 -0
  131. package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts +15 -0
  132. package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts.map +1 -0
  133. package/dist/neutral/simple/signer/index.d.ts +2 -0
  134. package/dist/neutral/simple/signer/index.d.ts.map +1 -0
  135. package/package.json +20 -15
  136. package/src/ChainServiceCollectionV2.ts +2 -1
  137. package/src/driver/cache/LruCacheMap.ts +6 -0
  138. package/src/driver/memory/MemoryMap.ts +6 -0
  139. package/src/index.ts +1 -0
  140. package/src/interfaces/viewers/AccountBalance.ts +2 -2
  141. package/src/interfaces/viewers/Block.ts +1 -1
  142. package/src/interfaces/viewers/Chain.ts +1 -1
  143. package/src/interfaces/viewers/ChainContract.ts +3 -1
  144. package/src/interfaces/viewers/Fork.ts +1 -1
  145. package/src/interfaces/viewers/NetworkStakeStepReward.ts +7 -7
  146. package/src/interfaces/viewers/StakeTotalsViewer.ts +3 -1
  147. package/src/interfaces/viewers/StakeViewer.ts +2 -2
  148. package/src/interfaces/viewers/StepStake.ts +3 -1
  149. package/src/interfaces/viewers/TimeSync.ts +3 -3
  150. package/src/interfaces/viewers/Transaction.ts +1 -1
  151. package/src/interfaces/viewers/TransferBalance.ts +2 -2
  152. package/src/interfaces/viewers/index.ts +0 -1
  153. package/src/map/AsynchronousMap.ts +1 -0
  154. package/src/map/SynchronousMap.ts +1 -0
  155. package/src/model/ChainStake/ChainStakeRead.ts +1 -1
  156. package/src/model/index.ts +1 -0
  157. package/src/provider/DataLake.ts +8 -3
  158. package/src/provider/XyoClient.ts +3 -3
  159. package/src/provider/XyoConnection.ts +1 -43
  160. package/src/provider/XyoGateway.ts +4 -12
  161. package/src/provider/XyoGatewayRunner.ts +42 -0
  162. package/src/provider/index.ts +2 -2
  163. package/src/provider/{XyoSigner.ts → signer/XyoSigner.ts} +2 -2
  164. package/src/provider/signer/index.ts +1 -0
  165. package/src/provider/viewer/StepViewer.ts +2 -2
  166. package/src/provider/viewer/XyoViewer.ts +11 -8
  167. package/src/services/Chain/ChainService.ts +2 -3
  168. package/src/services/Chain/interfaces/ChainStakeViewer.ts +1 -2
  169. package/src/services/Chain/interfaces/index.ts +0 -1
  170. package/src/services/NetworkStakeService.ts +2 -2
  171. package/src/services/StepStakeService.ts +2 -2
  172. package/src/services/TimeSyncService.ts +2 -4
  173. package/src/simple/client/SimpleXyoClient.ts +13 -0
  174. package/src/simple/client/index.ts +1 -0
  175. package/src/simple/datalake/SimpleDataLakeRunner.ts +36 -0
  176. package/src/simple/datalake/SimpleDataLakeViewer.ts +74 -0
  177. package/src/simple/datalake/index.ts +2 -0
  178. package/src/simple/gateway/SimpleXyoGateway.ts +21 -0
  179. package/src/simple/gateway/SimpleXyoGatewayRunner.ts +116 -0
  180. package/src/simple/gateway/index.ts +2 -0
  181. package/src/simple/index.ts +7 -0
  182. package/src/simple/network/SimpleXyoNetwork.ts +48 -0
  183. package/src/simple/network/index.ts +1 -0
  184. package/src/simple/network/lib/FailedNetworkStatusPayloads.ts +14 -0
  185. package/src/simple/network/lib/StatusNetworks.ts +27 -0
  186. package/src/simple/network/lib/index.ts +2 -0
  187. package/src/simple/network/spec/XyoNetwork.spec.ts +77 -0
  188. package/src/simple/permissions/SimpleXyoPermissions.ts +82 -0
  189. package/src/simple/permissions/index.ts +2 -0
  190. package/src/simple/permissions/spec/SimpleXyoPermissions.spec.ts +93 -0
  191. package/src/simple/permissions/store/MemoryPermissions.ts +32 -0
  192. package/src/simple/permissions/store/PermissionsStore.ts +15 -0
  193. package/src/simple/permissions/store/index.ts +2 -0
  194. package/src/simple/runner/SimpleXyoRunner.ts +29 -0
  195. package/src/simple/runner/index.ts +1 -0
  196. package/src/simple/signer/SimpleXyoSigner.ts +52 -0
  197. package/src/simple/signer/index.ts +1 -0
  198. package/dist/neutral/interfaces/viewers/Stake.d.ts.map +0 -1
  199. package/dist/neutral/provider/XyoGatewayHelpers.d.ts +0 -16
  200. package/dist/neutral/provider/XyoGatewayHelpers.d.ts.map +0 -1
  201. package/dist/neutral/provider/XyoSigner.d.ts.map +0 -1
  202. package/dist/neutral/services/Chain/interfaces/ChainContractViewer.d.ts +0 -4
  203. package/dist/neutral/services/Chain/interfaces/ChainContractViewer.d.ts.map +0 -1
  204. package/src/provider/XyoGatewayHelpers.ts +0 -30
  205. package/src/services/Chain/interfaces/ChainContractViewer.ts +0 -5
  206. /package/src/{interfaces/viewers/Stake.ts → model/Position.ts} +0 -0
@@ -153,6 +153,11 @@ var LruCacheMap = class {
153
153
  set(id, data) {
154
154
  this.lruCache.set(id, data);
155
155
  }
156
+ setMany(entries) {
157
+ for (const [key, value] of entries) {
158
+ this.lruCache.set(key, value);
159
+ }
160
+ }
156
161
  };
157
162
 
158
163
  // src/driver/memory/MemoryMap.ts
@@ -190,6 +195,11 @@ var MemoryMap = class {
190
195
  set(id, data) {
191
196
  this.map.set(id, data);
192
197
  }
198
+ setMany(entries) {
199
+ for (const [key, value] of entries) {
200
+ this.map.set(key, value);
201
+ }
202
+ }
193
203
  };
194
204
 
195
205
  // src/model/ChainContext/ChainContext.ts
@@ -1380,21 +1390,126 @@ var asChainIndexingServiceState = AsObjectFactory6.create(isChainIndexingService
1380
1390
  var isChainIndexingServiceStateWithStorageMeta = /* @__PURE__ */ __name((value) => isChainIndexingServiceState(value) && isStorageMeta3(value), "isChainIndexingServiceStateWithStorageMeta");
1381
1391
  var asChainIndexingServiceStateWithStorageMeta = AsObjectFactory6.create(isChainIndexingServiceStateWithStorageMeta);
1382
1392
 
1383
- // src/time/primitives/xl1BlockNumberToEthBlockNumber.ts
1384
- import { assertEx as assertEx7 } from "@xylabs/assert";
1385
- import { asTimePayload, TimeSchema } from "@xyo-network/xl1-protocol";
1386
- async function xl1BlockNumberToEthBlockNumber(context, xl1BlockNumber) {
1387
- const blockHash = await hashFromBlockNumber(context, xl1BlockNumber);
1388
- const hydratedBlock = await hydrateBlock(context.store, blockHash);
1389
- const timePayload = asTimePayload(hydratedBlock[1].find((p) => p.schema === TimeSchema), {
1390
- required: true
1391
- });
1392
- return assertEx7(timePayload.ethereum, () => "No ethereum timestamp found on block");
1393
- }
1394
- __name(xl1BlockNumberToEthBlockNumber, "xl1BlockNumberToEthBlockNumber");
1393
+ // src/simple/client/SimpleXyoClient.ts
1394
+ var SimpleXyoClient = class {
1395
+ static {
1396
+ __name(this, "SimpleXyoClient");
1397
+ }
1398
+ gateways;
1399
+ permissions;
1400
+ constructor(gateways, permissions) {
1401
+ this.gateways = gateways;
1402
+ this.permissions = permissions;
1403
+ }
1404
+ };
1405
+
1406
+ // src/simple/datalake/SimpleDataLakeViewer.ts
1407
+ import { isAnyPayload as isAnyPayload3 } from "@xyo-network/payload-model";
1408
+ var SimpleDataLakeViewer = class {
1409
+ static {
1410
+ __name(this, "SimpleDataLakeViewer");
1411
+ }
1412
+ _params;
1413
+ constructor(params) {
1414
+ this._params = params;
1415
+ }
1416
+ get allowedSchemas() {
1417
+ return this._params.allowedSchemas;
1418
+ }
1419
+ get disallowedSchemas() {
1420
+ return this._params.disallowedSchemas;
1421
+ }
1422
+ get map() {
1423
+ return this._params.map;
1424
+ }
1425
+ get params() {
1426
+ return this._params;
1427
+ }
1428
+ async get(hash) {
1429
+ const result = await this.map.get(hash);
1430
+ return this.isAllowed(result) ? result : void 0;
1431
+ }
1432
+ async getMany(hashes) {
1433
+ const result = await this.map.getMany(hashes);
1434
+ return result.filter((data) => this.isAllowed(data));
1435
+ }
1436
+ async has(hash) {
1437
+ const value = await this.get(hash);
1438
+ if (isAnyPayload3(value)) {
1439
+ return this.isAllowed(value);
1440
+ }
1441
+ return value !== void 0;
1442
+ }
1443
+ isAllowed(value) {
1444
+ if (isAnyPayload3(value)) {
1445
+ return this.isAllowedSchema(value.schema);
1446
+ }
1447
+ return true;
1448
+ }
1449
+ isAllowedSchema(schema) {
1450
+ if (this.allowedSchemas && !this.allowedSchemas.includes(schema)) {
1451
+ return false;
1452
+ }
1453
+ if (this.disallowedSchemas && this.disallowedSchemas.includes(schema)) {
1454
+ return false;
1455
+ }
1456
+ return true;
1457
+ }
1458
+ };
1459
+
1460
+ // src/simple/datalake/SimpleDataLakeRunner.ts
1461
+ var SimpleDataLakeRunner = class extends SimpleDataLakeViewer {
1462
+ static {
1463
+ __name(this, "SimpleDataLakeRunner");
1464
+ }
1465
+ constructor(params) {
1466
+ super(params);
1467
+ }
1468
+ async clear() {
1469
+ await this.map.clear();
1470
+ }
1471
+ async delete(hash) {
1472
+ return await this.map.delete(hash);
1473
+ }
1474
+ async set(hash, data) {
1475
+ if (this.isAllowed(data)) {
1476
+ await this.map.set(hash, data);
1477
+ }
1478
+ }
1479
+ async setMany(entries) {
1480
+ const allowed = entries.filter(([_, data]) => this.isAllowed(data));
1481
+ return await this.map.setMany(allowed);
1482
+ }
1483
+ };
1484
+
1485
+ // src/simple/gateway/SimpleXyoGateway.ts
1486
+ var SimpleXyoGateway = class {
1487
+ static {
1488
+ __name(this, "SimpleXyoGateway");
1489
+ }
1490
+ _connection;
1491
+ _signer;
1492
+ constructor(signer, connection) {
1493
+ this._signer = signer;
1494
+ this._connection = connection;
1495
+ }
1496
+ get connection() {
1497
+ return this._connection;
1498
+ }
1499
+ get signer() {
1500
+ return this._signer;
1501
+ }
1502
+ };
1503
+
1504
+ // src/simple/gateway/SimpleXyoGatewayRunner.ts
1505
+ import { assertEx as assertEx11 } from "@xylabs/assert";
1506
+ import { BigIntToJsonZod } from "@xylabs/hex";
1507
+ import { isDefined as isDefined9 } from "@xylabs/typeof";
1508
+ import { PayloadBuilder as PayloadBuilder10 } from "@xyo-network/payload-builder";
1509
+ import { TransferSchema } from "@xyo-network/xl1-protocol";
1395
1510
 
1396
1511
  // src/transaction/buildTransaction.ts
1397
- import { assertEx as assertEx8 } from "@xylabs/assert";
1512
+ import { assertEx as assertEx7 } from "@xylabs/assert";
1398
1513
  import { toHex as toHex2 } from "@xylabs/hex";
1399
1514
  import { BoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
1400
1515
  import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/payload-builder";
@@ -1421,7 +1536,7 @@ async function buildTransaction(chain, onChainPayloads, offChainPayloads, signer
1421
1536
  }
1422
1537
  const fields = {
1423
1538
  ...txBoundWitnessFields,
1424
- from: from ?? (Array.isArray(signer) ? assertEx8(signer.at(0)?.address) : signer.address)
1539
+ from: from ?? (Array.isArray(signer) ? assertEx7(signer.at(0)?.address) : signer.address)
1425
1540
  };
1426
1541
  if (script.length > 0) {
1427
1542
  fields.script = script;
@@ -1513,7 +1628,7 @@ var confirmSubmittedTransaction = /* @__PURE__ */ __name(async (viewer, transact
1513
1628
  }, "confirmSubmittedTransaction");
1514
1629
 
1515
1630
  // src/transaction/hydrateTransaction.ts
1516
- import { assertEx as assertEx9 } from "@xylabs/assert";
1631
+ import { assertEx as assertEx8 } from "@xylabs/assert";
1517
1632
  import { hydrateTypedBoundWitness, tryHydrateTypedBoundWitness } from "@xyo-network/archivist-model";
1518
1633
  import { isAllowedBlockPayload as isAllowedBlockPayload2, isSignedTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
1519
1634
  var tryHydrateTransaction = /* @__PURE__ */ __name(async ({ chainMap }, hash) => {
@@ -1572,7 +1687,7 @@ var tryHydrateElevatedTransaction = /* @__PURE__ */ __name(async ({ chainMap },
1572
1687
  return void 0;
1573
1688
  }, "tryHydrateElevatedTransaction");
1574
1689
  var hydrateElevatedTransaction = /* @__PURE__ */ __name(async (context, hash) => {
1575
- return assertEx9(await tryHydrateElevatedTransaction(context, hash), () => "Hydration failed");
1690
+ return assertEx8(await tryHydrateElevatedTransaction(context, hash), () => "Hydration failed");
1576
1691
  }, "hydrateElevatedTransaction");
1577
1692
 
1578
1693
  // src/transaction/primitives/transactionBlockByteCount.ts
@@ -1638,7 +1753,7 @@ __name(transactionRequiredGas, "transactionRequiredGas");
1638
1753
 
1639
1754
  // src/transaction/script.ts
1640
1755
  import { filterAs as filterAs2 } from "@xylabs/array";
1641
- import { assertEx as assertEx10 } from "@xylabs/assert";
1756
+ import { assertEx as assertEx9 } from "@xylabs/assert";
1642
1757
  import { asHash as asHash4 } from "@xylabs/hex";
1643
1758
  import { isAllowedBlockPayloadWithHashMeta } from "@xyo-network/xl1-protocol";
1644
1759
  var tryExtractElevatedHashesFromScript = /* @__PURE__ */ __name((strings) => {
@@ -1648,7 +1763,7 @@ var tryExtractElevatedHashesFromScript = /* @__PURE__ */ __name((strings) => {
1648
1763
  var extractElevatedHashesFromScript = /* @__PURE__ */ __name((strings) => {
1649
1764
  const hashes = strings.filter((str) => str.startsWith("elevate|")).map((str) => str.split("|")[1]);
1650
1765
  const filtered = filterAs2(hashes, (h) => asHash4(h));
1651
- assertEx10(filtered.length === hashes.length, () => "Invalid elevated hashes");
1766
+ assertEx9(filtered.length === hashes.length, () => "Invalid elevated hashes");
1652
1767
  return filtered;
1653
1768
  }, "extractElevatedHashesFromScript");
1654
1769
  var tryExtractElevatedHashes = /* @__PURE__ */ __name((tx) => {
@@ -1662,17 +1777,17 @@ var extractElevatedHashes = /* @__PURE__ */ __name((tx) => {
1662
1777
  const { script } = bw;
1663
1778
  const hashes = script ? tryExtractElevatedHashesFromScript(script) : [];
1664
1779
  const filtered = payloads.filter((p) => hashes.includes(p._hash)).filter(isAllowedBlockPayloadWithHashMeta);
1665
- assertEx10(filtered.length === hashes.length, () => "Invalid elevated hashes");
1780
+ assertEx9(filtered.length === hashes.length, () => "Invalid elevated hashes");
1666
1781
  return filtered;
1667
1782
  }, "extractElevatedHashes");
1668
1783
 
1669
1784
  // src/transaction/signTransaction.ts
1670
1785
  import { toArrayBuffer } from "@xylabs/arraybuffer";
1671
- import { assertEx as assertEx11 } from "@xylabs/assert";
1786
+ import { assertEx as assertEx10 } from "@xylabs/assert";
1672
1787
  import { hexFromArrayBuffer } from "@xylabs/hex";
1673
1788
  import { PayloadBuilder as PayloadBuilder9 } from "@xyo-network/payload-builder";
1674
1789
  async function signTransaction(tx, account) {
1675
- assertEx11(tx.from === account.address, () => "Signer address does not match transaction from address");
1790
+ assertEx10(tx.from === account.address, () => "Signer address does not match transaction from address");
1676
1791
  const signedTx = structuredClone(tx);
1677
1792
  signedTx.addresses = [
1678
1793
  account.address
@@ -1690,6 +1805,322 @@ async function signTransaction(tx, account) {
1690
1805
  }
1691
1806
  __name(signTransaction, "signTransaction");
1692
1807
 
1808
+ // src/simple/gateway/SimpleXyoGatewayRunner.ts
1809
+ var SimpleXyoGatewayRunner = class {
1810
+ static {
1811
+ __name(this, "SimpleXyoGatewayRunner");
1812
+ }
1813
+ gateway;
1814
+ _dataLakes;
1815
+ constructor(gateway, dataLakes = []) {
1816
+ this.gateway = gateway;
1817
+ this._dataLakes = [
1818
+ ...dataLakes
1819
+ ];
1820
+ }
1821
+ get connection() {
1822
+ return this.gateway.connection;
1823
+ }
1824
+ get dataLakes() {
1825
+ throw new Error("Method not implemented.");
1826
+ }
1827
+ get signer() {
1828
+ return this.gateway.signer;
1829
+ }
1830
+ addDataLake(dataLake) {
1831
+ this._dataLakes.push(dataLake);
1832
+ return this._dataLakes.length - 1;
1833
+ }
1834
+ async addPayloadsToChain(onChain, offChain, options) {
1835
+ const viewer = assertEx11(this.connection.viewer, () => "No viewer available on connection");
1836
+ const { nbf, exp, chain, fees } = options ?? {};
1837
+ const resolvedChainId = isDefined9(chain) ? chain : await viewer.chainId();
1838
+ const resolvedNbf = isDefined9(nbf) ? nbf : await viewer?.currentBlockNumber();
1839
+ const resolvedExp = isDefined9(exp) ? exp : resolvedNbf + 10;
1840
+ const tx = await buildUnsignedTransaction(resolvedChainId, onChain, offChain, resolvedNbf, resolvedExp, await this.signer.address(), fees);
1841
+ return await this.addTransactionToChain(tx);
1842
+ }
1843
+ async addTransactionToChain(tx) {
1844
+ const connection = this.gateway.connection;
1845
+ const signer = this.gateway.signer;
1846
+ const runner = assertEx11(connection.runner, () => "No runner available on connection");
1847
+ const signedTx = await signer.signTransaction(tx);
1848
+ await this.addPayloadsToDataLakes(signedTx[1]);
1849
+ return [
1850
+ await runner.broadcastTransaction([
1851
+ await PayloadBuilder10.addStorageMeta(signedTx[0]),
1852
+ await PayloadBuilder10.addStorageMeta(signedTx[1])
1853
+ ]),
1854
+ signedTx
1855
+ ];
1856
+ }
1857
+ removeDataLake(index) {
1858
+ this._dataLakes[index] = null;
1859
+ }
1860
+ async send(to, amount, options) {
1861
+ return await this.sendMany({
1862
+ [to]: amount
1863
+ }, options);
1864
+ }
1865
+ async sendMany(transfers, options) {
1866
+ const from = await this.signer.address();
1867
+ const hexTransfers = Object.fromEntries(Object.entries(transfers).map(([address, amount]) => [
1868
+ address,
1869
+ BigIntToJsonZod.parse(amount)
1870
+ ]));
1871
+ const transfer = new PayloadBuilder10({
1872
+ schema: TransferSchema
1873
+ }).fields({
1874
+ from,
1875
+ transfers: hexTransfers,
1876
+ epoch: Date.now()
1877
+ }).build();
1878
+ const [hash] = await this.addPayloadsToChain([
1879
+ transfer
1880
+ ], [], options);
1881
+ return hash;
1882
+ }
1883
+ async addPayloadsToDataLakes(payloads) {
1884
+ await Promise.all(this._dataLakes.map(async (dataLake) => {
1885
+ await Promise.all(payloads.map(async (payload) => {
1886
+ await dataLake?.set(payload._hash, payload);
1887
+ }));
1888
+ }));
1889
+ }
1890
+ };
1891
+
1892
+ // src/simple/network/SimpleXyoNetwork.ts
1893
+ import { isUndefined as isUndefined4 } from "@xylabs/typeof";
1894
+ import { isNetworkStatus } from "@xyo-network/xl1-protocol";
1895
+ import axios from "axios";
1896
+
1897
+ // src/simple/network/lib/FailedNetworkStatusPayloads.ts
1898
+ import { NetworkStatusSchema } from "@xyo-network/xl1-protocol";
1899
+ var unknownStatus = {
1900
+ description: "Unknown Network Status",
1901
+ schema: NetworkStatusSchema,
1902
+ state: "unknown"
1903
+ };
1904
+ var errorStatus = {
1905
+ description: "Error Fetching Network Status",
1906
+ schema: NetworkStatusSchema,
1907
+ state: "unknown"
1908
+ };
1909
+
1910
+ // src/simple/network/lib/StatusNetworks.ts
1911
+ var MainNetworkStats = {
1912
+ id: "mainnet",
1913
+ statusUrl: "https://xyo.network/chain-network-status-mainnet.json"
1914
+ };
1915
+ var SequenceNetworkStats = {
1916
+ id: "sequence",
1917
+ statusUrl: "https://beta.xyo.network/chain-network-status-sequence.json"
1918
+ };
1919
+ var LocalNetworkStats = {
1920
+ id: "local",
1921
+ statusUrl: "http://localhost:3002/chain-network-status-local.json"
1922
+ };
1923
+ var StatusNetworks = {
1924
+ ["mainnet"]: MainNetworkStats,
1925
+ ["sequence"]: SequenceNetworkStats,
1926
+ ["local"]: LocalNetworkStats
1927
+ };
1928
+
1929
+ // src/simple/network/SimpleXyoNetwork.ts
1930
+ var SimpleXyoNetwork = class {
1931
+ static {
1932
+ __name(this, "SimpleXyoNetwork");
1933
+ }
1934
+ _networkId;
1935
+ constructor(networkId) {
1936
+ this._networkId = networkId;
1937
+ }
1938
+ async status() {
1939
+ const statusNetwork = StatusNetworks[this._networkId];
1940
+ if (isUndefined4(statusNetwork)) {
1941
+ throw new Error(`Unknown status network ID: ${this._networkId}`);
1942
+ }
1943
+ return await this.makeRequest(statusNetwork.statusUrl);
1944
+ }
1945
+ async makeRequest(url3) {
1946
+ try {
1947
+ const response = await axios.get(url3);
1948
+ if (isNetworkStatus(response.data)) {
1949
+ return response.data;
1950
+ } else {
1951
+ if (response.status === 200) {
1952
+ console.error("Unknown network status response:", response.data);
1953
+ return unknownStatus;
1954
+ }
1955
+ return errorStatus;
1956
+ }
1957
+ } catch (error) {
1958
+ console.error("Error fetching network status:", error);
1959
+ return errorStatus;
1960
+ }
1961
+ }
1962
+ };
1963
+
1964
+ // src/simple/permissions/SimpleXyoPermissions.ts
1965
+ import { assertEx as assertEx12 } from "@xylabs/assert";
1966
+ var SimpleXyoPermissions = class {
1967
+ static {
1968
+ __name(this, "SimpleXyoPermissions");
1969
+ }
1970
+ invoker;
1971
+ _store;
1972
+ constructor(store) {
1973
+ this._store = store;
1974
+ this.invoker = store.invoker;
1975
+ }
1976
+ get store() {
1977
+ return assertEx12(this._store, () => "Store must be defined to get permissions");
1978
+ }
1979
+ async getPermissions() {
1980
+ return await this.store.getPermissions();
1981
+ }
1982
+ // assumed the permissions are always granted
1983
+ async requestPermissions(permissions) {
1984
+ await Promise.resolve();
1985
+ const newPermissions = [];
1986
+ const now = Date.now();
1987
+ for (const req of permissions) {
1988
+ for (const parentCapability in req) {
1989
+ newPermissions.push({
1990
+ invoker: this.invoker,
1991
+ parentCapability,
1992
+ caveats: Object.entries(req[parentCapability]).map(([type, value]) => ({
1993
+ type,
1994
+ value
1995
+ })),
1996
+ date: now
1997
+ });
1998
+ }
1999
+ }
2000
+ const existingPermissions = await this.getPermissions();
2001
+ for (const perm of newPermissions) {
2002
+ const idx = existingPermissions.findIndex((p) => p.invoker === perm.invoker && p.parentCapability === perm.parentCapability);
2003
+ if (idx === -1) {
2004
+ existingPermissions.push(perm);
2005
+ } else {
2006
+ existingPermissions[idx] = perm;
2007
+ }
2008
+ }
2009
+ await this.store.setPermissions(existingPermissions);
2010
+ return newPermissions.map(({ parentCapability, date }) => ({
2011
+ parentCapability,
2012
+ date
2013
+ }));
2014
+ }
2015
+ // Assumes the permissions are always revoked
2016
+ async revokePermissions(permissions) {
2017
+ const existingPermissions = await this.getPermissions();
2018
+ const revoked = [];
2019
+ for (const parentCapability in permissions) {
2020
+ const idx = existingPermissions.findIndex((p) => p.invoker === this.invoker && p.parentCapability === parentCapability);
2021
+ if (idx !== -1) {
2022
+ const removed = existingPermissions.splice(idx, 1)[0];
2023
+ revoked.push({
2024
+ parentCapability: removed.parentCapability,
2025
+ date: removed.date
2026
+ });
2027
+ }
2028
+ }
2029
+ await this.store.setPermissions(existingPermissions);
2030
+ return revoked;
2031
+ }
2032
+ };
2033
+
2034
+ // src/simple/permissions/store/MemoryPermissions.ts
2035
+ import { assertEx as assertEx13 } from "@xylabs/assert";
2036
+ var MemoryPermissionsStore = class {
2037
+ static {
2038
+ __name(this, "MemoryPermissionsStore");
2039
+ }
2040
+ _invoker;
2041
+ permissions = [];
2042
+ constructor(invoker) {
2043
+ this._invoker = invoker;
2044
+ }
2045
+ get invoker() {
2046
+ return assertEx13(this._invoker, () => "Invoker must be defined to get permissions");
2047
+ }
2048
+ async getPermissions() {
2049
+ await Promise.resolve();
2050
+ return this.permissions;
2051
+ }
2052
+ async setPermissions(permissions) {
2053
+ await Promise.resolve();
2054
+ this.permissions = permissions;
2055
+ }
2056
+ };
2057
+
2058
+ // src/simple/runner/SimpleXyoRunner.ts
2059
+ import { MemoryArchivist } from "@xyo-network/archivist-memory";
2060
+ import { PayloadBuilder as PayloadBuilder11 } from "@xyo-network/payload-builder";
2061
+ var SimpleXyoRunner = class {
2062
+ static {
2063
+ __name(this, "SimpleXyoRunner");
2064
+ }
2065
+ _mempoolArchivist;
2066
+ constructor(mempoolArchivist) {
2067
+ this._mempoolArchivist = mempoolArchivist;
2068
+ }
2069
+ async broadcastTransaction(transaction) {
2070
+ const archivist = await this.getMempoolArchivist();
2071
+ await archivist.insert(flattenHydratedTransaction(transaction));
2072
+ return await PayloadBuilder11.hash(transaction[0]);
2073
+ }
2074
+ async getMempoolArchivist() {
2075
+ if (!this._mempoolArchivist) {
2076
+ this._mempoolArchivist = await MemoryArchivist.create({
2077
+ account: "random"
2078
+ });
2079
+ }
2080
+ return this._mempoolArchivist;
2081
+ }
2082
+ };
2083
+
2084
+ // src/simple/signer/SimpleXyoSigner.ts
2085
+ import { PayloadBuilder as PayloadBuilder12 } from "@xyo-network/payload-builder";
2086
+ var SimpleXyoSigner = class {
2087
+ static {
2088
+ __name(this, "SimpleXyoSigner");
2089
+ }
2090
+ _account;
2091
+ constructor(account) {
2092
+ this._account = account;
2093
+ }
2094
+ address() {
2095
+ return this._account.address;
2096
+ }
2097
+ async createSignedTransaction(chain, elevatedPayloads2, additionalPayloads, nbf, exp, fees, from) {
2098
+ const fromAddress = from ?? this._account.address;
2099
+ const transaction = await buildTransaction(chain, elevatedPayloads2, additionalPayloads, this._account, nbf, exp, fromAddress, fees);
2100
+ return transaction[0];
2101
+ }
2102
+ async signTransaction(tx) {
2103
+ const txBW = await signTransaction(tx[0], this._account);
2104
+ return [
2105
+ await PayloadBuilder12.addStorageMeta(txBW),
2106
+ await PayloadBuilder12.addStorageMeta(tx[1])
2107
+ ];
2108
+ }
2109
+ };
2110
+
2111
+ // src/time/primitives/xl1BlockNumberToEthBlockNumber.ts
2112
+ import { assertEx as assertEx14 } from "@xylabs/assert";
2113
+ import { asTimePayload, TimeSchema } from "@xyo-network/xl1-protocol";
2114
+ async function xl1BlockNumberToEthBlockNumber(context, xl1BlockNumber) {
2115
+ const blockHash = await hashFromBlockNumber(context, xl1BlockNumber);
2116
+ const hydratedBlock = await hydrateBlock(context.store, blockHash);
2117
+ const timePayload = asTimePayload(hydratedBlock[1].find((p) => p.schema === TimeSchema), {
2118
+ required: true
2119
+ });
2120
+ return assertEx14(timePayload.ethereum, () => "No ethereum timestamp found on block");
2121
+ }
2122
+ __name(xl1BlockNumberToEthBlockNumber, "xl1BlockNumberToEthBlockNumber");
2123
+
1693
2124
  // src/wallet/generateXyoBaseWalletFromPhrase.ts
1694
2125
  import { HDWallet } from "@xyo-network/wallet";
1695
2126
 
@@ -1738,8 +2169,18 @@ export {
1738
2169
  JSONSchemaMetaSchema,
1739
2170
  LruCacheMap,
1740
2171
  MemoryMap,
2172
+ MemoryPermissionsStore,
1741
2173
  MnemonicStringZod,
1742
2174
  RewardMultipliers,
2175
+ SimpleDataLakeRunner,
2176
+ SimpleDataLakeViewer,
2177
+ SimpleXyoClient,
2178
+ SimpleXyoGateway,
2179
+ SimpleXyoGatewayRunner,
2180
+ SimpleXyoNetwork,
2181
+ SimpleXyoPermissions,
2182
+ SimpleXyoRunner,
2183
+ SimpleXyoSigner,
1743
2184
  StakeEventNames,
1744
2185
  StepSummarySchema,
1745
2186
  TODO,