@xyo-network/xl1-protocol 1.3.8 → 1.3.9
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 +58 -21
- package/dist/neutral/index.mjs +216 -101
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/node/index.mjs +225 -0
- package/dist/node/index.mjs.map +1 -0
- package/dist/types/Addressable.d.ts +5 -0
- package/dist/types/Addressable.d.ts.map +1 -0
- package/dist/types/ChainIterator.d.ts +29 -0
- package/dist/types/ChainIterator.d.ts.map +1 -0
- package/dist/types/ChainIteratorEventData.d.ts +11 -0
- package/dist/types/ChainIteratorEventData.d.ts.map +1 -0
- package/dist/types/OpenTelemetryProviders.d.ts +6 -0
- package/dist/types/OpenTelemetryProviders.d.ts.map +1 -0
- package/dist/types/chain/ChainServiceCollection.d.ts +35 -0
- package/dist/types/chain/ChainServiceCollection.d.ts.map +1 -0
- package/dist/types/chain/Initializable.d.ts +3 -0
- package/dist/types/chain/Initializable.d.ts.map +1 -0
- package/dist/types/chain/index.d.ts +3 -0
- package/dist/types/chain/index.d.ts.map +1 -0
- package/dist/types/ethereum.d.ts +11 -0
- package/dist/types/ethereum.d.ts.map +1 -0
- package/dist/types/index.d.ts +13 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/instances/BoundWitness.d.ts +9 -0
- package/dist/types/instances/BoundWitness.d.ts.map +1 -0
- package/dist/types/instances/Data.d.ts +4 -0
- package/dist/types/instances/Data.d.ts.map +1 -0
- package/dist/types/instances/Fees.d.ts +8 -0
- package/dist/types/instances/Fees.d.ts.map +1 -0
- package/dist/types/instances/HydratedBoundWitness.d.ts +10 -0
- package/dist/types/instances/HydratedBoundWitness.d.ts.map +1 -0
- package/dist/types/instances/Object.d.ts +5 -0
- package/dist/types/instances/Object.d.ts.map +1 -0
- package/dist/types/instances/Payload.d.ts +6 -0
- package/dist/types/instances/Payload.d.ts.map +1 -0
- package/dist/types/instances/Signature.d.ts +8 -0
- package/dist/types/instances/Signature.d.ts.map +1 -0
- package/dist/types/instances/block/BlockFields.d.ts +9 -0
- package/dist/types/instances/block/BlockFields.d.ts.map +1 -0
- package/dist/types/instances/block/HydratedBlock.d.ts +8 -0
- package/dist/types/instances/block/HydratedBlock.d.ts.map +1 -0
- package/dist/types/instances/block/SignedHydratedBlock.d.ts +6 -0
- package/dist/types/instances/block/SignedHydratedBlock.d.ts.map +1 -0
- package/dist/types/instances/block/index.d.ts +3 -0
- package/dist/types/instances/block/index.d.ts.map +1 -0
- package/dist/types/instances/index.d.ts +10 -0
- package/dist/types/instances/index.d.ts.map +1 -0
- package/dist/types/instances/modifiers/Signed.d.ts +7 -0
- package/dist/types/instances/modifiers/Signed.d.ts.map +1 -0
- package/dist/types/instances/modifiers/Validatable.d.ts +5 -0
- package/dist/types/instances/modifiers/Validatable.d.ts.map +1 -0
- package/dist/types/instances/modifiers/index.d.ts +3 -0
- package/dist/types/instances/modifiers/index.d.ts.map +1 -0
- package/dist/types/instances/transaction/HydratedTransaction.d.ts +6 -0
- package/dist/types/instances/transaction/HydratedTransaction.d.ts.map +1 -0
- package/dist/types/instances/transaction/SignedHydratedTransaction.d.ts +6 -0
- package/dist/types/instances/transaction/SignedHydratedTransaction.d.ts.map +1 -0
- package/dist/types/instances/transaction/TransactionFields.d.ts +9 -0
- package/dist/types/instances/transaction/TransactionFields.d.ts.map +1 -0
- package/dist/types/instances/transaction/index.d.ts +3 -0
- package/dist/types/instances/transaction/index.d.ts.map +1 -0
- package/dist/types/payload/elevatable/ChainStakeIntent.d.ts +17 -0
- package/dist/types/payload/elevatable/ChainStakeIntent.d.ts.map +1 -0
- package/dist/types/payload/elevatable/Executable.d.ts +14 -0
- package/dist/types/payload/elevatable/Executable.d.ts.map +1 -0
- package/dist/types/payload/elevatable/Hash.d.ts +19 -0
- package/dist/types/payload/elevatable/Hash.d.ts.map +1 -0
- package/dist/types/payload/elevatable/TransferPayload.d.ts +17 -0
- package/dist/types/payload/elevatable/TransferPayload.d.ts.map +1 -0
- package/dist/types/payload/elevatable/index.d.ts +5 -0
- package/dist/types/payload/elevatable/index.d.ts.map +1 -0
- package/dist/types/payload/index.d.ts +2 -0
- package/dist/types/payload/index.d.ts.map +1 -0
- package/dist/types/protocol/AllowedBlockPayload.d.ts +11 -0
- package/dist/types/protocol/AllowedBlockPayload.d.ts.map +1 -0
- package/dist/types/protocol/BlockBoundWitness.d.ts +34 -0
- package/dist/types/protocol/BlockBoundWitness.d.ts.map +1 -0
- package/dist/types/protocol/BlockDuration.d.ts +23 -0
- package/dist/types/protocol/BlockDuration.d.ts.map +1 -0
- package/dist/types/protocol/BlockNumber.d.ts +37 -0
- package/dist/types/protocol/BlockNumber.d.ts.map +1 -0
- package/dist/types/protocol/ChainAnalyzer.d.ts +9 -0
- package/dist/types/protocol/ChainAnalyzer.d.ts.map +1 -0
- package/dist/types/protocol/ChainReference.d.ts +11 -0
- package/dist/types/protocol/ChainReference.d.ts.map +1 -0
- package/dist/types/protocol/HydratedBlock.d.ts +6 -0
- package/dist/types/protocol/HydratedBlock.d.ts.map +1 -0
- package/dist/types/protocol/HydratedTransaction.d.ts +9 -0
- package/dist/types/protocol/HydratedTransaction.d.ts.map +1 -0
- package/dist/types/protocol/Issuer.d.ts +5 -0
- package/dist/types/protocol/Issuer.d.ts.map +1 -0
- package/dist/types/protocol/Steps.d.ts +2 -0
- package/dist/types/protocol/Steps.d.ts.map +1 -0
- package/dist/types/protocol/TransactionBoundWitness.d.ts +26 -0
- package/dist/types/protocol/TransactionBoundWitness.d.ts.map +1 -0
- package/dist/types/protocol/TransactionFeesFields.d.ts +35 -0
- package/dist/types/protocol/TransactionFeesFields.d.ts.map +1 -0
- package/dist/types/protocol/index.d.ts +13 -0
- package/dist/types/protocol/index.d.ts.map +1 -0
- package/dist/types/provider/XyoProvider.d.ts +18 -0
- package/dist/types/provider/XyoProvider.d.ts.map +1 -0
- package/dist/types/provider/XyoRunner.d.ts +7 -0
- package/dist/types/provider/XyoRunner.d.ts.map +1 -0
- package/dist/types/provider/XyoSigner.d.ts +10 -0
- package/dist/types/provider/XyoSigner.d.ts.map +1 -0
- package/dist/types/provider/XyoStorage.d.ts +16 -0
- package/dist/types/provider/XyoStorage.d.ts.map +1 -0
- package/dist/types/provider/XyoViewer.d.ts +17 -0
- package/dist/types/provider/XyoViewer.d.ts.map +1 -0
- package/dist/types/provider/XyoWallet.d.ts +13 -0
- package/dist/types/provider/XyoWallet.d.ts.map +1 -0
- package/dist/types/provider/index.d.ts +7 -0
- package/dist/types/provider/index.d.ts.map +1 -0
- package/dist/types/repository/Repository.d.ts +10 -0
- package/dist/types/repository/Repository.d.ts.map +1 -0
- package/dist/types/repository/TransactionReadRepository.d.ts +5 -0
- package/dist/types/repository/TransactionReadRepository.d.ts.map +1 -0
- package/dist/types/repository/TransactionRepository.d.ts +10 -0
- package/dist/types/repository/TransactionRepository.d.ts.map +1 -0
- package/dist/types/repository/TransactionRepositoryIterator.d.ts +5 -0
- package/dist/types/repository/TransactionRepositoryIterator.d.ts.map +1 -0
- package/dist/types/repository/TransactionWriteRepository.d.ts +5 -0
- package/dist/types/repository/TransactionWriteRepository.d.ts.map +1 -0
- package/dist/types/repository/index.d.ts +6 -0
- package/dist/types/repository/index.d.ts.map +1 -0
- package/dist/types/services/AccountBalanceService.d.ts +7 -0
- package/dist/types/services/AccountBalanceService.d.ts.map +1 -0
- package/dist/types/services/BlockProducer.d.ts +7 -0
- package/dist/types/services/BlockProducer.d.ts.map +1 -0
- package/dist/types/services/BlockReward.d.ts +6 -0
- package/dist/types/services/BlockReward.d.ts.map +1 -0
- package/dist/types/services/Chain/ChainContractViewer.d.ts +12 -0
- package/dist/types/services/Chain/ChainContractViewer.d.ts.map +1 -0
- package/dist/types/services/Chain/ChainIdentification.d.ts +14 -0
- package/dist/types/services/Chain/ChainIdentification.d.ts.map +1 -0
- package/dist/types/services/Chain/ChainInformation.d.ts +12 -0
- package/dist/types/services/Chain/ChainInformation.d.ts.map +1 -0
- package/dist/types/services/Chain/ChainService.d.ts +8 -0
- package/dist/types/services/Chain/ChainService.d.ts.map +1 -0
- package/dist/types/services/Chain/ChainStakeViewer.d.ts +10 -0
- package/dist/types/services/Chain/ChainStakeViewer.d.ts.map +1 -0
- package/dist/types/services/Chain/ChainStaker.d.ts +6 -0
- package/dist/types/services/Chain/ChainStaker.d.ts.map +1 -0
- package/dist/types/services/Chain/index.d.ts +7 -0
- package/dist/types/services/Chain/index.d.ts.map +1 -0
- package/dist/types/services/Election.d.ts +11 -0
- package/dist/types/services/Election.d.ts.map +1 -0
- package/dist/types/services/Params.d.ts +9 -0
- package/dist/types/services/Params.d.ts.map +1 -0
- package/dist/types/services/PendingTransactionsService.d.ts +7 -0
- package/dist/types/services/PendingTransactionsService.d.ts.map +1 -0
- package/dist/types/services/Service.d.ts +9 -0
- package/dist/types/services/Service.d.ts.map +1 -0
- package/dist/types/services/index.d.ts +10 -0
- package/dist/types/services/index.d.ts.map +1 -0
- package/dist/types/services/stakeIntent/ChainIndexingServiceStateSchema.d.ts +39 -0
- package/dist/types/services/stakeIntent/ChainIndexingServiceStateSchema.d.ts.map +1 -0
- package/dist/types/services/stakeIntent/StakeIntentService.d.ts +24 -0
- package/dist/types/services/stakeIntent/StakeIntentService.d.ts.map +1 -0
- package/dist/types/services/stakeIntent/index.d.ts +3 -0
- package/dist/types/services/stakeIntent/index.d.ts.map +1 -0
- package/dist/types/validation/block/BlockValidationFunction.d.ts +5 -0
- package/dist/types/validation/block/BlockValidationFunction.d.ts.map +1 -0
- package/dist/types/validation/block/HydratedBlockStateValidationFunction.d.ts +13 -0
- package/dist/types/validation/block/HydratedBlockStateValidationFunction.d.ts.map +1 -0
- package/dist/types/validation/block/HydratedBlockValidationFunction.d.ts +11 -0
- package/dist/types/validation/block/HydratedBlockValidationFunction.d.ts.map +1 -0
- package/dist/types/validation/block/index.d.ts +4 -0
- package/dist/types/validation/block/index.d.ts.map +1 -0
- package/dist/types/validation/boundwitness/BoundWitnessValidationFunction.d.ts +4 -0
- package/dist/types/validation/boundwitness/BoundWitnessValidationFunction.d.ts.map +1 -0
- package/dist/types/validation/boundwitness/HydratedBoundWitnessValidationFunction.d.ts +6 -0
- package/dist/types/validation/boundwitness/HydratedBoundWitnessValidationFunction.d.ts.map +1 -0
- package/dist/types/validation/boundwitness/index.d.ts +3 -0
- package/dist/types/validation/boundwitness/index.d.ts.map +1 -0
- package/dist/types/validation/index.d.ts +5 -0
- package/dist/types/validation/index.d.ts.map +1 -0
- package/dist/types/validation/payload/InBlockPayloadValidationFunction.d.ts +5 -0
- package/dist/types/validation/payload/InBlockPayloadValidationFunction.d.ts.map +1 -0
- package/dist/types/validation/payload/index.d.ts +2 -0
- package/dist/types/validation/payload/index.d.ts.map +1 -0
- package/dist/types/validation/transaction/HydratedTransactionStateValidationFunction.d.ts +13 -0
- package/dist/types/validation/transaction/HydratedTransactionStateValidationFunction.d.ts.map +1 -0
- package/dist/types/validation/transaction/HydratedTransactionValidationFunction.d.ts +12 -0
- package/dist/types/validation/transaction/HydratedTransactionValidationFunction.d.ts.map +1 -0
- package/dist/types/validation/transaction/index.d.ts +3 -0
- package/dist/types/validation/transaction/index.d.ts.map +1 -0
- package/documents/proof-of-perfect/proof-of-perfect-draft.log +741 -0
- package/documents/proof-of-perfect/proof-of-perfect-draft.pdf +0 -0
- package/documents/proof-of-perfect/proof-of-perfect-draft.tex +311 -0
- package/documents/xyol1-white-paper/white-paper-draft.log +547 -0
- package/documents/xyol1-white-paper/white-paper-draft.pdf +0 -0
- package/documents/xyol1-white-paper/white-paper-draft.tex +799 -0
- package/eslint.config.mjs +35 -0
- package/knip.config.ts +1 -1
- package/knip.log +491 -0
- package/package.json +31 -18
- package/src/Addressable.ts +6 -0
- package/src/ChainIterator.ts +29 -0
- package/src/ChainIteratorEventData.ts +11 -0
- package/src/OpenTelemetryProviders.ts +6 -0
- package/src/chain/ChainServiceCollection.ts +41 -0
- package/src/chain/Initializable.ts +3 -0
- package/src/chain/index.ts +2 -0
- package/src/ethereum.ts +26 -0
- package/src/index.ts +13 -1
- package/src/instances/BoundWitness.ts +13 -0
- package/src/instances/Data.ts +3 -0
- package/src/instances/Fees.ts +8 -0
- package/src/instances/HydratedBoundWitness.ts +15 -0
- package/src/instances/Object.ts +5 -0
- package/src/instances/Payload.ts +6 -0
- package/src/instances/Signature.ts +11 -0
- package/src/instances/block/BlockFields.ts +13 -0
- package/src/instances/block/HydratedBlock.ts +9 -0
- package/src/instances/block/SignedHydratedBlock.ts +5 -0
- package/src/instances/block/index.ts +2 -0
- package/src/instances/index.ts +9 -0
- package/src/instances/modifiers/Signed.ts +8 -0
- package/src/instances/modifiers/Validatable.ts +5 -0
- package/src/instances/modifiers/index.ts +2 -0
- package/src/instances/transaction/HydratedTransaction.ts +8 -0
- package/src/instances/transaction/SignedHydratedTransaction.ts +7 -0
- package/src/instances/transaction/TransactionFields.ts +12 -0
- package/src/instances/transaction/index.ts +2 -0
- package/src/payload/elevatable/ChainStakeIntent.ts +32 -0
- package/src/payload/elevatable/Executable.ts +29 -0
- package/src/payload/elevatable/Hash.ts +19 -0
- package/src/payload/elevatable/TransferPayload.ts +26 -0
- package/src/payload/elevatable/index.ts +4 -0
- package/src/payload/index.ts +1 -0
- package/src/protocol/AllowedBlockPayload.ts +29 -0
- package/src/protocol/BlockBoundWitness.ts +47 -0
- package/src/protocol/BlockDuration.ts +23 -0
- package/src/protocol/BlockNumber.ts +39 -0
- package/src/protocol/ChainAnalyzer.ts +10 -0
- package/src/protocol/ChainReference.ts +11 -0
- package/src/protocol/HydratedBlock.ts +8 -0
- package/src/protocol/HydratedTransaction.ts +19 -0
- package/src/protocol/Issuer.ts +5 -0
- package/src/protocol/Steps.ts +1 -0
- package/src/protocol/TransactionBoundWitness.ts +51 -0
- package/src/protocol/TransactionFeesFields.ts +38 -0
- package/src/protocol/index.ts +12 -0
- package/src/provider/XyoProvider.ts +29 -0
- package/src/provider/XyoRunner.ts +8 -0
- package/src/provider/XyoSigner.ts +21 -0
- package/src/provider/XyoStorage.ts +17 -0
- package/src/provider/XyoViewer.ts +18 -0
- package/src/provider/XyoWallet.ts +15 -0
- package/src/provider/index.ts +6 -0
- package/src/repository/Repository.ts +11 -0
- package/src/repository/TransactionReadRepository.ts +4 -0
- package/src/repository/TransactionRepository.ts +9 -0
- package/src/repository/TransactionRepositoryIterator.ts +4 -0
- package/src/repository/TransactionWriteRepository.ts +4 -0
- package/src/repository/index.ts +5 -0
- package/src/services/AccountBalanceService.ts +9 -0
- package/src/services/BlockProducer.ts +7 -0
- package/src/services/BlockReward.ts +7 -0
- package/src/services/Chain/ChainContractViewer.ts +12 -0
- package/src/services/Chain/ChainIdentification.ts +17 -0
- package/src/services/Chain/ChainInformation.ts +20 -0
- package/src/services/Chain/ChainService.ts +7 -0
- package/src/services/Chain/ChainStakeViewer.ts +10 -0
- package/src/services/Chain/ChainStaker.ts +5 -0
- package/src/services/Chain/index.ts +6 -0
- package/src/services/Election.ts +14 -0
- package/src/services/Params.ts +11 -0
- package/src/services/PendingTransactionsService.ts +8 -0
- package/src/services/Service.ts +10 -0
- package/src/services/index.ts +9 -0
- package/src/services/stakeIntent/ChainIndexingServiceStateSchema.ts +46 -0
- package/src/services/stakeIntent/StakeIntentService.ts +28 -0
- package/src/services/stakeIntent/index.ts +2 -0
- package/src/validation/block/BlockValidationFunction.ts +9 -0
- package/src/validation/block/HydratedBlockStateValidationFunction.ts +18 -0
- package/src/validation/block/HydratedBlockValidationFunction.ts +15 -0
- package/src/validation/block/index.ts +3 -0
- package/src/validation/boundwitness/BoundWitnessValidationFunction.ts +6 -0
- package/src/validation/boundwitness/HydratedBoundWitnessValidationFunction.ts +10 -0
- package/src/validation/boundwitness/index.ts +2 -0
- package/src/validation/index.ts +4 -0
- package/src/validation/payload/InBlockPayloadValidationFunction.ts +8 -0
- package/src/validation/payload/index.ts +1 -0
- package/src/validation/transaction/HydratedTransactionStateValidationFunction.ts +18 -0
- package/src/validation/transaction/HydratedTransactionValidationFunction.ts +16 -0
- package/src/validation/transaction/index.ts +2 -0
- package/typedoc.json +5 -0
- package/vite.config.ts +30 -0
- package/vitest.config.ts +14 -0
- package/vitest.teardown.ts +10 -0
- package/vitest.workspace.ts +5 -0
- package/xy.config.ts +2 -2
- package/dist/types/transaction/buildTransaction.d.ts +0 -7
- package/dist/types/transaction/buildTransaction.d.ts.map +0 -1
- package/dist/types/transaction/hydrateTransaction.d.ts +0 -11
- package/dist/types/transaction/hydrateTransaction.d.ts.map +0 -1
- package/dist/types/transaction/index.d.ts +0 -3
- package/dist/types/transaction/index.d.ts.map +0 -1
- package/src/transaction/buildTransaction.ts +0 -61
- package/src/transaction/hydrateTransaction.ts +0 -73
- package/src/transaction/index.ts +0 -2
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/promise'
|
|
2
|
+
import type { Payload, WithHashStorageMeta } from '@xyo-network/payload-model'
|
|
3
|
+
|
|
4
|
+
import type { HydratedBlock } from '../../protocol/index.ts'
|
|
5
|
+
|
|
6
|
+
export type InBlockPayloadValidationFunction = (
|
|
7
|
+
payload: WithHashStorageMeta<Payload>, block: HydratedBlock
|
|
8
|
+
) => Promisable<Error[]>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './InBlockPayloadValidationFunction.ts'
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Address } from '@xylabs/hex'
|
|
2
|
+
import type { Promisable } from '@xylabs/promise'
|
|
3
|
+
import type { HydratedBoundWitnessWithStorageMeta, ReadArchivist } from '@xyo-network/archivist-model'
|
|
4
|
+
|
|
5
|
+
import type { TransactionBoundWitness } from '../../protocol/index.ts'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A function that validates a hydrated transaction against chain state.
|
|
9
|
+
* @param hydratedTransaction The hydrated transaction to validate.
|
|
10
|
+
* @param chainId The chain ID to use for validation.
|
|
11
|
+
* @param archivist The archivist to use for validation.
|
|
12
|
+
* @returns An array of errors if the transaction is invalid, or an empty array if it is valid.
|
|
13
|
+
*/
|
|
14
|
+
export type HydratedTransactionStateValidationFunction<T extends TransactionBoundWitness = TransactionBoundWitness> = (
|
|
15
|
+
hydratedTransaction: HydratedBoundWitnessWithStorageMeta<T>,
|
|
16
|
+
chainId: Address,
|
|
17
|
+
archivist: ReadArchivist,
|
|
18
|
+
) => Promisable<Error[]>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Address } from '@xylabs/hex'
|
|
2
|
+
import type { Promisable } from '@xylabs/promise'
|
|
3
|
+
|
|
4
|
+
import type { HydratedTransaction, HydratedTransactionWithHashStorageMeta } from '../../protocol/HydratedTransaction.ts'
|
|
5
|
+
import type { TransactionBoundWitness } from '../../protocol/TransactionBoundWitness.ts'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A function that validates a hydrated transaction.
|
|
9
|
+
* @param bw The hydrated transaction to validate.
|
|
10
|
+
* @param chainId The chain ID to use for validation.
|
|
11
|
+
* @returns An array of errors if the transaction is invalid, or an empty array if it is valid.
|
|
12
|
+
*/
|
|
13
|
+
export type HydratedTransactionValidatorFunction<T extends TransactionBoundWitness = TransactionBoundWitness> = (
|
|
14
|
+
hydratedTransaction: HydratedTransactionWithHashStorageMeta<HydratedTransaction<T>>,
|
|
15
|
+
chainId?: Address,
|
|
16
|
+
) => Promisable<Error[]>
|
package/typedoc.json
ADDED
package/vite.config.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { config } from 'dotenv'
|
|
2
|
+
import { defineConfig } from 'vite'
|
|
3
|
+
import topLevelAwait from 'vite-plugin-top-level-await'
|
|
4
|
+
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
|
+
const TopLevelAwaitPlugin = topLevelAwait as any
|
|
7
|
+
|
|
8
|
+
config()
|
|
9
|
+
|
|
10
|
+
const parsedPort = Number.parseInt(process.env.PORT ?? '')
|
|
11
|
+
const port = Number.isNaN(parsedPort) ? 3000 : parsedPort
|
|
12
|
+
|
|
13
|
+
// https://vitejs.dev/config/
|
|
14
|
+
export default defineConfig({
|
|
15
|
+
base: '/',
|
|
16
|
+
build: { target: 'esnext' },
|
|
17
|
+
// @bitauth/libauth does not have top level awaits that SB does not like
|
|
18
|
+
optimizeDeps: { exclude: ['@bitauth/libauth'] },
|
|
19
|
+
plugins: [{
|
|
20
|
+
...TopLevelAwaitPlugin({
|
|
21
|
+
// The export name of top-level await promise for each chunk module
|
|
22
|
+
promiseExportName: '__tla',
|
|
23
|
+
// The function to generate import names of top-level await promise in each chunk module
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
|
+
promiseImportName: (i: any) => `__tla_${i}`,
|
|
26
|
+
}),
|
|
27
|
+
apply: 'serve',
|
|
28
|
+
}],
|
|
29
|
+
server: { port, sourcemapIgnoreList: () => true },
|
|
30
|
+
})
|
package/vitest.config.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import dotenv from 'dotenv'
|
|
2
|
+
import tsconfigPaths from 'vite-tsconfig-paths'
|
|
3
|
+
import { defineConfig } from 'vitest/config'
|
|
4
|
+
|
|
5
|
+
dotenv.config()
|
|
6
|
+
|
|
7
|
+
export default defineConfig({
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
|
+
plugins: [(tsconfigPaths as any)()],
|
|
10
|
+
test: {
|
|
11
|
+
globals: false,
|
|
12
|
+
watch: false,
|
|
13
|
+
},
|
|
14
|
+
})
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default function globalTeardown() {
|
|
2
|
+
console.log('Stopping Ganache CLI...')
|
|
3
|
+
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
|
+
const ganacheProcess = (globalThis as any).__GANACHE_PROCESS__
|
|
6
|
+
if (ganacheProcess) {
|
|
7
|
+
ganacheProcess.kill('SIGTERM')
|
|
8
|
+
console.log('Ganache CLI stopped.')
|
|
9
|
+
}
|
|
10
|
+
}
|
package/xy.config.ts
CHANGED
|
@@ -2,8 +2,8 @@ import type { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
|
|
|
2
2
|
const config: XyTsupConfig = {
|
|
3
3
|
compile: {
|
|
4
4
|
browser: {},
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
neutral: { src: { entry: ['src/index.ts', 'src/cli/index.ts'] } },
|
|
6
|
+
node: { src: { entry: ['src/index.ts', 'src/cli/index.ts'] } },
|
|
7
7
|
},
|
|
8
8
|
}
|
|
9
9
|
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { Address } from '@xylabs/hex';
|
|
2
|
-
import type { AccountInstance } from '@xyo-network/account-model';
|
|
3
|
-
import type { Payload } from '@xyo-network/payload-model';
|
|
4
|
-
import type { AllowedBlockPayload, HydratedTransactionWithStorageMeta, TransactionFeesBigInt } from '@xyo-network/xl1-model';
|
|
5
|
-
export declare const defaultFees: TransactionFeesBigInt;
|
|
6
|
-
export declare function buildTransaction(chain: Address, elevatedPayloads: AllowedBlockPayload[], additionalPayloads: Payload[], signer: AccountInstance | AccountInstance[], nbf: number, exp: number, from?: Address, fees?: TransactionFeesBigInt): Promise<HydratedTransactionWithStorageMeta>;
|
|
7
|
-
//# sourceMappingURL=buildTransaction.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,KAAK,EACV,mBAAmB,EACnB,kCAAkC,EAA0D,qBAAqB,EAClH,MAAM,wBAAwB,CAAA;AAE/B,eAAO,MAAM,WAAW,EAAE,qBAEzB,CAAA;AAED,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,qBAAmC,GACxC,OAAO,CAAC,kCAAkC,CAAC,CAmC7C"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { Hash } from '@xylabs/hex';
|
|
2
|
-
import type { ReadArchivist } from '@xyo-network/archivist-model';
|
|
3
|
-
import type { Payload } from '@xyo-network/payload-model';
|
|
4
|
-
import type { HydratedTransaction, HydratedTransactionWithStorageMeta } from '@xyo-network/xl1-model';
|
|
5
|
-
export declare const tryHydrateTransaction: (archivist: ReadArchivist, hash: Hash) => Promise<HydratedTransactionWithStorageMeta | undefined>;
|
|
6
|
-
export declare const hydrateTransaction: (archivist: ReadArchivist, hash: Hash) => Promise<HydratedTransactionWithStorageMeta>;
|
|
7
|
-
export declare const flattenHydratedTransaction: (hydratedTransaction: HydratedTransaction) => Payload[];
|
|
8
|
-
export declare const flattenHydratedTransactions: (hydratedTransactions: HydratedTransaction[]) => Payload[];
|
|
9
|
-
export declare const tryHydrateElevatedTransaction: (archivist: ReadArchivist, hash: Hash) => Promise<HydratedTransaction | undefined>;
|
|
10
|
-
export declare const hydrateElevatedTransaction: (archivist: ReadArchivist, hash: Hash) => Promise<HydratedTransaction>;
|
|
11
|
-
//# sourceMappingURL=hydrateTransaction.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EAEV,mBAAmB,EAAE,kCAAkC,EACxD,MAAM,wBAAwB,CAAA;AAG/B,eAAO,MAAM,qBAAqB,GAChC,WAAW,aAAa,EACxB,MAAM,IAAI,KACT,OAAO,CAAC,kCAAkC,GAAG,SAAS,CAMxD,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,WAAW,aAAa,EACxB,MAAM,IAAI,KACT,OAAO,CAAC,kCAAkC,CAM5C,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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transaction/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import type { Address } from '@xylabs/hex'
|
|
3
|
-
import { toHex } from '@xylabs/hex'
|
|
4
|
-
import type { AccountInstance } from '@xyo-network/account-model'
|
|
5
|
-
import { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'
|
|
6
|
-
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
7
|
-
import type { Payload } from '@xyo-network/payload-model'
|
|
8
|
-
import type {
|
|
9
|
-
AllowedBlockPayload,
|
|
10
|
-
HydratedTransactionWithStorageMeta, TransactionBoundWitness, TransactionBoundWitnessFields, TransactionFeesBigInt,
|
|
11
|
-
} from '@xyo-network/xl1-model'
|
|
12
|
-
|
|
13
|
-
export const defaultFees: TransactionFeesBigInt = {
|
|
14
|
-
base: 1000n, gasPrice: 100n, gasLimit: 1_000_000n, priority: 0n,
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export async function buildTransaction(
|
|
18
|
-
chain: Address,
|
|
19
|
-
elevatedPayloads: AllowedBlockPayload[],
|
|
20
|
-
additionalPayloads: Payload[],
|
|
21
|
-
signer: AccountInstance | AccountInstance[],
|
|
22
|
-
nbf: number,
|
|
23
|
-
exp: number,
|
|
24
|
-
from?: Address,
|
|
25
|
-
fees: TransactionFeesBigInt = defaultFees,
|
|
26
|
-
): Promise<HydratedTransactionWithStorageMeta> {
|
|
27
|
-
if (from === undefined && Array.isArray(signer)) {
|
|
28
|
-
throw new Error('from is required when signer is an array')
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const txBoundWitnessFields: TransactionBoundWitnessFields = {
|
|
32
|
-
chain,
|
|
33
|
-
fees: {
|
|
34
|
-
base: toHex(fees.base),
|
|
35
|
-
gasLimit: toHex(fees.gasLimit),
|
|
36
|
-
gasPrice: toHex(fees.gasPrice),
|
|
37
|
-
priority: toHex(fees.priority),
|
|
38
|
-
},
|
|
39
|
-
nbf,
|
|
40
|
-
exp,
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const elevatedHashes = await PayloadBuilder.hashes(elevatedPayloads)
|
|
44
|
-
const script: string[] = []
|
|
45
|
-
for (const elevatedHash of elevatedHashes) {
|
|
46
|
-
script.push(`elevate|${elevatedHash}`)
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const [tx, txPayloads] = await new BoundWitnessBuilder<TransactionBoundWitness>()
|
|
50
|
-
.fields({
|
|
51
|
-
...txBoundWitnessFields,
|
|
52
|
-
script,
|
|
53
|
-
from: from ?? (Array.isArray(signer) ? assertEx(signer.at(0)?.address) : signer.address),
|
|
54
|
-
})
|
|
55
|
-
.meta({ $signatures: [] })
|
|
56
|
-
.payloads([...elevatedPayloads, ...additionalPayloads])
|
|
57
|
-
.signers(Array.isArray(signer) ? signer : [signer])
|
|
58
|
-
.build()
|
|
59
|
-
|
|
60
|
-
return [await PayloadBuilder.addStorageMeta(tx), await PayloadBuilder.addStorageMeta(txPayloads)]
|
|
61
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import type { Hash } from '@xylabs/hex'
|
|
3
|
-
import type { ReadArchivist } from '@xyo-network/archivist-model'
|
|
4
|
-
import { hydrateTypedBoundWitness, tryHydrateTypedBoundWitness } from '@xyo-network/archivist-model'
|
|
5
|
-
import type { Payload } from '@xyo-network/payload-model'
|
|
6
|
-
import type {
|
|
7
|
-
AllowedBlockPayload,
|
|
8
|
-
HydratedTransaction, HydratedTransactionWithStorageMeta, TransactionBoundWitness,
|
|
9
|
-
} from '@xyo-network/xl1-model'
|
|
10
|
-
import { isAllowedBlockPayload, isTransactionBoundWitnessWithStorageMeta } from '@xyo-network/xl1-model'
|
|
11
|
-
|
|
12
|
-
export const tryHydrateTransaction = async (
|
|
13
|
-
archivist: ReadArchivist,
|
|
14
|
-
hash: Hash,
|
|
15
|
-
): Promise<HydratedTransactionWithStorageMeta | undefined> => {
|
|
16
|
-
return (await tryHydrateTypedBoundWitness<TransactionBoundWitness>(
|
|
17
|
-
archivist,
|
|
18
|
-
hash,
|
|
19
|
-
isTransactionBoundWitnessWithStorageMeta,
|
|
20
|
-
)) as HydratedTransactionWithStorageMeta | undefined
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export const hydrateTransaction = async (
|
|
24
|
-
archivist: ReadArchivist,
|
|
25
|
-
hash: Hash,
|
|
26
|
-
): Promise<HydratedTransactionWithStorageMeta> => {
|
|
27
|
-
return await hydrateTypedBoundWitness<TransactionBoundWitness>(
|
|
28
|
-
archivist,
|
|
29
|
-
hash,
|
|
30
|
-
isTransactionBoundWitnessWithStorageMeta,
|
|
31
|
-
) as HydratedTransactionWithStorageMeta
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export const flattenHydratedTransaction = (hydratedTransaction: HydratedTransaction): Payload[] => {
|
|
35
|
-
const [tx, txPayloads] = hydratedTransaction
|
|
36
|
-
return [...txPayloads, tx]
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export const flattenHydratedTransactions = (hydratedTransactions: HydratedTransaction[]): Payload[] =>
|
|
40
|
-
hydratedTransactions.flatMap(tx => flattenHydratedTransaction(tx))
|
|
41
|
-
|
|
42
|
-
export const tryHydrateElevatedTransaction = async (
|
|
43
|
-
archivist: ReadArchivist,
|
|
44
|
-
hash: Hash,
|
|
45
|
-
): Promise<HydratedTransaction | undefined> => {
|
|
46
|
-
const hydratedTransaction = await tryHydrateTransaction(archivist, hash)
|
|
47
|
-
if (!hydratedTransaction) {
|
|
48
|
-
return undefined
|
|
49
|
-
}
|
|
50
|
-
const [transaction, payloads] = hydratedTransaction
|
|
51
|
-
const opCodes = (transaction.script ?? []).filter(operation => operation.startsWith('elevate|'))
|
|
52
|
-
const elevatedPayloads: AllowedBlockPayload[] = []
|
|
53
|
-
for (const opCode of opCodes) {
|
|
54
|
-
const [code, hash] = opCode.split('|')
|
|
55
|
-
if (code === 'elevated') {
|
|
56
|
-
const elevatedPayload = payloads.find(payload => payload._hash === hash)
|
|
57
|
-
if (isAllowedBlockPayload(elevatedPayload)) {
|
|
58
|
-
elevatedPayloads.push(elevatedPayload)
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (opCodes.length === elevatedPayloads.length) {
|
|
63
|
-
return [transaction, elevatedPayloads]
|
|
64
|
-
}
|
|
65
|
-
return undefined
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export const hydrateElevatedTransaction = async (
|
|
69
|
-
archivist: ReadArchivist,
|
|
70
|
-
hash: Hash,
|
|
71
|
-
): Promise<HydratedTransaction> => {
|
|
72
|
-
return assertEx(await tryHydrateElevatedTransaction(archivist, hash), () => 'Hydration failed')
|
|
73
|
-
}
|
package/src/transaction/index.ts
DELETED