@xyo-network/chain-services 1.18.4 → 1.19.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.
@@ -82,14 +82,16 @@ export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleB
82
82
  */
83
83
  protected getProducerRedeclaration(head: WithHashMeta<BlockBoundWitness>): Promisable<ChainStakeIntent | undefined>;
84
84
  protected proposeNextValidBlock(head: WithHashMeta<BlockBoundWitness>, validateBalances?: boolean, force?: boolean): Promise<[{
85
- schema: "network.xyo.boundwitness";
85
+ schema: "network.xyo.boundwitness" & {
86
+ readonly __schema: true;
87
+ };
86
88
  addresses: (Lowercase<string> & {
87
89
  readonly __hex: true;
88
90
  } & {
89
91
  readonly __address: true;
90
92
  })[];
91
93
  payload_hashes: import("@xylabs/sdk-js").BrandedHash[];
92
- payload_schemas: string[];
94
+ payload_schemas: import("@xyo-network/payload-model").BrandedSchema<string>[];
93
95
  previous_hashes: (import("@xylabs/sdk-js").BrandedHash | null)[];
94
96
  $signatures: import("@xylabs/sdk-js").BrandedHex[];
95
97
  block: import("@xyo-network/xl1-sdk").XL1BlockNumber;
@@ -107,7 +109,7 @@ export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleB
107
109
  protocol?: number | undefined;
108
110
  step_hashes?: import("@xylabs/sdk-js").BrandedHash[] | undefined;
109
111
  }, {
110
- schema: string;
112
+ schema: import("@xyo-network/payload-model").BrandedSchema<string>;
111
113
  _hash: import("@xylabs/sdk-js").BrandedHash;
112
114
  _dataHash: import("@xylabs/sdk-js").BrandedHash;
113
115
  }[]] | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleBlockRunner.d.ts","sourceRoot":"","sources":["../../../../../src/simple/block/runner/SimpleBlockRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SimpleBlockRunner.d.ts","sourceRoot":"","sources":["../../../../../src/simple/block/runner/SimpleBlockRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAAiD,UAAU,EACnE,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EACL,yBAAyB,EAAE,oBAAoB,EAAkF,iBAAiB,EAC3G,iBAAiB,EAA4B,WAAW,EAAsB,qBAAqB,EACnG,gBAAgB,EAAqB,uBAAuB,EACnG,oCAAoC,EAAE,aAAa,EAAwB,aAAa,EAAwB,mCAAmC,EACnJ,+BAA+B,EAA6B,cAAc,EAAyB,QAAQ,EAC5G,MAAM,sBAAsB,CAAA;AAI7B;;GAEG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,mCAAmC,QAAS,CAAA;AAEzD;;;GAGG;AACH,eAAO,MAAM,iCAAiC,MAAM,CAAA;AAEpD,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;IACtE,OAAO,EAAE,eAAe,CAAA;IACxB,6BAA6B,CAAC,EAAE,iBAAiB,CAAA;IACjD,aAAa,EAAE,OAAO,CAAA;IACtB,0BAA0B,CAAC,EAAE,oCAAoC,CAAA;CAClE;AAED,qBACa,iBAAkB,SAAQ,yBAAyB,CAAC,uBAAuB,CAAE,YAAW,WAAW;IAC9G,MAAM,CAAC,QAAQ,CAAC,cAAc,gBAAqB;IACnD,MAAM,CAAC,QAAQ,CAAC,YAAY,oIAO3B;IAED,MAAM,CAAC,QAAQ,CAAC,QAAQ,kBAAuB;IAC/C,OAAO,gBAAmC;IAE1C,SAAS,CAAC,mBAAmB,CAAC,EAAE,kBAAkB,CAAA;IAClD,SAAS,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAC1C,SAAS,CAAC,8BAA8B,CAAC,EAAE,iBAAiB,CAAA;IAE5D,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,qBAAqB,CAAC,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,kBAAkB,CAAC,CAAmB;IAC9C,OAAO,CAAC,sBAAsB,CAAC,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAC,CAAe;IACtC,OAAO,CAAC,cAAc,CAAC,CAAe;IACtC,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,eAAe,CAAC,CAAgB;IAExC;;OAEG;IACH,MAAM,KAAK,gBAAgB,IAAI,MAAM,CAEpC;IAED;;;OAGG;IACH,MAAM,KAAK,qBAAqB,IAAI,MAAM,CAEzC;IAED;;;OAGG;IACH,MAAM,KAAK,mBAAmB,IAAI,MAAM,CAEvC;IAED,SAAS,KAAK,OAAO,oBAEpB;IAED,SAAS,KAAK,oBAAoB,yBAEjC;IAED,SAAS,KAAK,OAAO;;;;MAEpB;IAED,SAAS,KAAK,iBAAiB,sBAE9B;IAED,SAAS,KAAK,qBAAqB,0BAElC;IAED,SAAS,KAAK,OAAO,oDAEpB;IAMD,SAAS,KAAK,aAAa,kBAE1B;IAED,SAAS,KAAK,aAAa,kBAE1B;IAMD,SAAS,KAAK,6BAA6B,0SAE1C;IAED,SAAS,KAAK,aAAa,IAAI,OAAO,CAErC;IAMD,SAAS,KAAK,cAAc,IAAI,cAAc,CAE7C;IAMc,aAAa;IActB,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,+BAA+B,GAAG,SAAS,CAAC;IAgBjG,gBAAgB,CAAC,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAClH,gBAAgB,CAAC,IAAI,EAAE,mCAAmC,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,+BAA+B,GAAG,SAAS,CAAC;cAOtH,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAmB3E;;;;OAIG;IACH,SAAS,CAAC,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC,gBAAgB,GAAG,SAAS,CAAC;cAkBnG,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,UAAQ,EAAE,KAAK,UAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA4EtG,cAAc;YAyBd,mBAAmB;IAIjC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAU1B"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json.schemastore.org/package.json",
