@xyo-network/xl1-protocol-sdk 1.10.2 → 1.12.0

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.
Files changed (75) hide show
  1. package/dist/neutral/config/Api.d.ts +5 -13
  2. package/dist/neutral/config/Api.d.ts.map +1 -1
  3. package/dist/neutral/config/App.d.ts +4 -7
  4. package/dist/neutral/config/App.d.ts.map +1 -1
  5. package/dist/neutral/config/Chain.d.ts +3 -6
  6. package/dist/neutral/config/Chain.d.ts.map +1 -1
  7. package/dist/neutral/config/Config.d.ts +39 -225
  8. package/dist/neutral/config/Config.d.ts.map +1 -1
  9. package/dist/neutral/config/Evm.d.ts +11 -49
  10. package/dist/neutral/config/Evm.d.ts.map +1 -1
  11. package/dist/neutral/config/Log.d.ts +12 -7
  12. package/dist/neutral/config/Log.d.ts.map +1 -1
  13. package/dist/neutral/config/Producer.d.ts +7 -20
  14. package/dist/neutral/config/Producer.d.ts.map +1 -1
  15. package/dist/neutral/config/Telemetry.d.ts +8 -24
  16. package/dist/neutral/config/Telemetry.d.ts.map +1 -1
  17. package/dist/neutral/config/UsageMeta.d.ts +27 -0
  18. package/dist/neutral/config/UsageMeta.d.ts.map +1 -0
  19. package/dist/neutral/config/index.d.ts +1 -0
  20. package/dist/neutral/config/index.d.ts.map +1 -1
  21. package/dist/neutral/config/storage/Storage.d.ts +4 -34
  22. package/dist/neutral/config/storage/Storage.d.ts.map +1 -1
  23. package/dist/neutral/config/storage/driver/Mongo.d.ts +3 -15
  24. package/dist/neutral/config/storage/driver/Mongo.d.ts.map +1 -1
  25. package/dist/neutral/index.mjs +215 -72
  26. package/dist/neutral/index.mjs.map +1 -1
  27. package/dist/neutral/instances/transaction/HydratedTransaction.d.ts +2 -2
  28. package/dist/neutral/instances/transaction/HydratedTransaction.d.ts.map +1 -1
  29. package/dist/neutral/payload/netBalancesForPayloads.d.ts +5 -2
  30. package/dist/neutral/payload/netBalancesForPayloads.d.ts.map +1 -1
  31. package/dist/neutral/transaction/buildTransaction.d.ts +3 -3
  32. package/dist/neutral/transaction/buildTransaction.d.ts.map +1 -1
  33. package/dist/neutral/transaction/buildUnsignedTransaction.d.ts +3 -3
  34. package/dist/neutral/transaction/buildUnsignedTransaction.d.ts.map +1 -1
  35. package/dist/neutral/transaction/confirmSubmittedTransaction.d.ts +2 -2
  36. package/dist/neutral/transaction/confirmSubmittedTransaction.d.ts.map +1 -1
  37. package/dist/neutral/transaction/hydrateTransaction.d.ts +7 -7
  38. package/dist/neutral/transaction/hydrateTransaction.d.ts.map +1 -1
  39. package/dist/neutral/transaction/primitives/transactionBlockByteCount.d.ts +2 -2
  40. package/dist/neutral/transaction/primitives/transactionBlockByteCount.d.ts.map +1 -1
  41. package/dist/neutral/transaction/primitives/transactionElevatedPayloads.d.ts +2 -2
  42. package/dist/neutral/transaction/primitives/transactionElevatedPayloads.d.ts.map +1 -1
  43. package/dist/neutral/transaction/primitives/transactionRequiredGas.d.ts +3 -3
  44. package/dist/neutral/transaction/primitives/transactionRequiredGas.d.ts.map +1 -1
  45. package/dist/neutral/transaction/script.d.ts +3 -3
  46. package/dist/neutral/transaction/script.d.ts.map +1 -1
  47. package/dist/neutral/transaction/signTransaction.d.ts +1 -1
  48. package/dist/neutral/transaction/signTransaction.d.ts.map +1 -1
  49. package/dist/neutral/validation/schema/Mnemonic.d.ts +2 -2
  50. package/dist/neutral/validation/schema/Mnemonic.d.ts.map +1 -1
  51. package/package.json +21 -21
  52. package/src/config/Api.ts +21 -7
  53. package/src/config/App.ts +11 -2
  54. package/src/config/Chain.ts +10 -3
  55. package/src/config/Config.ts +19 -25
  56. package/src/config/Evm.ts +29 -12
  57. package/src/config/Log.ts +18 -2
  58. package/src/config/Producer.ts +36 -9
  59. package/src/config/Telemetry.ts +10 -6
  60. package/src/config/UsageMeta.ts +41 -0
  61. package/src/config/index.ts +1 -0
  62. package/src/config/storage/Storage.ts +10 -6
  63. package/src/config/storage/driver/Mongo.ts +28 -8
  64. package/src/instances/transaction/HydratedTransaction.ts +2 -2
  65. package/src/transaction/buildTransaction.ts +5 -4
  66. package/src/transaction/buildUnsignedTransaction.ts +5 -4
  67. package/src/transaction/confirmSubmittedTransaction.ts +2 -2
  68. package/src/transaction/hydrateTransaction.ts +12 -12
  69. package/src/transaction/primitives/spec/transactionBlockByteCount.spec.ts +7 -7
  70. package/src/transaction/primitives/transactionBlockByteCount.ts +2 -2
  71. package/src/transaction/primitives/transactionElevatedPayloads.ts +2 -2
  72. package/src/transaction/primitives/transactionRequiredGas.ts +3 -3
  73. package/src/transaction/script.ts +3 -3
  74. package/src/transaction/signTransaction.ts +5 -5
  75. package/src/validation/schema/Mnemonic.ts +2 -2
