@xyo-network/xl1-protocol 1.26.25 → 1.26.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,5 @@
1
+ import type { Address } from '@xylabs/sdk-js';
2
+ import type { AccountInstance, Payload, Schema } from '@xyo-network/sdk-js';
3
+ import type { ChainId, SignedHydratedTransactionWithHashMeta, XL1BlockNumber } from '@xyo-network/xl1-protocol-lib';
4
+ export declare const buildRandomTransaction: (chain: ChainId, payloads?: Payload[], account?: AccountInstance, nbf?: XL1BlockNumber, exp?: XL1BlockNumber, privatePayloadSchemas?: Schema[], receiverAddress?: Address) => Promise<SignedHydratedTransactionWithHashMeta>;
5
+ //# sourceMappingURL=buildRandomTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildRandomTransaction.d.ts","sourceRoot":"","sources":["../../../src/test/buildRandomTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EACV,eAAe,EAAE,OAAO,EAAE,MAAM,EACjC,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAEV,OAAO,EACP,qCAAqC,EACrC,cAAc,EACf,MAAM,+BAA+B,CAAA;AAMtC,eAAO,MAAM,sBAAsB,GACjC,OAAO,OAAO,EACd,WAAW,OAAO,EAAE,EACpB,UAAU,eAAe,EACzB,MAAK,cAA0C,EAC/C,MAAK,cAAmD,EACxD,wBAAuB,MAAM,EAAO,EACpC,kBAAkB,OAAO,KACxB,OAAO,CAAC,qCAAqC,CAY/C,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { Address } from '@xylabs/sdk-js';
2
+ import type { AccountInstance, Payload } from '@xyo-network/sdk-js';
3
+ import type { AllowedBlockPayload, ChainId, SignedHydratedTransactionWithHashMeta, TransactionFeesBigInt, XL1BlockNumber } from '@xyo-network/xl1-protocol-lib';
4
+ export declare function buildTransaction(chain: ChainId, onChainPayloads: AllowedBlockPayload[], offChainPayloads: Payload[], signer: AccountInstance | AccountInstance[], nbf: XL1BlockNumber, exp: XL1BlockNumber, from?: Address, fees?: TransactionFeesBigInt): Promise<SignedHydratedTransactionWithHashMeta>;
5
+ //# sourceMappingURL=buildTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildTransaction.d.ts","sourceRoot":"","sources":["../../../src/test/buildTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAInE,OAAO,KAAK,EACV,mBAAmB,EACnB,OAAO,EAGP,qCAAqC,EAGrC,qBAAqB,EACrB,cAAc,EACf,MAAM,+BAA+B,CAAA;AAGtC,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,OAAO,EACd,eAAe,EAAE,mBAAmB,EAAE,EACtC,gBAAgB,EAAE,OAAO,EAAE,EAC3B,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE,EAC3C,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,cAAc,EACnB,IAAI,CAAC,EAAE,OAAO,EACd,IAAI,GAAE,qBAA8C,GACnD,OAAO,CAAC,qCAAqC,CAAC,CAqChD"}
@@ -0,0 +1,4 @@
1
+ import type { Address, JsonObject } from '@xylabs/sdk-js';
2
+ import type { Transfer } from '@xyo-network/xl1-protocol-lib';
3
+ export declare function createTransferPayload(from: Address, transfers: Record<Address, bigint>, context?: JsonObject): Transfer;
4
+ //# sourceMappingURL=createTransferPayload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransferPayload.d.ts","sourceRoot":"","sources":["../../../src/test/createTransferPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAGzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAG7D,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,QAAQ,CAQvH"}
@@ -0,0 +1,4 @@
1
+ export * from './buildRandomTransaction.ts';
2
+ export * from './buildTransaction.ts';
3
+ export * from './createTransferPayload.ts';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA"}
@@ -0,0 +1,71 @@
1
+ // src/test/buildRandomTransaction.ts
2
+ import { Account } from "@xyo-network/sdk-js";
3
+ import { asXL1BlockNumber, isAllowedBlockPayload } from "@xyo-network/xl1-protocol-lib";
4
+
5
+ // src/test/buildTransaction.ts
6
+ import { assertEx, toHex } from "@xylabs/sdk-js";
7
+ import {
8
+ asAnyPayload,
9
+ BoundWitnessBuilder,
10
+ PayloadBuilder
11
+ } from "@xyo-network/sdk-js";
12
+ import { defaultTransactionFees } from "@xyo-network/xl1-protocol-lib";
13
+ async function buildTransaction(chain, onChainPayloads, offChainPayloads, signer, nbf, exp, from, fees = defaultTransactionFees) {
14
+ if (from === void 0 && Array.isArray(signer)) {
15
+ throw new Error("from is required when signer is an array");
16
+ }
17
+ const txBoundWitnessFields = {
18
+ chain,
19
+ fees: {
20
+ base: toHex(fees.base),
21
+ gasLimit: toHex(fees.gasLimit),
22
+ gasPrice: toHex(fees.gasPrice),
23
+ priority: toHex(fees.priority)
24
+ },
25
+ nbf,
26
+ exp
27
+ };
28
+ const elevatedHashes = await PayloadBuilder.hashes(onChainPayloads);
29
+ const script = elevatedHashes.map((elevatedHash) => `elevate|${elevatedHash}`);
30
+ const fields = {
31
+ ...txBoundWitnessFields,
32
+ from: from ?? (Array.isArray(signer) ? assertEx(signer.at(0)?.address) : signer.address)
33
+ };
34
+ if (script.length > 0) {
35
+ fields.script = script;
36
+ }
37
+ const [tx, txPayloads] = await new BoundWitnessBuilder().fields(fields).meta({ $signatures: [] }).payloads([...onChainPayloads, ...offChainPayloads]).signers(Array.isArray(signer) ? signer : [signer]).build();
38
+ return [await PayloadBuilder.addHashMeta(tx), await PayloadBuilder.addHashMeta(txPayloads.map((p) => asAnyPayload(p, true)))];
39
+ }
40
+
41
+ // src/test/createTransferPayload.ts
42
+ import { toHex as toHex2 } from "@xylabs/sdk-js";
43
+ import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/sdk-js";
44
+ import { TransferSchema } from "@xyo-network/xl1-protocol-lib";
45
+ function createTransferPayload(from, transfers, context) {
46
+ return new PayloadBuilder2({ schema: TransferSchema }).fields({
47
+ epoch: Date.now(),
48
+ from,
49
+ transfers: Object.fromEntries(Object.entries(transfers).map(([key, value]) => [key, toHex2(value)])),
50
+ context
51
+ }).build();
52
+ }
53
+
54
+ // src/test/buildRandomTransaction.ts
55
+ var buildRandomTransaction = async (chain, payloads, account, nbf = asXL1BlockNumber(0, true), exp = asXL1BlockNumber(nbf + 1e3, true), privatePayloadSchemas = [], receiverAddress) => {
56
+ const elevatedPayloads = (payloads ?? []).filter(isAllowedBlockPayload);
57
+ const additionalPayloads = (payloads ?? []).filter((payload) => !isAllowedBlockPayload(payload));
58
+ const sender = account ?? await Account.random();
59
+ if (elevatedPayloads.length === 0) {
60
+ const receiver = receiverAddress ?? (await Account.random()).address;
61
+ elevatedPayloads.push(createTransferPayload(sender.address, { [receiver]: 1n }));
62
+ }
63
+ const hydratedTransaction = await buildTransaction(chain, elevatedPayloads, additionalPayloads, sender, nbf, exp);
64
+ return [hydratedTransaction[0], hydratedTransaction[1].filter((payload) => !privatePayloadSchemas.includes(payload.schema))];
65
+ };
66
+ export {
67
+ buildRandomTransaction,
68
+ buildTransaction,
69
+ createTransferPayload
70
+ };
71
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/test/buildRandomTransaction.ts","../../../src/test/buildTransaction.ts","../../../src/test/createTransferPayload.ts"],"sourcesContent":["import type { Address } from '@xylabs/sdk-js'\nimport type {\n AccountInstance, Payload, Schema,\n} from '@xyo-network/sdk-js'\nimport { Account } from '@xyo-network/sdk-js'\nimport type {\n AllowedBlockPayload,\n ChainId,\n SignedHydratedTransactionWithHashMeta,\n XL1BlockNumber,\n} from '@xyo-network/xl1-protocol-lib'\nimport { asXL1BlockNumber, isAllowedBlockPayload } from '@xyo-network/xl1-protocol-lib'\n\nimport { buildTransaction } from './buildTransaction.ts'\nimport { createTransferPayload } from './createTransferPayload.ts'\n\nexport const buildRandomTransaction = async (\n chain: ChainId,\n payloads?: Payload[],\n account?: AccountInstance,\n nbf: XL1BlockNumber = asXL1BlockNumber(0, true),\n exp: XL1BlockNumber = asXL1BlockNumber(nbf + 1000, true),\n privatePayloadSchemas: Schema[] = [],\n receiverAddress?: Address,\n): Promise<SignedHydratedTransactionWithHashMeta> => {\n const elevatedPayloads: AllowedBlockPayload[] = (payloads ?? []).filter(isAllowedBlockPayload)\n const additionalPayloads: Payload[] = (payloads ?? []).filter(payload => !isAllowedBlockPayload(payload))\n const sender = account ?? await Account.random()\n\n if (elevatedPayloads.length === 0) {\n const receiver = receiverAddress ?? (await Account.random()).address\n elevatedPayloads.push(createTransferPayload(sender.address, { [receiver]: 1n }))\n }\n\n const hydratedTransaction = await buildTransaction(chain, elevatedPayloads, additionalPayloads, sender, nbf, exp)\n return [hydratedTransaction[0], hydratedTransaction[1].filter(payload => !privatePayloadSchemas.includes(payload.schema))]\n}\n","import type { Address } from '@xylabs/sdk-js'\nimport { assertEx, toHex } from '@xylabs/sdk-js'\nimport type { AccountInstance, Payload } from '@xyo-network/sdk-js'\nimport {\n asAnyPayload, BoundWitnessBuilder, PayloadBuilder,\n} from '@xyo-network/sdk-js'\nimport type {\n AllowedBlockPayload,\n ChainId,\n ExecutableFields,\n FromFields,\n SignedHydratedTransactionWithHashMeta,\n TransactionBoundWitness,\n TransactionBoundWitnessFields,\n TransactionFeesBigInt,\n XL1BlockNumber,\n} from '@xyo-network/xl1-protocol-lib'\nimport { defaultTransactionFees } from '@xyo-network/xl1-protocol-lib'\n\nexport async function buildTransaction(\n chain: ChainId,\n onChainPayloads: AllowedBlockPayload[],\n offChainPayloads: Payload[],\n signer: AccountInstance | AccountInstance[],\n nbf: XL1BlockNumber,\n exp: XL1BlockNumber,\n from?: Address,\n fees: TransactionFeesBigInt = defaultTransactionFees,\n): Promise<SignedHydratedTransactionWithHashMeta> {\n if (from === undefined && Array.isArray(signer)) {\n throw new Error('from is required when signer is an array')\n }\n\n const txBoundWitnessFields: Omit<TransactionBoundWitnessFields, 'from'> = {\n chain,\n fees: {\n base: toHex(fees.base),\n gasLimit: toHex(fees.gasLimit),\n gasPrice: toHex(fees.gasPrice),\n priority: toHex(fees.priority),\n },\n nbf,\n exp,\n }\n\n const elevatedHashes = await PayloadBuilder.hashes(onChainPayloads)\n const script = elevatedHashes.map(elevatedHash => `elevate|${elevatedHash}`)\n\n const fields: TransactionBoundWitnessFields & FromFields & Partial<ExecutableFields> = {\n ...txBoundWitnessFields,\n from: from ?? (Array.isArray(signer) ? assertEx(signer.at(0)?.address) : signer.address),\n }\n\n if (script.length > 0) {\n fields.script = script\n }\n\n const [tx, txPayloads] = await new BoundWitnessBuilder<TransactionBoundWitness>()\n .fields(fields)\n .meta({ $signatures: [] })\n .payloads([...onChainPayloads, ...offChainPayloads])\n .signers(Array.isArray(signer) ? signer : [signer])\n .build()\n\n return [await PayloadBuilder.addHashMeta(tx), await PayloadBuilder.addHashMeta(txPayloads.map(p => asAnyPayload(p, true)))]\n}\n","import type { Address, JsonObject } from '@xylabs/sdk-js'\nimport { toHex } from '@xylabs/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type { Transfer } from '@xyo-network/xl1-protocol-lib'\nimport { TransferSchema } from '@xyo-network/xl1-protocol-lib'\n\nexport function createTransferPayload(from: Address, transfers: Record<Address, bigint>, context?: JsonObject): Transfer {\n return new PayloadBuilder<Transfer>({ schema: TransferSchema })\n .fields({\n epoch: Date.now(),\n from,\n transfers: Object.fromEntries(Object.entries(transfers).map(([key, value]) => [key, toHex(value)])),\n context,\n }).build()\n}\n"],"mappings":";AAIA,SAAS,eAAe;AAOxB,SAAS,kBAAkB,6BAA6B;;;ACVxD,SAAS,UAAU,aAAa;AAEhC;AAAA,EACE;AAAA,EAAc;AAAA,EAAqB;AAAA,OAC9B;AAYP,SAAS,8BAA8B;AAEvC,eAAsB,iBACpB,OACA,iBACA,kBACA,QACA,KACA,KACA,MACA,OAA8B,wBACkB;AAChD,MAAI,SAAS,UAAa,MAAM,QAAQ,MAAM,GAAG;AAC/C,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC5D;AAEA,QAAM,uBAAoE;AAAA,IACxE;AAAA,IACA,MAAM;AAAA,MACJ,MAAM,MAAM,KAAK,IAAI;AAAA,MACrB,UAAU,MAAM,KAAK,QAAQ;AAAA,MAC7B,UAAU,MAAM,KAAK,QAAQ;AAAA,MAC7B,UAAU,MAAM,KAAK,QAAQ;AAAA,IAC/B;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,QAAM,iBAAiB,MAAM,eAAe,OAAO,eAAe;AAClE,QAAM,SAAS,eAAe,IAAI,kBAAgB,WAAW,YAAY,EAAE;AAE3E,QAAM,SAAiF;AAAA,IACrF,GAAG;AAAA,IACH,MAAM,SAAS,MAAM,QAAQ,MAAM,IAAI,SAAS,OAAO,GAAG,CAAC,GAAG,OAAO,IAAI,OAAO;AAAA,EAClF;AAEA,MAAI,OAAO,SAAS,GAAG;AACrB,WAAO,SAAS;AAAA,EAClB;AAEA,QAAM,CAAC,IAAI,UAAU,IAAI,MAAM,IAAI,oBAA6C,EAC7E,OAAO,MAAM,EACb,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,EACxB,SAAS,CAAC,GAAG,iBAAiB,GAAG,gBAAgB,CAAC,EAClD,QAAQ,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,EACjD,MAAM;AAET,SAAO,CAAC,MAAM,eAAe,YAAY,EAAE,GAAG,MAAM,eAAe,YAAY,WAAW,IAAI,OAAK,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;AAC5H;;;AChEA,SAAS,SAAAA,cAAa;AACtB,SAAS,kBAAAC,uBAAsB;AAE/B,SAAS,sBAAsB;AAExB,SAAS,sBAAsB,MAAe,WAAoC,SAAgC;AACvH,SAAO,IAAIA,gBAAyB,EAAE,QAAQ,eAAe,CAAC,EAC3D,OAAO;AAAA,IACN,OAAO,KAAK,IAAI;AAAA,IAChB;AAAA,IACA,WAAW,OAAO,YAAY,OAAO,QAAQ,SAAS,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAKD,OAAM,KAAK,CAAC,CAAC,CAAC;AAAA,IAClG;AAAA,EACF,CAAC,EAAE,MAAM;AACb;;;AFEO,IAAM,yBAAyB,OACpC,OACA,UACA,SACA,MAAsB,iBAAiB,GAAG,IAAI,GAC9C,MAAsB,iBAAiB,MAAM,KAAM,IAAI,GACvD,wBAAkC,CAAC,GACnC,oBACmD;AACnD,QAAM,oBAA2C,YAAY,CAAC,GAAG,OAAO,qBAAqB;AAC7F,QAAM,sBAAiC,YAAY,CAAC,GAAG,OAAO,aAAW,CAAC,sBAAsB,OAAO,CAAC;AACxG,QAAM,SAAS,WAAW,MAAM,QAAQ,OAAO;AAE/C,MAAI,iBAAiB,WAAW,GAAG;AACjC,UAAM,WAAW,oBAAoB,MAAM,QAAQ,OAAO,GAAG;AAC7D,qBAAiB,KAAK,sBAAsB,OAAO,SAAS,EAAE,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;AAAA,EACjF;AAEA,QAAM,sBAAsB,MAAM,iBAAiB,OAAO,kBAAkB,oBAAoB,QAAQ,KAAK,GAAG;AAChH,SAAO,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,CAAC,EAAE,OAAO,aAAW,CAAC,sBAAsB,SAAS,QAAQ,MAAM,CAAC,CAAC;AAC3H;","names":["toHex","PayloadBuilder"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/xl1-protocol",
3
- "version": "1.26.25",
3
+ "version": "1.26.28",
4
4
  "description": "XYO Layer One Protocol - All Protocol Packages",