3
3
  "name": "@xyo-network/chain-services",
4
- "version": "1.18.4",
4
+ "version": "1.19.0",
5
5
  "description": "XYO Layer One SDK Services",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -41,35 +41,35 @@
41
41
  "dependencies": {
42
42
  "@opentelemetry/api": "^1.9.0",
43
43
  "@xylabs/sdk-js": "~5.0.64",
44
- "@xyo-network/account-model": "~5.2.25",
45
- "@xyo-network/archivist-memory": "~5.2.25",
46
- "@xyo-network/archivist-model": "~5.2.25",
47
- "@xyo-network/boundwitness-model": "~5.2.25",
48
- "@xyo-network/boundwitness-validator": "~5.2.25",
49
- "@xyo-network/boundwitness-wrapper": "~5.2.25",
50
- "@xyo-network/chain-analyze": "~1.18.4",
51
- "@xyo-network/chain-modules": "~1.18.4",
52
- "@xyo-network/chain-protocol": "~1.18.4",
53
- "@xyo-network/chain-utils": "~1.18.4",
54
- "@xyo-network/payload-builder": "~5.2.25",
55
- "@xyo-network/payload-model": "~5.2.25",
44
+ "@xyo-network/account-model": "~5.3.2",
45
+ "@xyo-network/archivist-memory": "~5.3.2",
46
+ "@xyo-network/archivist-model": "~5.3.2",
47
+ "@xyo-network/boundwitness-model": "~5.3.2",
48
+ "@xyo-network/boundwitness-validator": "~5.3.2",
49
+ "@xyo-network/boundwitness-wrapper": "~5.3.2",
50
+ "@xyo-network/chain-analyze": "~1.19.0",
51
+ "@xyo-network/chain-modules": "~1.19.0",
52
+ "@xyo-network/chain-protocol": "~1.19.0",
53
+ "@xyo-network/chain-utils": "~1.19.0",
54
+ "@xyo-network/payload-builder": "~5.3.2",
55
+ "@xyo-network/payload-model": "~5.3.2",
56
56
  "@xyo-network/typechain": "~4.1.1",
57
- "@xyo-network/xl1-sdk": "~1.19.4",
57
+ "@xyo-network/xl1-sdk": "~1.20.2",
58
58
  "async-mutex": "~0.5.0",
59
59
  "ethers": "^6.16.0",
60
60
  "lru-cache": "^11.2.5"
61
61
  },
