@xyo-network/chain-services 1.15.1 → 1.15.2

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 (26) hide show
  1. package/dist/neutral/AccountTransfers/BaseAccountTransfersService.d.ts.map +1 -1
  2. package/dist/neutral/ChainBlockIteration/ChainBlockNumberIterationService.d.ts +20 -0
  3. package/dist/neutral/ChainBlockIteration/ChainBlockNumberIterationService.d.ts.map +1 -0
  4. package/dist/neutral/ChainBlockIteration/index.d.ts +3 -0
  5. package/dist/neutral/ChainBlockIteration/index.d.ts.map +1 -0
  6. package/dist/neutral/ChainBlockIteration/model/BlockNumberIteration.d.ts +7 -0
  7. package/dist/neutral/ChainBlockIteration/model/BlockNumberIteration.d.ts.map +1 -0
  8. package/dist/neutral/ChainBlockIteration/model/Params.d.ts +8 -0
  9. package/dist/neutral/ChainBlockIteration/model/Params.d.ts.map +1 -0
  10. package/dist/neutral/ChainBlockIteration/model/index.d.ts +3 -0
  11. package/dist/neutral/ChainBlockIteration/model/index.d.ts.map +1 -0
  12. package/dist/neutral/ChainBlockNumberIteration/ChainBlockNumberIterationService.d.ts +8 -5
  13. package/dist/neutral/ChainBlockNumberIteration/ChainBlockNumberIterationService.d.ts.map +1 -1
  14. package/dist/neutral/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.d.ts +13 -13
  15. package/dist/neutral/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.d.ts.map +1 -1
  16. package/dist/neutral/index.mjs +47 -31
  17. package/dist/neutral/index.mjs.map +1 -1
  18. package/package.json +22 -22
  19. package/src/AccountTransfers/BaseAccountTransfersService.ts +0 -1
  20. package/src/ChainBlockIteration/ChainBlockNumberIterationService.ts +108 -0
  21. package/src/ChainBlockIteration/index.ts +2 -0
  22. package/src/ChainBlockIteration/model/BlockNumberIteration.ts +7 -0
  23. package/src/ChainBlockIteration/model/Params.ts +9 -0
  24. package/src/ChainBlockIteration/model/index.ts +2 -0
  25. package/src/ChainBlockNumberIteration/ChainBlockNumberIterationService.ts +37 -23
  26. package/src/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.ts +13 -13
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.15.1",
4
+ "version": "1.15.2",
5
5
  "description": "XYO Layer One SDK Services",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -48,26 +48,26 @@
48
48
  "@xylabs/promise": "~5.0.11",
49
49
  "@xylabs/telemetry": "~5.0.11",
50
50
  "@xylabs/typeof": "~5.0.11",
51
- "@xyo-network/account-model": "~5.1.2",
52
- "@xyo-network/archivist-memory": "~5.1.2",
53
- "@xyo-network/archivist-model": "~5.1.2",
54
- "@xyo-network/boundwitness-model": "~5.1.2",
55
- "@xyo-network/boundwitness-validator": "~5.1.2",
56
- "@xyo-network/boundwitness-wrapper": "~5.1.2",
57
- "@xyo-network/chain-analyze": "~1.15.1",
58
- "@xyo-network/chain-modules": "~1.15.1",
59
- "@xyo-network/chain-protocol": "~1.15.1",
60
- "@xyo-network/chain-utils": "~1.15.1",
61
- "@xyo-network/payload-builder": "~5.1.2",
62
- "@xyo-network/payload-model": "~5.1.2",
51
+ "@xyo-network/account-model": "~5.1.3",
52
+ "@xyo-network/archivist-memory": "~5.1.3",
53
+ "@xyo-network/archivist-model": "~5.1.3",
54
+ "@xyo-network/boundwitness-model": "~5.1.3",
55
+ "@xyo-network/boundwitness-validator": "~5.1.3",
56
+ "@xyo-network/boundwitness-wrapper": "~5.1.3",
57
+ "@xyo-network/chain-analyze": "~1.15.2",
58
+ "@xyo-network/chain-modules": "~1.15.2",
59
+ "@xyo-network/chain-protocol": "~1.15.2",
60
+ "@xyo-network/chain-utils": "~1.15.2",
61
+ "@xyo-network/payload-builder": "~5.1.3",
62
+ "@xyo-network/payload-model": "~5.1.3",
63
63
  "@xyo-network/typechain": "~4.0.8",
