@xyo-network/xl1-protocol-sdk 1.5.30 → 1.5.32
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 +4 -4
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/types/instances/block/BlockFields.d.ts +4 -0
- package/dist/types/instances/block/BlockFields.d.ts.map +1 -1
- package/dist/types/instances/block/HydratedBlock.d.ts +2 -1
- package/dist/types/instances/block/HydratedBlock.d.ts.map +1 -1
- package/dist/types/instances/block/index.d.ts +0 -1
- package/dist/types/instances/block/index.d.ts.map +1 -1
- package/dist/types/instances/transaction/HydratedTransaction.d.ts +2 -1
- package/dist/types/instances/transaction/HydratedTransaction.d.ts.map +1 -1
- package/dist/types/instances/transaction/TransactionFields.d.ts +2 -2
- package/dist/types/instances/transaction/TransactionFields.d.ts.map +1 -1
- package/dist/types/instances/transaction/index.d.ts +0 -1
- package/dist/types/instances/transaction/index.d.ts.map +1 -1
- package/dist/types/transaction/buildTransaction.d.ts +2 -2
- package/dist/types/transaction/buildTransaction.d.ts.map +1 -1
- package/dist/types/transaction/hydrateTransaction.d.ts +3 -3
- package/dist/types/transaction/hydrateTransaction.d.ts.map +1 -1
- package/dist/types/transaction/primitives/transactionElevatedPayloads.d.ts +2 -2
- package/dist/types/transaction/primitives/transactionElevatedPayloads.d.ts.map +1 -1
- package/dist/types/transaction/primitives/transactionRequiredGas.d.ts +2 -2
- package/dist/types/transaction/primitives/transactionRequiredGas.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/block/hydrateBlock.ts +4 -4
- package/src/instances/block/BlockFields.ts +8 -0
- package/src/instances/block/HydratedBlock.ts +2 -1
- package/src/instances/block/index.ts +0 -1
- package/src/instances/transaction/HydratedTransaction.ts +2 -1
- package/src/instances/transaction/TransactionFields.ts +4 -2
- package/src/instances/transaction/index.ts +0 -1
- package/src/transaction/buildTransaction.ts +2 -2
- package/src/transaction/hydrateTransaction.ts +7 -7
- package/src/transaction/primitives/transactionElevatedPayloads.ts +2 -2
- package/src/transaction/primitives/transactionRequiredGas.ts +2 -2
- package/dist/types/instances/block/SignedHydratedBlock.d.ts +0 -6
- package/dist/types/instances/block/SignedHydratedBlock.d.ts.map +0 -1
- package/dist/types/instances/transaction/SignedHydratedTransaction.d.ts +0 -6
- package/dist/types/instances/transaction/SignedHydratedTransaction.d.ts.map +0 -1
- package/src/instances/block/SignedHydratedBlock.ts +0 -6
- package/src/instances/transaction/SignedHydratedTransaction.ts +0 -8
package/dist/neutral/index.mjs
CHANGED
|
@@ -4,7 +4,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
4
4
|
// src/block/hydrateBlock.ts
|
|
5
5
|
import { filterAs } from "@xylabs/array";
|
|
6
6
|
import { assertEx } from "@xylabs/assert";
|
|
7
|
-
import {
|
|
7
|
+
import { asBlockBoundWitnessWithStorageMeta, asTransactionBoundWitnessWithStorageMeta, isTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
|
|
8
8
|
function allHashesPresent(hashes, payloads) {
|
|
9
9
|
const payloadHashes = new Set(payloads.map((p) => p._hash));
|
|
10
10
|
return hashes.every((hash) => payloadHashes.has(hash));
|
|
@@ -29,7 +29,7 @@ var hydrateBlock = /* @__PURE__ */ __name(async (archivist, hash, maxDepth = 1,
|
|
|
29
29
|
assertEx(maxDepth >= minDepth, () => "maxDepth must be greater than or equal to minDepth");
|
|
30
30
|
const bw = assertEx(filterAs(await archivist.get([
|
|
31
31
|
hash
|
|
32
|
-
]),
|
|
32
|
+
]), asBlockBoundWitnessWithStorageMeta).at(0), () => `block ${hash} not found`);
|
|
33
33
|
if (maxDepth === 0) return [
|
|
34
34
|
bw,
|
|
35
35
|
[]
|
|
@@ -40,7 +40,7 @@ var hydrateBlock = /* @__PURE__ */ __name(async (archivist, hash, maxDepth = 1,
|
|
|
40
40
|
bw,
|
|
41
41
|
blkPayloads
|
|
42
42
|
];
|
|
43
|
-
const transactions = filterAs(blkPayloads,
|
|
43
|
+
const transactions = filterAs(blkPayloads, asTransactionBoundWitnessWithStorageMeta);
|
|
44
44
|
const transactionsPayloadHashes = transactions.flatMap((tx) => tx.payload_hashes);
|
|
45
45
|
const transactionsPayloads = await archivist.get(transactionsPayloadHashes);
|
|
46
46
|
assertEx(allHashesPresent(transactionsPayloadHashes, transactionsPayloads), () => `Unable to find all payloads for transactions in block ${hash}`);
|
|
@@ -69,7 +69,7 @@ var flattenHydratedBlock = /* @__PURE__ */ __name((hydratedBlock) => {
|
|
|
69
69
|
}, "flattenHydratedBlock");
|
|
70
70
|
var flattenHydratedBlocks = /* @__PURE__ */ __name((hydratedBlocks) => hydratedBlocks.flatMap((blk) => flattenHydratedBlock(blk)), "flattenHydratedBlocks");
|
|
71
71
|
var transactionsFromHydratedBlock = /* @__PURE__ */ __name((block) => {
|
|
72
|
-
return filterAs(block[1],
|
|
72
|
+
return filterAs(block[1], asTransactionBoundWitnessWithStorageMeta);
|
|
73
73
|
}, "transactionsFromHydratedBlock");
|
|
74
74
|
var blockPayloadsFromHydratedBlock = /* @__PURE__ */ __name((block) => {
|
|
75
75
|
return block[0].payload_hashes.map((hash) => assertEx(block[1].find((p) => p._hash === hash), () => `missing payload ${hash}`)).filter((x) => !isTransactionBoundWitnessWithStorageMeta(x));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/block/hydrateBlock.ts","../../src/block/primitives/frames/stepHashFramesFromBlock.ts","../../src/transaction/buildTransaction.ts","../../src/transaction/hydrateTransaction.ts","../../src/transaction/primitives/transactionBlockByteCount.ts","../../src/transaction/primitives/transactionElevatedPayloads.ts","../../src/transaction/primitives/transactionOperations.ts","../../src/transaction/primitives/transactionRequiredGas.ts"],"sourcesContent":["import { filterAs } from '@xylabs/array'\nimport { assertEx } from '@xylabs/assert'\nimport type { Hash } from '@xylabs/hex'\nimport type { ReadArchivist } from '@xyo-network/archivist-model'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport type { HydratedBlock, TransactionBoundWitness } from '@xyo-network/xl1-protocol'\nimport {\n asOptionalBlockBoundWitnessWithStorageMeta, asOptionalTransactionBoundWitnessWithStorageMeta, isTransactionBoundWitnessWithStorageMeta,\n} from '@xyo-network/xl1-protocol'\n\nexport function allHashesPresent(hashes: Hash[], payloads: WithStorageMeta<Payload>[]): boolean {\n const payloadHashes = new Set(payloads.map(p => p._hash))\n return hashes.every(hash => payloadHashes.has(hash))\n}\n\nexport const tryHydrateBlock = async (\n archivist: ReadArchivist,\n hash: Hash,\n maxDepth: number = 1,\n minDepth?: number,\n): Promise<HydratedBlock | undefined> => {\n try {\n return await hydrateBlock(archivist, hash, maxDepth, minDepth)\n } catch (e) {\n if (e instanceof Error) {\n console.warn(`Failed to hydrate block ${hash}: ${e.message}`)\n } else {\n console.warn(`Failed to hydrate block ${hash}: ${e}`)\n }\n return undefined\n }\n}\n\nexport const hydrateBlock = async (\n archivist: ReadArchivist,\n hash: Hash,\n maxDepth: number = 1,\n minDepth?: number,\n): Promise<HydratedBlock> => {\n if (minDepth === undefined) minDepth = maxDepth\n assertEx(maxDepth >= 0, () => 'maxDepth must be greater than or equal to 0')\n assertEx(minDepth >= 0, () => 'minDepth must be greater than or equal to 0')\n assertEx(maxDepth >= minDepth, () => 'maxDepth must be greater than or equal to minDepth')\n const bw = assertEx(\n filterAs(await archivist.get([hash]), asOptionalBlockBoundWitnessWithStorageMeta).at(0),\n () => `block ${hash} not found`,\n )\n if (maxDepth === 0) return [bw, []]\n const blkPayloads = await archivist.get(bw.payload_hashes)\n if (minDepth === 1) assertEx(allHashesPresent(bw.payload_hashes, blkPayloads), () => `Unable to find all payloads for block ${hash}`)\n if (maxDepth === 1) return [bw, blkPayloads]\n const transactions = filterAs(blkPayloads, asOptionalTransactionBoundWitnessWithStorageMeta)\n const transactionsPayloadHashes = transactions.flatMap(tx => tx.payload_hashes)\n const transactionsPayloads = await archivist.get(transactionsPayloadHashes)\n assertEx(allHashesPresent(transactionsPayloadHashes, transactionsPayloads), () => `Unable to find all payloads for transactions in block ${hash}`)\n const allPayloadsHashes = new Set([...blkPayloads, ...transactionsPayloads].flatMap(p => p._hash))\n const allPayloads = await archivist.get([...allPayloadsHashes])\n const allPayloadsFiltered = allPayloads.filter(p => allPayloadsHashes.has(p._hash))\n if (maxDepth === 2) assertEx(allHashesPresent(\n [...allPayloadsHashes],\n allPayloadsFiltered,\n ), () => `Unable to find all payloads for transactions in block ${hash}`)\n return [bw, allPayloadsFiltered]\n}\n\nexport const flattenHydratedBlock = (hydratedBlock: HydratedBlock): WithStorageMeta<Payload>[] => {\n const [blk, blkPayloads] = hydratedBlock\n return [...blkPayloads, blk]\n}\n\nexport const flattenHydratedBlocks = (hydratedBlocks: HydratedBlock[]): WithStorageMeta<Payload>[] =>\n hydratedBlocks.flatMap(blk => flattenHydratedBlock(blk))\n\nexport const transactionsFromHydratedBlock = (block: HydratedBlock): WithStorageMeta<TransactionBoundWitness>[] => {\n return filterAs(block[1], asOptionalTransactionBoundWitnessWithStorageMeta)\n}\n\nexport const blockPayloadsFromHydratedBlock = (block: HydratedBlock): WithStorageMeta<Payload>[] => {\n return block[0].payload_hashes.map(hash => assertEx(\n block[1].find(p => p._hash === hash),\n () => `missing payload ${hash}`,\n )).filter(x => !isTransactionBoundWitnessWithStorageMeta(x))\n}\n","import { assertEx } from '@xylabs/assert'\nimport { type Hash, isHash } from '@xylabs/hex'\nimport { isDefined } from '@xylabs/typeof'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { isBlockBoundWitness, StepSizes } from '@xyo-network/xl1-protocol'\n\n// get the list of step frames for a block at a specific step size index\nexport async function stepHashFramesFromBlockAtSize(archivist: ArchivistInstance, head: Hash, sizeIndex: number) {\n if (!Number.isInteger(sizeIndex) || sizeIndex < 0 || sizeIndex >= StepSizes.length) {\n throw new Error(`Invalid sizeIndex: ${sizeIndex}`)\n }\n let currentHead = head\n const steps: [Hash, number, number][] = []\n while (isHash(currentHead)) {\n const [block] = await archivist.get([currentHead])\n if (!isBlockBoundWitness(block)) {\n throw new Error(`Block with hash ${currentHead} not found`)\n }\n let stepHash = block.step_hashes.at(sizeIndex)\n while (isDefined(stepHash)) {\n const [stepHashBlock] = await archivist.get([stepHash])\n if (!isBlockBoundWitness(stepHashBlock)) {\n throw new Error(`StepHashBlock with hash ${currentHead} not found`)\n }\n const [lastBlockInStep] = await archivist.get([assertEx(stepHashBlock.previous, () => 'StepHashBlock must have a previous block')])\n if (!isBlockBoundWitness(lastBlockInStep)) {\n throw new Error(`StepHashBlock with hash ${currentHead} not found`)\n }\n steps.push([stepHash, stepHashBlock.block - StepSizes[sizeIndex], stepHashBlock.block - 1])\n stepHash = lastBlockInStep.step_hashes.at(sizeIndex)\n }\n }\n return steps\n}\n\n// TODO: Figure out how to get ranges of smaller blocks for each available range\nexport async function stepHashFramesFromBlock(archivist: ArchivistInstance, head: Hash) {\n const [block] = await archivist.get([head])\n if (!isBlockBoundWitness(block)) {\n throw new Error(`Block with hash ${head} not found`)\n }\n let availableRanges: [number, number][] = [[0, block.block]]\n const foundRanges: [Hash, number, number][] = []\n // fit biggest to smallest\n for (let i = StepSizes.length - 1; i >= 0; i--) {\n const steps = await stepHashFramesFromBlockAtSize(archivist, head, i)\n for (let step of steps) {\n const [, start, end] = step\n if (availableRanges.some(range => range[0] <= start && range[1] >= end)) {\n foundRanges.push(step)\n availableRanges = availableRanges.flatMap((range) => {\n if (range[0] >= start && range[1] <= end) {\n // remove the range\n return [[range[0], start - 1]]\n } else if (range[0] < start && range[1] >= end) {\n // split the range\n return [[range[0], start - 1], [end + 1, range[1]]]\n } else if (range[0] < start && range[1] < end) {\n // adjust the end of the range\n return [[range[0], start - 1]]\n } else if (range[0] > start && range[1] > end) {\n // adjust the start of the range\n return [[end + 1, range[1]]]\n }\n // otherwise, return the range as is\n return [range]\n })\n }\n }\n }\n return foundRanges\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport { toHex } from '@xylabs/hex'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\nimport {\n type AllowedBlockPayload,\n defaultTransactionFees,\n type HydratedTransactionWithStorageMeta, type TransactionBoundWitness, type TransactionBoundWitnessFields, type TransactionFeesBigInt,\n} from '@xyo-network/xl1-protocol'\n\nexport async function buildTransaction(\n chain: Address,\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n signer: AccountInstance | AccountInstance[],\n nbf: number,\n exp: number,\n from?: Address,\n fees: TransactionFeesBigInt = defaultTransactionFees,\n): Promise<HydratedTransactionWithStorageMeta> {\n if (from === undefined && Array.isArray(signer)) {\n throw new Error('from is required when signer is an array')\n }\n\n const txBoundWitnessFields: TransactionBoundWitnessFields = {\n chain,\n fees: {\n base: toHex(fees.base),\n gasLimit: toHex(fees.gasLimit),\n gasPrice: toHex(fees.gasPrice),\n priority: toHex(fees.priority),\n },\n nbf,\n exp,\n }\n\n const elevatedHashes = await PayloadBuilder.hashes(elevatedPayloads)\n const script: string[] = []\n for (const elevatedHash of elevatedHashes) {\n script.push(`elevate|${elevatedHash}`)\n }\n\n const [tx, txPayloads] = await new BoundWitnessBuilder<TransactionBoundWitness>()\n .fields({\n ...txBoundWitnessFields,\n script,\n from: from ?? (Array.isArray(signer) ? assertEx(signer.at(0)?.address) : signer.address),\n })\n .meta({ $signatures: [] })\n .payloads([...elevatedPayloads, ...additionalPayloads])\n .signers(Array.isArray(signer) ? signer : [signer])\n .build()\n\n return [await PayloadBuilder.addStorageMeta(tx), await PayloadBuilder.addStorageMeta(txPayloads)]\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { Hash } from '@xylabs/hex'\nimport type { ReadArchivist } from '@xyo-network/archivist-model'\nimport { hydrateTypedBoundWitness, tryHydrateTypedBoundWitness } from '@xyo-network/archivist-model'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload,\n HydratedTransaction, HydratedTransactionWithStorageMeta, TransactionBoundWitness,\n} from '@xyo-network/xl1-protocol'\nimport { isAllowedBlockPayload, isTransactionBoundWitnessWithStorageMeta } from '@xyo-network/xl1-protocol'\n\nexport const tryHydrateTransaction = async (\n archivist: ReadArchivist,\n hash: Hash,\n): Promise<HydratedTransactionWithStorageMeta | undefined> => {\n return (await tryHydrateTypedBoundWitness<TransactionBoundWitness>(\n archivist,\n hash,\n isTransactionBoundWitnessWithStorageMeta,\n )) as HydratedTransactionWithStorageMeta | undefined\n}\n\nexport const hydrateTransaction = async (\n archivist: ReadArchivist,\n hash: Hash,\n): Promise<HydratedTransactionWithStorageMeta> => {\n return await hydrateTypedBoundWitness<TransactionBoundWitness>(\n archivist,\n hash,\n isTransactionBoundWitnessWithStorageMeta,\n ) as HydratedTransactionWithStorageMeta\n}\n\nexport const flattenHydratedTransaction = (hydratedTransaction: HydratedTransaction): Payload[] => {\n const [tx, txPayloads] = hydratedTransaction\n return [...txPayloads, tx]\n}\n\nexport const flattenHydratedTransactions = (hydratedTransactions: HydratedTransaction[]): Payload[] =>\n hydratedTransactions.flatMap(tx => flattenHydratedTransaction(tx))\n\nexport const tryHydrateElevatedTransaction = async (\n archivist: ReadArchivist,\n hash: Hash,\n): Promise<HydratedTransaction | undefined> => {\n const hydratedTransaction = await tryHydrateTransaction(archivist, hash)\n if (!hydratedTransaction) {\n return undefined\n }\n const [transaction, payloads] = hydratedTransaction\n const opCodes = (transaction.script ?? []).filter(operation => operation.startsWith('elevate|'))\n const elevatedPayloads: AllowedBlockPayload[] = []\n for (const opCode of opCodes) {\n const [code, hash] = opCode.split('|')\n if (code === 'elevated') {\n const elevatedPayload = payloads.find(payload => payload._hash === hash)\n if (isAllowedBlockPayload(elevatedPayload)) {\n elevatedPayloads.push(elevatedPayload)\n }\n }\n }\n if (opCodes.length === elevatedPayloads.length) {\n return [transaction, elevatedPayloads]\n }\n return undefined\n}\n\nexport const hydrateElevatedTransaction = async (\n archivist: ReadArchivist,\n hash: Hash,\n): Promise<HydratedTransaction> => {\n return assertEx(await tryHydrateElevatedTransaction(archivist, hash), () => 'Hydration failed')\n}\n","import { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { HydratedTransaction } from '@xyo-network/xl1-protocol'\n\n/** The number of bytes that a transaction and its payloads will take up in a block */\nexport function transactionBlockByteCount([transaction, payloads]: HydratedTransaction): number {\n const cleanTransaction = PayloadBuilder.omitStorageMeta(transaction)\n const transactionBytes = JSON.stringify(cleanTransaction).length\n const cleanPayloads = PayloadBuilder.omitStorageMeta(payloads)\n return cleanPayloads.reduce((acc: number, payload) => acc + JSON.stringify(payload).length, 0) + transactionBytes\n}\n","import { asHash, type Hash } from '@xylabs/hex'\nimport type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model'\nimport type { HydratedTransactionWithHashStorageMeta, TransactionBoundWitness } from '@xyo-network/xl1-protocol'\n\nimport { crackOperations } from './transactionOperations.ts'\n\nexport function transactionElevatedPayloadHashes(transaction: TransactionBoundWitness): Hash[] {\n const elevateOperations = crackOperations(transaction.script ?? []).filter(op => op[0] === 'elevate')\n return elevateOperations.map(op => asHash(op[1][0], true))\n}\n\nexport function transactionElevatedPayloads([transaction, payloads]: HydratedTransactionWithHashStorageMeta): WithHashStorageMeta<Payload>[] {\n const hashes = transactionElevatedPayloadHashes(transaction)\n const elevatedPayloads = payloads.filter(payload => hashes.includes(payload._hash))\n return elevatedPayloads\n}\n","export function crackOperation(operation: string): [string, string[]] {\n const parts = operation.split('|')\n if (parts.length < 2) {\n throw new Error(`Invalid operation format: ${operation}`)\n }\n return [parts[0], parts.slice(1)]\n}\n\nexport function crackOperations(operations: string[]): [string, string[]][] {\n return operations.map(op => crackOperation(op))\n}\n","import type { HydratedTransaction, HydratedTransactionWithHashStorageMeta } from '@xyo-network/xl1-protocol'\nimport { AttoXL1, TransactionGasCosts } from '@xyo-network/xl1-protocol'\n\nimport { transactionBlockByteCount } from './transactionBlockByteCount.ts'\nimport { transactionElevatedPayloads } from './transactionElevatedPayloads.ts'\n\n/** The required gas for the byte storage on the block chain for a transaction */\nexport function transactionBytesRequiredGas([transaction, payloads]: HydratedTransaction): AttoXL1 {\n const transactionBlockBytes = transactionBlockByteCount([transaction, payloads])\n return AttoXL1(TransactionGasCosts.characterStorage * BigInt(transactionBlockBytes))\n}\n\nexport function transactionRequiredGas(hydratedTransaction: HydratedTransactionWithHashStorageMeta): AttoXL1 {\n const elevatedPayloads = transactionElevatedPayloads(hydratedTransaction)\n const hashes = elevatedPayloads.length + 1 /* for transaction itself */\n const signatures = hydratedTransaction[0].addresses.length\n return AttoXL1(transactionBytesRequiredGas(hydratedTransaction)\n + TransactionGasCosts.hashValidation * BigInt(hashes)\n + TransactionGasCosts.signatureValidation * BigInt(signatures)\n + TransactionGasCosts.payloadValidation * BigInt(elevatedPayloads.length))\n}\n"],"mappings":";;;;AAAA,SAASA,gBAAgB;AACzB,SAASC,gBAAgB;AAKzB,SACEC,4CAA4CC,kDAAkDC,gDACzF;AAEA,SAASC,iBAAiBC,QAAgBC,UAAoC;AACnF,QAAMC,gBAAgB,IAAIC,IAAIF,SAASG,IAAIC,CAAAA,MAAKA,EAAEC,KAAK,CAAA;AACvD,SAAON,OAAOO,MAAMC,CAAAA,SAAQN,cAAcO,IAAID,IAAAA,CAAAA;AAChD;AAHgBT;AAKT,IAAMW,kBAAkB,8BAC7BC,WACAH,MACAI,WAAmB,GACnBC,aAAAA;AAEA,MAAI;AACF,WAAO,MAAMC,aAAaH,WAAWH,MAAMI,UAAUC,QAAAA;EACvD,SAASE,GAAG;AACV,QAAIA,aAAaC,OAAO;AACtBC,cAAQC,KAAK,2BAA2BV,IAAAA,KAASO,EAAEI,OAAO,EAAE;IAC9D,OAAO;AACLF,cAAQC,KAAK,2BAA2BV,IAAAA,KAASO,CAAAA,EAAG;IACtD;AACA,WAAOK;EACT;AACF,GAhB+B;AAkBxB,IAAMN,eAAe,8BAC1BH,WACAH,MACAI,WAAmB,GACnBC,aAAAA;AAEA,MAAIA,aAAaO,OAAWP,YAAWD;AACvCS,WAAST,YAAY,GAAG,MAAM,6CAAA;AAC9BS,WAASR,YAAY,GAAG,MAAM,6CAAA;AAC9BQ,WAAST,YAAYC,UAAU,MAAM,oDAAA;AACrC,QAAMS,KAAKD,SACTE,SAAS,MAAMZ,UAAUa,IAAI;IAAChB;GAAK,GAAGiB,0CAAAA,EAA4CC,GAAG,CAAA,GACrF,MAAM,SAASlB,IAAAA,YAAgB;AAEjC,MAAII,aAAa,EAAG,QAAO;IAACU;IAAI,CAAA;;AAChC,QAAMK,cAAc,MAAMhB,UAAUa,IAAIF,GAAGM,cAAc;AACzD,MAAIf,aAAa,EAAGQ,UAAStB,iBAAiBuB,GAAGM,gBAAgBD,WAAAA,GAAc,MAAM,yCAAyCnB,IAAAA,EAAM;AACpI,MAAII,aAAa,EAAG,QAAO;IAACU;IAAIK;;AAChC,QAAME,eAAeN,SAASI,aAAaG,gDAAAA;AAC3C,QAAMC,4BAA4BF,aAAaG,QAAQC,CAAAA,OAAMA,GAAGL,cAAc;AAC9E,QAAMM,uBAAuB,MAAMvB,UAAUa,IAAIO,yBAAAA;AACjDV,WAAStB,iBAAiBgC,2BAA2BG,oBAAAA,GAAuB,MAAM,yDAAyD1B,IAAAA,EAAM;AACjJ,QAAM2B,oBAAoB,IAAIhC,IAAI;OAAIwB;OAAgBO;IAAsBF,QAAQ3B,CAAAA,MAAKA,EAAEC,KAAK,CAAA;AAChG,QAAM8B,cAAc,MAAMzB,UAAUa,IAAI;OAAIW;GAAkB;AAC9D,QAAME,sBAAsBD,YAAYE,OAAOjC,CAAAA,MAAK8B,kBAAkB1B,IAAIJ,EAAEC,KAAK,CAAA;AACjF,MAAIM,aAAa,EAAGS,UAAStB,iBAC3B;OAAIoC;KACJE,mBAAAA,GACC,MAAM,yDAAyD7B,IAAAA,EAAM;AACxE,SAAO;IAACc;IAAIe;;AACd,GA9B4B;AAgCrB,IAAME,uBAAuB,wBAACC,kBAAAA;AACnC,QAAM,CAACC,KAAKd,WAAAA,IAAea;AAC3B,SAAO;OAAIb;IAAac;;AAC1B,GAHoC;AAK7B,IAAMC,wBAAwB,wBAACC,mBACpCA,eAAeX,QAAQS,CAAAA,QAAOF,qBAAqBE,GAAAA,CAAAA,GADhB;AAG9B,IAAMG,gCAAgC,wBAACC,UAAAA;AAC5C,SAAOtB,SAASsB,MAAM,CAAA,GAAIf,gDAAAA;AAC5B,GAF6C;AAItC,IAAMgB,iCAAiC,wBAACD,UAAAA;AAC7C,SAAOA,MAAM,CAAA,EAAGjB,eAAexB,IAAII,CAAAA,SAAQa,SACzCwB,MAAM,CAAA,EAAGE,KAAK1C,CAAAA,MAAKA,EAAEC,UAAUE,IAAAA,GAC/B,MAAM,mBAAmBA,IAAAA,EAAM,CAAA,EAC9B8B,OAAOU,CAAAA,MAAK,CAACC,yCAAyCD,CAAAA,CAAAA;AAC3D,GAL8C;;;AC7E9C,SAASE,YAAAA,iBAAgB;AACzB,SAAoBC,cAAc;AAClC,SAASC,iBAAiB;AAE1B,SAASC,qBAAqBC,iBAAiB;AAG/C,eAAsBC,8BAA8BC,WAA8BC,MAAYC,WAAiB;AAC7G,MAAI,CAACC,OAAOC,UAAUF,SAAAA,KAAcA,YAAY,KAAKA,aAAaG,UAAUC,QAAQ;AAClF,UAAM,IAAIC,MAAM,sBAAsBL,SAAAA,EAAW;EACnD;AACA,MAAIM,cAAcP;AAClB,QAAMQ,QAAkC,CAAA;AACxC,SAAOC,OAAOF,WAAAA,GAAc;AAC1B,UAAM,CAACG,KAAAA,IAAS,MAAMX,UAAUY,IAAI;MAACJ;KAAY;AACjD,QAAI,CAACK,oBAAoBF,KAAAA,GAAQ;AAC/B,YAAM,IAAIJ,MAAM,mBAAmBC,WAAAA,YAAuB;IAC5D;AACA,QAAIM,WAAWH,MAAMI,YAAYC,GAAGd,SAAAA;AACpC,WAAOe,UAAUH,QAAAA,GAAW;AAC1B,YAAM,CAACI,aAAAA,IAAiB,MAAMlB,UAAUY,IAAI;QAACE;OAAS;AACtD,UAAI,CAACD,oBAAoBK,aAAAA,GAAgB;AACvC,cAAM,IAAIX,MAAM,2BAA2BC,WAAAA,YAAuB;MACpE;AACA,YAAM,CAACW,eAAAA,IAAmB,MAAMnB,UAAUY,IAAI;QAACQ,UAASF,cAAcG,UAAU,MAAM,0CAAA;OAA4C;AAClI,UAAI,CAACR,oBAAoBM,eAAAA,GAAkB;AACzC,cAAM,IAAIZ,MAAM,2BAA2BC,WAAAA,YAAuB;MACpE;AACAC,YAAMa,KAAK;QAACR;QAAUI,cAAcP,QAAQN,UAAUH,SAAAA;QAAYgB,cAAcP,QAAQ;OAAE;AAC1FG,iBAAWK,gBAAgBJ,YAAYC,GAAGd,SAAAA;IAC5C;EACF;AACA,SAAOO;AACT;AA1BsBV;AA6BtB,eAAsBwB,wBAAwBvB,WAA8BC,MAAU;AACpF,QAAM,CAACU,KAAAA,IAAS,MAAMX,UAAUY,IAAI;IAACX;GAAK;AAC1C,MAAI,CAACY,oBAAoBF,KAAAA,GAAQ;AAC/B,UAAM,IAAIJ,MAAM,mBAAmBN,IAAAA,YAAgB;EACrD;AACA,MAAIuB,kBAAsC;IAAC;MAAC;MAAGb,MAAMA;;;AACrD,QAAMc,cAAwC,CAAA;AAE9C,WAASC,IAAIrB,UAAUC,SAAS,GAAGoB,KAAK,GAAGA,KAAK;AAC9C,UAAMjB,QAAQ,MAAMV,8BAA8BC,WAAWC,MAAMyB,CAAAA;AACnE,aAASC,QAAQlB,OAAO;AACtB,YAAM,CAAA,EAAGmB,OAAOC,GAAAA,IAAOF;AACvB,UAAIH,gBAAgBM,KAAKC,CAAAA,UAASA,MAAM,CAAA,KAAMH,SAASG,MAAM,CAAA,KAAMF,GAAAA,GAAM;AACvEJ,oBAAYH,KAAKK,IAAAA;AACjBH,0BAAkBA,gBAAgBQ,QAAQ,CAACD,UAAAA;AACzC,cAAIA,MAAM,CAAA,KAAMH,SAASG,MAAM,CAAA,KAAMF,KAAK;AAExC,mBAAO;cAAC;gBAACE,MAAM,CAAA;gBAAIH,QAAQ;;;UAC7B,WAAWG,MAAM,CAAA,IAAKH,SAASG,MAAM,CAAA,KAAMF,KAAK;AAE9C,mBAAO;cAAC;gBAACE,MAAM,CAAA;gBAAIH,QAAQ;;cAAI;gBAACC,MAAM;gBAAGE,MAAM,CAAA;;;UACjD,WAAWA,MAAM,CAAA,IAAKH,SAASG,MAAM,CAAA,IAAKF,KAAK;AAE7C,mBAAO;cAAC;gBAACE,MAAM,CAAA;gBAAIH,QAAQ;;;UAC7B,WAAWG,MAAM,CAAA,IAAKH,SAASG,MAAM,CAAA,IAAKF,KAAK;AAE7C,mBAAO;cAAC;gBAACA,MAAM;gBAAGE,MAAM,CAAA;;;UAC1B;AAEA,iBAAO;YAACA;;QACV,CAAA;MACF;IACF;EACF;AACA,SAAON;AACT;AAnCsBF;;;ACpCtB,SAASU,YAAAA,iBAAgB;AAEzB,SAASC,aAAa;AAEtB,SAASC,2BAA2B;AACpC,SAASC,sBAAsB;AAE/B,SAEEC,8BAEK;AAEP,eAAsBC,iBACpBC,OACAC,kBACAC,oBACAC,QACAC,KACAC,KACAC,MACAC,OAA8BC,wBAAsB;AAEpD,MAAIF,SAASG,UAAaC,MAAMC,QAAQR,MAAAA,GAAS;AAC/C,UAAM,IAAIS,MAAM,0CAAA;EAClB;AAEA,QAAMC,uBAAsD;IAC1Db;IACAO,MAAM;MACJO,MAAMC,MAAMR,KAAKO,IAAI;MACrBE,UAAUD,MAAMR,KAAKS,QAAQ;MAC7BC,UAAUF,MAAMR,KAAKU,QAAQ;MAC7BC,UAAUH,MAAMR,KAAKW,QAAQ;IAC/B;IACAd;IACAC;EACF;AAEA,QAAMc,iBAAiB,MAAMC,eAAeC,OAAOpB,gBAAAA;AACnD,QAAMqB,SAAmB,CAAA;AACzB,aAAWC,gBAAgBJ,gBAAgB;AACzCG,WAAOE,KAAK,WAAWD,YAAAA,EAAc;EACvC;AAEA,QAAM,CAACE,IAAIC,UAAAA,IAAc,MAAM,IAAIC,oBAAAA,EAChCC,OAAO;IACN,GAAGf;IACHS;IACAhB,MAAMA,SAASI,MAAMC,QAAQR,MAAAA,IAAU0B,UAAS1B,OAAO2B,GAAG,CAAA,GAAIC,OAAAA,IAAW5B,OAAO4B;EAClF,CAAA,EACCC,KAAK;IAAEC,aAAa,CAAA;EAAG,CAAA,EACvBC,SAAS;OAAIjC;OAAqBC;GAAmB,EACrDiC,QAAQzB,MAAMC,QAAQR,MAAAA,IAAUA,SAAS;IAACA;GAAO,EACjDiC,MAAK;AAER,SAAO;IAAC,MAAMhB,eAAeiB,eAAeZ,EAAAA;IAAK,MAAML,eAAeiB,eAAeX,UAAAA;;AACvF;AA5CsB3B;;;ACbtB,SAASuC,YAAAA,iBAAgB;AAGzB,SAASC,0BAA0BC,mCAAmC;AAMtE,SAASC,uBAAuBC,4CAAAA,iDAAgD;AAEzE,IAAMC,wBAAwB,8BACnCC,WACAC,SAAAA;AAEA,SAAQ,MAAMC,4BACZF,WACAC,MACAE,yCAAAA;AAEJ,GATqC;AAW9B,IAAMC,qBAAqB,8BAChCJ,WACAC,SAAAA;AAEA,SAAO,MAAMI,yBACXL,WACAC,MACAE,yCAAAA;AAEJ,GATkC;AAW3B,IAAMG,6BAA6B,wBAACC,wBAAAA;AACzC,QAAM,CAACC,IAAIC,UAAAA,IAAcF;AACzB,SAAO;OAAIE;IAAYD;;AACzB,GAH0C;AAKnC,IAAME,8BAA8B,wBAACC,yBAC1CA,qBAAqBC,QAAQJ,CAAAA,OAAMF,2BAA2BE,EAAAA,CAAAA,GADrB;AAGpC,IAAMK,gCAAgC,8BAC3Cb,WACAC,SAAAA;AAEA,QAAMM,sBAAsB,MAAMR,sBAAsBC,WAAWC,IAAAA;AACnE,MAAI,CAACM,qBAAqB;AACxB,WAAOO;EACT;AACA,QAAM,CAACC,aAAaC,QAAAA,IAAYT;AAChC,QAAMU,WAAWF,YAAYG,UAAU,CAAA,GAAIC,OAAOC,CAAAA,cAAaA,UAAUC,WAAW,UAAA,CAAA;AACpF,QAAMC,mBAA0C,CAAA;AAChD,aAAWC,UAAUN,SAAS;AAC5B,UAAM,CAACO,MAAMvB,KAAAA,IAAQsB,OAAOE,MAAM,GAAA;AAClC,QAAID,SAAS,YAAY;AACvB,YAAME,kBAAkBV,SAASW,KAAKC,CAAAA,YAAWA,QAAQC,UAAU5B,KAAAA;AACnE,UAAI6B,sBAAsBJ,eAAAA,GAAkB;AAC1CJ,yBAAiBS,KAAKL,eAAAA;MACxB;IACF;EACF;AACA,MAAIT,QAAQe,WAAWV,iBAAiBU,QAAQ;AAC9C,WAAO;MAACjB;MAAaO;;EACvB;AACA,SAAOR;AACT,GAxB6C;AA0BtC,IAAMmB,6BAA6B,8BACxCjC,WACAC,SAAAA;AAEA,SAAOiC,UAAS,MAAMrB,8BAA8Bb,WAAWC,IAAAA,GAAO,MAAM,kBAAA;AAC9E,GAL0C;;;ACnE1C,SAASkC,kBAAAA,uBAAsB;AAIxB,SAASC,0BAA0B,CAACC,aAAaC,QAAAA,GAA8B;AACpF,QAAMC,mBAAmBC,gBAAeC,gBAAgBJ,WAAAA;AACxD,QAAMK,mBAAmBC,KAAKC,UAAUL,gBAAAA,EAAkBM;AAC1D,QAAMC,gBAAgBN,gBAAeC,gBAAgBH,QAAAA;AACrD,SAAOQ,cAAcC,OAAO,CAACC,KAAaC,YAAYD,MAAML,KAAKC,UAAUK,OAAAA,EAASJ,QAAQ,CAAA,IAAKH;AACnG;AALgBN;;;ACJhB,SAASc,cAAyB;;;ACA3B,SAASC,eAAeC,WAAiB;AAC9C,QAAMC,QAAQD,UAAUE,MAAM,GAAA;AAC9B,MAAID,MAAME,SAAS,GAAG;AACpB,UAAM,IAAIC,MAAM,6BAA6BJ,SAAAA,EAAW;EAC1D;AACA,SAAO;IAACC,MAAM,CAAA;IAAIA,MAAMI,MAAM,CAAA;;AAChC;AANgBN;AAQT,SAASO,gBAAgBC,YAAoB;AAClD,SAAOA,WAAWC,IAAIC,CAAAA,OAAMV,eAAeU,EAAAA,CAAAA;AAC7C;AAFgBH;;;ADFT,SAASI,iCAAiCC,aAAoC;AACnF,QAAMC,oBAAoBC,gBAAgBF,YAAYG,UAAU,CAAA,CAAE,EAAEC,OAAOC,CAAAA,OAAMA,GAAG,CAAA,MAAO,SAAA;AAC3F,SAAOJ,kBAAkBK,IAAID,CAAAA,OAAME,OAAOF,GAAG,CAAA,EAAG,CAAA,GAAI,IAAA,CAAA;AACtD;AAHgBN;AAKT,SAASS,4BAA4B,CAACR,aAAaS,QAAAA,GAAiD;AACzG,QAAMC,SAASX,iCAAiCC,WAAAA;AAChD,QAAMW,mBAAmBF,SAASL,OAAOQ,CAAAA,YAAWF,OAAOG,SAASD,QAAQE,KAAK,CAAA;AACjF,SAAOH;AACT;AAJgBH;;;AEVhB,SAASO,SAASC,2BAA2B;AAMtC,SAASC,4BAA4B,CAACC,aAAaC,QAAAA,GAA8B;AACtF,QAAMC,wBAAwBC,0BAA0B;IAACH;IAAaC;GAAS;AAC/E,SAAOG,QAAQC,oBAAoBC,mBAAmBC,OAAOL,qBAAAA,CAAAA;AAC/D;AAHgBH;AAKT,SAASS,uBAAuBC,qBAA2D;AAChG,QAAMC,mBAAmBC,4BAA4BF,mBAAAA;AACrD,QAAMG,SAASF,iBAAiBG,SAAS;AACzC,QAAMC,aAAaL,oBAAoB,CAAA,EAAGM,UAAUF;AACpD,SAAOT,QAAQL,4BAA4BU,mBAAAA,IACvCJ,oBAAoBW,iBAAiBT,OAAOK,MAAAA,IAC5CP,oBAAoBY,sBAAsBV,OAAOO,UAAAA,IACjDT,oBAAoBa,oBAAoBX,OAAOG,iBAAiBG,MAAM,CAAA;AAC5E;AARgBL;","names":["filterAs","assertEx","asOptionalBlockBoundWitnessWithStorageMeta","asOptionalTransactionBoundWitnessWithStorageMeta","isTransactionBoundWitnessWithStorageMeta","allHashesPresent","hashes","payloads","payloadHashes","Set","map","p","_hash","every","hash","has","tryHydrateBlock","archivist","maxDepth","minDepth","hydrateBlock","e","Error","console","warn","message","undefined","assertEx","bw","filterAs","get","asOptionalBlockBoundWitnessWithStorageMeta","at","blkPayloads","payload_hashes","transactions","asOptionalTransactionBoundWitnessWithStorageMeta","transactionsPayloadHashes","flatMap","tx","transactionsPayloads","allPayloadsHashes","allPayloads","allPayloadsFiltered","filter","flattenHydratedBlock","hydratedBlock","blk","flattenHydratedBlocks","hydratedBlocks","transactionsFromHydratedBlock","block","blockPayloadsFromHydratedBlock","find","x","isTransactionBoundWitnessWithStorageMeta","assertEx","isHash","isDefined","isBlockBoundWitness","StepSizes","stepHashFramesFromBlockAtSize","archivist","head","sizeIndex","Number","isInteger","StepSizes","length","Error","currentHead","steps","isHash","block","get","isBlockBoundWitness","stepHash","step_hashes","at","isDefined","stepHashBlock","lastBlockInStep","assertEx","previous","push","stepHashFramesFromBlock","availableRanges","foundRanges","i","step","start","end","some","range","flatMap","assertEx","toHex","BoundWitnessBuilder","PayloadBuilder","defaultTransactionFees","buildTransaction","chain","elevatedPayloads","additionalPayloads","signer","nbf","exp","from","fees","defaultTransactionFees","undefined","Array","isArray","Error","txBoundWitnessFields","base","toHex","gasLimit","gasPrice","priority","elevatedHashes","PayloadBuilder","hashes","script","elevatedHash","push","tx","txPayloads","BoundWitnessBuilder","fields","assertEx","at","address","meta","$signatures","payloads","signers","build","addStorageMeta","assertEx","hydrateTypedBoundWitness","tryHydrateTypedBoundWitness","isAllowedBlockPayload","isTransactionBoundWitnessWithStorageMeta","tryHydrateTransaction","archivist","hash","tryHydrateTypedBoundWitness","isTransactionBoundWitnessWithStorageMeta","hydrateTransaction","hydrateTypedBoundWitness","flattenHydratedTransaction","hydratedTransaction","tx","txPayloads","flattenHydratedTransactions","hydratedTransactions","flatMap","tryHydrateElevatedTransaction","undefined","transaction","payloads","opCodes","script","filter","operation","startsWith","elevatedPayloads","opCode","code","split","elevatedPayload","find","payload","_hash","isAllowedBlockPayload","push","length","hydrateElevatedTransaction","assertEx","PayloadBuilder","transactionBlockByteCount","transaction","payloads","cleanTransaction","PayloadBuilder","omitStorageMeta","transactionBytes","JSON","stringify","length","cleanPayloads","reduce","acc","payload","asHash","crackOperation","operation","parts","split","length","Error","slice","crackOperations","operations","map","op","transactionElevatedPayloadHashes","transaction","elevateOperations","crackOperations","script","filter","op","map","asHash","transactionElevatedPayloads","payloads","hashes","elevatedPayloads","payload","includes","_hash","AttoXL1","TransactionGasCosts","transactionBytesRequiredGas","transaction","payloads","transactionBlockBytes","transactionBlockByteCount","AttoXL1","TransactionGasCosts","characterStorage","BigInt","transactionRequiredGas","hydratedTransaction","elevatedPayloads","transactionElevatedPayloads","hashes","length","signatures","addresses","hashValidation","signatureValidation","payloadValidation"]}
|
|
1
|
+
{"version":3,"sources":["../../src/block/hydrateBlock.ts","../../src/block/primitives/frames/stepHashFramesFromBlock.ts","../../src/transaction/buildTransaction.ts","../../src/transaction/hydrateTransaction.ts","../../src/transaction/primitives/transactionBlockByteCount.ts","../../src/transaction/primitives/transactionElevatedPayloads.ts","../../src/transaction/primitives/transactionOperations.ts","../../src/transaction/primitives/transactionRequiredGas.ts"],"sourcesContent":["import { filterAs } from '@xylabs/array'\nimport { assertEx } from '@xylabs/assert'\nimport type { Hash } from '@xylabs/hex'\nimport type { ReadArchivist } from '@xyo-network/archivist-model'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport type { HydratedBlock, TransactionBoundWitness } from '@xyo-network/xl1-protocol'\nimport {\n asBlockBoundWitnessWithStorageMeta, asTransactionBoundWitnessWithStorageMeta, isTransactionBoundWitnessWithStorageMeta,\n} from '@xyo-network/xl1-protocol'\n\nexport function allHashesPresent(hashes: Hash[], payloads: WithStorageMeta<Payload>[]): boolean {\n const payloadHashes = new Set(payloads.map(p => p._hash))\n return hashes.every(hash => payloadHashes.has(hash))\n}\n\nexport const tryHydrateBlock = async (\n archivist: ReadArchivist,\n hash: Hash,\n maxDepth: number = 1,\n minDepth?: number,\n): Promise<HydratedBlock | undefined> => {\n try {\n return await hydrateBlock(archivist, hash, maxDepth, minDepth)\n } catch (e) {\n if (e instanceof Error) {\n console.warn(`Failed to hydrate block ${hash}: ${e.message}`)\n } else {\n console.warn(`Failed to hydrate block ${hash}: ${e}`)\n }\n return undefined\n }\n}\n\nexport const hydrateBlock = async (\n archivist: ReadArchivist,\n hash: Hash,\n maxDepth: number = 1,\n minDepth?: number,\n): Promise<HydratedBlock> => {\n if (minDepth === undefined) minDepth = maxDepth\n assertEx(maxDepth >= 0, () => 'maxDepth must be greater than or equal to 0')\n assertEx(minDepth >= 0, () => 'minDepth must be greater than or equal to 0')\n assertEx(maxDepth >= minDepth, () => 'maxDepth must be greater than or equal to minDepth')\n const bw = assertEx(\n filterAs(await archivist.get([hash]), asBlockBoundWitnessWithStorageMeta).at(0),\n () => `block ${hash} not found`,\n )\n if (maxDepth === 0) return [bw, []]\n const blkPayloads = await archivist.get(bw.payload_hashes)\n if (minDepth === 1) assertEx(allHashesPresent(bw.payload_hashes, blkPayloads), () => `Unable to find all payloads for block ${hash}`)\n if (maxDepth === 1) return [bw, blkPayloads]\n const transactions = filterAs(blkPayloads, asTransactionBoundWitnessWithStorageMeta)\n const transactionsPayloadHashes = transactions.flatMap(tx => tx.payload_hashes)\n const transactionsPayloads = await archivist.get(transactionsPayloadHashes)\n assertEx(allHashesPresent(transactionsPayloadHashes, transactionsPayloads), () => `Unable to find all payloads for transactions in block ${hash}`)\n const allPayloadsHashes = new Set([...blkPayloads, ...transactionsPayloads].flatMap(p => p._hash))\n const allPayloads = await archivist.get([...allPayloadsHashes])\n const allPayloadsFiltered = allPayloads.filter(p => allPayloadsHashes.has(p._hash))\n if (maxDepth === 2) assertEx(allHashesPresent(\n [...allPayloadsHashes],\n allPayloadsFiltered,\n ), () => `Unable to find all payloads for transactions in block ${hash}`)\n return [bw, allPayloadsFiltered]\n}\n\nexport const flattenHydratedBlock = (hydratedBlock: HydratedBlock): WithStorageMeta<Payload>[] => {\n const [blk, blkPayloads] = hydratedBlock\n return [...blkPayloads, blk]\n}\n\nexport const flattenHydratedBlocks = (hydratedBlocks: HydratedBlock[]): WithStorageMeta<Payload>[] =>\n hydratedBlocks.flatMap(blk => flattenHydratedBlock(blk))\n\nexport const transactionsFromHydratedBlock = (block: HydratedBlock): WithStorageMeta<TransactionBoundWitness>[] => {\n return filterAs(block[1], asTransactionBoundWitnessWithStorageMeta)\n}\n\nexport const blockPayloadsFromHydratedBlock = (block: HydratedBlock): WithStorageMeta<Payload>[] => {\n return block[0].payload_hashes.map(hash => assertEx(\n block[1].find(p => p._hash === hash),\n () => `missing payload ${hash}`,\n )).filter(x => !isTransactionBoundWitnessWithStorageMeta(x))\n}\n","import { assertEx } from '@xylabs/assert'\nimport { type Hash, isHash } from '@xylabs/hex'\nimport { isDefined } from '@xylabs/typeof'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { isBlockBoundWitness, StepSizes } from '@xyo-network/xl1-protocol'\n\n// get the list of step frames for a block at a specific step size index\nexport async function stepHashFramesFromBlockAtSize(archivist: ArchivistInstance, head: Hash, sizeIndex: number) {\n if (!Number.isInteger(sizeIndex) || sizeIndex < 0 || sizeIndex >= StepSizes.length) {\n throw new Error(`Invalid sizeIndex: ${sizeIndex}`)\n }\n let currentHead = head\n const steps: [Hash, number, number][] = []\n while (isHash(currentHead)) {\n const [block] = await archivist.get([currentHead])\n if (!isBlockBoundWitness(block)) {\n throw new Error(`Block with hash ${currentHead} not found`)\n }\n let stepHash = block.step_hashes.at(sizeIndex)\n while (isDefined(stepHash)) {\n const [stepHashBlock] = await archivist.get([stepHash])\n if (!isBlockBoundWitness(stepHashBlock)) {\n throw new Error(`StepHashBlock with hash ${currentHead} not found`)\n }\n const [lastBlockInStep] = await archivist.get([assertEx(stepHashBlock.previous, () => 'StepHashBlock must have a previous block')])\n if (!isBlockBoundWitness(lastBlockInStep)) {\n throw new Error(`StepHashBlock with hash ${currentHead} not found`)\n }\n steps.push([stepHash, stepHashBlock.block - StepSizes[sizeIndex], stepHashBlock.block - 1])\n stepHash = lastBlockInStep.step_hashes.at(sizeIndex)\n }\n }\n return steps\n}\n\n// TODO: Figure out how to get ranges of smaller blocks for each available range\nexport async function stepHashFramesFromBlock(archivist: ArchivistInstance, head: Hash) {\n const [block] = await archivist.get([head])\n if (!isBlockBoundWitness(block)) {\n throw new Error(`Block with hash ${head} not found`)\n }\n let availableRanges: [number, number][] = [[0, block.block]]\n const foundRanges: [Hash, number, number][] = []\n // fit biggest to smallest\n for (let i = StepSizes.length - 1; i >= 0; i--) {\n const steps = await stepHashFramesFromBlockAtSize(archivist, head, i)\n for (let step of steps) {\n const [, start, end] = step\n if (availableRanges.some(range => range[0] <= start && range[1] >= end)) {\n foundRanges.push(step)\n availableRanges = availableRanges.flatMap((range) => {\n if (range[0] >= start && range[1] <= end) {\n // remove the range\n return [[range[0], start - 1]]\n } else if (range[0] < start && range[1] >= end) {\n // split the range\n return [[range[0], start - 1], [end + 1, range[1]]]\n } else if (range[0] < start && range[1] < end) {\n // adjust the end of the range\n return [[range[0], start - 1]]\n } else if (range[0] > start && range[1] > end) {\n // adjust the start of the range\n return [[end + 1, range[1]]]\n }\n // otherwise, return the range as is\n return [range]\n })\n }\n }\n }\n return foundRanges\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport { toHex } from '@xylabs/hex'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\nimport {\n type AllowedBlockPayload,\n defaultTransactionFees,\n type HydratedTransaction, type TransactionBoundWitness, type TransactionBoundWitnessFields, type TransactionFeesBigInt,\n} from '@xyo-network/xl1-protocol'\n\nexport async function buildTransaction(\n chain: Address,\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n signer: AccountInstance | AccountInstance[],\n nbf: number,\n exp: number,\n from?: Address,\n fees: TransactionFeesBigInt = defaultTransactionFees,\n): Promise<HydratedTransaction> {\n if (from === undefined && Array.isArray(signer)) {\n throw new Error('from is required when signer is an array')\n }\n\n const txBoundWitnessFields: TransactionBoundWitnessFields = {\n chain,\n fees: {\n base: toHex(fees.base),\n gasLimit: toHex(fees.gasLimit),\n gasPrice: toHex(fees.gasPrice),\n priority: toHex(fees.priority),\n },\n nbf,\n exp,\n }\n\n const elevatedHashes = await PayloadBuilder.hashes(elevatedPayloads)\n const script: string[] = []\n for (const elevatedHash of elevatedHashes) {\n script.push(`elevate|${elevatedHash}`)\n }\n\n const [tx, txPayloads] = await new BoundWitnessBuilder<TransactionBoundWitness>()\n .fields({\n ...txBoundWitnessFields,\n script,\n from: from ?? (Array.isArray(signer) ? assertEx(signer.at(0)?.address) : signer.address),\n })\n .meta({ $signatures: [] })\n .payloads([...elevatedPayloads, ...additionalPayloads])\n .signers(Array.isArray(signer) ? signer : [signer])\n .build()\n\n return [await PayloadBuilder.addStorageMeta(tx), await PayloadBuilder.addStorageMeta(txPayloads)]\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { Hash } from '@xylabs/hex'\nimport type { ReadArchivist } from '@xyo-network/archivist-model'\nimport { hydrateTypedBoundWitness, tryHydrateTypedBoundWitness } from '@xyo-network/archivist-model'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload,\n HydratedTransaction, TransactionBoundWitness,\n} from '@xyo-network/xl1-protocol'\nimport { isAllowedBlockPayload, isTransactionBoundWitnessWithStorageMeta } from '@xyo-network/xl1-protocol'\n\nexport const tryHydrateTransaction = async (\n archivist: ReadArchivist,\n hash: Hash,\n): Promise<HydratedTransaction | undefined> => {\n return (await tryHydrateTypedBoundWitness<TransactionBoundWitness>(\n archivist,\n hash,\n isTransactionBoundWitnessWithStorageMeta,\n )) as HydratedTransaction | undefined\n}\n\nexport const hydrateTransaction = async (\n archivist: ReadArchivist,\n hash: Hash,\n): Promise<HydratedTransaction> => {\n return await hydrateTypedBoundWitness<TransactionBoundWitness>(\n archivist,\n hash,\n isTransactionBoundWitnessWithStorageMeta,\n ) as HydratedTransaction\n}\n\nexport const flattenHydratedTransaction = (hydratedTransaction: HydratedTransaction): Payload[] => {\n const [tx, txPayloads] = hydratedTransaction\n return [...txPayloads, tx]\n}\n\nexport const flattenHydratedTransactions = (hydratedTransactions: HydratedTransaction[]): Payload[] =>\n hydratedTransactions.flatMap(tx => flattenHydratedTransaction(tx))\n\nexport const tryHydrateElevatedTransaction = async (\n archivist: ReadArchivist,\n hash: Hash,\n): Promise<HydratedTransaction | undefined> => {\n const hydratedTransaction = await tryHydrateTransaction(archivist, hash)\n if (!hydratedTransaction) {\n return undefined\n }\n const [transaction, payloads] = hydratedTransaction\n const opCodes = (transaction.script ?? []).filter(operation => operation.startsWith('elevate|'))\n const elevatedPayloads: WithStorageMeta<AllowedBlockPayload>[] = []\n for (const opCode of opCodes) {\n const [code, hash] = opCode.split('|')\n if (code === 'elevated') {\n const elevatedPayload = payloads.find(payload => payload._hash === hash)\n if (isAllowedBlockPayload(elevatedPayload)) {\n elevatedPayloads.push(elevatedPayload)\n }\n }\n }\n if (opCodes.length === elevatedPayloads.length) {\n return [transaction, elevatedPayloads]\n }\n return undefined\n}\n\nexport const hydrateElevatedTransaction = async (\n archivist: ReadArchivist,\n hash: Hash,\n): Promise<HydratedTransaction> => {\n return assertEx(await tryHydrateElevatedTransaction(archivist, hash), () => 'Hydration failed')\n}\n","import { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { HydratedTransaction } from '@xyo-network/xl1-protocol'\n\n/** The number of bytes that a transaction and its payloads will take up in a block */\nexport function transactionBlockByteCount([transaction, payloads]: HydratedTransaction): number {\n const cleanTransaction = PayloadBuilder.omitStorageMeta(transaction)\n const transactionBytes = JSON.stringify(cleanTransaction).length\n const cleanPayloads = PayloadBuilder.omitStorageMeta(payloads)\n return cleanPayloads.reduce((acc: number, payload) => acc + JSON.stringify(payload).length, 0) + transactionBytes\n}\n","import { asHash, type Hash } from '@xylabs/hex'\nimport type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model'\nimport type { HydratedTransaction, TransactionBoundWitness } from '@xyo-network/xl1-protocol'\n\nimport { crackOperations } from './transactionOperations.ts'\n\nexport function transactionElevatedPayloadHashes(transaction: TransactionBoundWitness): Hash[] {\n const elevateOperations = crackOperations(transaction.script ?? []).filter(op => op[0] === 'elevate')\n return elevateOperations.map(op => asHash(op[1][0], true))\n}\n\nexport function transactionElevatedPayloads([transaction, payloads]: HydratedTransaction): WithHashStorageMeta<Payload>[] {\n const hashes = transactionElevatedPayloadHashes(transaction)\n const elevatedPayloads = payloads.filter(payload => hashes.includes(payload._hash))\n return elevatedPayloads\n}\n","export function crackOperation(operation: string): [string, string[]] {\n const parts = operation.split('|')\n if (parts.length < 2) {\n throw new Error(`Invalid operation format: ${operation}`)\n }\n return [parts[0], parts.slice(1)]\n}\n\nexport function crackOperations(operations: string[]): [string, string[]][] {\n return operations.map(op => crackOperation(op))\n}\n","import type { HydratedTransaction } from '@xyo-network/xl1-protocol'\nimport { AttoXL1, TransactionGasCosts } from '@xyo-network/xl1-protocol'\n\nimport { transactionBlockByteCount } from './transactionBlockByteCount.ts'\nimport { transactionElevatedPayloads } from './transactionElevatedPayloads.ts'\n\n/** The required gas for the byte storage on the block chain for a transaction */\nexport function transactionBytesRequiredGas([transaction, payloads]: HydratedTransaction): AttoXL1 {\n const transactionBlockBytes = transactionBlockByteCount([transaction, payloads])\n return AttoXL1(TransactionGasCosts.characterStorage * BigInt(transactionBlockBytes))\n}\n\nexport function transactionRequiredGas(hydratedTransaction: HydratedTransaction): AttoXL1 {\n const elevatedPayloads = transactionElevatedPayloads(hydratedTransaction)\n const hashes = elevatedPayloads.length + 1 /* for transaction itself */\n const signatures = hydratedTransaction[0].addresses.length\n return AttoXL1(transactionBytesRequiredGas(hydratedTransaction)\n + TransactionGasCosts.hashValidation * BigInt(hashes)\n + TransactionGasCosts.signatureValidation * BigInt(signatures)\n + TransactionGasCosts.payloadValidation * BigInt(elevatedPayloads.length))\n}\n"],"mappings":"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","names":["filterAs","assertEx","asBlockBoundWitnessWithStorageMeta","asTransactionBoundWitnessWithStorageMeta","isTransactionBoundWitnessWithStorageMeta","allHashesPresent","hashes","payloads","payloadHashes","Set","map","p","_hash","every","hash","has","tryHydrateBlock","archivist","maxDepth","minDepth","hydrateBlock","e","Error","console","warn","message","undefined","assertEx","bw","filterAs","get","asBlockBoundWitnessWithStorageMeta","at","blkPayloads","payload_hashes","transactions","asTransactionBoundWitnessWithStorageMeta","transactionsPayloadHashes","flatMap","tx","transactionsPayloads","allPayloadsHashes","allPayloads","allPayloadsFiltered","filter","flattenHydratedBlock","hydratedBlock","blk","flattenHydratedBlocks","hydratedBlocks","transactionsFromHydratedBlock","block","blockPayloadsFromHydratedBlock","find","x","isTransactionBoundWitnessWithStorageMeta","assertEx","isHash","isDefined","isBlockBoundWitness","StepSizes","stepHashFramesFromBlockAtSize","archivist","head","sizeIndex","Number","isInteger","StepSizes","length","Error","currentHead","steps","isHash","block","get","isBlockBoundWitness","stepHash","step_hashes","at","isDefined","stepHashBlock","lastBlockInStep","assertEx","previous","push","stepHashFramesFromBlock","availableRanges","foundRanges","i","step","start","end","some","range","flatMap","assertEx","toHex","BoundWitnessBuilder","PayloadBuilder","defaultTransactionFees","buildTransaction","chain","elevatedPayloads","additionalPayloads","signer","nbf","exp","from","fees","defaultTransactionFees","undefined","Array","isArray","Error","txBoundWitnessFields","base","toHex","gasLimit","gasPrice","priority","elevatedHashes","PayloadBuilder","hashes","script","elevatedHash","push","tx","txPayloads","BoundWitnessBuilder","fields","assertEx","at","address","meta","$signatures","payloads","signers","build","addStorageMeta","assertEx","hydrateTypedBoundWitness","tryHydrateTypedBoundWitness","isAllowedBlockPayload","isTransactionBoundWitnessWithStorageMeta","tryHydrateTransaction","archivist","hash","tryHydrateTypedBoundWitness","isTransactionBoundWitnessWithStorageMeta","hydrateTransaction","hydrateTypedBoundWitness","flattenHydratedTransaction","hydratedTransaction","tx","txPayloads","flattenHydratedTransactions","hydratedTransactions","flatMap","tryHydrateElevatedTransaction","undefined","transaction","payloads","opCodes","script","filter","operation","startsWith","elevatedPayloads","opCode","code","split","elevatedPayload","find","payload","_hash","isAllowedBlockPayload","push","length","hydrateElevatedTransaction","assertEx","PayloadBuilder","transactionBlockByteCount","transaction","payloads","cleanTransaction","PayloadBuilder","omitStorageMeta","transactionBytes","JSON","stringify","length","cleanPayloads","reduce","acc","payload","asHash","crackOperation","operation","parts","split","length","Error","slice","crackOperations","operations","map","op","transactionElevatedPayloadHashes","transaction","elevateOperations","crackOperations","script","filter","op","map","asHash","transactionElevatedPayloads","payloads","hashes","elevatedPayloads","payload","includes","_hash","AttoXL1","TransactionGasCosts","transactionBytesRequiredGas","transaction","payloads","transactionBlockBytes","transactionBlockByteCount","AttoXL1","TransactionGasCosts","characterStorage","BigInt","transactionRequiredGas","hydratedTransaction","elevatedPayloads","transactionElevatedPayloads","hashes","length","signatures","addresses","hashValidation","signatureValidation","payloadValidation"]}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import type { SignatureInstance } from '../Signature.ts';
|
|
1
2
|
export interface BlockFieldsInstance<TTransactionResult> {
|
|
2
3
|
reward: bigint;
|
|
4
|
+
signatureCount: number;
|
|
5
|
+
signatures: SignatureInstance[];
|
|
3
6
|
transactionCount: number;
|
|
4
7
|
transactions: TTransactionResult[];
|
|
8
|
+
signature(index: number): SignatureInstance | undefined;
|
|
5
9
|
transaction(index: number): TTransactionResult | undefined;
|
|
6
10
|
}
|
|
7
11
|
//# sourceMappingURL=BlockFields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockFields.d.ts","sourceRoot":"","sources":["../../../../src/instances/block/BlockFields.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB,CAAC,kBAAkB;IACrD,MAAM,EAAE,MAAM,CAAA;IAEd,gBAAgB,EAAE,MAAM,CAAA;IAExB,YAAY,EAAE,kBAAkB,EAAE,CAAA;IAElC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAAA;CAC3D"}
|
|
1
|
+
{"version":3,"file":"BlockFields.d.ts","sourceRoot":"","sources":["../../../../src/instances/block/BlockFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAExD,MAAM,WAAW,mBAAmB,CAAC,kBAAkB;IACrD,MAAM,EAAE,MAAM,CAAA;IAEd,cAAc,EAAE,MAAM,CAAA;IAEtB,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAE/B,gBAAgB,EAAE,MAAM,CAAA;IAExB,YAAY,EAAE,kBAAkB,EAAE,CAAA;IAElC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAA;IAEvD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAAA;CAC3D"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { HydratedBlock } from '@xyo-network/xl1-protocol';
|
|
2
2
|
import type { HydratedBoundWitnessInstance } from '../HydratedBoundWitness.ts';
|
|
3
|
+
import type { SignedInstance } from '../modifiers/Signed.ts';
|
|
3
4
|
import type { HydratedTransactionInstance } from '../transaction/index.ts';
|
|
4
5
|
import type { BlockFieldsInstance } from './BlockFields.ts';
|
|
5
|
-
export interface HydratedBlockInstance<T extends HydratedBlock = HydratedBlock> extends BlockFieldsInstance<HydratedTransactionInstance>, HydratedBoundWitnessInstance<T
|
|
6
|
+
export interface HydratedBlockInstance<T extends HydratedBlock = HydratedBlock> extends BlockFieldsInstance<HydratedTransactionInstance>, HydratedBoundWitnessInstance<T>, SignedInstance {
|
|
6
7
|
}
|
|
7
8
|
//# sourceMappingURL=HydratedBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HydratedBlock.d.ts","sourceRoot":"","sources":["../../../../src/instances/block/HydratedBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,CAAE,SAC9E,mBAAmB,CAAC,2BAA2B,CAAC,EAAE,4BAA4B,CAAC,CAAC,CAAC;CAAG"}
|
|
1
|
+
{"version":3,"file":"HydratedBlock.d.ts","sourceRoot":"","sources":["../../../../src/instances/block/HydratedBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,CAAE,SAC9E,mBAAmB,CAAC,2BAA2B,CAAC,EAAE,4BAA4B,CAAC,CAAC,CAAC,EAAE,cAAc;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/block/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/block/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { AllowedBlockPayload, HydratedTransaction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
import type { HydratedBoundWitnessInstance } from '../HydratedBoundWitness.ts';
|
|
3
|
+
import type { SignedInstance } from '../modifiers/Signed.ts';
|
|
3
4
|
import type { TransactionFieldsInstance } from './TransactionFields.ts';
|
|
4
|
-
export interface HydratedTransactionInstance<T extends HydratedTransaction = HydratedTransaction, TElevatedPayload extends AllowedBlockPayload = AllowedBlockPayload> extends TransactionFieldsInstance<T[1][number] & TElevatedPayload>, HydratedBoundWitnessInstance<T
|
|
5
|
+
export interface HydratedTransactionInstance<T extends HydratedTransaction = HydratedTransaction, TElevatedPayload extends AllowedBlockPayload = AllowedBlockPayload> extends TransactionFieldsInstance<T[1][number] & TElevatedPayload>, HydratedBoundWitnessInstance<T>, SignedInstance {
|
|
5
6
|
}
|
|
6
7
|
//# sourceMappingURL=HydratedTransaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HydratedTransaction.d.ts","sourceRoot":"","sources":["../../../../src/instances/transaction/HydratedTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEzF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAEvE,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,EAC9F,gBAAgB,SAAS,mBAAmB,GAAG,mBAAmB,CAClE,SAAQ,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,EAAE,4BAA4B,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"HydratedTransaction.d.ts","sourceRoot":"","sources":["../../../../src/instances/transaction/HydratedTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEzF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAEvE,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,EAC9F,gBAAgB,SAAS,mBAAmB,GAAG,mBAAmB,CAClE,SAAQ,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,EAAE,4BAA4B,CAAC,CAAC,CAAC,EAAE,cAAc;CACpH"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { Hash } from '@xylabs/hex';
|
|
2
|
-
import type { Payload, Schema } from '@xyo-network/payload-model';
|
|
2
|
+
import type { Payload, Schema, WithStorageMeta } from '@xyo-network/payload-model';
|
|
3
3
|
import type { AllowedBlockPayload } from '@xyo-network/xl1-protocol';
|
|
4
4
|
import type { TransactionFeesInstance } from '../Fees.ts';
|
|
5
5
|
export interface TransactionFieldsInstance<TBlockPayload extends AllowedBlockPayload = AllowedBlockPayload> {
|
|
6
6
|
elevatedPayloadCount: number;
|
|
7
|
-
elevatedPayloads: TBlockPayload[];
|
|
7
|
+
elevatedPayloads: WithStorageMeta<TBlockPayload>[];
|
|
8
8
|
externalPayloads: Record<Hash, Schema | Payload>;
|
|
9
9
|
fees: TransactionFeesInstance;
|
|
10
10
|
privateExternalPayloads: Record<Hash, Schema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionFields.d.ts","sourceRoot":"","sources":["../../../../src/instances/transaction/TransactionFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"TransactionFields.d.ts","sourceRoot":"","sources":["../../../../src/instances/transaction/TransactionFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EACV,OAAO,EAAE,MAAM,EAAE,eAAe,EACjC,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAEzD,MAAM,WAAW,yBAAyB,CAAC,aAAa,SAAS,mBAAmB,GAAG,mBAAmB;IACxG,oBAAoB,EAAE,MAAM,CAAA;IAC5B,gBAAgB,EAAE,eAAe,CAAC,aAAa,CAAC,EAAE,CAAA;IAClD,gBAAgB,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAA;IAEhD,IAAI,EAAE,uBAAuB,CAAA;IAE7B,uBAAuB,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC7C,sBAAsB,EAAE,OAAO,EAAE,CAAA;IAEjC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAA;IACzD,MAAM,IAAI,MAAM,CAAA;CACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/transaction/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/transaction/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex';
|
|
2
2
|
import type { AccountInstance } from '@xyo-network/account-model';
|
|
3
3
|
import type { Payload } from '@xyo-network/payload-model';
|
|
4
|
-
import { type AllowedBlockPayload, type
|
|
5
|
-
export declare function buildTransaction(chain: Address, elevatedPayloads: AllowedBlockPayload[], additionalPayloads: Payload[], signer: AccountInstance | AccountInstance[], nbf: number, exp: number, from?: Address, fees?: TransactionFeesBigInt): Promise<
|
|
4
|
+
import { type AllowedBlockPayload, type HydratedTransaction, type TransactionFeesBigInt } from '@xyo-network/xl1-protocol';
|
|
5
|
+
export declare function buildTransaction(chain: Address, elevatedPayloads: AllowedBlockPayload[], additionalPayloads: Payload[], signer: AccountInstance | AccountInstance[], nbf: number, exp: number, from?: Address, fees?: TransactionFeesBigInt): Promise<HydratedTransaction>;
|
|
6
6
|
//# sourceMappingURL=buildTransaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/buildTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EACL,KAAK,mBAAmB,EAExB,KAAK,
|
|
1
|
+
{"version":3,"file":"buildTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/buildTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EACL,KAAK,mBAAmB,EAExB,KAAK,mBAAmB,EAAoE,KAAK,qBAAqB,EACvH,MAAM,2BAA2B,CAAA;AAElC,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,OAAO,EACd,gBAAgB,EAAE,mBAAmB,EAAE,EACvC,kBAAkB,EAAE,OAAO,EAAE,EAC7B,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE,EAC3C,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,IAAI,GAAE,qBAA8C,GACnD,OAAO,CAAC,mBAAmB,CAAC,CAmC9B"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Hash } from '@xylabs/hex';
|
|
2
2
|
import type { ReadArchivist } from '@xyo-network/archivist-model';
|
|
3
3
|
import type { Payload } from '@xyo-network/payload-model';
|
|
4
|
-
import type { HydratedTransaction
|
|
5
|
-
export declare const tryHydrateTransaction: (archivist: ReadArchivist, hash: Hash) => Promise<
|
|
6
|
-
export declare const hydrateTransaction: (archivist: ReadArchivist, hash: Hash) => Promise<
|
|
4
|
+
import type { HydratedTransaction } from '@xyo-network/xl1-protocol';
|
|
5
|
+
export declare const tryHydrateTransaction: (archivist: ReadArchivist, hash: Hash) => Promise<HydratedTransaction | undefined>;
|
|
6
|
+
export declare const hydrateTransaction: (archivist: ReadArchivist, hash: Hash) => Promise<HydratedTransaction>;
|
|
7
7
|
export declare const flattenHydratedTransaction: (hydratedTransaction: HydratedTransaction) => Payload[];
|
|
8
8
|
export declare const flattenHydratedTransactions: (hydratedTransactions: HydratedTransaction[]) => Payload[];
|
|
9
9
|
export declare const tryHydrateElevatedTransaction: (archivist: ReadArchivist, hash: Hash) => Promise<HydratedTransaction | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrateTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/hydrateTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"hydrateTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/hydrateTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,2BAA2B,CAAA;AAGlC,eAAO,MAAM,qBAAqB,GAChC,WAAW,aAAa,EACxB,MAAM,IAAI,KACT,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAMzC,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,WAAW,aAAa,EACxB,MAAM,IAAI,KACT,OAAO,CAAC,mBAAmB,CAM7B,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,qBAAqB,mBAAmB,KAAG,OAAO,EAG5F,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,sBAAsB,mBAAmB,EAAE,KAAG,OAAO,EAC7B,CAAA;AAEpE,eAAO,MAAM,6BAA6B,GACxC,WAAW,aAAa,EACxB,MAAM,IAAI,KACT,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAqBzC,CAAA;AAED,eAAO,MAAM,0BAA0B,GACrC,WAAW,aAAa,EACxB,MAAM,IAAI,KACT,OAAO,CAAC,mBAAmB,CAE7B,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Hash } from '@xylabs/hex';
|
|
2
2
|
import type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model';
|
|
3
|
-
import type {
|
|
3
|
+
import type { HydratedTransaction, TransactionBoundWitness } from '@xyo-network/xl1-protocol';
|
|
4
4
|
export declare function transactionElevatedPayloadHashes(transaction: TransactionBoundWitness): Hash[];
|
|
5
|
-
export declare function transactionElevatedPayloads([transaction, payloads]:
|
|
5
|
+
export declare function transactionElevatedPayloads([transaction, payloads]: HydratedTransaction): WithHashStorageMeta<Payload>[];
|
|
6
6
|
//# sourceMappingURL=transactionElevatedPayloads.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionElevatedPayloads.d.ts","sourceRoot":"","sources":["../../../../src/transaction/primitives/transactionElevatedPayloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"transactionElevatedPayloads.d.ts","sourceRoot":"","sources":["../../../../src/transaction/primitives/transactionElevatedPayloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAI7F,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,uBAAuB,GAAG,IAAI,EAAE,CAG7F;AAED,wBAAgB,2BAA2B,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAIxH"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { HydratedTransaction
|
|
1
|
+
import type { HydratedTransaction } from '@xyo-network/xl1-protocol';
|
|
2
2
|
import { AttoXL1 } from '@xyo-network/xl1-protocol';
|
|
3
3
|
/** The required gas for the byte storage on the block chain for a transaction */
|
|
4
4
|
export declare function transactionBytesRequiredGas([transaction, payloads]: HydratedTransaction): AttoXL1;
|
|
5
|
-
export declare function transactionRequiredGas(hydratedTransaction:
|
|
5
|
+
export declare function transactionRequiredGas(hydratedTransaction: HydratedTransaction): AttoXL1;
|
|
6
6
|
//# sourceMappingURL=transactionRequiredGas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionRequiredGas.d.ts","sourceRoot":"","sources":["../../../../src/transaction/primitives/transactionRequiredGas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"transactionRequiredGas.d.ts","sourceRoot":"","sources":["../../../../src/transaction/primitives/transactionRequiredGas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,OAAO,EAAuB,MAAM,2BAA2B,CAAA;AAKxE,iFAAiF;AACjF,wBAAgB,2BAA2B,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAGjG;AAED,wBAAgB,sBAAsB,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,OAAO,CAQxF"}
|
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-protocol-sdk",
|
|
4
|
-
"version": "1.5.
|
|
4
|
+
"version": "1.5.32",
|
|
5
5
|
"description": "XYO Layer One SDK Protocol",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@xyo-network/boundwitness-model": "^3.18.8",
|
|
47
47
|
"@xyo-network/payload-builder": "^3.18.8",
|
|
48
48
|
"@xyo-network/payload-model": "^3.18.8",
|
|
49
|
-
"@xyo-network/xl1-protocol": "^1.4.
|
|
49
|
+
"@xyo-network/xl1-protocol": "^1.4.34"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/node": "^24.0.1",
|
|
@@ -5,7 +5,7 @@ import type { ReadArchivist } from '@xyo-network/archivist-model'
|
|
|
5
5
|
import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
|
|
6
6
|
import type { HydratedBlock, TransactionBoundWitness } from '@xyo-network/xl1-protocol'
|
|
7
7
|
import {
|
|
8
|
-
|
|
8
|
+
asBlockBoundWitnessWithStorageMeta, asTransactionBoundWitnessWithStorageMeta, isTransactionBoundWitnessWithStorageMeta,
|
|
9
9
|
} from '@xyo-network/xl1-protocol'
|
|
10
10
|
|
|
11
11
|
export function allHashesPresent(hashes: Hash[], payloads: WithStorageMeta<Payload>[]): boolean {
|
|
@@ -42,14 +42,14 @@ export const hydrateBlock = async (
|
|
|
42
42
|
assertEx(minDepth >= 0, () => 'minDepth must be greater than or equal to 0')
|
|
43
43
|
assertEx(maxDepth >= minDepth, () => 'maxDepth must be greater than or equal to minDepth')
|
|
44
44
|
const bw = assertEx(
|
|
45
|
-
filterAs(await archivist.get([hash]),
|
|
45
|
+
filterAs(await archivist.get([hash]), asBlockBoundWitnessWithStorageMeta).at(0),
|
|
46
46
|
() => `block ${hash} not found`,
|
|
47
47
|
)
|
|
48
48
|
if (maxDepth === 0) return [bw, []]
|
|
49
49
|
const blkPayloads = await archivist.get(bw.payload_hashes)
|
|
50
50
|
if (minDepth === 1) assertEx(allHashesPresent(bw.payload_hashes, blkPayloads), () => `Unable to find all payloads for block ${hash}`)
|
|
51
51
|
if (maxDepth === 1) return [bw, blkPayloads]
|
|
52
|
-
const transactions = filterAs(blkPayloads,
|
|
52
|
+
const transactions = filterAs(blkPayloads, asTransactionBoundWitnessWithStorageMeta)
|
|
53
53
|
const transactionsPayloadHashes = transactions.flatMap(tx => tx.payload_hashes)
|
|
54
54
|
const transactionsPayloads = await archivist.get(transactionsPayloadHashes)
|
|
55
55
|
assertEx(allHashesPresent(transactionsPayloadHashes, transactionsPayloads), () => `Unable to find all payloads for transactions in block ${hash}`)
|
|
@@ -72,7 +72,7 @@ export const flattenHydratedBlocks = (hydratedBlocks: HydratedBlock[]): WithStor
|
|
|
72
72
|
hydratedBlocks.flatMap(blk => flattenHydratedBlock(blk))
|
|
73
73
|
|
|
74
74
|
export const transactionsFromHydratedBlock = (block: HydratedBlock): WithStorageMeta<TransactionBoundWitness>[] => {
|
|
75
|
-
return filterAs(block[1],
|
|
75
|
+
return filterAs(block[1], asTransactionBoundWitnessWithStorageMeta)
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
export const blockPayloadsFromHydratedBlock = (block: HydratedBlock): WithStorageMeta<Payload>[] => {
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
+
import type { SignatureInstance } from '../Signature.ts'
|
|
2
|
+
|
|
1
3
|
export interface BlockFieldsInstance<TTransactionResult> {
|
|
2
4
|
reward: bigint
|
|
3
5
|
|
|
6
|
+
signatureCount: number
|
|
7
|
+
|
|
8
|
+
signatures: SignatureInstance[]
|
|
9
|
+
|
|
4
10
|
transactionCount: number
|
|
5
11
|
|
|
6
12
|
transactions: TTransactionResult[]
|
|
7
13
|
|
|
14
|
+
signature(index: number): SignatureInstance | undefined
|
|
15
|
+
|
|
8
16
|
transaction(index: number): TTransactionResult | undefined
|
|
9
17
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { HydratedBlock } from '@xyo-network/xl1-protocol'
|
|
2
2
|
|
|
3
3
|
import type { HydratedBoundWitnessInstance } from '../HydratedBoundWitness.ts'
|
|
4
|
+
import type { SignedInstance } from '../modifiers/Signed.ts'
|
|
4
5
|
import type { HydratedTransactionInstance } from '../transaction/index.ts'
|
|
5
6
|
import type { BlockFieldsInstance } from './BlockFields.ts'
|
|
6
7
|
|
|
7
8
|
export interface HydratedBlockInstance<T extends HydratedBlock = HydratedBlock> extends
|
|
8
|
-
BlockFieldsInstance<HydratedTransactionInstance>, HydratedBoundWitnessInstance<T
|
|
9
|
+
BlockFieldsInstance<HydratedTransactionInstance>, HydratedBoundWitnessInstance<T>, SignedInstance {}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { AllowedBlockPayload, HydratedTransaction } from '@xyo-network/xl1-protocol'
|
|
2
2
|
|
|
3
3
|
import type { HydratedBoundWitnessInstance } from '../HydratedBoundWitness.ts'
|
|
4
|
+
import type { SignedInstance } from '../modifiers/Signed.ts'
|
|
4
5
|
import type { TransactionFieldsInstance } from './TransactionFields.ts'
|
|
5
6
|
|
|
6
7
|
export interface HydratedTransactionInstance<T extends HydratedTransaction = HydratedTransaction,
|
|
7
8
|
TElevatedPayload extends AllowedBlockPayload = AllowedBlockPayload>
|
|
8
|
-
extends TransactionFieldsInstance<T[1][number] & TElevatedPayload>, HydratedBoundWitnessInstance<T
|
|
9
|
+
extends TransactionFieldsInstance<T[1][number] & TElevatedPayload>, HydratedBoundWitnessInstance<T>, SignedInstance {
|
|
9
10
|
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { Hash } from '@xylabs/hex'
|
|
2
|
-
import type {
|
|
2
|
+
import type {
|
|
3
|
+
Payload, Schema, WithStorageMeta,
|
|
4
|
+
} from '@xyo-network/payload-model'
|
|
3
5
|
import type { AllowedBlockPayload } from '@xyo-network/xl1-protocol'
|
|
4
6
|
|
|
5
7
|
import type { TransactionFeesInstance } from '../Fees.ts'
|
|
6
8
|
|
|
7
9
|
export interface TransactionFieldsInstance<TBlockPayload extends AllowedBlockPayload = AllowedBlockPayload> {
|
|
8
10
|
elevatedPayloadCount: number
|
|
9
|
-
elevatedPayloads: TBlockPayload[]
|
|
11
|
+
elevatedPayloads: WithStorageMeta<TBlockPayload>[]
|
|
10
12
|
externalPayloads: Record<Hash, Schema | Payload>
|
|
11
13
|
|
|
12
14
|
fees: TransactionFeesInstance
|
|
@@ -8,7 +8,7 @@ import type { Payload } from '@xyo-network/payload-model'
|
|
|
8
8
|
import {
|
|
9
9
|
type AllowedBlockPayload,
|
|
10
10
|
defaultTransactionFees,
|
|
11
|
-
type
|
|
11
|
+
type HydratedTransaction, type TransactionBoundWitness, type TransactionBoundWitnessFields, type TransactionFeesBigInt,
|
|
12
12
|
} from '@xyo-network/xl1-protocol'
|
|
13
13
|
|
|
14
14
|
export async function buildTransaction(
|
|
@@ -20,7 +20,7 @@ export async function buildTransaction(
|
|
|
20
20
|
exp: number,
|
|
21
21
|
from?: Address,
|
|
22
22
|
fees: TransactionFeesBigInt = defaultTransactionFees,
|
|
23
|
-
): Promise<
|
|
23
|
+
): Promise<HydratedTransaction> {
|
|
24
24
|
if (from === undefined && Array.isArray(signer)) {
|
|
25
25
|
throw new Error('from is required when signer is an array')
|
|
26
26
|
}
|
|
@@ -2,33 +2,33 @@ import { assertEx } from '@xylabs/assert'
|
|
|
2
2
|
import type { Hash } from '@xylabs/hex'
|
|
3
3
|
import type { ReadArchivist } from '@xyo-network/archivist-model'
|
|
4
4
|
import { hydrateTypedBoundWitness, tryHydrateTypedBoundWitness } from '@xyo-network/archivist-model'
|
|
5
|
-
import type { Payload } from '@xyo-network/payload-model'
|
|
5
|
+
import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
|
|
6
6
|
import type {
|
|
7
7
|
AllowedBlockPayload,
|
|
8
|
-
HydratedTransaction,
|
|
8
|
+
HydratedTransaction, TransactionBoundWitness,
|
|
9
9
|
} from '@xyo-network/xl1-protocol'
|
|
10
10
|
import { isAllowedBlockPayload, isTransactionBoundWitnessWithStorageMeta } from '@xyo-network/xl1-protocol'
|
|
11
11
|
|
|
12
12
|
export const tryHydrateTransaction = async (
|
|
13
13
|
archivist: ReadArchivist,
|
|
14
14
|
hash: Hash,
|
|
15
|
-
): Promise<
|
|
15
|
+
): Promise<HydratedTransaction | undefined> => {
|
|
16
16
|
return (await tryHydrateTypedBoundWitness<TransactionBoundWitness>(
|
|
17
17
|
archivist,
|
|
18
18
|
hash,
|
|
19
19
|
isTransactionBoundWitnessWithStorageMeta,
|
|
20
|
-
)) as
|
|
20
|
+
)) as HydratedTransaction | undefined
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export const hydrateTransaction = async (
|
|
24
24
|
archivist: ReadArchivist,
|
|
25
25
|
hash: Hash,
|
|
26
|
-
): Promise<
|
|
26
|
+
): Promise<HydratedTransaction> => {
|
|
27
27
|
return await hydrateTypedBoundWitness<TransactionBoundWitness>(
|
|
28
28
|
archivist,
|
|
29
29
|
hash,
|
|
30
30
|
isTransactionBoundWitnessWithStorageMeta,
|
|
31
|
-
) as
|
|
31
|
+
) as HydratedTransaction
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
export const flattenHydratedTransaction = (hydratedTransaction: HydratedTransaction): Payload[] => {
|
|
@@ -49,7 +49,7 @@ export const tryHydrateElevatedTransaction = async (
|
|
|
49
49
|
}
|
|
50
50
|
const [transaction, payloads] = hydratedTransaction
|
|
51
51
|
const opCodes = (transaction.script ?? []).filter(operation => operation.startsWith('elevate|'))
|
|
52
|
-
const elevatedPayloads: AllowedBlockPayload[] = []
|
|
52
|
+
const elevatedPayloads: WithStorageMeta<AllowedBlockPayload>[] = []
|
|
53
53
|
for (const opCode of opCodes) {
|
|
54
54
|
const [code, hash] = opCode.split('|')
|
|
55
55
|
if (code === 'elevated') {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { asHash, type Hash } from '@xylabs/hex'
|
|
2
2
|
import type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model'
|
|
3
|
-
import type {
|
|
3
|
+
import type { HydratedTransaction, TransactionBoundWitness } from '@xyo-network/xl1-protocol'
|
|
4
4
|
|
|
5
5
|
import { crackOperations } from './transactionOperations.ts'
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ export function transactionElevatedPayloadHashes(transaction: TransactionBoundWi
|
|
|
9
9
|
return elevateOperations.map(op => asHash(op[1][0], true))
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
export function transactionElevatedPayloads([transaction, payloads]:
|
|
12
|
+
export function transactionElevatedPayloads([transaction, payloads]: HydratedTransaction): WithHashStorageMeta<Payload>[] {
|
|
13
13
|
const hashes = transactionElevatedPayloadHashes(transaction)
|
|
14
14
|
const elevatedPayloads = payloads.filter(payload => hashes.includes(payload._hash))
|
|
15
15
|
return elevatedPayloads
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HydratedTransaction
|
|
1
|
+
import type { HydratedTransaction } from '@xyo-network/xl1-protocol'
|
|
2
2
|
import { AttoXL1, TransactionGasCosts } from '@xyo-network/xl1-protocol'
|
|
3
3
|
|
|
4
4
|
import { transactionBlockByteCount } from './transactionBlockByteCount.ts'
|
|
@@ -10,7 +10,7 @@ export function transactionBytesRequiredGas([transaction, payloads]: HydratedTra
|
|
|
10
10
|
return AttoXL1(TransactionGasCosts.characterStorage * BigInt(transactionBlockBytes))
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export function transactionRequiredGas(hydratedTransaction:
|
|
13
|
+
export function transactionRequiredGas(hydratedTransaction: HydratedTransaction): AttoXL1 {
|
|
14
14
|
const elevatedPayloads = transactionElevatedPayloads(hydratedTransaction)
|
|
15
15
|
const hashes = elevatedPayloads.length + 1 /* for transaction itself */
|
|
16
16
|
const signatures = hydratedTransaction[0].addresses.length
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { SignedHydratedBlock } from '@xyo-network/xl1-protocol';
|
|
2
|
-
import type { SignedInstance } from '../modifiers/Signed.ts';
|
|
3
|
-
import type { HydratedBlockInstance } from './HydratedBlock.ts';
|
|
4
|
-
export interface SignedHydratedBlockInstance<T extends SignedHydratedBlock = SignedHydratedBlock> extends HydratedBlockInstance<T>, SignedInstance {
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=SignedHydratedBlock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SignedHydratedBlock.d.ts","sourceRoot":"","sources":["../../../../src/instances/block/SignedHydratedBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE/D,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,qBAAqB,CAAC,CAAC,CAAC,EAAE,cAAc;CAAI"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { AllowedBlockPayload, HydratedTransaction } from '@xyo-network/xl1-protocol';
|
|
2
|
-
import type { SignedInstance } from '../modifiers/Signed.ts';
|
|
3
|
-
import type { HydratedTransactionInstance } from './HydratedTransaction.ts';
|
|
4
|
-
export interface SignedHydratedTransactionInstance<T extends HydratedTransaction = HydratedTransaction, TBlockPayload extends AllowedBlockPayload = AllowedBlockPayload> extends HydratedTransactionInstance<T, TBlockPayload>, SignedInstance {
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=SignedHydratedTransaction.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SignedHydratedTransaction.d.ts","sourceRoot":"","sources":["../../../../src/instances/transaction/SignedHydratedTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAE3E,MAAM,WAAW,iCAAiC,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,EACpG,aAAa,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,2BAA2B,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,cAAc;CACvI"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { SignedHydratedBlock } from '@xyo-network/xl1-protocol'
|
|
2
|
-
|
|
3
|
-
import type { SignedInstance } from '../modifiers/Signed.ts'
|
|
4
|
-
import type { HydratedBlockInstance } from './HydratedBlock.ts'
|
|
5
|
-
|
|
6
|
-
export interface SignedHydratedBlockInstance<T extends SignedHydratedBlock = SignedHydratedBlock> extends HydratedBlockInstance<T>, SignedInstance { }
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { AllowedBlockPayload, HydratedTransaction } from '@xyo-network/xl1-protocol'
|
|
2
|
-
|
|
3
|
-
import type { SignedInstance } from '../modifiers/Signed.ts'
|
|
4
|
-
import type { HydratedTransactionInstance } from './HydratedTransaction.ts'
|
|
5
|
-
|
|
6
|
-
export interface SignedHydratedTransactionInstance<T extends HydratedTransaction = HydratedTransaction,
|
|
7
|
-
TBlockPayload extends AllowedBlockPayload = AllowedBlockPayload> extends HydratedTransactionInstance<T, TBlockPayload>, SignedInstance {
|
|
8
|
-
}
|