62
62
  "devDependencies": {
63
- "@types/node": "~25.0.10",
63
+ "@types/node": "~25.1.0",
64
64
  "@xylabs/sdk-js": "~5.0.64",
65
65
  "@xylabs/ts-scripts-yarn3": "~7.3.2",
66
66
  "@xylabs/tsconfig": "~7.3.2",
67
67
  "@xylabs/vitest-extended": "~5.0.64",
68
- "@xyo-network/account": "~5.2.25",
69
- "@xyo-network/account-model": "~5.2.25",
70
- "@xyo-network/chain-validation": "~1.18.4",
71
- "@xyo-network/wallet": "~5.2.25",
72
- "@xyo-network/wallet-model": "~5.2.25",
68
+ "@xyo-network/account": "~5.3.2",
69
+ "@xyo-network/account-model": "~5.3.2",
70
+ "@xyo-network/chain-validation": "~1.19.0",
71
+ "@xyo-network/wallet": "~5.3.2",
72
+ "@xyo-network/wallet-model": "~5.3.2",
73
73
  "cosmiconfig": "^9.0.0",
74
74
  "eslint": "^9.39.2",
75
75
  "tslib": "~2.8.1",
@@ -43,7 +43,7 @@ export class BaseElectionService extends AbstractCreatableProvider<BaseElectionS
43
43
  const candidates = await this.stakeIntentService.getDeclaredCandidatesForBlock(nextBlock, 'producer')
44
44
  const previousBlockHash = current._hash
45
45
  return this.generateCreatorCommittee(candidates, previousBlockHash)
46
- }, { timeBudgetLimit: 200 })
46
+ }, this.context)
47
47
  }
48
48
 
49
49
  protected generateCreatorCommittee(candidates: Address[], previousBlockHash: Hash, maxSize = 3): Address[] {
@@ -4,7 +4,7 @@ import {
4
4
  AbstractCreatableProvider,
5
5
  AttoXL1,
6
6
  creatableProvider,
7
- EventingChainBlockNumberIteratorService, NetworkStakeStepRewardService, NetworkStakeStepRewardViewerMoniker,
7
+ NetworkStakeStepRewardService, NetworkStakeStepRewardViewerMoniker,
8
8
  StepIdentity,
9
9
  StepIdentityString,
10
10
  } from '@xyo-network/xl1-sdk'
@@ -14,7 +14,6 @@ import { BaseServiceParams } from '../model/index.ts'
14
14
 
15
15
  export interface BaseNetworkStakeStepRewardServiceParams extends BaseServiceParams {
16
16
  chainArchivist: ReadArchivist
17
- chainIterator: EventingChainBlockNumberIteratorService
18
17
  ethProvider?: Provider
19
18
  }
20
19
 
@@ -224,7 +224,7 @@ export class BasePendingTransactionsService extends AbstractCreatableProvider<Ba
224
224
 
225
225
  return foundPendingTransactions
226
226
  }, BasePendingTransactionsService.MutexPriority.ReadTransactions)
227
- }, { timeBudgetLimit: 100 })
227
+ }, this.context)
228
228
  }
229
229
 
230
230
  private async cleanupWorker() {
@@ -275,7 +275,7 @@ export class BasePendingTransactionsService extends AbstractCreatableProvider<Ba
275
275
  await this.pendingBundledTransactionsLocalArchivist.insert(bundledTransactions)
276
276
  }
277
277
  }, BasePendingTransactionsService.MutexPriority.InsertNewTransactions)
278
- }, { timeBudgetLimit: 200 })
278
+ }, this.context)
279
279
  }
280
280
 
