@xyo-network/chain-wrappers 1.3.12 → 1.3.14
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/README.md +11 -32
- package/dist/neutral/index.mjs +2 -3
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/types/Fees.d.ts +2 -1
- package/dist/types/Fees.d.ts.map +1 -1
- package/dist/types/Signature.d.ts +1 -1
- package/dist/types/Signature.d.ts.map +1 -1
- package/dist/types/block/HydratedBlock.d.ts +2 -1
- package/dist/types/block/HydratedBlock.d.ts.map +1 -1
- package/dist/types/block/SignedHydratedBlock.d.ts +2 -1
- package/dist/types/block/SignedHydratedBlock.d.ts.map +1 -1
- package/dist/types/lib/createSignatureWrappers.d.ts +1 -1
- package/dist/types/lib/createSignatureWrappers.d.ts.map +1 -1
- package/dist/types/transaction/HydratedTransaction.d.ts +2 -1
- package/dist/types/transaction/HydratedTransaction.d.ts.map +1 -1
- package/dist/types/transaction/SignedHydratedTransaction.d.ts +2 -1
- package/dist/types/transaction/SignedHydratedTransaction.d.ts.map +1 -1
- package/package.json +9 -8
- package/src/Fees.ts +2 -4
- package/src/Signature.ts +1 -1
- package/src/block/HydratedBlock.ts +2 -1
- package/src/block/SignedHydratedBlock.ts +3 -5
- package/src/lib/createSignatureWrappers.ts +1 -1
- package/src/transaction/HydratedTransaction.ts +5 -4
- package/src/transaction/SignedHydratedTransaction.ts +4 -7
package/README.md
CHANGED
|
@@ -1,44 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
# @xyo-network/chain-wrappers
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[![logo][]](https://xyo.network)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Version: 1.3.13
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
[![codeclimate-badge][]][codeclimate-link]
|
|
9
|
-
[![codeclimate-coverage-badge][]][codeclimate-coverage-link]
|
|
7
|
+
XYO Layer One SDK Wrappers
|
|
10
8
|
|
|
11
|
-
##
|
|
9
|
+
## Documentation
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
- [Table of Contents](#table-of-contents)
|
|
15
|
-
- [Description](#description)
|
|
16
|
-
- [Maintainers](#maintainers)
|
|
17
|
-
- [License](#license)
|
|
18
|
-
- [Credits](#credits)
|
|
11
|
+
[TypeDoc Generated Documentation](https://gitbook.xyo.network/xyo-data-lab/xyo-reference/package-documentation/xyo-network__chain-wrappers)
|
|
19
12
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Api/implementation of XYO Chain API Node
|
|
23
|
-
|
|
24
|
-
## Maintainers
|
|
25
|
-
|
|
26
|
-
- [Arie Trouw](https://github.com/arietrouw) [arietrouw.com](https://arietrouw.com)
|
|
13
|
+
Part of [sdk-xyo-client-js](https://www.npmjs.com/package/@xyo-network/sdk-xyo-client-js)
|
|
27
14
|
|
|
28
15
|
## License
|
|
29
16
|
|
|
30
|
-
See the [LICENSE](LICENSE) file for license details
|
|
17
|
+
> See the [LICENSE](LICENSE) file for license details
|
|
31
18
|
|
|
32
19
|
## Credits
|
|
33
20
|
|
|
34
|
-
[Made with 🔥 and ❄️ by
|
|
35
|
-
|
|
36
|
-
[logo]: https://cdn.xy.company/img/brand/XYO_full_colored.png
|
|
37
|
-
[main-build]: https://github.com/xylabs/chain-protocol/actions/workflows/build-main.yml/badge.svg
|
|
38
|
-
[main-build-link]: https://github.com/xylabs/chain-protocol/actions/workflows/build-main.yml
|
|
39
|
-
[codacy-badge]: https://app.codacy.com/project/badge/Grade/14640dade84b44a69e7b9daafd07be46
|
|
40
|
-
[codacy-link]: https://www.codacy.com/gh/xylabs/chain-protocol/dashboard?utm_source=github.com&utm_medium=referral&utm_content=xylabs/api-xylabs-import-nodejs&utm_campaign=Badge_Grade
|
|
41
|
-
[codeclimate-badge]: https://api.codeclimate.com/v1/badges/dc0bb5770f231f22f826/maintainability
|
|
42
|
-
[codeclimate-link]: https://codeclimate.com/github/xylabs/chain-protocol/maintainability
|
|
43
|
-
[codeclimate-coverage-badge]: https://api.codeclimate.com/v1/badges/dc0bb5770f231f22f826/test_coverage
|
|
44
|
-
[codeclimate-coverage-link]: https://codeclimate.com/github/xylabs/chain-protocol/test_coverage
|
|
21
|
+
[Made with 🔥 and ❄️ by XYO](https://xyo.network)
|
|
22
|
+
|
|
23
|
+
[logo]: https://cdn.xy.company/img/brand/XYO_full_colored.png
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -54,6 +54,7 @@ import { XYO_ZERO_ADDRESS } from "@xyo-network/chain-utils";
|
|
|
54
54
|
import { validateTransaction } from "@xyo-network/chain-validation";
|
|
55
55
|
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
56
56
|
import { isTransfer } from "@xyo-network/xl1-protocol";
|
|
57
|
+
import { transactionRequiredGas } from "@xyo-network/xl1-protocol-sdk";
|
|
57
58
|
|
|
58
59
|
// src/Fees.ts
|
|
59
60
|
import { hexToBigInt } from "@xylabs/hex";
|
|
@@ -159,9 +160,7 @@ var HydratedTransactionWrapper = class _HydratedTransactionWrapper {
|
|
|
159
160
|
return this.elevatedPayloads.at(index);
|
|
160
161
|
}
|
|
161
162
|
gasRequired() {
|
|
162
|
-
|
|
163
|
-
const payloadGas = this.payloadsCache.reduce((acc, payload) => acc + BigInt(JSON.stringify(payload).length) * gasPerCharacter, 0n);
|
|
164
|
-
return payloadGas;
|
|
163
|
+
return transactionRequiredGas(this.data);
|
|
165
164
|
}
|
|
166
165
|
payload(index) {
|
|
167
166
|
return this.payloads.at(index);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/createSignatureWrappers.ts","../../src/Signature.ts","../../src/block/HydratedBlock.ts","../../src/transaction/SignedHydratedTransaction.ts","../../src/transaction/HydratedTransaction.ts","../../src/Fees.ts","../../src/block/SignedHydratedBlock.ts"],"sourcesContent":["import type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { SignatureInstance } from '@xyo-network/xl1-protocol'\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'\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.address, this.hash, this.signature)\n }\n}\n","import { hexToBigInt } from '@xylabs/hex'\nimport { XYO_ZERO_ADDRESS } from '@xyo-network/chain-utils'\nimport { validateHydratedBlock } from '@xyo-network/chain-validation'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { WithHashStorageMeta } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload,\n HydratedBlock, HydratedBlockInstance, SignedHydratedTransaction, SignedHydratedTransactionInstance, Transfer,\n} from '@xyo-network/xl1-protocol'\nimport {\n isAllowedBlockPayloadWithHashStorageMeta,\n isSignedTransactionBoundWitnessWithStorageMeta,\n isTransfer,\n} from '@xyo-network/xl1-protocol'\n\nimport { SignedHydratedTransactionWrapper } from '../transaction/SignedHydratedTransaction.ts'\n\nconst sumTransfers = (payload: Transfer) => {\n let total = 0n\n for (let i of Object.values(payload.transfers)) {\n total += hexToBigInt(i)\n }\n return total\n}\n\nexport class HydratedBlockWrapper<T extends HydratedBlock> implements HydratedBlockInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]> {\n data: [WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]\n protected allPayloadsCache: WithHashStorageMeta<WithHashStorageMeta<T[1][number]>>[] = []\n protected publicPayloadsCache: WithHashStorageMeta<WithHashStorageMeta<T[1][number] & AllowedBlockPayload>>[] = []\n protected transactionsCache: SignedHydratedTransactionInstance[] = []\n\n protected constructor(data: [WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]) {\n this.data = data\n }\n\n get boundWitness() {\n return this.data[0]\n }\n\n get payloadCount(): number {\n return this.allPayloadsCache.length\n }\n\n get payloads(): T[1][number][] {\n return [...this.allPayloadsCache]\n }\n\n get privatePayloadCount(): number {\n return this.data[1].length - this.publicPayloadCount\n }\n\n get publicPayloadCount(): number {\n return this.allPayloadsCache.length\n }\n\n get publicPayloads(): (T[1][number] & AllowedBlockPayload)[] {\n return [...this.publicPayloadsCache]\n }\n\n get reward(): bigint {\n return this.allPayloadsCache.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 get transactionCount(): number {\n return this.transactionsCache.length\n }\n\n get transactions(): SignedHydratedTransactionInstance[] {\n return this.transactionsCache\n }\n\n static async parse<T extends HydratedBlock>(block: T, validate = false): Promise<HydratedBlockInstance> {\n const wrapper = new HydratedBlockWrapper<T>(block)\n return await wrapper.parse(validate)\n }\n\n payload(index: number) {\n return this.data[1].at(index)\n }\n\n transaction(index: number): SignedHydratedTransactionInstance | undefined {\n return this.transactionsCache.at(index)\n }\n\n async validate(): Promise<Error[]> {\n return await validateHydratedBlock(this.data)\n }\n\n protected async parse(validate = false): Promise<HydratedBlockInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]>> {\n const allPayloads = await PayloadBuilder.addStorageMeta(this.data[1])\n for (const payload of allPayloads) {\n if (isSignedTransactionBoundWitnessWithStorageMeta(payload)) {\n const hydratedTransaction: SignedHydratedTransaction = [payload, allPayloads.filter(\n p => payload.payload_hashes.includes(p._hash) || payload.payload_hashes.includes(p._dataHash),\n )]\n this.transactionsCache.push(await SignedHydratedTransactionWrapper.parse(hydratedTransaction))\n } else {\n this.allPayloadsCache.push(payload)\n }\n }\n for (const hash of this.data[0].payload_hashes) {\n const payload = this.allPayloadsCache.find(p => p._hash === hash)\n if (payload) {\n if (isAllowedBlockPayloadWithHashStorageMeta(payload)) {\n this.publicPayloadsCache.push(payload)\n } else {\n throw new Error('Disallowed payload type')\n }\n }\n }\n if (validate) {\n await this.validate()\n }\n return this\n }\n}\n","import { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { WithHashStorageMeta } from '@xyo-network/payload-model'\nimport type {\n SignatureInstance,\n SignedHydratedTransaction,\n SignedHydratedTransactionInstance,\n} from '@xyo-network/xl1-protocol'\n\nimport { createSignatureWrappers } from '../lib/createSignatureWrappers.ts'\nimport { HydratedTransactionWrapper } from './HydratedTransaction.ts'\n\nexport class SignedHydratedTransactionWrapper<T extends SignedHydratedTransaction> extends HydratedTransactionWrapper<T>\n implements SignedHydratedTransactionInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]> {\n private _signatureCache: SignatureInstance[] = []\n\n get signatureCount(): number {\n return this._signatureCache.length\n }\n\n get signatures(): SignatureInstance[] {\n return [...this._signatureCache]\n }\n\n static override async parse<T extends SignedHydratedTransaction>(transaction: T, validate = false):\n Promise<SignedHydratedTransactionInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]>> {\n const wrapper = new SignedHydratedTransactionWrapper<T>([\n await PayloadBuilder.addStorageMeta(transaction[0]),\n await PayloadBuilder.addStorageMeta(transaction[1]),\n ])\n return await wrapper.parse(validate)\n }\n\n signature(index: number): SignatureInstance | undefined {\n return this._signatureCache[index]\n }\n\n override async validate(): Promise<Error[]> {\n const errors: Error[] = []\n errors.push(\n ...(await Promise.all(this._signatureCache.map(signature => signature.validate()))).flat(),\n ...(await super.validate()),\n )\n return errors\n }\n\n protected override async parse(validate = false):\n Promise<SignedHydratedTransactionInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]>> {\n this._signatureCache = await createSignatureWrappers(this.data[0])\n await super.parse(validate)\n return this\n }\n}\n","import { hexToBigInt } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport { tryExtractElevatedHashes, tryExtractElevatedHashesFromScript } from '@xyo-network/chain-protocol'\nimport { XYO_ZERO_ADDRESS } from '@xyo-network/chain-utils'\nimport { validateTransaction } from '@xyo-network/chain-validation'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload, HydratedTransaction, HydratedTransactionInstance, HydratedTransactionWithHashStorageMeta, TransactionFeesInstance, Transfer,\n} from '@xyo-network/xl1-protocol'\nimport { isTransfer } from '@xyo-network/xl1-protocol'\n\nimport { FeesWrapper } from '../Fees.ts'\n\nconst sumTransfers = (payload: Transfer) => {\n let total = 0n\n for (let i of Object.values(payload.transfers)) {\n total += hexToBigInt(i)\n }\n return total\n}\n\nexport class HydratedTransactionWrapper<T extends HydratedTransaction> implements HydratedTransactionInstance<[WithHashStorageMeta<T[0]>,\n WithHashStorageMeta<T[1][number]>[]]> {\n data: HydratedTransactionWithHashStorageMeta<T>\n fees: TransactionFeesInstance\n\n protected payloadsCache: WithHashStorageMeta<Payload>[] = []\n\n protected constructor(data: HydratedTransactionWithHashStorageMeta<T>) {\n this.data = data\n this.fees = new FeesWrapper(\n this.boundWitness.fees,\n )\n }\n\n get boundWitness() {\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(): WithHashStorageMeta<AllowedBlockPayload>[] {\n return tryExtractElevatedHashes(this.data)\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<WithHashStorageMeta<T[1][number]>>[] {\n return [...this.payloadsCache]\n }\n\n static async parse<T extends HydratedTransaction>(transaction: T, validate = false): Promise<HydratedTransactionInstance<[WithHashStorageMeta<T[0]>,\n WithHashStorageMeta<T[1][number]>[]]>> {\n const wrapper = new HydratedTransactionWrapper<T>(\n [\n await PayloadBuilder.addStorageMeta(transaction[0]),\n await PayloadBuilder.addStorageMeta(transaction[1]),\n ],\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 const gasPerCharacter = 1n\n const payloadGas = this.payloadsCache.reduce((acc: bigint, payload) => acc + (BigInt(JSON.stringify(payload).length) * gasPerCharacter), 0n)\n return payloadGas\n }\n\n payload(index: number): WithHashStorageMeta<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 validate(): Promisable<Error[]> {\n return validateTransaction(this.data)\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 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","import { hexToBigInt } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport type {\n TransactionFeesBigInt, TransactionFeesHex,\n TransactionFeesInstance,\n} from '@xyo-network/xl1-protocol'\n\nexport class FeesWrapper implements TransactionFeesInstance {\n base: bigint\n gasLimit: bigint\n gasPrice: bigint\n priority: bigint\n\n constructor({\n base, gasLimit, gasPrice, priority,\n }: TransactionFeesHex | TransactionFeesBigInt) {\n this.base = typeof base === 'bigint' ? base : hexToBigInt(base)\n this.gasLimit = typeof gasLimit === 'bigint' ? gasLimit : hexToBigInt(gasLimit)\n this.gasPrice = typeof gasPrice === 'bigint' ? gasPrice : hexToBigInt(gasPrice)\n this.priority = typeof priority === 'bigint' ? priority : hexToBigInt(priority)\n }\n\n static validate({\n base, gasLimit, gasPrice, priority,\n }: TransactionFeesHex | TransactionFeesBigInt): Promisable<Error[]> {\n const errors: Error[] = []\n const baseValue = typeof base === 'bigint' ? base : hexToBigInt(base)\n const gasLimitValue = typeof gasLimit === 'bigint' ? gasLimit : hexToBigInt(gasLimit)\n const gasPriceValue = typeof gasPrice === 'bigint' ? gasPrice : hexToBigInt(gasPrice)\n const priorityValue = typeof priority === 'bigint' ? priority : hexToBigInt(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 { WithHashStorageMeta } from '@xyo-network/payload-model'\nimport type {\n SignatureInstance, SignedHydratedBlock,\n SignedHydratedBlockInstance,\n} from '@xyo-network/xl1-protocol'\n\nimport { createSignatureWrappers } from '../lib/createSignatureWrappers.ts'\nimport { HydratedBlockWrapper } from './HydratedBlock.ts'\n\nexport class SignedHydratedBlockWrapper<T extends SignedHydratedBlock> extends HydratedBlockWrapper<T>\n implements SignedHydratedBlockInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]> {\n private _signatureCache: SignatureInstance[] = []\n\n get signatureCount(): number {\n return this._signatureCache.length\n }\n\n get signatures(): SignatureInstance[] {\n return [...this._signatureCache]\n }\n\n static override async parse<T extends SignedHydratedBlock>(block: T, validate = false):\n Promise<SignedHydratedBlockInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]>> {\n const wrapper = new SignedHydratedBlockWrapper<T>(block)\n return await wrapper.parse(validate)\n }\n\n signature(index: number): SignatureInstance | undefined {\n return this._signatureCache[index]\n }\n\n override async validate(): Promise<Error[]> {\n const errors: Error[] = []\n errors.push(\n ...(await Promise.all(this._signatureCache.map(signature => signature.validate()))).flat(),\n ...(await super.validate()),\n )\n return errors\n }\n\n protected override async parse(validate = false): Promise<SignedHydratedBlockInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]>> {\n this._signatureCache = await createSignatureWrappers(this.data[0])\n await super.parse(validate)\n return this\n }\n}\n"],"mappings":"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","names":["PayloadBuilder","toArrayBuffer","BoundWitnessValidator","SignatureWrapper","address","hash","signature","constructor","validate","BoundWitnessValidator","validateSignature","toArrayBuffer","createSignatureWrappers","bw","signatures","hash","PayloadBuilder","dataHash","i","$signatures","length","push","SignatureWrapper","addresses","hexToBigInt","XYO_ZERO_ADDRESS","validateHydratedBlock","PayloadBuilder","isAllowedBlockPayloadWithHashStorageMeta","isSignedTransactionBoundWitnessWithStorageMeta","isTransfer","PayloadBuilder","hexToBigInt","tryExtractElevatedHashes","tryExtractElevatedHashesFromScript","XYO_ZERO_ADDRESS","validateTransaction","PayloadBuilder","isTransfer","hexToBigInt","FeesWrapper","base","gasLimit","gasPrice","priority","constructor","hexToBigInt","validate","errors","baseValue","gasLimitValue","gasPriceValue","priorityValue","push","Error","sumTransfers","payload","total","i","Object","values","transfers","hexToBigInt","HydratedTransactionWrapper","data","fees","payloadsCache","FeesWrapper","boundWitness","elevatedPayloadCount","script","tryExtractElevatedHashesFromScript","length","elevatedPayloads","tryExtractElevatedHashes","from","payloadCount","payloads","parse","transaction","validate","wrapper","PayloadBuilder","addStorageMeta","parsed","errors","Error","join","elevatedPayload","index","at","gasRequired","gasPerCharacter","payloadGas","reduce","acc","BigInt","JSON","stringify","reward","isTransfer","XYO_ZERO_ADDRESS","validateTransaction","transactionPayloads","push","SignedHydratedTransactionWrapper","HydratedTransactionWrapper","_signatureCache","signatureCount","length","signatures","parse","transaction","validate","wrapper","PayloadBuilder","addStorageMeta","signature","index","errors","push","Promise","all","map","flat","createSignatureWrappers","data","sumTransfers","payload","total","i","Object","values","transfers","hexToBigInt","HydratedBlockWrapper","data","allPayloadsCache","publicPayloadsCache","transactionsCache","boundWitness","payloadCount","length","payloads","privatePayloadCount","publicPayloadCount","publicPayloads","reward","reduce","acc","isTransfer","from","XYO_ZERO_ADDRESS","transactionCount","transactions","parse","block","validate","wrapper","index","at","transaction","validateHydratedBlock","allPayloads","PayloadBuilder","addStorageMeta","isSignedTransactionBoundWitnessWithStorageMeta","hydratedTransaction","filter","p","payload_hashes","includes","_hash","_dataHash","push","SignedHydratedTransactionWrapper","hash","find","isAllowedBlockPayloadWithHashStorageMeta","Error","SignedHydratedBlockWrapper","HydratedBlockWrapper","_signatureCache","signatureCount","length","signatures","parse","block","validate","wrapper","signature","index","errors","push","Promise","all","map","flat","createSignatureWrappers","data"]}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/createSignatureWrappers.ts","../../src/Signature.ts","../../src/block/HydratedBlock.ts","../../src/transaction/SignedHydratedTransaction.ts","../../src/transaction/HydratedTransaction.ts","../../src/Fees.ts","../../src/block/SignedHydratedBlock.ts"],"sourcesContent":["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.address, this.hash, this.signature)\n }\n}\n","import { hexToBigInt } from '@xylabs/hex'\nimport { XYO_ZERO_ADDRESS } from '@xyo-network/chain-utils'\nimport { validateHydratedBlock } from '@xyo-network/chain-validation'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { WithHashStorageMeta } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload,\n HydratedBlock, SignedHydratedTransaction, Transfer,\n} from '@xyo-network/xl1-protocol'\nimport {\n isAllowedBlockPayloadWithHashStorageMeta,\n isSignedTransactionBoundWitnessWithStorageMeta,\n isTransfer,\n} from '@xyo-network/xl1-protocol'\nimport type { HydratedBlockInstance, SignedHydratedTransactionInstance } from '@xyo-network/xl1-protocol-sdk'\n\nimport { SignedHydratedTransactionWrapper } from '../transaction/SignedHydratedTransaction.ts'\n\nconst sumTransfers = (payload: Transfer) => {\n let total = 0n\n for (let i of Object.values(payload.transfers)) {\n total += hexToBigInt(i)\n }\n return total\n}\n\nexport class HydratedBlockWrapper<T extends HydratedBlock> implements HydratedBlockInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]> {\n data: [WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]\n protected allPayloadsCache: WithHashStorageMeta<WithHashStorageMeta<T[1][number]>>[] = []\n protected publicPayloadsCache: WithHashStorageMeta<WithHashStorageMeta<T[1][number] & AllowedBlockPayload>>[] = []\n protected transactionsCache: SignedHydratedTransactionInstance[] = []\n\n protected constructor(data: [WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]) {\n this.data = data\n }\n\n get boundWitness() {\n return this.data[0]\n }\n\n get payloadCount(): number {\n return this.allPayloadsCache.length\n }\n\n get payloads(): T[1][number][] {\n return [...this.allPayloadsCache]\n }\n\n get privatePayloadCount(): number {\n return this.data[1].length - this.publicPayloadCount\n }\n\n get publicPayloadCount(): number {\n return this.allPayloadsCache.length\n }\n\n get publicPayloads(): (T[1][number] & AllowedBlockPayload)[] {\n return [...this.publicPayloadsCache]\n }\n\n get reward(): bigint {\n return this.allPayloadsCache.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 get transactionCount(): number {\n return this.transactionsCache.length\n }\n\n get transactions(): SignedHydratedTransactionInstance[] {\n return this.transactionsCache\n }\n\n static async parse<T extends HydratedBlock>(block: T, validate = false): Promise<HydratedBlockInstance> {\n const wrapper = new HydratedBlockWrapper<T>(block)\n return await wrapper.parse(validate)\n }\n\n payload(index: number) {\n return this.data[1].at(index)\n }\n\n transaction(index: number): SignedHydratedTransactionInstance | undefined {\n return this.transactionsCache.at(index)\n }\n\n async validate(): Promise<Error[]> {\n return await validateHydratedBlock(this.data)\n }\n\n protected async parse(validate = false): Promise<HydratedBlockInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]>> {\n const allPayloads = await PayloadBuilder.addStorageMeta(this.data[1])\n for (const payload of allPayloads) {\n if (isSignedTransactionBoundWitnessWithStorageMeta(payload)) {\n const hydratedTransaction: SignedHydratedTransaction = [payload, allPayloads.filter(\n p => payload.payload_hashes.includes(p._hash) || payload.payload_hashes.includes(p._dataHash),\n )]\n this.transactionsCache.push(await SignedHydratedTransactionWrapper.parse(hydratedTransaction))\n } else {\n this.allPayloadsCache.push(payload)\n }\n }\n for (const hash of this.data[0].payload_hashes) {\n const payload = this.allPayloadsCache.find(p => p._hash === hash)\n if (payload) {\n if (isAllowedBlockPayloadWithHashStorageMeta(payload)) {\n this.publicPayloadsCache.push(payload)\n } else {\n throw new Error('Disallowed payload type')\n }\n }\n }\n if (validate) {\n await this.validate()\n }\n return this\n }\n}\n","import { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { WithHashStorageMeta } from '@xyo-network/payload-model'\nimport type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol'\nimport type { SignatureInstance, SignedHydratedTransactionInstance } from '@xyo-network/xl1-protocol-sdk'\n\nimport { createSignatureWrappers } from '../lib/createSignatureWrappers.ts'\nimport { HydratedTransactionWrapper } from './HydratedTransaction.ts'\n\nexport class SignedHydratedTransactionWrapper<T extends SignedHydratedTransaction> extends HydratedTransactionWrapper<T>\n implements SignedHydratedTransactionInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]> {\n private _signatureCache: SignatureInstance[] = []\n\n get signatureCount(): number {\n return this._signatureCache.length\n }\n\n get signatures(): SignatureInstance[] {\n return [...this._signatureCache]\n }\n\n static override async parse<T extends SignedHydratedTransaction>(transaction: T, validate = false):\n Promise<SignedHydratedTransactionInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]>> {\n const wrapper = new SignedHydratedTransactionWrapper<T>([\n await PayloadBuilder.addStorageMeta(transaction[0]),\n await PayloadBuilder.addStorageMeta(transaction[1]),\n ])\n return await wrapper.parse(validate)\n }\n\n signature(index: number): SignatureInstance | undefined {\n return this._signatureCache[index]\n }\n\n override async validate(): Promise<Error[]> {\n const errors: Error[] = []\n errors.push(\n ...(await Promise.all(this._signatureCache.map(signature => signature.validate()))).flat(),\n ...(await super.validate()),\n )\n return errors\n }\n\n protected override async parse(validate = false):\n Promise<SignedHydratedTransactionInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]>> {\n this._signatureCache = await createSignatureWrappers(this.data[0])\n await super.parse(validate)\n return this\n }\n}\n","import { hexToBigInt } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport { tryExtractElevatedHashes, tryExtractElevatedHashesFromScript } from '@xyo-network/chain-protocol'\nimport { XYO_ZERO_ADDRESS } from '@xyo-network/chain-utils'\nimport { validateTransaction } from '@xyo-network/chain-validation'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload, HydratedTransaction, HydratedTransactionWithHashStorageMeta, Transfer,\n} from '@xyo-network/xl1-protocol'\nimport { isTransfer } from '@xyo-network/xl1-protocol'\nimport {\n type HydratedTransactionInstance, type TransactionFeesInstance, transactionRequiredGas,\n} from '@xyo-network/xl1-protocol-sdk'\n\nimport { FeesWrapper } from '../Fees.ts'\n\nconst sumTransfers = (payload: Transfer) => {\n let total = 0n\n for (let i of Object.values(payload.transfers)) {\n total += hexToBigInt(i)\n }\n return total\n}\n\nexport class HydratedTransactionWrapper<T extends HydratedTransaction> implements HydratedTransactionInstance<[WithHashStorageMeta<T[0]>,\n WithHashStorageMeta<T[1][number]>[]]> {\n data: HydratedTransactionWithHashStorageMeta<T>\n fees: TransactionFeesInstance\n\n protected payloadsCache: WithHashStorageMeta<Payload>[] = []\n\n protected constructor(data: HydratedTransactionWithHashStorageMeta<T>) {\n this.data = data\n this.fees = new FeesWrapper(\n this.boundWitness.fees,\n )\n }\n\n get boundWitness() {\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(): WithHashStorageMeta<AllowedBlockPayload>[] {\n return tryExtractElevatedHashes(this.data)\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<WithHashStorageMeta<T[1][number]>>[] {\n return [...this.payloadsCache]\n }\n\n static async parse<T extends HydratedTransaction>(transaction: T, validate = false): Promise<HydratedTransactionInstance<[WithHashStorageMeta<T[0]>,\n WithHashStorageMeta<T[1][number]>[]]>> {\n const wrapper = new HydratedTransactionWrapper<T>(\n [\n await PayloadBuilder.addStorageMeta(transaction[0]),\n await PayloadBuilder.addStorageMeta(transaction[1]),\n ],\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): WithHashStorageMeta<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 validate(): Promisable<Error[]> {\n return validateTransaction(this.data)\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 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","import { hexToBigInt } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport type { TransactionFeesBigInt, TransactionFeesHex } from '@xyo-network/xl1-protocol'\nimport type { TransactionFeesInstance } from '@xyo-network/xl1-protocol-sdk'\n\nexport class FeesWrapper implements TransactionFeesInstance {\n base: bigint\n gasLimit: bigint\n gasPrice: bigint\n priority: bigint\n\n constructor({\n base, gasLimit, gasPrice, priority,\n }: TransactionFeesHex | TransactionFeesBigInt) {\n this.base = typeof base === 'bigint' ? base : hexToBigInt(base)\n this.gasLimit = typeof gasLimit === 'bigint' ? gasLimit : hexToBigInt(gasLimit)\n this.gasPrice = typeof gasPrice === 'bigint' ? gasPrice : hexToBigInt(gasPrice)\n this.priority = typeof priority === 'bigint' ? priority : hexToBigInt(priority)\n }\n\n static validate({\n base, gasLimit, gasPrice, priority,\n }: TransactionFeesHex | TransactionFeesBigInt): Promisable<Error[]> {\n const errors: Error[] = []\n const baseValue = typeof base === 'bigint' ? base : hexToBigInt(base)\n const gasLimitValue = typeof gasLimit === 'bigint' ? gasLimit : hexToBigInt(gasLimit)\n const gasPriceValue = typeof gasPrice === 'bigint' ? gasPrice : hexToBigInt(gasPrice)\n const priorityValue = typeof priority === 'bigint' ? priority : hexToBigInt(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 { WithHashStorageMeta } from '@xyo-network/payload-model'\nimport type { SignedHydratedBlock } from '@xyo-network/xl1-protocol'\nimport type { SignatureInstance, SignedHydratedBlockInstance } from '@xyo-network/xl1-protocol-sdk'\n\nimport { createSignatureWrappers } from '../lib/createSignatureWrappers.ts'\nimport { HydratedBlockWrapper } from './HydratedBlock.ts'\n\nexport class SignedHydratedBlockWrapper<T extends SignedHydratedBlock> extends HydratedBlockWrapper<T>\n implements SignedHydratedBlockInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]> {\n private _signatureCache: SignatureInstance[] = []\n\n get signatureCount(): number {\n return this._signatureCache.length\n }\n\n get signatures(): SignatureInstance[] {\n return [...this._signatureCache]\n }\n\n static override async parse<T extends SignedHydratedBlock>(block: T, validate = false):\n Promise<SignedHydratedBlockInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]>> {\n const wrapper = new SignedHydratedBlockWrapper<T>(block)\n return await wrapper.parse(validate)\n }\n\n signature(index: number): SignatureInstance | undefined {\n return this._signatureCache[index]\n }\n\n override async validate(): Promise<Error[]> {\n const errors: Error[] = []\n errors.push(\n ...(await Promise.all(this._signatureCache.map(signature => signature.validate()))).flat(),\n ...(await super.validate()),\n )\n return errors\n }\n\n protected override async parse(validate = false): Promise<SignedHydratedBlockInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]>> {\n this._signatureCache = await createSignatureWrappers(this.data[0])\n await super.parse(validate)\n return this\n }\n}\n"],"mappings":"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","names":["PayloadBuilder","toArrayBuffer","BoundWitnessValidator","SignatureWrapper","address","hash","signature","constructor","validate","BoundWitnessValidator","validateSignature","toArrayBuffer","createSignatureWrappers","bw","signatures","hash","PayloadBuilder","dataHash","i","$signatures","length","push","SignatureWrapper","addresses","hexToBigInt","XYO_ZERO_ADDRESS","validateHydratedBlock","PayloadBuilder","isAllowedBlockPayloadWithHashStorageMeta","isSignedTransactionBoundWitnessWithStorageMeta","isTransfer","PayloadBuilder","hexToBigInt","tryExtractElevatedHashes","tryExtractElevatedHashesFromScript","XYO_ZERO_ADDRESS","validateTransaction","PayloadBuilder","isTransfer","transactionRequiredGas","hexToBigInt","FeesWrapper","base","gasLimit","gasPrice","priority","constructor","hexToBigInt","validate","errors","baseValue","gasLimitValue","gasPriceValue","priorityValue","push","Error","sumTransfers","payload","total","i","Object","values","transfers","hexToBigInt","HydratedTransactionWrapper","data","fees","payloadsCache","FeesWrapper","boundWitness","elevatedPayloadCount","script","tryExtractElevatedHashesFromScript","length","elevatedPayloads","tryExtractElevatedHashes","from","payloadCount","payloads","parse","transaction","validate","wrapper","PayloadBuilder","addStorageMeta","parsed","errors","Error","join","elevatedPayload","index","at","gasRequired","transactionRequiredGas","reward","reduce","acc","isTransfer","XYO_ZERO_ADDRESS","validateTransaction","transactionPayloads","push","SignedHydratedTransactionWrapper","HydratedTransactionWrapper","_signatureCache","signatureCount","length","signatures","parse","transaction","validate","wrapper","PayloadBuilder","addStorageMeta","signature","index","errors","push","Promise","all","map","flat","createSignatureWrappers","data","sumTransfers","payload","total","i","Object","values","transfers","hexToBigInt","HydratedBlockWrapper","data","allPayloadsCache","publicPayloadsCache","transactionsCache","boundWitness","payloadCount","length","payloads","privatePayloadCount","publicPayloadCount","publicPayloads","reward","reduce","acc","isTransfer","from","XYO_ZERO_ADDRESS","transactionCount","transactions","parse","block","validate","wrapper","index","at","transaction","validateHydratedBlock","allPayloads","PayloadBuilder","addStorageMeta","isSignedTransactionBoundWitnessWithStorageMeta","hydratedTransaction","filter","p","payload_hashes","includes","_hash","_dataHash","push","SignedHydratedTransactionWrapper","hash","find","isAllowedBlockPayloadWithHashStorageMeta","Error","SignedHydratedBlockWrapper","HydratedBlockWrapper","_signatureCache","signatureCount","length","signatures","parse","block","validate","wrapper","signature","index","errors","push","Promise","all","map","flat","createSignatureWrappers","data"]}
|
package/dist/types/Fees.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Promisable } from '@xylabs/promise';
|
|
2
|
-
import type { TransactionFeesBigInt, TransactionFeesHex
|
|
2
|
+
import type { TransactionFeesBigInt, TransactionFeesHex } from '@xyo-network/xl1-protocol';
|
|
3
|
+
import type { TransactionFeesInstance } from '@xyo-network/xl1-protocol-sdk';
|
|
3
4
|
export declare class FeesWrapper implements TransactionFeesInstance {
|
|
4
5
|
base: bigint;
|
|
5
6
|
gasLimit: bigint;
|
package/dist/types/Fees.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fees.d.ts","sourceRoot":"","sources":["../../src/Fees.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Fees.d.ts","sourceRoot":"","sources":["../../src/Fees.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC1F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAE5E,qBAAa,WAAY,YAAW,uBAAuB;IACzD,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;gBAEJ,EACV,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GACnC,EAAE,kBAAkB,GAAG,qBAAqB;IAO7C,MAAM,CAAC,QAAQ,CAAC,EACd,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GACnC,EAAE,kBAAkB,GAAG,qBAAqB,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;IAqB7D,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAKnC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Address, Hash, Hex } from '@xylabs/hex';
|
|
2
|
-
import type { SignatureInstance } from '@xyo-network/xl1-protocol';
|
|
2
|
+
import type { SignatureInstance } from '@xyo-network/xl1-protocol-sdk';
|
|
3
3
|
export declare class SignatureWrapper implements SignatureInstance {
|
|
4
4
|
address: Address;
|
|
5
5
|
hash: Hash;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Signature.d.ts","sourceRoot":"","sources":["../../src/Signature.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EAAE,IAAI,EAAE,GAAG,EACnB,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Signature.d.ts","sourceRoot":"","sources":["../../src/Signature.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EAAE,IAAI,EAAE,GAAG,EACnB,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAEtE,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,EAAE,GAAG,CAAA;gBAEF,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI;WAM3C,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAI/E,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAGnC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { WithHashStorageMeta } from '@xyo-network/payload-model';
|
|
2
|
-
import type { AllowedBlockPayload, HydratedBlock
|
|
2
|
+
import type { AllowedBlockPayload, HydratedBlock } from '@xyo-network/xl1-protocol';
|
|
3
|
+
import type { HydratedBlockInstance, SignedHydratedTransactionInstance } from '@xyo-network/xl1-protocol-sdk';
|
|
3
4
|
export declare class HydratedBlockWrapper<T extends HydratedBlock> implements HydratedBlockInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]> {
|
|
4
5
|
data: [WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]];
|
|
5
6
|
protected allPayloadsCache: WithHashStorageMeta<WithHashStorageMeta<T[1][number]>>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HydratedBlock.d.ts","sourceRoot":"","sources":["../../../src/block/HydratedBlock.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"HydratedBlock.d.ts","sourceRoot":"","sources":["../../../src/block/HydratedBlock.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACd,MAAM,2BAA2B,CAAA;AAMlC,OAAO,KAAK,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAA;AAY7G,qBAAa,oBAAoB,CAAC,CAAC,SAAS,aAAa,CAAE,YAAW,qBAAqB,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3J,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAA;IACtE,SAAS,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAK;IACzF,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,CAAC,EAAE,CAAK;IAClH,SAAS,CAAC,iBAAiB,EAAE,iCAAiC,EAAE,CAAK;IAErE,SAAS,aAAa,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IAI5F,IAAI,YAAY,8BAEf;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAE7B;IAED,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED,IAAI,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,EAAE,CAE3D;IAED,IAAI,MAAM,IAAI,MAAM,CAOnB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,YAAY,IAAI,iCAAiC,EAAE,CAEtD;WAEY,KAAK,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKvG,OAAO,CAAC,KAAK,EAAE,MAAM;IAIrB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,iCAAiC,GAAG,SAAS;IAInE,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;cAIlB,KAAK,CAAC,QAAQ,UAAQ,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CA2B1I"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { WithHashStorageMeta } from '@xyo-network/payload-model';
|
|
2
|
-
import type {
|
|
2
|
+
import type { SignedHydratedBlock } from '@xyo-network/xl1-protocol';
|
|
3
|
+
import type { SignatureInstance, SignedHydratedBlockInstance } from '@xyo-network/xl1-protocol-sdk';
|
|
3
4
|
import { HydratedBlockWrapper } from './HydratedBlock.ts';
|
|
4
5
|
export declare class SignedHydratedBlockWrapper<T extends SignedHydratedBlock> extends HydratedBlockWrapper<T> implements SignedHydratedBlockInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]> {
|
|
5
6
|
private _signatureCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignedHydratedBlock.d.ts","sourceRoot":"","sources":["../../../src/block/SignedHydratedBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"SignedHydratedBlock.d.ts","sourceRoot":"","sources":["../../../src/block/SignedHydratedBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAGnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEzD,qBAAa,0BAA0B,CAAC,CAAC,SAAS,mBAAmB,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CACnG,YAAW,2BAA2B,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACxG,OAAO,CAAC,eAAe,CAA0B;IAEjD,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,UAAU,IAAI,iBAAiB,EAAE,CAEpC;WAEqB,KAAK,CAAC,CAAC,SAAS,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,UAAQ,GACnF,OAAO,CAAC,2BAA2B,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAKxG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIxC,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;cASlB,KAAK,CAAC,QAAQ,UAAQ,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAKzJ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
-
import type { SignatureInstance } from '@xyo-network/xl1-protocol';
|
|
2
|
+
import type { SignatureInstance } from '@xyo-network/xl1-protocol-sdk';
|
|
3
3
|
export declare const createSignatureWrappers: (bw: BoundWitness) => Promise<SignatureInstance[]>;
|
|
4
4
|
//# sourceMappingURL=createSignatureWrappers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSignatureWrappers.d.ts","sourceRoot":"","sources":["../../../src/lib/createSignatureWrappers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"createSignatureWrappers.d.ts","sourceRoot":"","sources":["../../../src/lib/createSignatureWrappers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAItE,eAAO,MAAM,uBAAuB,GAAU,IAAI,YAAY,KAAG,OAAO,CAAC,iBAAiB,EAAE,CAS3F,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Promisable } from '@xylabs/promise';
|
|
2
2
|
import type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model';
|
|
3
|
-
import type { AllowedBlockPayload, HydratedTransaction,
|
|
3
|
+
import type { AllowedBlockPayload, HydratedTransaction, HydratedTransactionWithHashStorageMeta } from '@xyo-network/xl1-protocol';
|
|
4
|
+
import { type HydratedTransactionInstance, type TransactionFeesInstance } from '@xyo-network/xl1-protocol-sdk';
|
|
4
5
|
export declare class HydratedTransactionWrapper<T extends HydratedTransaction> implements HydratedTransactionInstance<[
|
|
5
6
|
WithHashStorageMeta<T[0]>,
|
|
6
7
|
WithHashStorageMeta<T[1][number]>[]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HydratedTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/HydratedTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKjD,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,EACV,mBAAmB,EAAE,mBAAmB,EAAE,2BAA2B,
|
|
1
|
+
{"version":3,"file":"HydratedTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/HydratedTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKjD,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,EACV,mBAAmB,EAAE,mBAAmB,EAAE,sCAAsC,EACjF,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,KAAK,2BAA2B,EAAE,KAAK,uBAAuB,EAC/D,MAAM,+BAA+B,CAAA;AAYtC,qBAAa,0BAA0B,CAAC,CAAC,SAAS,mBAAmB,CAAE,YAAW,2BAA2B,CAAC;IAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtI,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;CAAC,CAAC;IACrC,IAAI,EAAE,sCAAsC,CAAC,CAAC,CAAC,CAAA;IAC/C,IAAI,EAAE,uBAAuB,CAAA;IAE7B,SAAS,CAAC,aAAa,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAK;IAE5D,SAAS,aAAa,IAAI,EAAE,sCAAsC,CAAC,CAAC,CAAC;IAOrE,IAAI,YAAY,8BAEf;IAED,IAAI,oBAAoB,IAAI,MAAM,CAGjC;IAED,IAAI,gBAAgB,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,EAAE,CAEjE;IAED,IAAI,IAAI,sBAEP;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,QAAQ,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAEvE;WAEY,KAAK,CAAC,CAAC,SAAS,mBAAmB,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,2BAA2B,CAAC;QAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjJ,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;KAAC,CAAC,CAAC;IAiBxC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS;IAInG,WAAW,IAAI,MAAM;IAIrB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,SAAS;IAIhE,MAAM,IAAI,MAAM;IAShB,QAAQ,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;cAIf,KAAK,CAAC,QAAQ,UAAQ,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAUhJ"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { WithHashStorageMeta } from '@xyo-network/payload-model';
|
|
2
|
-
import type {
|
|
2
|
+
import type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol';
|
|
3
|
+
import type { SignatureInstance, SignedHydratedTransactionInstance } from '@xyo-network/xl1-protocol-sdk';
|
|
3
4
|
import { HydratedTransactionWrapper } from './HydratedTransaction.ts';
|
|
4
5
|
export declare class SignedHydratedTransactionWrapper<T extends SignedHydratedTransaction> extends HydratedTransactionWrapper<T> implements SignedHydratedTransactionInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]> {
|
|
5
6
|
private _signatureCache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignedHydratedTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/SignedHydratedTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"SignedHydratedTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/SignedHydratedTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAA;AAGzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AAErE,qBAAa,gCAAgC,CAAC,CAAC,SAAS,yBAAyB,CAAE,SAAQ,0BAA0B,CAAC,CAAC,CACrH,YAAW,iCAAiC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9G,OAAO,CAAC,eAAe,CAA0B;IAEjD,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,UAAU,IAAI,iBAAiB,EAAE,CAEpC;WAEqB,KAAK,CAAC,CAAC,SAAS,yBAAyB,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,UAAQ,GAC/F,OAAO,CAAC,iCAAiC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAQ9G,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIxC,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;cASlB,KAAK,CAAC,QAAQ,UAAQ,GAC7C,OAAO,CAAC,iCAAiC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAK/G"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@xyo-network/chain-wrappers",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.14",
|
|
5
5
|
"description": "XYO Layer One SDK Wrappers",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -39,18 +39,19 @@
|
|
|
39
39
|
"@xylabs/promise": "^4.8.9",
|
|
40
40
|
"@xyo-network/boundwitness-model": "^3.14.16",
|
|
41
41
|
"@xyo-network/boundwitness-validator": "^3.14.16",
|
|
42
|
-
"@xyo-network/chain-protocol": "^1.3.
|
|
43
|
-
"@xyo-network/chain-utils": "^1.3.
|
|
44
|
-
"@xyo-network/chain-validation": "^1.3.
|
|
42
|
+
"@xyo-network/chain-protocol": "^1.3.14",
|
|
43
|
+
"@xyo-network/chain-utils": "^1.3.14",
|
|
44
|
+
"@xyo-network/chain-validation": "^1.3.14",
|
|
45
45
|
"@xyo-network/payload-builder": "^3.14.16",
|
|
46
46
|
"@xyo-network/payload-model": "^3.14.16",
|
|
47
|
-
"@xyo-network/xl1-protocol": "^1.3.
|
|
47
|
+
"@xyo-network/xl1-protocol": "^1.3.11",
|
|
48
|
+
"@xyo-network/xl1-protocol-sdk": "^1.3.14"
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|
|
50
51
|
"@types/node": "^22.15.3",
|
|
51
|
-
"@xylabs/ts-scripts-yarn3": "^6.5.
|
|
52
|
-
"@xylabs/tsconfig": "^6.5.
|
|
53
|
-
"knip": "^5.
|
|
52
|
+
"@xylabs/ts-scripts-yarn3": "^6.5.5",
|
|
53
|
+
"@xylabs/tsconfig": "^6.5.5",
|
|
54
|
+
"knip": "^5.52.0",
|
|
54
55
|
"typescript": "^5.8.3"
|
|
55
56
|
},
|
|
56
57
|
"engines": {
|
package/src/Fees.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { hexToBigInt } from '@xylabs/hex'
|
|
2
2
|
import type { Promisable } from '@xylabs/promise'
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
TransactionFeesInstance,
|
|
6
|
-
} from '@xyo-network/xl1-protocol'
|
|
3
|
+
import type { TransactionFeesBigInt, TransactionFeesHex } from '@xyo-network/xl1-protocol'
|
|
4
|
+
import type { TransactionFeesInstance } from '@xyo-network/xl1-protocol-sdk'
|
|
7
5
|
|
|
8
6
|
export class FeesWrapper implements TransactionFeesInstance {
|
|
9
7
|
base: bigint
|
package/src/Signature.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type {
|
|
|
3
3
|
Address, Hash, Hex,
|
|
4
4
|
} from '@xylabs/hex'
|
|
5
5
|
import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'
|
|
6
|
-
import type { SignatureInstance } from '@xyo-network/xl1-protocol'
|
|
6
|
+
import type { SignatureInstance } from '@xyo-network/xl1-protocol-sdk'
|
|
7
7
|
|
|
8
8
|
export class SignatureWrapper implements SignatureInstance {
|
|
9
9
|
address: Address
|
|
@@ -5,13 +5,14 @@ import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
|
5
5
|
import type { WithHashStorageMeta } from '@xyo-network/payload-model'
|
|
6
6
|
import type {
|
|
7
7
|
AllowedBlockPayload,
|
|
8
|
-
HydratedBlock,
|
|
8
|
+
HydratedBlock, SignedHydratedTransaction, Transfer,
|
|
9
9
|
} from '@xyo-network/xl1-protocol'
|
|
10
10
|
import {
|
|
11
11
|
isAllowedBlockPayloadWithHashStorageMeta,
|
|
12
12
|
isSignedTransactionBoundWitnessWithStorageMeta,
|
|
13
13
|
isTransfer,
|
|
14
14
|
} from '@xyo-network/xl1-protocol'
|
|
15
|
+
import type { HydratedBlockInstance, SignedHydratedTransactionInstance } from '@xyo-network/xl1-protocol-sdk'
|
|
15
16
|
|
|
16
17
|
import { SignedHydratedTransactionWrapper } from '../transaction/SignedHydratedTransaction.ts'
|
|
17
18
|
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { WithHashStorageMeta } from '@xyo-network/payload-model'
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
SignedHydratedBlockInstance,
|
|
5
|
-
} from '@xyo-network/xl1-protocol'
|
|
2
|
+
import type { SignedHydratedBlock } from '@xyo-network/xl1-protocol'
|
|
3
|
+
import type { SignatureInstance, SignedHydratedBlockInstance } from '@xyo-network/xl1-protocol-sdk'
|
|
6
4
|
|
|
7
5
|
import { createSignatureWrappers } from '../lib/createSignatureWrappers.ts'
|
|
8
6
|
import { HydratedBlockWrapper } from './HydratedBlock.ts'
|
|
@@ -20,7 +18,7 @@ export class SignedHydratedBlockWrapper<T extends SignedHydratedBlock> extends H
|
|
|
20
18
|
}
|
|
21
19
|
|
|
22
20
|
static override async parse<T extends SignedHydratedBlock>(block: T, validate = false):
|
|
23
|
-
|
|
21
|
+
Promise<SignedHydratedBlockInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]>> {
|
|
24
22
|
const wrapper = new SignedHydratedBlockWrapper<T>(block)
|
|
25
23
|
return await wrapper.parse(validate)
|
|
26
24
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BoundWitness } from '@xyo-network/boundwitness-model'
|
|
2
2
|
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
3
|
-
import type { SignatureInstance } from '@xyo-network/xl1-protocol'
|
|
3
|
+
import type { SignatureInstance } from '@xyo-network/xl1-protocol-sdk'
|
|
4
4
|
|
|
5
5
|
import { SignatureWrapper } from '../Signature.ts'
|
|
6
6
|
|
|
@@ -6,9 +6,12 @@ import { validateTransaction } from '@xyo-network/chain-validation'
|
|
|
6
6
|
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
7
7
|
import type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model'
|
|
8
8
|
import type {
|
|
9
|
-
AllowedBlockPayload, HydratedTransaction,
|
|
9
|
+
AllowedBlockPayload, HydratedTransaction, HydratedTransactionWithHashStorageMeta, Transfer,
|
|
10
10
|
} from '@xyo-network/xl1-protocol'
|
|
11
11
|
import { isTransfer } from '@xyo-network/xl1-protocol'
|
|
12
|
+
import {
|
|
13
|
+
type HydratedTransactionInstance, type TransactionFeesInstance, transactionRequiredGas,
|
|
14
|
+
} from '@xyo-network/xl1-protocol-sdk'
|
|
12
15
|
|
|
13
16
|
import { FeesWrapper } from '../Fees.ts'
|
|
14
17
|
|
|
@@ -82,9 +85,7 @@ export class HydratedTransactionWrapper<T extends HydratedTransaction> implement
|
|
|
82
85
|
}
|
|
83
86
|
|
|
84
87
|
gasRequired(): bigint {
|
|
85
|
-
|
|
86
|
-
const payloadGas = this.payloadsCache.reduce((acc: bigint, payload) => acc + (BigInt(JSON.stringify(payload).length) * gasPerCharacter), 0n)
|
|
87
|
-
return payloadGas
|
|
88
|
+
return transactionRequiredGas(this.data)
|
|
88
89
|
}
|
|
89
90
|
|
|
90
91
|
payload(index: number): WithHashStorageMeta<Payload> | undefined {
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
2
2
|
import type { WithHashStorageMeta } from '@xyo-network/payload-model'
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
SignedHydratedTransaction,
|
|
6
|
-
SignedHydratedTransactionInstance,
|
|
7
|
-
} from '@xyo-network/xl1-protocol'
|
|
3
|
+
import type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol'
|
|
4
|
+
import type { SignatureInstance, SignedHydratedTransactionInstance } from '@xyo-network/xl1-protocol-sdk'
|
|
8
5
|
|
|
9
6
|
import { createSignatureWrappers } from '../lib/createSignatureWrappers.ts'
|
|
10
7
|
import { HydratedTransactionWrapper } from './HydratedTransaction.ts'
|
|
@@ -22,7 +19,7 @@ export class SignedHydratedTransactionWrapper<T extends SignedHydratedTransactio
|
|
|
22
19
|
}
|
|
23
20
|
|
|
24
21
|
static override async parse<T extends SignedHydratedTransaction>(transaction: T, validate = false):
|
|
25
|
-
|
|
22
|
+
Promise<SignedHydratedTransactionInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]>> {
|
|
26
23
|
const wrapper = new SignedHydratedTransactionWrapper<T>([
|
|
27
24
|
await PayloadBuilder.addStorageMeta(transaction[0]),
|
|
28
25
|
await PayloadBuilder.addStorageMeta(transaction[1]),
|
|
@@ -44,7 +41,7 @@ export class SignedHydratedTransactionWrapper<T extends SignedHydratedTransactio
|
|
|
44
41
|
}
|
|
45
42
|
|
|
46
43
|
protected override async parse(validate = false):
|
|
47
|
-
|
|
44
|
+
Promise<SignedHydratedTransactionInstance<[WithHashStorageMeta<T[0]>, WithHashStorageMeta<T[1][number]>[]]>> {
|
|
48
45
|
this._signatureCache = await createSignatureWrappers(this.data[0])
|
|
49
46
|
await super.parse(validate)
|
|
50
47
|
return this
|