@xyo-network/xl1-wrappers 1.12.0 → 1.12.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/index.mjs +33 -36
- package/dist/neutral/index.mjs.map +1 -1
- package/package.json +15 -15
package/dist/neutral/index.mjs
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
1
4
|
// src/Base.ts
|
|
2
5
|
var BaseWrapper = class {
|
|
6
|
+
static {
|
|
7
|
+
__name(this, "BaseWrapper");
|
|
8
|
+
}
|
|
3
9
|
config;
|
|
4
10
|
value;
|
|
5
11
|
constructor(value, config = {}) {
|
|
@@ -35,28 +41,22 @@ import { AttoXL1 } from "@xyo-network/xl1-protocol";
|
|
|
35
41
|
function parseHexOrBigInt(value) {
|
|
36
42
|
return AttoXL1(typeof value === "bigint" ? value : hexToBigInt(value));
|
|
37
43
|
}
|
|
44
|
+
__name(parseHexOrBigInt, "parseHexOrBigInt");
|
|
38
45
|
var FeesWrapper = class _FeesWrapper {
|
|
46
|
+
static {
|
|
47
|
+
__name(this, "FeesWrapper");
|
|
48
|
+
}
|
|
39
49
|
base;
|
|
40
50
|
gasLimit;
|
|
41
51
|
gasPrice;
|
|
42
52
|
priority;
|
|
43
|
-
constructor({
|
|
44
|
-
base,
|
|
45
|
-
gasLimit,
|
|
46
|
-
gasPrice,
|
|
47
|
-
priority
|
|
48
|
-
}) {
|
|
53
|
+
constructor({ base, gasLimit, gasPrice, priority }) {
|
|
49
54
|
this.base = parseHexOrBigInt(base);
|
|
50
55
|
this.gasLimit = parseHexOrBigInt(gasLimit);
|
|
51
56
|
this.gasPrice = parseHexOrBigInt(gasPrice);
|
|
52
57
|
this.priority = parseHexOrBigInt(priority);
|
|
53
58
|
}
|
|
54
|
-
static validate({
|
|
55
|
-
base,
|
|
56
|
-
gasLimit,
|
|
57
|
-
gasPrice,
|
|
58
|
-
priority
|
|
59
|
-
}) {
|
|
59
|
+
static validate({ base, gasLimit, gasPrice, priority }) {
|
|
60
60
|
const errors = [];
|
|
61
61
|
const baseValue = parseHexOrBigInt(base);
|
|
62
62
|
const gasLimitValue = parseHexOrBigInt(gasLimit);
|
|
@@ -93,6 +93,9 @@ import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
|
93
93
|
import { toArrayBuffer } from "@xylabs/arraybuffer";
|
|
94
94
|
import { BoundWitnessValidator } from "@xyo-network/boundwitness-validator";
|
|
95
95
|
var SignatureWrapper = class _SignatureWrapper {
|
|
96
|
+
static {
|
|
97
|
+
__name(this, "SignatureWrapper");
|
|
98
|
+
}
|
|
96
99
|
address;
|
|
97
100
|
hash;
|
|
98
101
|
signature;
|
|
@@ -110,45 +113,40 @@ var SignatureWrapper = class _SignatureWrapper {
|
|
|
110
113
|
};
|
|
111
114
|
|
|
112
115
|
// src/lib/createSignatureWrappers.ts
|
|
113
|
-
var createSignatureWrappers = async (bw) => {
|
|
116
|
+
var createSignatureWrappers = /* @__PURE__ */ __name(async (bw) => {
|
|
114
117
|
const signatures = [];
|
|
115
118
|
const hash = await PayloadBuilder.dataHash(bw);
|
|
116
119
|
for (let i = 0; i < bw.$signatures.length; i++) {
|
|
117
|
-
signatures.push(
|
|
118
|
-
new SignatureWrapper(bw.$signatures[i], bw.addresses[i], hash)
|
|
119
|
-
);
|
|
120
|
+
signatures.push(new SignatureWrapper(bw.$signatures[i], bw.addresses[i], hash));
|
|
120
121
|
}
|
|
121
122
|
return signatures;
|
|
122
|
-
};
|
|
123
|
+
}, "createSignatureWrappers");
|
|
123
124
|
|
|
124
125
|
// src/transaction/HydratedTransaction.ts
|
|
125
126
|
import { hexToBigInt as hexToBigInt2 } from "@xylabs/hex";
|
|
126
127
|
import { isDefined } from "@xylabs/typeof";
|
|
127
128
|
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
128
129
|
import { isTransfer, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-protocol";
|
|
129
|
-
import {
|
|
130
|
-
transactionRequiredGas,
|
|
131
|
-
tryExtractElevatedHashes,
|
|
132
|
-
tryExtractElevatedHashesFromScript
|
|
133
|
-
} from "@xyo-network/xl1-protocol-sdk";
|
|
130
|
+
import { transactionRequiredGas, tryExtractElevatedHashes, tryExtractElevatedHashesFromScript } from "@xyo-network/xl1-protocol-sdk";
|
|
134
131
|
import { validateTransaction } from "@xyo-network/xl1-validation";
|
|
135
|
-
var sumTransfers = (payload) => {
|
|
132
|
+
var sumTransfers = /* @__PURE__ */ __name((payload) => {
|
|
136
133
|
let total = 0n;
|
|
137
134
|
for (let i of Object.values(payload.transfers)) {
|
|
138
135
|
total += hexToBigInt2(i ?? "00");
|
|
139
136
|
}
|
|
140
137
|
return total;
|
|
141
|
-
};
|
|
138
|
+
}, "sumTransfers");
|
|
142
139
|
var HydratedTransactionWrapper = class _HydratedTransactionWrapper {
|
|
140
|
+
static {
|
|
141
|
+
__name(this, "HydratedTransactionWrapper");
|
|
142
|
+
}
|
|
143
143
|
data;
|
|
144
144
|
fees;
|
|
145
145
|
payloadsCache = [];
|
|
146
146
|
_signatureCache = [];
|
|
147
147
|
constructor(data) {
|
|
148
148
|
this.data = data;
|
|
149
|
-
this.fees = new FeesWrapper(
|
|
150
|
-
this.boundWitness.fees
|
|
151
|
-
);
|
|
149
|
+
this.fees = new FeesWrapper(this.boundWitness.fees);
|
|
152
150
|
}
|
|
153
151
|
get boundWitness() {
|
|
154
152
|
return this.data[0];
|
|
@@ -177,7 +175,9 @@ var HydratedTransactionWrapper = class _HydratedTransactionWrapper {
|
|
|
177
175
|
return this.payloadsCache.length;
|
|
178
176
|
}
|
|
179
177
|
get payloads() {
|
|
180
|
-
return [
|
|
178
|
+
return [
|
|
179
|
+
...this.payloadsCache
|
|
180
|
+
];
|
|
181
181
|
}
|
|
182
182
|
get privateExternalPayloads() {
|
|
183
183
|
const allPayloads = this.payloads;
|
|
@@ -200,12 +200,12 @@ var HydratedTransactionWrapper = class _HydratedTransactionWrapper {
|
|
|
200
200
|
return this._signatureCache.length;
|
|
201
201
|
}
|
|
202
202
|
get signatures() {
|
|
203
|
-
return [
|
|
203
|
+
return [
|
|
204
|
+
...this._signatureCache
|
|
205
|
+
];
|
|
204
206
|
}
|
|
205
207
|
static async parse(transaction, validate = false) {
|
|
206
|
-
const wrapper = new _HydratedTransactionWrapper(
|
|
207
|
-
transaction
|
|
208
|
-
);
|
|
208
|
+
const wrapper = new _HydratedTransactionWrapper(transaction);
|
|
209
209
|
const parsed = await wrapper.parse();
|
|
210
210
|
if (validate) {
|
|
211
211
|
const errors = await wrapper.validate();
|
|
@@ -232,10 +232,7 @@ var HydratedTransactionWrapper = class _HydratedTransactionWrapper {
|
|
|
232
232
|
}
|
|
233
233
|
async validate() {
|
|
234
234
|
const errors = [];
|
|
235
|
-
errors.push(
|
|
236
|
-
...(await Promise.all(this._signatureCache.map((signature) => signature.validate()))).flat(),
|
|
237
|
-
...await validateTransaction(this.data)
|
|
238
|
-
);
|
|
235
|
+
errors.push(...(await Promise.all(this._signatureCache.map((signature) => signature.validate()))).flat(), ...await validateTransaction(this.data));
|
|
239
236
|
return errors;
|
|
240
237
|
}
|
|
241
238
|
async parse(validate = false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Base.ts","../../src/Fees.ts","../../src/lib/createSignatureWrappers.ts","../../src/Signature.ts","../../src/transaction/HydratedTransaction.ts"],"sourcesContent":["import type { PromisableArray } from '@xylabs/promise'\nimport type { XyoConnectionProvider } from '@xyo-network/xl1-protocol'\n\nexport interface BaseWrapperConfig<T> {\n provider: XyoConnectionProvider\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(): XyoConnectionProvider | 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 { Hex } from '@xylabs/hex'\nimport { hexToBigInt } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\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 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(bw.$signatures[i], bw.addresses[i], hash),\n )\n }\n return signatures\n}\n","import { toArrayBuffer } from '@xylabs/arraybuffer'\nimport type {\n Address, Hash, Hex,\n} from '@xylabs/hex'\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/hex'\nimport { hexToBigInt } from '@xylabs/hex'\nimport { isDefined } from '@xylabs/typeof'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n Payload, Schema, WithHashStorageMeta,\n WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload, HydratedTransactionWithStorageMeta, 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 HydratedTransactionWithStorageMeta> implements HydratedTransactionInstance<[T[0],\n T[1][number][]]> {\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(): WithStorageMeta<AllowedBlockPayload>[] {\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(): WithHashStorageMeta<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 HydratedTransactionWithStorageMeta>(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): WithHashStorageMeta<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[] = []\n errors.push(\n ...(await Promise.all(this._signatureCache.map(signature => signature.validate()))).flat(),\n ...(await validateTransaction(this.data)),\n )\n return errors\n }\n\n protected async parse(validate = false): Promise<HydratedTransactionInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<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"]}
|
|
1
|
+
{"version":3,"sources":["../../src/Base.ts","../../src/Fees.ts","../../src/lib/createSignatureWrappers.ts","../../src/Signature.ts","../../src/transaction/HydratedTransaction.ts"],"sourcesContent":["import type { PromisableArray } from '@xylabs/promise'\nimport type { XyoConnectionProvider } from '@xyo-network/xl1-protocol'\n\nexport interface BaseWrapperConfig<T> {\n provider: XyoConnectionProvider\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(): XyoConnectionProvider | 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 { Hex } from '@xylabs/hex'\nimport { hexToBigInt } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\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 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(bw.$signatures[i], bw.addresses[i], hash),\n )\n }\n return signatures\n}\n","import { toArrayBuffer } from '@xylabs/arraybuffer'\nimport type {\n Address, Hash, Hex,\n} from '@xylabs/hex'\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/hex'\nimport { hexToBigInt } from '@xylabs/hex'\nimport { isDefined } from '@xylabs/typeof'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type {\n Payload, Schema, WithHashStorageMeta,\n WithStorageMeta,\n} from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload, HydratedTransactionWithStorageMeta, 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 HydratedTransactionWithStorageMeta> implements HydratedTransactionInstance<[T[0],\n T[1][number][]]> {\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(): WithStorageMeta<AllowedBlockPayload>[] {\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(): WithHashStorageMeta<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 HydratedTransactionWithStorageMeta>(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): WithHashStorageMeta<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[] = []\n errors.push(\n ...(await Promise.all(this._signatureCache.map(signature => signature.validate()))).flat(),\n ...(await validateTransaction(this.data)),\n )\n return errors\n }\n\n protected async parse(validate = false): Promise<HydratedTransactionInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<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","hexToBigInt","AttoXL1","parseHexOrBigInt","value","AttoXL1","hexToBigInt","FeesWrapper","base","gasLimit","gasPrice","priority","validate","errors","baseValue","gasLimitValue","gasPriceValue","priorityValue","push","Error","PayloadBuilder","toArrayBuffer","BoundWitnessValidator","SignatureWrapper","address","hash","signature","validate","BoundWitnessValidator","validateSignature","toArrayBuffer","createSignatureWrappers","bw","signatures","hash","PayloadBuilder","dataHash","i","$signatures","length","push","SignatureWrapper","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","push","Promise","all","map","flat","validateTransaction","transactionPayloads","PayloadBuilder","addStorageMeta","createSignatureWrappers"]}
|
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.12.
|
|
4
|
+
"version": "1.12.2",
|
|
5
5
|
"description": "XYO Layer One SDK Wrappers",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -36,22 +36,22 @@
|
|
|
36
36
|
"src"
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@xylabs/arraybuffer": "~5.0.
|
|
40
|
-
"@xylabs/hex": "~5.0.
|
|
41
|
-
"@xylabs/promise": "~5.0.
|
|
42
|
-
"@xylabs/typeof": "~5.0.
|
|
43
|
-
"@xyo-network/boundwitness-model": "~5.0.
|
|
44
|
-
"@xyo-network/boundwitness-validator": "~5.0.
|
|
45
|
-
"@xyo-network/payload-builder": "~5.0.
|
|
46
|
-
"@xyo-network/payload-model": "~5.0.
|
|
47
|
-
"@xyo-network/xl1-protocol": "~1.10.
|
|
48
|
-
"@xyo-network/xl1-protocol-sdk": "~1.12.
|
|
49
|
-
"@xyo-network/xl1-validation": "~1.12.
|
|
39
|
+
"@xylabs/arraybuffer": "~5.0.10",
|
|
40
|
+
"@xylabs/hex": "~5.0.10",
|
|
41
|
+
"@xylabs/promise": "~5.0.10",
|
|
42
|
+
"@xylabs/typeof": "~5.0.10",
|
|
43
|
+
"@xyo-network/boundwitness-model": "~5.0.7",
|
|
44
|
+
"@xyo-network/boundwitness-validator": "~5.0.7",
|
|
45
|
+
"@xyo-network/payload-builder": "~5.0.7",
|
|
46
|
+
"@xyo-network/payload-model": "~5.0.7",
|
|
47
|
+
"@xyo-network/xl1-protocol": "~1.10.15",
|
|
48
|
+
"@xyo-network/xl1-protocol-sdk": "~1.12.2",
|
|
49
|
+
"@xyo-network/xl1-validation": "~1.12.2"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@types/node": "~24.
|
|
53
|
-
"@xylabs/ts-scripts-yarn3": "~7.1.
|
|
54
|
-
"@xylabs/tsconfig": "~7.1.
|
|
52
|
+
"@types/node": "~24.3.0",
|
|
53
|
+
"@xylabs/ts-scripts-yarn3": "~7.1.3",
|
|
54
|
+
"@xylabs/tsconfig": "~7.1.3",
|
|
55
55
|
"typescript": "~5.9.2"
|
|
56
56
|
},
|
|
57
57
|
"engines": {
|