5
5
  "homepage": "https://xylabs.com",
6
6
  "bugs": {
@@ -24,6 +24,10 @@
24
24
  "types": "./dist/neutral/index.d.ts",
25
25
  "default": "./dist/neutral/index.mjs"
26
26
  },
27
+ "./test": {
28
+ "types": "./dist/neutral/test/index.d.ts",
29
+ "default": "./dist/neutral/test/index.mjs"
30
+ },
27
31
  "./package.json": "./package.json"
28
32
  },
29
33
  "files": [
@@ -34,17 +38,17 @@
34
38
  "README.md"
35
39
  ],
36
40
  "dependencies": {
37
- "@xyo-network/xl1-network-model": "~1.26.25",
38
- "@xyo-network/xl1-schema": "~1.26.25",
39
- "@xyo-network/xl1-validation": "~1.26.25",
40
- "@xyo-network/xl1-protocol-lib": "~1.26.25"
41
+ "@xyo-network/xl1-network-model": "~1.26.28",
42
+ "@xyo-network/xl1-protocol-lib": "~1.26.28",
43
+ "@xyo-network/xl1-schema": "~1.26.28",
44
+ "@xyo-network/xl1-validation": "~1.26.28"
41
45
  },
42
46
  "devDependencies": {
43
47
  "@opentelemetry/api": "^1.9.1",
44
48
  "@types/node": "^25.6.0",
45
49
  "@xylabs/sdk-js": "^5.0.95",
46
- "@xylabs/toolchain": "~7.10.4",
47
- "@xylabs/tsconfig": "~7.10.4",
50
+ "@xylabs/toolchain": "~7.10.7",
51
+ "@xylabs/tsconfig": "~7.10.7",
48
52
  "@xyo-network/account": "~5.3.30",
49
53
  "@xyo-network/account-model": "~5.3.30",
50
54
  "@xyo-network/api-models": "~5.3.30",
@@ -105,8 +109,7 @@
105
109
  "vite": "^8.0.8",
106
110
  "vitest": "~4.1.4",
107
111
  "zod": "~4.3.6",
108
- "@xyo-network/xl1-protocol-model": "~1.26.25",
109
- "@xyo-network/xl1-protocol-sdk": "~1.26.25"
112
+ "@xyo-network/xl1-protocol-model": "~1.26.28"
110
113
  },
111
114
  "peerDependencies": {
112
115
  "@opentelemetry/api": "^1",