281
281
  /**
@@ -359,7 +359,7 @@ export class BasePendingTransactionsService extends AbstractCreatableProvider<Ba
359
359
  this.logger?.log(payload._hash)
360
360
  }
361
361
  }
362
- }, { timeBudgetLimit: 200 })
362
+ }, this.context)
363
363
  }
364
364
  }
365
365
 
@@ -33,6 +33,6 @@ export class BaseSchemasService extends AbstractCreatableProvider<BaseSchemasSer
33
33
  result[schema] = count
34
34
  }
35
35
  return result
36
- }, { timeBudgetLimit: 100 })
36
+ }, this.context)
37
37
  }
38
38
  }
@@ -121,7 +121,7 @@ export class XyoStakeIntentService extends AbstractCreatableProvider<XyoStakeInt
121
121
  const requiredMinimumStake = this.getRequiredMinimumStakeForIntent(intent)
122
122
  const validCandidates = await this.filterToValidStake(candidates, this.chainStakeViewer, requiredMinimumStake)
123
123
  return validCandidates
124
- }, { timeBudgetLimit: 200 })
124
+ }, this.context)
125
125
  }
126
126
 
127
127
  getRequiredMinimumStakeForIntent(intent: Intent): bigint {
@@ -227,7 +227,7 @@ export class XyoStakeIntentService extends AbstractCreatableProvider<XyoStakeInt
227
227
  if (isUndefined(currentHead)) return
228
228
  const currentHeadHash = currentHead._hash
229
229
  const chainMap = readPayloadMapFromStore<WithStorageMeta<Payload>>(this.chainArchivist)
230
- const result = await analyzeChain({ chainMap }, [new ChainStakeIntentAnalyzer('producer')], currentHeadHash, this._lastIndexedBlockHash)
230
+ const result = await analyzeChain(this.context, { chainMap }, [new ChainStakeIntentAnalyzer('producer')], currentHeadHash, this._lastIndexedBlockHash)
231
231
  const signedDeclarations = filterAs(result.find(isChainSummaryStakeIntent)?.intents ?? [], asChainStakeIntent)
232
232
  if (currentHead.block === undefined) return
233
233
  const currentHeadBlockNum = currentHead.block
@@ -248,7 +248,7 @@ export class XyoStakeIntentService extends AbstractCreatableProvider<XyoStakeInt
248
248
  }
249
249
  */
250
250
  this._lastIndexedBlockHash = currentHeadHash
251
- }, { timeBudgetLimit: 1000 })
251
+ }, this.context)
252
252
  })
253
253
  }
254
254
  }
package/src/index.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export * from './AccountBalance/index.ts'
2
2
  export * from './BlockReward/index.ts'
3
- export * from './blockViewerFromChainIteratorAndArchivist.ts'
4
3
  export * from './ChainValidator/index.ts'
5
4
  export * from './Election/index.ts'
6
5
  export * from './implementation/index.ts'
@@ -308,7 +308,7 @@ export class SimpleBlockRunner extends AbstractCreatableProvider<SimpleBlockRunn
308
308
  this.logger?.error(`Error proposing next valid block: ${(error as Error).message}`)
309
309
  throw error
310
310
  }
311
- }, { timeBudgetLimit: 200 })
311
+ }, this.context)
312
312
  }
313
313
 
314
314
  // remove unfunded transactions and block transfers
