@xyo-network/xl1-wrappers 1.18.0 → 1.18.1
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/BlockWindow.d.ts +1 -1
- package/dist/neutral/BlockWindow.d.ts.map +1 -1
- package/dist/neutral/index.mjs +32 -35
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/transaction/HydratedTransaction.d.ts +5 -1
- package/dist/neutral/transaction/HydratedTransaction.d.ts.map +1 -1
- package/package.json +11 -11
|
@@ -16,7 +16,7 @@ export declare class BlockWindowWrapper implements BlockWindowInstance {
|
|
|
16
16
|
constructor(store: HydratedBlockRangeStore);
|
|
17
17
|
get count(): number;
|
|
18
18
|
get numberRange(): [number, number];
|
|
19
|
-
get range(): [
|
|
19
|
+
get range(): [import("@xylabs/sdk-js").BrandedHash, import("@xylabs/sdk-js").BrandedHash];
|
|
20
20
|
static validate(_store: HydratedBlockRangeStore): Promisable<Error[]>;
|
|
21
21
|
validate(): Promise<Error[]>;
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockWindow.d.ts","sourceRoot":"","sources":["../../src/BlockWindow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAExE,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,KAAK,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;IAClC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAC/C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IACrD,IAAI,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;IACjC,IAAI,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;IACjC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC,CAAA;IAChD,IAAI,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;IACjC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC,CAAA;CACjD;AAED,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,OAAO,CAAC,MAAM,CAAyB;gBAE3B,KAAK,EAAE,uBAAuB;IAI1C,IAAI,KAAK,WAER;IAED,IAAI,WAAW,qBAEd;IAED,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"BlockWindow.d.ts","sourceRoot":"","sources":["../../src/BlockWindow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAExE,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,KAAK,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;IAClC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAC/C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IACrD,IAAI,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;IACjC,IAAI,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;IACjC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC,CAAA;IAChD,IAAI,IAAI,UAAU,CAAC,aAAa,CAAC,CAAA;IACjC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC,CAAA;CACjD;AAED,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,OAAO,CAAC,MAAM,CAAyB;gBAE3B,KAAK,EAAE,uBAAuB;IAI1C,IAAI,KAAK,WAER;IAED,IAAI,WAAW,qBAEd;IAED,IAAI,KAAK,iFAER;IAED,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;IAI/D,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAGnC"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/Base.ts
|
|
5
2
|
var BaseWrapper = class {
|
|
6
|
-
static {
|
|
7
|
-
__name(this, "BaseWrapper");
|
|
8
|
-
}
|
|
9
3
|
config;
|
|
10
4
|
value;
|
|
11
5
|
constructor(value, config = {}) {
|
|
@@ -37,9 +31,6 @@ var BaseWrapper = class {
|
|
|
37
31
|
|
|
38
32
|
// src/chain/chain.ts
|
|
39
33
|
var ChainWrapper = class extends BaseWrapper {
|
|
40
|
-
static {
|
|
41
|
-
__name(this, "ChainWrapper");
|
|
42
|
-
}
|
|
43
34
|
get id() {
|
|
44
35
|
return this.value;
|
|
45
36
|
}
|
|
@@ -51,22 +42,28 @@ import { AttoXL1 } from "@xyo-network/xl1-protocol";
|
|
|
51
42
|
function parseHexOrBigInt(value) {
|
|
52
43
|
return AttoXL1(typeof value === "bigint" ? value : hexToBigInt(value));
|
|
53
44
|
}
|
|
54
|
-
__name(parseHexOrBigInt, "parseHexOrBigInt");
|
|
55
45
|
var FeesWrapper = class _FeesWrapper {
|
|
56
|
-
static {
|
|
57
|
-
__name(this, "FeesWrapper");
|
|
58
|
-
}
|
|
59
46
|
base;
|
|
60
47
|
gasLimit;
|
|
61
48
|
gasPrice;
|
|
62
49
|
priority;
|
|
63
|
-
constructor({
|
|
50
|
+
constructor({
|
|
51
|
+
base,
|
|
52
|
+
gasLimit,
|
|
53
|
+
gasPrice,
|
|
54
|
+
priority
|
|
55
|
+
}) {
|
|
64
56
|
this.base = parseHexOrBigInt(base);
|
|
65
57
|
this.gasLimit = parseHexOrBigInt(gasLimit);
|
|
66
58
|
this.gasPrice = parseHexOrBigInt(gasPrice);
|
|
67
59
|
this.priority = parseHexOrBigInt(priority);
|
|
68
60
|
}
|
|
69
|
-
static validate({
|
|
61
|
+
static validate({
|
|
62
|
+
base,
|
|
63
|
+
gasLimit,
|
|
64
|
+
gasPrice,
|
|
65
|
+
priority
|
|
66
|
+
}) {
|
|
70
67
|
const errors = [];
|
|
71
68
|
const baseValue = parseHexOrBigInt(base);
|
|
72
69
|
const gasLimitValue = parseHexOrBigInt(gasLimit);
|
|
@@ -104,9 +101,6 @@ import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
|
104
101
|
import { toArrayBuffer } from "@xylabs/sdk-js";
|
|
105
102
|
import { BoundWitnessValidator } from "@xyo-network/boundwitness-validator";
|
|
106
103
|
var SignatureWrapper = class _SignatureWrapper {
|
|
107
|
-
static {
|
|
108
|
-
__name(this, "SignatureWrapper");
|
|
109
|
-
}
|
|
110
104
|
address;
|
|
111
105
|
hash;
|
|
112
106
|
signature;
|
|
@@ -124,39 +118,44 @@ var SignatureWrapper = class _SignatureWrapper {
|
|
|
124
118
|
};
|
|
125
119
|
|
|
126
120
|
// src/lib/createSignatureWrappers.ts
|
|
127
|
-
var createSignatureWrappers =
|
|
121
|
+
var createSignatureWrappers = async (bw) => {
|
|
128
122
|
const signatures = [];
|
|
129
123
|
const hash = await PayloadBuilder.dataHash(bw);
|
|
130
124
|
for (let i = 0; i < bw.$signatures.length; i++) {
|
|
131
|
-
signatures.push(
|
|
125
|
+
signatures.push(
|
|
126
|
+
new SignatureWrapper(asHex(bw.$signatures[i], true), bw.addresses[i], hash)
|
|
127
|
+
);
|
|
132
128
|
}
|
|
133
129
|
return signatures;
|
|
134
|
-
}
|
|
130
|
+
};
|
|
135
131
|
|
|
136
132
|
// src/transaction/HydratedTransaction.ts
|
|
137
133
|
import { hexToBigInt as hexToBigInt2, isDefined } from "@xylabs/sdk-js";
|
|
138
134
|
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
139
135
|
import { isTransfer, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-protocol";
|
|
140
|
-
import {
|
|
136
|
+
import {
|
|
137
|
+
transactionRequiredGas,
|
|
138
|
+
tryExtractElevatedHashes,
|
|
139
|
+
tryExtractElevatedHashesFromScript
|
|
140
|
+
} from "@xyo-network/xl1-protocol-sdk";
|
|
141
141
|
import { validateTransaction } from "@xyo-network/xl1-validation";
|
|
142
|
-
var sumTransfers =
|
|
142
|
+
var sumTransfers = (payload) => {
|
|
143
143
|
let total = 0n;
|
|
144
144
|
for (let i of Object.values(payload.transfers)) {
|
|
145
145
|
total += hexToBigInt2(i ?? "00");
|
|
146
146
|
}
|
|
147
147
|
return total;
|
|
148
|
-
}
|
|
148
|
+
};
|
|
149
149
|
var HydratedTransactionWrapper = class _HydratedTransactionWrapper {
|
|
150
|
-
static {
|
|
151
|
-
__name(this, "HydratedTransactionWrapper");
|
|
152
|
-
}
|
|
153
150
|
data;
|
|
154
151
|
fees;
|
|
155
152
|
payloadsCache = [];
|
|
156
153
|
_signatureCache = [];
|
|
157
154
|
constructor(data) {
|
|
158
155
|
this.data = data;
|
|
159
|
-
this.fees = new FeesWrapper(
|
|
156
|
+
this.fees = new FeesWrapper(
|
|
157
|
+
this.boundWitness.fees
|
|
158
|
+
);
|
|
160
159
|
}
|
|
161
160
|
get boundWitness() {
|
|
162
161
|
return this.data[0];
|
|
@@ -185,9 +184,7 @@ var HydratedTransactionWrapper = class _HydratedTransactionWrapper {
|
|
|
185
184
|
return this.payloadsCache.length;
|
|
186
185
|
}
|
|
187
186
|
get payloads() {
|
|
188
|
-
return [
|
|
189
|
-
...this.payloadsCache
|
|
190
|
-
];
|
|
187
|
+
return [...this.payloadsCache];
|
|
191
188
|
}
|
|
192
189
|
get privateExternalPayloads() {
|
|
193
190
|
const allPayloads = this.payloads;
|
|
@@ -210,12 +207,12 @@ var HydratedTransactionWrapper = class _HydratedTransactionWrapper {
|
|
|
210
207
|
return this._signatureCache.length;
|
|
211
208
|
}
|
|
212
209
|
get signatures() {
|
|
213
|
-
return [
|
|
214
|
-
...this._signatureCache
|
|
215
|
-
];
|
|
210
|
+
return [...this._signatureCache];
|
|
216
211
|
}
|
|
217
212
|
static async parse(transaction, validate = false) {
|
|
218
|
-
const wrapper = new _HydratedTransactionWrapper(
|
|
213
|
+
const wrapper = new _HydratedTransactionWrapper(
|
|
214
|
+
transaction
|
|
215
|
+
);
|
|
219
216
|
const parsed = await wrapper.parse();
|
|
220
217
|
if (validate) {
|
|
221
218
|
const errors = await wrapper.validate();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Base.ts","../../src/chain/chain.ts","../../src/Fees.ts","../../src/lib/createSignatureWrappers.ts","../../src/Signature.ts","../../src/transaction/HydratedTransaction.ts"],"sourcesContent":["import type { PromisableArray } from '@xylabs/sdk-js'\nimport type { XyoConnection } from '@xyo-network/xl1-protocol-sdk'\n\nexport interface BaseWrapperConfig<T> {\n provider: XyoConnection\n value: T\n}\n\nexport class BaseWrapper<T, C extends BaseWrapperConfig<T> = BaseWrapperConfig<T>> {\n protected readonly config: Partial<C>\n protected readonly value: T\n protected constructor(value: T, config: Partial<C> = {}) {\n this.config = config\n this.value = value\n }\n\n get provider(): XyoConnection | undefined {\n return this.config.provider\n }\n\n static async create<T, C extends BaseWrapperConfig<T> = BaseWrapperConfig<T>>(value: T, config: Partial<C> = {}) {\n if ((await this.validateValue(value)).length > 0) {\n throw new Error(`Invalid value for ${this.constructor.name}: ${value}`)\n }\n if ((await this.validateConfig(config)).length > 0) {\n throw new Error(`Invalid config for ${this.constructor.name}: ${config}`)\n }\n return new this<T>(value, config)\n }\n\n static validateConfig(_config: unknown): PromisableArray<Error> {\n return []\n }\n\n static validateValue(_value: unknown): PromisableArray<Error> {\n return []\n }\n\n validate(): PromisableArray<Error> {\n return []\n }\n}\n","import type { Address } from '@xylabs/sdk-js'\n\nimport type { BaseWrapperConfig } from '../Base.ts'\nimport { BaseWrapper } from '../Base.ts'\n\nexport class ChainWrapper extends BaseWrapper<Address, BaseWrapperConfig<Address>> {\n get id(): Address {\n return this.value\n }\n}\n","import type { Hex, Promisable } from '@xylabs/sdk-js'\nimport { hexToBigInt } from '@xylabs/sdk-js'\nimport type { TransactionFeesBigInt, TransactionFeesHex } from '@xyo-network/xl1-protocol'\nimport { AttoXL1 } from '@xyo-network/xl1-protocol'\nimport type { TransactionFeesInstance } from '@xyo-network/xl1-protocol-sdk'\n\nfunction parseHexOrBigInt(value: Hex | bigint) {\n return AttoXL1((typeof value === 'bigint' ? value : hexToBigInt(value)))\n}\n\nexport class FeesWrapper implements TransactionFeesInstance {\n base: AttoXL1\n gasLimit: AttoXL1\n gasPrice: AttoXL1\n priority: AttoXL1\n\n constructor({\n base, gasLimit, gasPrice, priority,\n }: TransactionFeesHex | TransactionFeesBigInt) {\n this.base = parseHexOrBigInt(base)\n this.gasLimit = parseHexOrBigInt(gasLimit)\n this.gasPrice = parseHexOrBigInt(gasPrice)\n this.priority = parseHexOrBigInt(priority)\n }\n\n static validate({\n base, gasLimit, gasPrice, priority,\n }: TransactionFeesHex | TransactionFeesBigInt): Promisable<Error[]> {\n const errors: Error[] = []\n const baseValue = parseHexOrBigInt(base)\n const gasLimitValue = parseHexOrBigInt(gasLimit)\n const gasPriceValue = parseHexOrBigInt(gasPrice)\n const priorityValue = parseHexOrBigInt(priority)\n if (baseValue <= 0n) {\n errors.push(new Error('Base fee cannot be negative or zero'))\n }\n if (gasLimitValue < 0n) {\n errors.push(new Error('Gas limit cannot be negative'))\n }\n if (gasPriceValue < 0n) {\n errors.push(new Error('Gas price cannot be negative'))\n }\n if (priorityValue < 0n) {\n errors.push(new Error('Priority cannot be negative'))\n }\n return errors\n }\n\n async validate(): Promise<Error[]> {\n return await FeesWrapper.validate({\n base: this.base, gasLimit: this.gasLimit, gasPrice: this.gasPrice, priority: this.priority,\n })\n }\n}\n","import { asHex } from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { SignatureInstance } from '@xyo-network/xl1-protocol-sdk'\n\nimport { SignatureWrapper } from '../Signature.ts'\n\nexport const createSignatureWrappers = async (bw: BoundWitness): Promise<SignatureInstance[]> => {\n const signatures: SignatureInstance[] = []\n const hash = await PayloadBuilder.dataHash(bw)\n for (let i = 0; i < bw.$signatures.length; i++) {\n signatures.push(\n new SignatureWrapper(asHex(bw.$signatures[i], true), bw.addresses[i], hash),\n )\n }\n return signatures\n}\n","import type {\n Address, Hash, Hex,\n} from '@xylabs/sdk-js'\nimport { toArrayBuffer } from '@xylabs/sdk-js'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport type { SignatureInstance } from '@xyo-network/xl1-protocol-sdk'\n\nexport class SignatureWrapper implements SignatureInstance {\n address: Address\n hash: Hash\n signature: Hex\n\n constructor(signature: Hex, address: Address, hash: Hash) {\n this.signature = signature\n this.address = address\n this.hash = hash\n }\n\n static async validate(hash: Hash, address: Address, signature: Hex): Promise<Error[]> {\n return await BoundWitnessValidator.validateSignature(toArrayBuffer(hash), toArrayBuffer(address), toArrayBuffer(signature))\n }\n\n async validate(): Promise<Error[]> {\n return await SignatureWrapper.validate(this.hash, this.address, this.signature)\n }\n}\n","import type { Hash, Hex } from '@xylabs/sdk-js'\nimport { hexToBigInt, isDefined } from '@xylabs/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n Payload, Schema,\n WithHashMeta,\n WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload, HydratedTransactionWithHashMeta, Transfer,\n} from '@xyo-network/xl1-protocol'\nimport { isTransfer, XYO_ZERO_ADDRESS } from '@xyo-network/xl1-protocol'\nimport type {\n HydratedTransactionInstance, SignatureInstance,\n TransactionFeesInstance,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n transactionRequiredGas, tryExtractElevatedHashes, tryExtractElevatedHashesFromScript,\n} from '@xyo-network/xl1-protocol-sdk'\nimport { validateTransaction } from '@xyo-network/xl1-validation'\n\nimport { FeesWrapper } from '../Fees.ts'\nimport { createSignatureWrappers } from '../lib/index.ts'\n\nconst sumTransfers = (payload: Transfer) => {\n let total = 0n\n for (let i of Object.values(payload.transfers)) {\n total += hexToBigInt(i ?? '00' as Hex)\n }\n return total\n}\n\nexport class HydratedTransactionWrapper<T extends HydratedTransactionWithHashMeta> implements HydratedTransactionInstance<T> {\n data: T\n fees: TransactionFeesInstance\n\n protected payloadsCache: WithStorageMeta<Payload>[] = []\n\n private _signatureCache: SignatureInstance[] = []\n\n protected constructor(data: T) {\n this.data = data\n this.fees = new FeesWrapper(\n this.boundWitness.fees,\n )\n }\n\n get boundWitness(): T[0] {\n return this.data[0]\n }\n\n get elevatedPayloadCount(): number {\n const { script } = this.data[0]\n return script ? tryExtractElevatedHashesFromScript(script).length : 0\n }\n\n get elevatedPayloads() {\n return tryExtractElevatedHashes(this.data)\n }\n\n get externalPayloads(): Record<Hash, Schema | Payload> {\n const allPayloads = this.payloads\n const external: Record<Hash, Schema | Payload> = {}\n for (let i = 0; i < this.boundWitness.payload_hashes.length; i++) {\n const payloadHash = this.boundWitness.payload_hashes[i]\n const payload = allPayloads.find(p => p._hash === payloadHash)\n external[payloadHash] = isDefined(payload) ? payload : this.boundWitness.payload_schemas[i]\n }\n return external\n }\n\n get from() {\n return this.data[0].from\n }\n\n get payloadCount(): number {\n return this.payloadsCache.length\n }\n\n get payloads(): WithHashMeta<WithStorageMeta<T[1][number]>>[] {\n return [...this.payloadsCache]\n }\n\n get privateExternalPayloads(): Record<Hash, Schema> {\n const allPayloads = this.payloads\n const missing: Record<Hash, Schema> = {}\n for (let i = 0; i < this.boundWitness.payload_hashes.length; i++) {\n const payloadHash = this.boundWitness.payload_hashes[i]\n if (!allPayloads.some(p => p._hash === payloadHash)) {\n missing[payloadHash] = this.boundWitness.payload_schemas[i]\n }\n }\n return missing\n }\n\n // list all the payloads that are included in the transaction and are not elevated and found in the hydration\n get publicExternalPayloads(): Payload[] {\n const allPayloads = this.payloads\n const elevatedPayloads = this.elevatedPayloads\n return allPayloads.filter(p => !elevatedPayloads.some(ep => ep._hash === p._hash))\n }\n\n get signatureCount(): number {\n return this._signatureCache.length\n }\n\n get signatures(): SignatureInstance[] {\n return [...this._signatureCache]\n }\n\n static async parse<T extends HydratedTransactionWithHashMeta>(transaction: T, validate = false): Promise<HydratedTransactionInstance<[T[0],\n T[1][number][]]>> {\n const wrapper = new HydratedTransactionWrapper<T>(\n transaction,\n )\n const parsed = await wrapper.parse()\n if (validate) {\n const errors = await wrapper.validate()\n if (errors.length > 0) {\n throw new Error(`Block validation failed: ${errors.join(', ')}`)\n }\n }\n return parsed\n }\n\n elevatedPayload(index: number): WithHashMeta<AllowedBlockPayload & T[1][number]> | undefined {\n return this.elevatedPayloads.at(index)\n }\n\n gasRequired(): bigint {\n return transactionRequiredGas(this.data)\n }\n\n payload(index: number): WithStorageMeta<Payload> | undefined {\n return this.payloads.at(index)\n }\n\n reward(): bigint {\n return this.payloadsCache.reduce((acc: bigint, payload) => acc + (\n isTransfer(payload)\n ? payload.from === XYO_ZERO_ADDRESS\n ? sumTransfers(payload)\n : 0n\n : 0n), 0n)\n }\n\n signature(index: number): SignatureInstance | undefined {\n return this._signatureCache[index]\n }\n\n async validate(): Promise<Error[]> {\n const errors: Error[] = [...(await Promise.all(this._signatureCache.map(signature => signature.validate()))).flat(),\n ...(await validateTransaction(this.data))]\n return errors\n }\n\n protected async parse(validate = false): Promise<HydratedTransactionInstance<[WithHashMeta<T[0]>, WithHashMeta<T[1][number]>[]]>> {\n const transactionPayloads = await PayloadBuilder.addStorageMeta(this.data[1])\n this._signatureCache = await createSignatureWrappers(this.data[0])\n for (const payload of transactionPayloads) {\n this.payloadsCache.push(payload)\n }\n if (validate) {\n await this.validate()\n }\n return this\n }\n}\n"],"mappings":"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","names":["BaseWrapper","config","value","provider","create","validateValue","length","Error","name","validateConfig","_config","_value","validate","ChainWrapper","BaseWrapper","id","value","hexToBigInt","AttoXL1","parseHexOrBigInt","value","AttoXL1","hexToBigInt","FeesWrapper","base","gasLimit","gasPrice","priority","validate","errors","baseValue","gasLimitValue","gasPriceValue","priorityValue","push","Error","asHex","PayloadBuilder","toArrayBuffer","BoundWitnessValidator","SignatureWrapper","address","hash","signature","validate","BoundWitnessValidator","validateSignature","toArrayBuffer","createSignatureWrappers","bw","signatures","hash","PayloadBuilder","dataHash","i","$signatures","length","push","SignatureWrapper","asHex","addresses","hexToBigInt","isDefined","PayloadBuilder","isTransfer","XYO_ZERO_ADDRESS","transactionRequiredGas","tryExtractElevatedHashes","tryExtractElevatedHashesFromScript","validateTransaction","sumTransfers","payload","total","i","Object","values","transfers","hexToBigInt","HydratedTransactionWrapper","data","fees","payloadsCache","_signatureCache","FeesWrapper","boundWitness","elevatedPayloadCount","script","tryExtractElevatedHashesFromScript","length","elevatedPayloads","tryExtractElevatedHashes","externalPayloads","allPayloads","payloads","external","payload_hashes","payloadHash","find","p","_hash","isDefined","payload_schemas","from","payloadCount","privateExternalPayloads","missing","some","publicExternalPayloads","filter","ep","signatureCount","signatures","parse","transaction","validate","wrapper","parsed","errors","Error","join","elevatedPayload","index","at","gasRequired","transactionRequiredGas","reward","reduce","acc","isTransfer","XYO_ZERO_ADDRESS","signature","Promise","all","map","flat","validateTransaction","transactionPayloads","PayloadBuilder","addStorageMeta","createSignatureWrappers","push"]}
|
|
1
|
+
{"version":3,"sources":["../../src/Base.ts","../../src/chain/chain.ts","../../src/Fees.ts","../../src/lib/createSignatureWrappers.ts","../../src/Signature.ts","../../src/transaction/HydratedTransaction.ts"],"sourcesContent":["import type { PromisableArray } from '@xylabs/sdk-js'\nimport type { XyoConnection } from '@xyo-network/xl1-protocol-sdk'\n\nexport interface BaseWrapperConfig<T> {\n provider: XyoConnection\n value: T\n}\n\nexport class BaseWrapper<T, C extends BaseWrapperConfig<T> = BaseWrapperConfig<T>> {\n protected readonly config: Partial<C>\n protected readonly value: T\n protected constructor(value: T, config: Partial<C> = {}) {\n this.config = config\n this.value = value\n }\n\n get provider(): XyoConnection | undefined {\n return this.config.provider\n }\n\n static async create<T, C extends BaseWrapperConfig<T> = BaseWrapperConfig<T>>(value: T, config: Partial<C> = {}) {\n if ((await this.validateValue(value)).length > 0) {\n throw new Error(`Invalid value for ${this.constructor.name}: ${value}`)\n }\n if ((await this.validateConfig(config)).length > 0) {\n throw new Error(`Invalid config for ${this.constructor.name}: ${config}`)\n }\n return new this<T>(value, config)\n }\n\n static validateConfig(_config: unknown): PromisableArray<Error> {\n return []\n }\n\n static validateValue(_value: unknown): PromisableArray<Error> {\n return []\n }\n\n validate(): PromisableArray<Error> {\n return []\n }\n}\n","import type { Address } from '@xylabs/sdk-js'\n\nimport type { BaseWrapperConfig } from '../Base.ts'\nimport { BaseWrapper } from '../Base.ts'\n\nexport class ChainWrapper extends BaseWrapper<Address, BaseWrapperConfig<Address>> {\n get id(): Address {\n return this.value\n }\n}\n","import type { Hex, Promisable } from '@xylabs/sdk-js'\nimport { hexToBigInt } from '@xylabs/sdk-js'\nimport type { TransactionFeesBigInt, TransactionFeesHex } from '@xyo-network/xl1-protocol'\nimport { AttoXL1 } from '@xyo-network/xl1-protocol'\nimport type { TransactionFeesInstance } from '@xyo-network/xl1-protocol-sdk'\n\nfunction parseHexOrBigInt(value: Hex | bigint) {\n return AttoXL1((typeof value === 'bigint' ? value : hexToBigInt(value)))\n}\n\nexport class FeesWrapper implements TransactionFeesInstance {\n base: AttoXL1\n gasLimit: AttoXL1\n gasPrice: AttoXL1\n priority: AttoXL1\n\n constructor({\n base, gasLimit, gasPrice, priority,\n }: TransactionFeesHex | TransactionFeesBigInt) {\n this.base = parseHexOrBigInt(base)\n this.gasLimit = parseHexOrBigInt(gasLimit)\n this.gasPrice = parseHexOrBigInt(gasPrice)\n this.priority = parseHexOrBigInt(priority)\n }\n\n static validate({\n base, gasLimit, gasPrice, priority,\n }: TransactionFeesHex | TransactionFeesBigInt): Promisable<Error[]> {\n const errors: Error[] = []\n const baseValue = parseHexOrBigInt(base)\n const gasLimitValue = parseHexOrBigInt(gasLimit)\n const gasPriceValue = parseHexOrBigInt(gasPrice)\n const priorityValue = parseHexOrBigInt(priority)\n if (baseValue <= 0n) {\n errors.push(new Error('Base fee cannot be negative or zero'))\n }\n if (gasLimitValue < 0n) {\n errors.push(new Error('Gas limit cannot be negative'))\n }\n if (gasPriceValue < 0n) {\n errors.push(new Error('Gas price cannot be negative'))\n }\n if (priorityValue < 0n) {\n errors.push(new Error('Priority cannot be negative'))\n }\n return errors\n }\n\n async validate(): Promise<Error[]> {\n return await FeesWrapper.validate({\n base: this.base, gasLimit: this.gasLimit, gasPrice: this.gasPrice, priority: this.priority,\n })\n }\n}\n","import { asHex } from '@xylabs/sdk-js'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { SignatureInstance } from '@xyo-network/xl1-protocol-sdk'\n\nimport { SignatureWrapper } from '../Signature.ts'\n\nexport const createSignatureWrappers = async (bw: BoundWitness): Promise<SignatureInstance[]> => {\n const signatures: SignatureInstance[] = []\n const hash = await PayloadBuilder.dataHash(bw)\n for (let i = 0; i < bw.$signatures.length; i++) {\n signatures.push(\n new SignatureWrapper(asHex(bw.$signatures[i], true), bw.addresses[i], hash),\n )\n }\n return signatures\n}\n","import type {\n Address, Hash, Hex,\n} from '@xylabs/sdk-js'\nimport { toArrayBuffer } from '@xylabs/sdk-js'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport type { SignatureInstance } from '@xyo-network/xl1-protocol-sdk'\n\nexport class SignatureWrapper implements SignatureInstance {\n address: Address\n hash: Hash\n signature: Hex\n\n constructor(signature: Hex, address: Address, hash: Hash) {\n this.signature = signature\n this.address = address\n this.hash = hash\n }\n\n static async validate(hash: Hash, address: Address, signature: Hex): Promise<Error[]> {\n return await BoundWitnessValidator.validateSignature(toArrayBuffer(hash), toArrayBuffer(address), toArrayBuffer(signature))\n }\n\n async validate(): Promise<Error[]> {\n return await SignatureWrapper.validate(this.hash, this.address, this.signature)\n }\n}\n","import type { Hash, Hex } from '@xylabs/sdk-js'\nimport { hexToBigInt, isDefined } from '@xylabs/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n Payload, Schema,\n WithHashMeta,\n WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload, HydratedTransactionWithHashMeta, Transfer,\n} from '@xyo-network/xl1-protocol'\nimport { isTransfer, XYO_ZERO_ADDRESS } from '@xyo-network/xl1-protocol'\nimport type {\n HydratedTransactionInstance, SignatureInstance,\n TransactionFeesInstance,\n} from '@xyo-network/xl1-protocol-sdk'\nimport {\n transactionRequiredGas, tryExtractElevatedHashes, tryExtractElevatedHashesFromScript,\n} from '@xyo-network/xl1-protocol-sdk'\nimport { validateTransaction } from '@xyo-network/xl1-validation'\n\nimport { FeesWrapper } from '../Fees.ts'\nimport { createSignatureWrappers } from '../lib/index.ts'\n\nconst sumTransfers = (payload: Transfer) => {\n let total = 0n\n for (let i of Object.values(payload.transfers)) {\n total += hexToBigInt(i ?? '00' as Hex)\n }\n return total\n}\n\nexport class HydratedTransactionWrapper<T extends HydratedTransactionWithHashMeta> implements HydratedTransactionInstance<T> {\n data: T\n fees: TransactionFeesInstance\n\n protected payloadsCache: WithStorageMeta<Payload>[] = []\n\n private _signatureCache: SignatureInstance[] = []\n\n protected constructor(data: T) {\n this.data = data\n this.fees = new FeesWrapper(\n this.boundWitness.fees,\n )\n }\n\n get boundWitness(): T[0] {\n return this.data[0]\n }\n\n get elevatedPayloadCount(): number {\n const { script } = this.data[0]\n return script ? tryExtractElevatedHashesFromScript(script).length : 0\n }\n\n get elevatedPayloads() {\n return tryExtractElevatedHashes(this.data)\n }\n\n get externalPayloads(): Record<Hash, Schema | Payload> {\n const allPayloads = this.payloads\n const external: Record<Hash, Schema | Payload> = {}\n for (let i = 0; i < this.boundWitness.payload_hashes.length; i++) {\n const payloadHash = this.boundWitness.payload_hashes[i]\n const payload = allPayloads.find(p => p._hash === payloadHash)\n external[payloadHash] = isDefined(payload) ? payload : this.boundWitness.payload_schemas[i]\n }\n return external\n }\n\n get from() {\n return this.data[0].from\n }\n\n get payloadCount(): number {\n return this.payloadsCache.length\n }\n\n get payloads(): WithHashMeta<WithStorageMeta<T[1][number]>>[] {\n return [...this.payloadsCache]\n }\n\n get privateExternalPayloads(): Record<Hash, Schema> {\n const allPayloads = this.payloads\n const missing: Record<Hash, Schema> = {}\n for (let i = 0; i < this.boundWitness.payload_hashes.length; i++) {\n const payloadHash = this.boundWitness.payload_hashes[i]\n if (!allPayloads.some(p => p._hash === payloadHash)) {\n missing[payloadHash] = this.boundWitness.payload_schemas[i]\n }\n }\n return missing\n }\n\n // list all the payloads that are included in the transaction and are not elevated and found in the hydration\n get publicExternalPayloads(): Payload[] {\n const allPayloads = this.payloads\n const elevatedPayloads = this.elevatedPayloads\n return allPayloads.filter(p => !elevatedPayloads.some(ep => ep._hash === p._hash))\n }\n\n get signatureCount(): number {\n return this._signatureCache.length\n }\n\n get signatures(): SignatureInstance[] {\n return [...this._signatureCache]\n }\n\n static async parse<T extends HydratedTransactionWithHashMeta>(transaction: T, validate = false): Promise<HydratedTransactionInstance<[T[0],\n T[1][number][]]>> {\n const wrapper = new HydratedTransactionWrapper<T>(\n transaction,\n )\n const parsed = await wrapper.parse()\n if (validate) {\n const errors = await wrapper.validate()\n if (errors.length > 0) {\n throw new Error(`Block validation failed: ${errors.join(', ')}`)\n }\n }\n return parsed\n }\n\n elevatedPayload(index: number): WithHashMeta<AllowedBlockPayload & T[1][number]> | undefined {\n return this.elevatedPayloads.at(index)\n }\n\n gasRequired(): bigint {\n return transactionRequiredGas(this.data)\n }\n\n payload(index: number): WithStorageMeta<Payload> | undefined {\n return this.payloads.at(index)\n }\n\n reward(): bigint {\n return this.payloadsCache.reduce((acc: bigint, payload) => acc + (\n isTransfer(payload)\n ? payload.from === XYO_ZERO_ADDRESS\n ? sumTransfers(payload)\n : 0n\n : 0n), 0n)\n }\n\n signature(index: number): SignatureInstance | undefined {\n return this._signatureCache[index]\n }\n\n async validate(): Promise<Error[]> {\n const errors: Error[] = [...(await Promise.all(this._signatureCache.map(signature => signature.validate()))).flat(),\n ...(await validateTransaction(this.data))]\n return errors\n }\n\n protected async parse(validate = false): Promise<HydratedTransactionInstance<[WithHashMeta<T[0]>, WithHashMeta<T[1][number]>[]]>> {\n const transactionPayloads = await PayloadBuilder.addStorageMeta(this.data[1])\n this._signatureCache = await createSignatureWrappers(this.data[0])\n for (const payload of transactionPayloads) {\n this.payloadsCache.push(payload)\n }\n if (validate) {\n await this.validate()\n }\n return this\n }\n}\n"],"mappings":"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","names":["hexToBigInt","PayloadBuilder","hexToBigInt","PayloadBuilder"]}
|
|
@@ -12,7 +12,11 @@ export declare class HydratedTransactionWrapper<T extends HydratedTransactionWit
|
|
|
12
12
|
get elevatedPayloadCount(): number;
|
|
13
13
|
get elevatedPayloads(): WithStorageMeta<AllowedBlockPayload>[];
|
|
14
14
|
get externalPayloads(): Record<Hash, Schema | Payload>;
|
|
15
|
-
get from():
|
|
15
|
+
get from(): Lowercase<string> & {
|
|
16
|
+
readonly __hex: true;
|
|
17
|
+
} & {
|
|
18
|
+
readonly __address: true;
|
|
19
|
+
};
|
|
16
20
|
get payloadCount(): number;
|
|
17
21
|
get payloads(): WithHashMeta<WithStorageMeta<T[1][number]>>[];
|
|
18
22
|
get privateExternalPayloads(): Record<Hash, Schema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HydratedTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/HydratedTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAO,MAAM,gBAAgB,CAAA;AAG/C,OAAO,KAAK,EACV,OAAO,EAAE,MAAM,EACf,YAAY,EACZ,eAAe,EAChB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EACV,mBAAmB,EAAE,+BAA+B,EACrD,MAAM,2BAA2B,CAAA;AAElC,OAAO,KAAK,EACV,2BAA2B,EAAE,iBAAiB,EAC9C,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAiBtC,qBAAa,0BAA0B,CAAC,CAAC,SAAS,+BAA+B,CAAE,YAAW,2BAA2B,CAAC,CAAC,CAAC;IAC1H,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,EAAE,uBAAuB,CAAA;IAE7B,SAAS,CAAC,aAAa,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAK;IAExD,OAAO,CAAC,eAAe,CAA0B;IAEjD,SAAS,aAAa,IAAI,EAAE,CAAC;IAO7B,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAEvB;IAED,IAAI,oBAAoB,IAAI,MAAM,CAGjC;IAED,IAAI,gBAAgB,2CAEnB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CASrD;IAED,IAAI,IAAI
|
|
1
|
+
{"version":3,"file":"HydratedTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/HydratedTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAO,MAAM,gBAAgB,CAAA;AAG/C,OAAO,KAAK,EACV,OAAO,EAAE,MAAM,EACf,YAAY,EACZ,eAAe,EAChB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EACV,mBAAmB,EAAE,+BAA+B,EACrD,MAAM,2BAA2B,CAAA;AAElC,OAAO,KAAK,EACV,2BAA2B,EAAE,iBAAiB,EAC9C,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAiBtC,qBAAa,0BAA0B,CAAC,CAAC,SAAS,+BAA+B,CAAE,YAAW,2BAA2B,CAAC,CAAC,CAAC;IAC1H,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,EAAE,uBAAuB,CAAA;IAE7B,SAAS,CAAC,aAAa,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAK;IAExD,OAAO,CAAC,eAAe,CAA0B;IAEjD,SAAS,aAAa,IAAI,EAAE,CAAC;IAO7B,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAEvB;IAED,IAAI,oBAAoB,IAAI,MAAM,CAGjC;IAED,IAAI,gBAAgB,2CAEnB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CASrD;IAED,IAAI,IAAI;;;;MAEP;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,QAAQ,IAAI,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAE5D;IAED,IAAI,uBAAuB,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAUlD;IAGD,IAAI,sBAAsB,IAAI,OAAO,EAAE,CAItC;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,UAAU,IAAI,iBAAiB,EAAE,CAEpC;WAEY,KAAK,CAAC,CAAC,SAAS,+BAA+B,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,2BAA2B,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC;QACxI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;KAAC,CAAC,CAAC;IAcnB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS;IAI5F,WAAW,IAAI,MAAM;IAIrB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS;IAI5D,MAAM,IAAI,MAAM;IAShB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIjD,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;cAMlB,KAAK,CAAC,QAAQ,UAAQ,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAWlI"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@xyo-network/xl1-wrappers",
|
|
4
|
-
"version": "1.18.
|
|
4
|
+
"version": "1.18.1",
|
|
5
5
|
"description": "XYO Layer One SDK Wrappers",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -39,22 +39,22 @@
|
|
|
39
39
|
"!**/*.test.*"
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@xylabs/sdk-js": "~5.0.
|
|
43
|
-
"@xyo-network/boundwitness-model": "~5.2.
|
|
44
|
-
"@xyo-network/boundwitness-validator": "~5.2.
|
|
45
|
-
"@xyo-network/payload-builder": "~5.2.
|
|
46
|
-
"@xyo-network/payload-model": "~5.2.
|
|
47
|
-
"@xyo-network/xl1-protocol": "~1.
|
|
48
|
-
"@xyo-network/xl1-protocol-sdk": "~1.18.
|
|
49
|
-
"@xyo-network/xl1-validation": "~1.18.
|
|
42
|
+
"@xylabs/sdk-js": "~5.0.61",
|
|
43
|
+
"@xyo-network/boundwitness-model": "~5.2.19",
|
|
44
|
+
"@xyo-network/boundwitness-validator": "~5.2.19",
|
|
45
|
+
"@xyo-network/payload-builder": "~5.2.19",
|
|
46
|
+
"@xyo-network/payload-model": "~5.2.19",
|
|
47
|
+
"@xyo-network/xl1-protocol": "~1.18.1",
|
|
48
|
+
"@xyo-network/xl1-protocol-sdk": "~1.18.1",
|
|
49
|
+
"@xyo-network/xl1-validation": "~1.18.1"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@types/node": "~25.0.
|
|
52
|
+
"@types/node": "~25.0.3",
|
|
53
53
|
"@xylabs/ts-scripts-yarn3": "~7.2.32",
|
|
54
54
|
"@xylabs/tsconfig": "~7.2.32",
|
|
55
55
|
"eslint": "^9.39.2",
|
|
56
56
|
"typescript": "~5.9.3",
|
|
57
|
-
"vitest": "~4.0.
|
|
57
|
+
"vitest": "~4.0.16"
|
|
58
58
|
},
|
|
59
59
|
"engines": {
|
|
60
60
|
"node": ">=22.3 <23"
|