@xyo-network/xl1-protocol-sdk 1.16.1 → 1.16.2
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.
- package/dist/neutral/config/Config.d.ts +6 -18
- package/dist/neutral/config/Config.d.ts.map +1 -1
- package/dist/neutral/config/Producer.d.ts +2 -6
- package/dist/neutral/config/Producer.d.ts.map +1 -1
- package/dist/neutral/config/Validation.d.ts +4 -12
- package/dist/neutral/config/Validation.d.ts.map +1 -1
- package/dist/neutral/driver/cache/LruCacheMap.d.ts +1 -0
- package/dist/neutral/driver/cache/LruCacheMap.d.ts.map +1 -1
- package/dist/neutral/driver/memory/MemoryMap.d.ts +1 -0
- package/dist/neutral/driver/memory/MemoryMap.d.ts.map +1 -1
- package/dist/neutral/eip-712/Payloads/EIP712Signature.d.ts +1 -9
- package/dist/neutral/eip-712/Payloads/EIP712Signature.d.ts.map +1 -1
- package/dist/neutral/index.d.ts +1 -0
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +462 -21
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/map/AsynchronousMap.d.ts +1 -0
- package/dist/neutral/map/AsynchronousMap.d.ts.map +1 -1
- package/dist/neutral/map/SynchronousMap.d.ts +1 -0
- package/dist/neutral/map/SynchronousMap.d.ts.map +1 -1
- package/dist/neutral/payloads/netBalancesForPayloads.d.ts +2 -3
- package/dist/neutral/payloads/netBalancesForPayloads.d.ts.map +1 -1
- package/dist/neutral/provider/DataLake.d.ts +6 -2
- package/dist/neutral/provider/DataLake.d.ts.map +1 -1
- package/dist/neutral/provider/XyoClient.d.ts +3 -3
- package/dist/neutral/provider/XyoClient.d.ts.map +1 -1
- package/dist/neutral/provider/XyoConnection.d.ts +1 -23
- package/dist/neutral/provider/XyoConnection.d.ts.map +1 -1
- package/dist/neutral/provider/XyoGateway.d.ts +4 -10
- package/dist/neutral/provider/XyoGateway.d.ts.map +1 -1
- package/dist/neutral/provider/XyoGatewayRunner.d.ts +25 -0
- package/dist/neutral/provider/XyoGatewayRunner.d.ts.map +1 -0
- package/dist/neutral/provider/index.d.ts +2 -2
- package/dist/neutral/provider/index.d.ts.map +1 -1
- package/dist/neutral/provider/{XyoSigner.d.ts → signer/XyoSigner.d.ts} +2 -2
- package/dist/neutral/provider/signer/XyoSigner.d.ts.map +1 -0
- package/dist/neutral/provider/signer/index.d.ts +2 -0
- package/dist/neutral/provider/signer/index.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/StepViewer.d.ts +1 -1
- package/dist/neutral/provider/viewer/StepViewer.d.ts.map +1 -1
- package/dist/neutral/simple/client/SimpleXyoClient.d.ts +7 -0
- package/dist/neutral/simple/client/SimpleXyoClient.d.ts.map +1 -0
- package/dist/neutral/simple/client/index.d.ts +2 -0
- package/dist/neutral/simple/client/index.d.ts.map +1 -0
- package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts +15 -0
- package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts.map +1 -0
- package/dist/neutral/simple/datalake/SimpleDataLakeViewer.d.ts +23 -0
- package/dist/neutral/simple/datalake/SimpleDataLakeViewer.d.ts.map +1 -0
- package/dist/neutral/simple/datalake/index.d.ts +3 -0
- package/dist/neutral/simple/datalake/index.d.ts.map +1 -0
- package/dist/neutral/simple/gateway/SimpleXyoGateway.d.ts +9 -0
- package/dist/neutral/simple/gateway/SimpleXyoGateway.d.ts.map +1 -0
- package/dist/neutral/simple/gateway/SimpleXyoGatewayRunner.d.ts +20 -0
- package/dist/neutral/simple/gateway/SimpleXyoGatewayRunner.d.ts.map +1 -0
- package/dist/neutral/simple/gateway/index.d.ts +3 -0
- package/dist/neutral/simple/gateway/index.d.ts.map +1 -0
- package/dist/neutral/simple/index.d.ts +8 -0
- package/dist/neutral/simple/index.d.ts.map +1 -0
- package/dist/neutral/simple/network/SimpleXyoNetwork.d.ts +9 -0
- package/dist/neutral/simple/network/SimpleXyoNetwork.d.ts.map +1 -0
- package/dist/neutral/simple/network/index.d.ts +2 -0
- package/dist/neutral/simple/network/index.d.ts.map +1 -0
- package/dist/neutral/simple/network/lib/FailedNetworkStatusPayloads.d.ts +4 -0
- package/dist/neutral/simple/network/lib/FailedNetworkStatusPayloads.d.ts.map +1 -0
- package/dist/neutral/simple/network/lib/StatusNetworks.d.ts +10 -0
- package/dist/neutral/simple/network/lib/StatusNetworks.d.ts.map +1 -0
- package/dist/neutral/simple/network/lib/index.d.ts +3 -0
- package/dist/neutral/simple/network/lib/index.d.ts.map +1 -0
- package/dist/neutral/simple/network/spec/XyoNetwork.spec.d.ts +2 -0
- package/dist/neutral/simple/network/spec/XyoNetwork.spec.d.ts.map +1 -0
- package/dist/neutral/simple/permissions/SimpleXyoPermissions.d.ts +17 -0
- package/dist/neutral/simple/permissions/SimpleXyoPermissions.d.ts.map +1 -0
- package/dist/neutral/simple/permissions/index.d.ts +3 -0
- package/dist/neutral/simple/permissions/index.d.ts.map +1 -0
- package/dist/neutral/simple/permissions/spec/SimpleXyoPermissions.spec.d.ts +2 -0
- package/dist/neutral/simple/permissions/spec/SimpleXyoPermissions.spec.d.ts.map +1 -0
- package/dist/neutral/simple/permissions/store/MemoryPermissions.d.ts +16 -0
- package/dist/neutral/simple/permissions/store/MemoryPermissions.d.ts.map +1 -0
- package/dist/neutral/simple/permissions/store/PermissionsStore.d.ts +12 -0
- package/dist/neutral/simple/permissions/store/PermissionsStore.d.ts.map +1 -0
- package/dist/neutral/simple/permissions/store/index.d.ts +3 -0
- package/dist/neutral/simple/permissions/store/index.d.ts.map +1 -0
- package/dist/neutral/simple/runner/SimpleXyoRunner.d.ts +11 -0
- package/dist/neutral/simple/runner/SimpleXyoRunner.d.ts.map +1 -0
- package/dist/neutral/simple/runner/index.d.ts +2 -0
- package/dist/neutral/simple/runner/index.d.ts.map +1 -0
- package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts +15 -0
- package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts.map +1 -0
- package/dist/neutral/simple/signer/index.d.ts +2 -0
- package/dist/neutral/simple/signer/index.d.ts.map +1 -0
- package/package.json +20 -15
- package/src/driver/cache/LruCacheMap.ts +6 -0
- package/src/driver/memory/MemoryMap.ts +6 -0
- package/src/index.ts +1 -0
- package/src/map/AsynchronousMap.ts +1 -0
- package/src/map/SynchronousMap.ts +1 -0
- package/src/provider/DataLake.ts +8 -3
- package/src/provider/XyoClient.ts +3 -3
- package/src/provider/XyoConnection.ts +1 -43
- package/src/provider/XyoGateway.ts +4 -12
- package/src/provider/XyoGatewayRunner.ts +42 -0
- package/src/provider/index.ts +2 -2
- package/src/provider/{XyoSigner.ts → signer/XyoSigner.ts} +2 -2
- package/src/provider/signer/index.ts +1 -0
- package/src/provider/viewer/StepViewer.ts +1 -1
- package/src/simple/client/SimpleXyoClient.ts +13 -0
- package/src/simple/client/index.ts +1 -0
- package/src/simple/datalake/SimpleDataLakeRunner.ts +36 -0
- package/src/simple/datalake/SimpleDataLakeViewer.ts +74 -0
- package/src/simple/datalake/index.ts +2 -0
- package/src/simple/gateway/SimpleXyoGateway.ts +21 -0
- package/src/simple/gateway/SimpleXyoGatewayRunner.ts +116 -0
- package/src/simple/gateway/index.ts +2 -0
- package/src/simple/index.ts +7 -0
- package/src/simple/network/SimpleXyoNetwork.ts +48 -0
- package/src/simple/network/index.ts +1 -0
- package/src/simple/network/lib/FailedNetworkStatusPayloads.ts +14 -0
- package/src/simple/network/lib/StatusNetworks.ts +27 -0
- package/src/simple/network/lib/index.ts +2 -0
- package/src/simple/network/spec/XyoNetwork.spec.ts +77 -0
- package/src/simple/permissions/SimpleXyoPermissions.ts +82 -0
- package/src/simple/permissions/index.ts +2 -0
- package/src/simple/permissions/spec/SimpleXyoPermissions.spec.ts +93 -0
- package/src/simple/permissions/store/MemoryPermissions.ts +32 -0
- package/src/simple/permissions/store/PermissionsStore.ts +15 -0
- package/src/simple/permissions/store/index.ts +2 -0
- package/src/simple/runner/SimpleXyoRunner.ts +29 -0
- package/src/simple/runner/index.ts +1 -0
- package/src/simple/signer/SimpleXyoSigner.ts +52 -0
- package/src/simple/signer/index.ts +1 -0
- package/dist/neutral/provider/XyoGatewayHelpers.d.ts +0 -16
- package/dist/neutral/provider/XyoGatewayHelpers.d.ts.map +0 -1
- package/dist/neutral/provider/XyoSigner.d.ts.map +0 -1
- package/src/provider/XyoGatewayHelpers.ts +0 -30
package/dist/neutral/index.mjs
CHANGED
|
@@ -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/
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
}
|
|
1394
|
-
|
|
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
|
|
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) ?
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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,
|