@@ -1,4 +0,0 @@
1
- import type { ReadArchivist } from '@xyo-network/archivist-model';
2
- import type { BlockViewer, EventingChainBlockNumberIteratorService } from '@xyo-network/xl1-sdk';
3
- export declare function blockViewerFromChainIteratorAndArchivist(chainIterator: EventingChainBlockNumberIteratorService, chainArchivist: ReadArchivist): BlockViewer;
4
- //# sourceMappingURL=blockViewerFromChainIteratorAndArchivist.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blockViewerFromChainIteratorAndArchivist.d.ts","sourceRoot":"","sources":["../../src/blockViewerFromChainIteratorAndArchivist.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAGjE,OAAO,KAAK,EAEV,WAAW,EAAE,uCAAuC,EAGrD,MAAM,sBAAsB,CAAA;AAK7B,wBAAgB,wCAAwC,CACtD,aAAa,EAAE,uCAAuC,EACtD,cAAc,EAAE,aAAa,GAC5B,WAAW,CAmFb"}
@@ -1,102 +0,0 @@
1
- import type { Hash, Promisable } from '@xylabs/sdk-js'
2
- import { isDefined } from '@xylabs/sdk-js'
3
- import type { ReadArchivist } from '@xyo-network/archivist-model'
4
- import { PayloadBuilder } from '@xyo-network/payload-builder'
5
- import type { Payload, WithHashMeta } from '@xyo-network/payload-model'
6
- import type {
7
- BlockRate,
8
- BlockViewer, EventingChainBlockNumberIteratorService,
9
- SignedHydratedBlockWithHashMeta,
10
- XL1BlockNumber,
11
- } from '@xyo-network/xl1-sdk'
12
- import {
13
- asSignedBlockBoundWitness, asSignedBlockBoundWitnessWithStorageMeta, BlockViewerMoniker,
14
- } from '@xyo-network/xl1-sdk'
15
-
16
- export function blockViewerFromChainIteratorAndArchivist(
17
- chainIterator: EventingChainBlockNumberIteratorService,
18
- chainArchivist: ReadArchivist,
19
- ): BlockViewer {
20
- const result = {
21
- blockByHash: async function (hash: Hash): Promise<SignedHydratedBlockWithHashMeta | null> {
22
- const [payload] = await chainArchivist.get([hash])
23
- const block = asSignedBlockBoundWitnessWithStorageMeta(payload)
24
- if (isDefined(block)) {
25
- const payloads = await chainArchivist.get(block.payload_hashes)
26
- return [block, payloads]
27
- }
28
- return null
29
- },
30
- blockByNumber: async function (blockNumber: XL1BlockNumber): Promise<SignedHydratedBlockWithHashMeta | null> {
31
- const payload = asSignedBlockBoundWitness(await chainIterator.get(blockNumber))
32
- const block = payload ? await PayloadBuilder.addHashMeta(payload) : undefined
33
- if (isDefined(block)) {
34
- const payloads = await chainArchivist.get(block.payload_hashes)
35
- return [block, payloads]
36
- }
37
- return null
38
- },
39
- blocksByHash: async function (hash: Hash, limit = 10): Promise<SignedHydratedBlockWithHashMeta[]> {
40
- const results: SignedHydratedBlockWithHashMeta[] = []
41
- for (let i = 0; i < limit; i++) {
42
- const block = await this.blockByHash(hash)
43
- if (block) {
44
- results.push(block)
45
- } else {
46
- break
47
- }
48
- }
49
- return results
50
- },
51
- blocksByNumber: async function (number: XL1BlockNumber, limit = 10): Promise<SignedHydratedBlockWithHashMeta[]> {
52
- const results: SignedHydratedBlockWithHashMeta[] = []
53
- for (let i = 0; i < limit; i++) {
54
- const block = await this.blockByNumber(number)
55
- if (block) {
56
- results.push(block)
57
- } else {
58
- break
59
- }
60
- }
61
- return results
62
- },
63
- chainId: async function (blockNumber: XL1BlockNumber | 'latest' = 'latest') {
64
- const block = blockNumber === 'latest'
65
- ? await this.currentBlock()
66
- : await this.blockByNumber(blockNumber)
67
- if (!block) {
68
- throw new Error(`Block not found for block number: ${blockNumber}`)
69
- }
70
- return block[0].chain
71
- },
72
- currentBlock: async function (): Promise<SignedHydratedBlockWithHashMeta> {
73
- const head = await chainIterator.head()
74
- return this.blockByHash(head._hash) as Promise<SignedHydratedBlockWithHashMeta>
75
- },
76
- currentBlockHash: async function (): Promise<Hash> {
77
- const head = await chainIterator.head()
78
- return head._hash
79
- },
80
- currentBlockNumber: async function (): Promise<XL1BlockNumber> {
81
- const head = await chainIterator.head()
82
- return head.block
83
- },
84
- moniker: BlockViewerMoniker,
85
- payloadByHash: function (_hash: Hash): Promisable<WithHashMeta<Payload> | null> {
86
- throw new Error('Function not implemented.')
87
- },
88
- payloadsByHash: function (_hashes: Hash[]): Promisable<WithHashMeta<Payload>[]> {
89
- throw new Error('Function not implemented.')
90
- },
91
- rate(..._args): Promisable<BlockRate> {
92
- throw new Error('Function not implemented.')
93
- },
94
- stepSizeRate(..._args) {
95
- throw new Error('Function not implemented.')
96
- },
97
- timeDurationRate(..._args) {
98
- throw new Error('Function not implemented.')
99
- },
100
- } satisfies BlockViewer
101
- return result
102
- }