64
- "@xyo-network/xl1-protocol": "~1.12.33",
65
- "@xyo-network/xl1-protocol-sdk": "~1.15.1",
66
- "@xyo-network/xl1-validation": "~1.15.1",
67
- "@xyo-network/xl1-wrappers": "~1.15.1",
64
+ "@xyo-network/xl1-protocol": "~1.12.40",
65
+ "@xyo-network/xl1-protocol-sdk": "~1.15.2",
66
+ "@xyo-network/xl1-validation": "~1.15.2",
67
+ "@xyo-network/xl1-wrappers": "~1.15.2",
68
68
  "async-mutex": "~0.5.0",
69
69
  "ethers": "6.15.0",
70
- "lru-cache": "~11.2.1"
70
+ "lru-cache": "~11.2.2"
71
71
  },
72
72
  "devDependencies": {
73
73
  "@types/node": "~24.5.2",
@@ -75,10 +75,10 @@
75
75
  "@xylabs/ts-scripts-yarn3": "~7.1.7",
76
76
  "@xylabs/tsconfig": "~7.1.7",
77
77
  "@xylabs/vitest-extended": "~5.0.11",
78
- "@xyo-network/account": "~5.1.2",
79
- "@xyo-network/account-model": "~5.1.2",
80
- "@xyo-network/chain-validation": "~1.15.1",
81
- "@xyo-network/wallet": "~5.1.2",
78
+ "@xyo-network/account": "~5.1.3",
79
+ "@xyo-network/account-model": "~5.1.3",
80
+ "@xyo-network/chain-validation": "~1.15.2",
81
+ "@xyo-network/wallet": "~5.1.3",
82
82
  "eslint": "^9.36.0",
83
83
  "tslib": "~2.8.1",
84
84
  "typescript": "~5.9.2",
@@ -1,6 +1,5 @@
1
1
  import { creatable } from '@xylabs/creatable'
2
2
  import { Address, Hash } from '@xylabs/hex'
3
- import { Promisable } from '@xylabs/promise'
4
3
  import { spanRootAsync } from '@xylabs/telemetry'
5
4
  import { ReadArchivist } from '@xyo-network/archivist-model'
6
5
  import {
@@ -0,0 +1,108 @@
1
+ import { assertEx } from '@xylabs/assert'
2
+ import type { Hex } from '@xylabs/hex'
3
+ import {
4
+ isDefined, isNull, isUndefined,
5
+ } from '@xylabs/typeof'
6
+ import type { ArchivistInstance } from '@xyo-network/archivist-model'
7
+ import { PayloadBuilder } from '@xyo-network/payload-builder'
8
+ import type { WithStorageMeta } from '@xyo-network/payload-model'
9
+ import type {
10
+ BlockBoundWitness,
11
+ ChainIteratorServiceEventData,
12
+ EventingChainBlockNumberIteratorService,
13
+ } from '@xyo-network/xl1-protocol'
14
+ import {
15
+ asBlockBoundWitness,
16
+ asBlockBoundWitnessWithStorageMeta,
17
+ isBlockBoundWitness,
18
+ } from '@xyo-network/xl1-protocol'
19
+ import { LRUCache } from 'lru-cache'
20
+
21
+ import { BaseService } from '../BaseService.ts'
22
+ import type { XyoChainIteratorParams } from './model/index.ts'
23
+
24
+ export class ChainBlockNumberIterationService extends BaseService<XyoChainIteratorParams, ChainIteratorServiceEventData>
25
+ implements EventingChainBlockNumberIteratorService {
26
+ protected _blocksByBlockNumber = new LRUCache<number, WithStorageMeta<BlockBoundWitness>>({ max: 10_000 })
27
+ protected _currentHead: WithStorageMeta<BlockBoundWitness> | undefined
28
+
29
+ get chainArchivist(): ArchivistInstance { return assertEx(this.params.chainArchivist) }
30
+
31
+ get chainId(): Hex { return assertEx(this._currentHead?.chain ?? this.params?.head?.chain, () => 'Current head is not set') }
32
+
33
+ async get(block: number): Promise<WithStorageMeta<BlockBoundWitness>> {
34
+ const head = await this.head()
35
+ // if(isUndefined(head)) return undefined
36
+ // Bail early if the block requested is newer than the current head
37
+ assertEx(head.block >= block, () => `Block requested is newer than the current head [${block}]`)
38
+ const cached = this._blocksByBlockNumber.get(block)
39
+ if (cached) return cached
40
+ // Start at the current head and traverse backwards until the requested block is found
41
+ const startingBlock = head
42
+ const currentBlockHash = await PayloadBuilder.hash(startingBlock)
43
+ let currentBlock = (await this.chainArchivist.get([currentBlockHash])).at(0)
44
+ while (isDefined(currentBlock)) {
45
+ assertEx(asBlockBoundWitness(currentBlock), () => `Expected hash to be a block bound witness [${currentBlock?._hash}]`)
46
+ if (isBlockBoundWitness(currentBlock)) {
47
+ this._blocksByBlockNumber.set(currentBlock.block, currentBlock)
48
+ if (currentBlock.block === block) {
49
+ return currentBlock
50
+ }
51
+ const { previous } = currentBlock
52
+ if (isNull(previous)) break
53
+ currentBlock = (await this.chainArchivist.get([previous])).at(0)
54
+ }
55
+ }
56
+ throw new Error(`Block not found: ${block}`)
57
+ }
58
+
59
+ async head(): Promise<WithStorageMeta<BlockBoundWitness>> {
60
+ if (isDefined(this._currentHead)) return this._currentHead
61
+ if (isDefined(this.params.head)) {
62
+ const newHead = await this.getBoundWitnessAsBlockBoundWitnessWithStorageMeta(this.params.head)
63
+ this._currentHead = newHead
64
+ return newHead
65
+ }
66
+ throw new Error('Head is not set')
67
+ }
68
+
69
+ async next(block: number): Promise<WithStorageMeta<BlockBoundWitness> | undefined> {
70
+ const currentBlock = block
71
+ const nextBlockNumber = currentBlock + 1
72
+ return await this.get(nextBlockNumber)
73
+ }
74
+
75
+ // TODO: Decide on inclusive/exclusive (probably need inclusive to account for chain head)
76
+ // and then communicate via method name and documentation
77
+ async previous(block: number | undefined = undefined, count: number = 1): Promise<WithStorageMeta<BlockBoundWitness>[]> {
78
+ const results: WithStorageMeta<BlockBoundWitness>[] = []
79
+ let currentBlock: WithStorageMeta<BlockBoundWitness> | undefined = isDefined(block) ? (await this.get(block)) : await this.head()
80
+ while (currentBlock && results.length < count) {
81
+ if (isBlockBoundWitness(currentBlock)) {
82
+ results.push(currentBlock)
83
+ const { previous } = currentBlock
84
+ if (isNull(previous)) break
85
+ const nextBlock = await this.chainArchivist.get([previous])
86
+ currentBlock = asBlockBoundWitnessWithStorageMeta(nextBlock[0])
87
+ } else {
88
+ const hash = PayloadBuilder.hash(currentBlock)
89
+ assertEx(asBlockBoundWitnessWithStorageMeta(currentBlock), () => `Expected hash to be a block bound witness [${hash}]`)
90
+ }
91
+ }
92
+ return results
93
+ }
94
+
95
+ async updateHead(head: BlockBoundWitness): Promise<void> {
96
+ const newHead = await this.getBoundWitnessAsBlockBoundWitnessWithStorageMeta(head)
97
+ this._currentHead = newHead
98
+ void this.emit('headUpdated', { blocks: [newHead] })
99
+ }
100
+
101
+ private async getBoundWitnessAsBlockBoundWitnessWithStorageMeta(head: BlockBoundWitness): Promise<WithStorageMeta<BlockBoundWitness>> {
102
+ const hash = await PayloadBuilder.hash(head)
103
+ const stored = (await this.chainArchivist.get([hash])).at(-1)
104
+ const newHead = asBlockBoundWitnessWithStorageMeta(stored)
105
+ if (isUndefined(newHead)) throw new Error(`Head block not found in archivist [${hash}]`)
106
+ return newHead
107
+ }
108
+ }
@@ -0,0 +1,2 @@
1
+ export * from './ChainBlockNumberIterationService.ts'
2
+ export * from './model/index.ts'
@@ -0,0 +1,7 @@
1
+ import type { Promisable } from '@xylabs/promise'
2
+ import type { BlockBoundWitness, SignedHydratedTransactionWithStorageMeta } from '@xyo-network/xl1-protocol'
3
+
4
+ export interface BlockNumberIteration {
5
+ validatePendingBlock(block: BlockBoundWitness): Promisable<Error[]>
6
+ validatePendingTransaction(tx: SignedHydratedTransactionWithStorageMeta): Promise<boolean>
7
+ }
@@ -0,0 +1,9 @@
1
+ import type { ArchivistInstance } from '@xyo-network/archivist-model'
2
+ import type { BlockBoundWitness } from '@xyo-network/xl1-protocol'
3
+
4
+ import type { BaseServiceParams } from '../../model/index.ts'
5
+
6
+ export interface XyoChainIteratorParams extends BaseServiceParams {
7
+ chainArchivist: ArchivistInstance
8
+ head: BlockBoundWitness
9
+ }
@@ -0,0 +1,2 @@
1
+ export * from './BlockNumberIteration.ts'
2
+ export * from './Params.ts'
@@ -1,16 +1,16 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import type { Hex } from '@xylabs/hex'
3
- import { isDefined, isNull } from '@xylabs/typeof'
3
+ import {
4
+ isDefined, isNull, isUndefined,
5
+ } from '@xylabs/typeof'
4
6
  import type { ArchivistInstance } from '@xyo-network/archivist-model'
5
7
  import { PayloadBuilder } from '@xyo-network/payload-builder'
8
+ import type { WithStorageMeta } from '@xyo-network/payload-model'
6
9
  import type {
7
- BlockBoundWitness,
8
- ChainIteratorServiceEventData,
9
- EventingChainBlockNumberIteratorService,
10
+ BlockBoundWitness, ChainIteratorServiceEventData, EventingChainBlockNumberIteratorService,
10
11
  } from '@xyo-network/xl1-protocol'
11
12
  import {
12
- asBlockBoundWitness,
13
- isBlockBoundWitness,
13
+ asBlockBoundWitness, asBlockBoundWitnessWithStorageMeta, isBlockBoundWitnessWithHashStorageMeta,
14
14
  } from '@xyo-network/xl1-protocol'
15
15
  import { LRUCache } from 'lru-cache'
16
16
 
@@ -19,13 +19,14 @@ import type { XyoChainIteratorParams } from './model/index.ts'
19
19
 
20
20
  export class ChainBlockNumberIterationService extends BaseService<XyoChainIteratorParams, ChainIteratorServiceEventData>
21
21
  implements EventingChainBlockNumberIteratorService {
22
- protected _blocksByBlockNumber = new LRUCache<number, BlockBoundWitness>({ max: 10_000 })
22
+ protected _blocksByBlockNumber = new LRUCache<number, WithStorageMeta<BlockBoundWitness>>({ max: 10_000 })
23
+ protected _currentHead: WithStorageMeta<BlockBoundWitness> | undefined
23
24
 
24
25
  get chainArchivist(): ArchivistInstance { return assertEx(this.params.chainArchivist) }
25
26
 
26
- get chainId(): Hex { return assertEx(this.params.head?.chain) }
27
+ get chainId(): Hex { return assertEx(this._currentHead?.chain ?? this.params?.head?.chain, () => 'Current head is not set') }
27
28
 
28
- async get(block: number): Promise<BlockBoundWitness> {
29
+ async get(block: number): Promise<WithStorageMeta<BlockBoundWitness>> {
29
30
  const head = await this.head()
30
31
  // if(isUndefined(head)) return undefined
31
32
  // Bail early if the block requested is newer than the current head
@@ -38,7 +39,7 @@ export class ChainBlockNumberIterationService extends BaseService<XyoChainIterat
38
39
  let currentBlock = (await this.chainArchivist.get([currentBlockHash])).at(0)
39
40
  while (isDefined(currentBlock)) {
40
41
  assertEx(asBlockBoundWitness(currentBlock), () => `Expected hash to be a block bound witness [${currentBlock?._hash}]`)
41
- if (isBlockBoundWitness(currentBlock)) {
42
+ if (isBlockBoundWitnessWithHashStorageMeta(currentBlock)) {
42
43
  this._blocksByBlockNumber.set(currentBlock.block, currentBlock)
43
44
  if (currentBlock.block === block) {
44
45
  return currentBlock
@@ -51,11 +52,17 @@ export class ChainBlockNumberIterationService extends BaseService<XyoChainIterat
51
52
  throw new Error(`Block not found: ${block}`)
52
53
  }
53
54
 
54
- async head(): Promise<BlockBoundWitness> {
55
- return await Promise.resolve(assertEx(this.params.head))
55
+ async head(): Promise<WithStorageMeta<BlockBoundWitness>> {
56
+ if (isDefined(this._currentHead)) return this._currentHead
57
+ if (isDefined(this.params.head)) {
58
+ const newHead = await this.getBoundWitnessAsBlockBoundWitnessWithStorageMeta(this.params.head)
59
+ this._currentHead = newHead
60
+ return newHead
61
+ }
62
+ throw new Error('Head is not set')
56
63
  }
57
64
 
58
- async next(block: number): Promise<BlockBoundWitness | undefined> {
65
+ async next(block: number): Promise<WithStorageMeta<BlockBoundWitness> | undefined> {
59
66
  const currentBlock = block
60
67
  const nextBlockNumber = currentBlock + 1
61
68
  return await this.get(nextBlockNumber)
@@ -63,28 +70,35 @@ export class ChainBlockNumberIterationService extends BaseService<XyoChainIterat
63
70
 
64
71
  // TODO: Decide on inclusive/exclusive (probably need inclusive to account for chain head)
65
72
  // and then communicate via method name and documentation
66
- async previous(block: number | undefined = undefined, count: number = 1): Promise<BlockBoundWitness[]> {
67
- const results: BlockBoundWitness[] = []
68
- let currentBlock: BlockBoundWitness | undefined = isDefined(block) ? (await this.get(block)) : await this.head()
73
+ async previous(block: number | undefined = undefined, count: number = 1): Promise<WithStorageMeta<BlockBoundWitness>[]> {
74
+ const results: WithStorageMeta<BlockBoundWitness>[] = []
75
+ let currentBlock: WithStorageMeta<BlockBoundWitness> | undefined = isDefined(block) ? (await this.get(block)) : await this.head()
69
76
  while (currentBlock && results.length < count) {
70
- if (isBlockBoundWitness(currentBlock)) {
77
+ if (isBlockBoundWitnessWithHashStorageMeta(currentBlock)) {
71
78
  results.push(currentBlock)
72
79
  const { previous } = currentBlock
73
80
  if (isNull(previous)) break
74
81
  const nextBlock = await this.chainArchivist.get([previous])
75
- currentBlock = asBlockBoundWitness(nextBlock[0])
82
+ currentBlock = asBlockBoundWitnessWithStorageMeta(nextBlock[0])
76
83
  } else {
77
84
  const hash = PayloadBuilder.hash(currentBlock)
78
- assertEx(asBlockBoundWitness(currentBlock), () => `Expected hash to be a block bound witness [${hash}]`)
85
+ assertEx(asBlockBoundWitnessWithStorageMeta(currentBlock), () => `Expected hash to be a block bound witness [${hash}]`)
79
86
  }
80
87
  }
81
88
  return results
82
89
  }
83
90
 
84
91
  async updateHead(head: BlockBoundWitness): Promise<void> {
85
- // Async to allow for re-indexing, etc.
86
- await Promise.resolve()
87
- this.params.head = head
88
- void this.emit('headUpdated', { blocks: [head] })
92
+ const newHead = await this.getBoundWitnessAsBlockBoundWitnessWithStorageMeta(head)
93
+ this._currentHead = newHead
94
+ void this.emit('headUpdated', { blocks: [newHead] })
95
+ }
96
+
97
+ private async getBoundWitnessAsBlockBoundWitnessWithStorageMeta(head: BlockBoundWitness): Promise<WithStorageMeta<BlockBoundWitness>> {
98
+ const hash = await PayloadBuilder.hash(head)
99
+ const stored = (await this.chainArchivist.get([hash])).at(-1)
100
+ const newHead = asBlockBoundWitnessWithStorageMeta(stored)
101
+ if (isUndefined(newHead)) throw new Error(`Head block not found in archivist [${hash}]`)
102
+ return newHead
89
103
  }
90
104
  }
@@ -16,55 +16,55 @@ export interface BaseNetworkStakeStepRewardServiceParams extends BaseServicePara
16
16
 
17
17
  @creatable()
18
18
  export class BaseNetworkStakeStepRewardService extends BaseService<BaseNetworkStakeStepRewardServiceParams> implements NetworkStakeStepRewardService {
19
- claimedRewards(address: Address): Promisable<bigint> {
19
+ claimedRewards(_address: Address): Promisable<bigint> {
20
20
  throw new Error('Method not implemented.')
21
21
  }
22
22
 
23
- networkStakeStepAddressReward(address: Address, step: number, block: number): Promisable<Record<Address, bigint>> {
23
+ networkStakeStepAddressReward(_address: Address, _step: number, _block: number): Promisable<Record<Address, bigint>> {
24
24
  throw new Error('Method not implemented.')
25
25
  }
26
26
 
27
- networkStakeStepPoolRewardShares(step: number, block: number): Promisable<Record<Address, bigint>> {
27
+ networkStakeStepPoolRewardShares(_step: number, _block: number): Promisable<Record<Address, bigint>> {
28
28
  throw new Error('Method not implemented.')
29
29
  }
30
30
 
31
- networkStakeStepPoolRewards(step: number, block: number): Promisable<Record<Address, bigint>> {
31
+ networkStakeStepPoolRewards(_step: number, _block: number): Promisable<Record<Address, bigint>> {
32
32
  throw new Error('Method not implemented.')
33
33
  }
34
34
 
35
- networkStakeStepRewardAddressHistory(address: Address): Promisable<Record<Address, bigint>> {
35
+ networkStakeStepRewardAddressHistory(_address: Address): Promisable<Record<Address, bigint>> {
36
36
  throw new Error('Method not implemented.')
37
37
  }
38
38
 
39
- networkStakeStepRewardAddressShare(address: Address, step: number, block: number): Promisable<[bigint, bigint]> {
39
+ networkStakeStepRewardAddressShare(_address: Address, _step: number, _block: number): Promisable<[bigint, bigint]> {
40
40
  throw new Error('Method not implemented.')
41
41
  }
42
42
 
43
- networkStakeStepRewardForStep(step: number): Promisable<bigint> {
43
+ networkStakeStepRewardForStep(_step: number): Promisable<bigint> {
44
44
  throw new Error('Method not implemented.')
45
45
  }
46
46
 
47
- networkStakeStepRewardPositionWeight(position: bigint, step: number): Promisable<number> {
47
+ networkStakeStepRewardPositionWeight(_position: bigint, _step: number): Promisable<number> {
48
48
  throw new Error('Method not implemented.')
49
49
  }
50
50
 
51
- networkStakeStepRewardPotentialPositionLoss(position: bigint, step: number): Promisable<bigint> {
51
+ networkStakeStepRewardPotentialPositionLoss(_position: bigint, _step: number): Promisable<bigint> {
52
52
  throw new Error('Method not implemented.')
53
53
  }
54
54
 
55
- networkStakeStepRewardRandomizer(step: number, block: number): Promisable<bigint> {
55
+ networkStakeStepRewardRandomizer(_step: number, _block: number): Promisable<bigint> {
56
56
  throw new Error('Method not implemented.')
57
57
  }
58
58
 
59
- networkStakeStepRewardStakerCount(step: number, block: number): Promisable<number> {
59
+ networkStakeStepRewardStakerCount(_step: number, _block: number): Promisable<number> {
60
60
  throw new Error('Method not implemented.')
61
61
  }
62
62
 
63
- networkStakeStepRewardWeightForAddress(address: Address, step: number): Promisable<bigint> {
63
+ networkStakeStepRewardWeightForAddress(_address: Address, _step: number): Promisable<bigint> {
64
64
  throw new Error('Method not implemented.')
65
65
  }
66
66
 
67
- unclaimedRewards(address: Address): Promisable<bigint> {
67
+ unclaimedRewards(_address: Address): Promisable<bigint> {
68
68
  throw new Error('Method not implemented.')
69
69
  }
70
70
  }