@@ -3,14 +3,14 @@ import type {
3
3
  } from '@xylabs/hex'
4
4
  import { PayloadBuilder } from '@xyo-network/payload-builder'
5
5
  import type { AnyPayload, Sequence } from '@xyo-network/payload-model'
6
- import type { HydratedTransaction, TransactionBoundWitness } from '@xyo-network/xl1-protocol'
6
+ import type { SignedHydratedTransactionWithStorageMeta, TransactionBoundWitness } from '@xyo-network/xl1-protocol'
7
7
  import {
8
8
  describe, expect, it,
9
9
  } from 'vitest'
10
10
 
11
11
  import { transactionBlockByteCount } from '../transactionBlockByteCount.ts'
12
12
 
13
- const hydratedTransaction: HydratedTransaction<TransactionBoundWitness, AnyPayload> = [
13
+ const hydratedTransaction: SignedHydratedTransactionWithStorageMeta<TransactionBoundWitness, AnyPayload> = [
14
14
  {
15
15
  schema: 'network.xyo.boundwitness',
16
16
  addresses: [
@@ -90,7 +90,7 @@ describe('transactionBlockByteCount', () => {
90
90
 
91
91
  it('handles transaction with empty payload array', () => {
92
92
  // Arrange
93
- const emptyPayloadsTransaction: HydratedTransaction = [
93
+ const emptyPayloadsTransaction: SignedHydratedTransactionWithStorageMeta = [
94
94
  { ...hydratedTransaction[0] },
95
95
  [], // Empty payload array
96
96
  ]
@@ -122,7 +122,7 @@ describe('transactionBlockByteCount', () => {
122
122
  },
123
123
  })
124
124
 
125
- const complexTransaction: HydratedTransaction = [
125
+ const complexTransaction: SignedHydratedTransactionWithStorageMeta = [
126
126
  { ...hydratedTransaction[0] },
127
127
  [complexPayload],
128
128
  ]
@@ -155,7 +155,7 @@ describe('transactionBlockByteCount', () => {
155
155
  _hash: `hash${i}`,
156
156
  })))
157
157
 
158
- const largeTransaction: HydratedTransaction = [
158
+ const largeTransaction: SignedHydratedTransactionWithStorageMeta = [
159
159
  { ...hydratedTransaction[0] },
160
160
  largePayloads,
161
161
  ]
@@ -185,7 +185,7 @@ describe('transactionBlockByteCount', () => {
185
185
  _hash: 'special-hash',
186
186
  })
187
187
 
188
- const specialTransaction: HydratedTransaction = [
188
+ const specialTransaction: SignedHydratedTransactionWithStorageMeta = [
189
189
  { ...hydratedTransaction[0] },
190
190
  [specialCharPayload],
191
191
  ]
@@ -219,7 +219,7 @@ describe('transactionBlockByteCount', () => {
219
219
  _extraMeta2: 'should be omitted as well',
220
220
  })
221
221
 
222
- const transactionWithExtraMeta: HydratedTransaction = [
222
+ const transactionWithExtraMeta: SignedHydratedTransactionWithStorageMeta = [
223
223
  txWithExtraMeta,
224
224
  [payloadWithExtraMeta],
225
225
  ]
@@ -1,8 +1,8 @@
1
1
  import { PayloadBuilder } from '@xyo-network/payload-builder'
2
- import type { HydratedTransaction } from '@xyo-network/xl1-protocol'
2
+ import type { SignedHydratedTransaction } from '@xyo-network/xl1-protocol'
3
3
 
4
4
  /** The number of bytes that a transaction and its payloads will take up in a block */
5
- export function transactionBlockByteCount([transaction, payloads]: HydratedTransaction): number {
5
+ export function transactionBlockByteCount([transaction, payloads]: SignedHydratedTransaction): number {
6
6
  const cleanTransaction = PayloadBuilder.omitStorageMeta(transaction)
7
7
  const transactionBytes = JSON.stringify(cleanTransaction).length
8
8
  const cleanPayloads = PayloadBuilder.omitStorageMeta(payloads)
@@ -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 { HydratedTransaction, TransactionBoundWitness } from '@xyo-network/xl1-protocol'
3
+ import type { SignedHydratedTransactionWithStorageMeta, 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]: HydratedTransaction): WithHashStorageMeta<Payload>[] {
12
+ export function transactionElevatedPayloads([transaction, payloads]: SignedHydratedTransactionWithStorageMeta): WithHashStorageMeta<Payload>[] {
13
13
  const hashes = transactionElevatedPayloadHashes(transaction)
14
14
  const elevatedPayloads = payloads.filter(payload => hashes.includes(payload._hash))
15
15
  return elevatedPayloads
@@ -1,16 +1,16 @@
1
- import type { HydratedTransaction } from '@xyo-network/xl1-protocol'
1
+ import type { SignedHydratedTransactionWithStorageMeta } from '@xyo-network/xl1-protocol'
2
2
  import { AttoXL1, TransactionGasCosts } from '@xyo-network/xl1-protocol'
3
3
 
4
4
  import { transactionBlockByteCount } from './transactionBlockByteCount.ts'
5
5
  import { transactionElevatedPayloads } from './transactionElevatedPayloads.ts'
6
6
 
7
7
  /** The required gas for the byte storage on the block chain for a transaction */
8
- export function transactionBytesRequiredGas([transaction, payloads]: HydratedTransaction): AttoXL1 {
8
+ export function transactionBytesRequiredGas([transaction, payloads]: SignedHydratedTransactionWithStorageMeta): AttoXL1 {
9
9
  const transactionBlockBytes = transactionBlockByteCount([transaction, payloads])
10
10
  return AttoXL1(TransactionGasCosts.characterStorage * BigInt(transactionBlockBytes))
11
11
  }
12
12
 
13
- export function transactionRequiredGas(hydratedTransaction: HydratedTransaction): AttoXL1 {
13
+ export function transactionRequiredGas(hydratedTransaction: SignedHydratedTransactionWithStorageMeta): 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
@@ -2,7 +2,7 @@ import { filterAs } from '@xylabs/array'
2
2
  import { assertEx } from '@xylabs/assert'
3
3
  import { asHash, type Hash } from '@xylabs/hex'
4
4
  import type { WithStorageMeta } from '@xyo-network/payload-model'
5
- import type { AllowedBlockPayload, HydratedTransaction } from '@xyo-network/xl1-protocol'
5
+ import type { AllowedBlockPayload, HydratedTransactionWithStorageMeta } from '@xyo-network/xl1-protocol'
6
6
  import { isAllowedBlockPayloadWithHashStorageMeta } from '@xyo-network/xl1-protocol'
7
7
 
8
8
  export const tryExtractElevatedHashesFromScript = (strings: string[]): Hash[] => {
@@ -21,7 +21,7 @@ export const extractElevatedHashesFromScript = (strings: string[]): Hash[] => {
21
21
  return filtered
22
22
  }
23
23
 
24
- export const tryExtractElevatedHashes = (tx: HydratedTransaction): WithStorageMeta<AllowedBlockPayload>[] => {
24
+ export const tryExtractElevatedHashes = (tx: HydratedTransactionWithStorageMeta): WithStorageMeta<AllowedBlockPayload>[] => {
25
25
  const [bw, payloads] = tx
26
26
  const { script } = bw
27
27
  const hashes = script ? tryExtractElevatedHashesFromScript(script) : []
@@ -30,7 +30,7 @@ export const tryExtractElevatedHashes = (tx: HydratedTransaction): WithStorageMe
30
30
  .filter(isAllowedBlockPayloadWithHashStorageMeta)
31
31
  }
32
32
 
33
- export const extractElevatedHashes = (tx: HydratedTransaction): WithStorageMeta<AllowedBlockPayload>[] => {
33
+ export const extractElevatedHashes = (tx: HydratedTransactionWithStorageMeta): WithStorageMeta<AllowedBlockPayload>[] => {
34
34
  const [bw, payloads] = tx
35
35
  const { script } = bw
36
36
  const hashes = script ? tryExtractElevatedHashesFromScript(script) : []
@@ -5,14 +5,14 @@ import type { AccountInstance } from '@xyo-network/account-model'
5
5
  import { PayloadBuilder } from '@xyo-network/payload-builder'
6
6
  import type { TransactionBoundWitness } from '@xyo-network/xl1-protocol'
7
7
 
8
- export async function signTransaction(tx: TransactionBoundWitness, signer: AccountInstance) {
9
- assertEx(tx.from === signer.address, () => 'Signer address does not match transaction from address')
8
+ export async function signTransaction(tx: TransactionBoundWitness, account: AccountInstance) {
9
+ assertEx(tx.from === account.address, () => 'Signer address does not match transaction from address')
10
10
  const signedTx = structuredClone(tx)
11
- signedTx.addresses = [signer.address]
12
- signedTx.previous_hashes = [signer.previousHash ?? null]
11
+ signedTx.addresses = [account.address]
12
+ signedTx.previous_hashes = [account.previousHash ?? null]
13
13
  const hash = await PayloadBuilder.hash(signedTx)
14
14
  const hashBytes = toArrayBuffer(hash)
15
- const [signature] = await signer.sign(hashBytes)
15
+ const [signature] = await account.sign(hashBytes)
16
16
  signedTx.$signatures = [hexFromArrayBuffer(signature)]
17
17
  return signedTx
18
18
  }
@@ -9,7 +9,7 @@ import { z } from 'zod'
9
9
  * • Checks that the word-count is 12, 15, 18, 21, or 24.
10
10
  *
11
11
  */
12
- export const MnemonicStringSchema = z
12
+ export const MnemonicStringZod = z
13
13
  .string()
14
14
  .transform(s => s.trim().replaceAll(/\s+/g, ' ')) // normalize spacing
15
15
  .refine(
@@ -17,4 +17,4 @@ export const MnemonicStringSchema = z
17
17
  { message: 'Mnemonic must contain 12, 15, 18, 21, or 24 words.' },
18
18
  ).describe('BIP-39 mnemonic string')
19
19
 
20
- export type MnemonicString = z.infer<typeof MnemonicStringSchema>
20
+ export type MnemonicString = z.infer<typeof MnemonicStringZod>