@xyo-network/xl1-providers 1.18.0-rc.1
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/LICENSE +165 -0
- package/README.md +1173 -0
- package/dist/browser/NodeXyoViewer.d.ts +277 -0
- package/dist/browser/NodeXyoViewer.d.ts.map +1 -0
- package/dist/browser/SimpleNetworkStakeViewer.d.ts +18 -0
- package/dist/browser/SimpleNetworkStakeViewer.d.ts.map +1 -0
- package/dist/browser/SimpleStepRewardsByPositionViewer.d.ts +24 -0
- package/dist/browser/SimpleStepRewardsByPositionViewer.d.ts.map +1 -0
- package/dist/browser/SimpleStepRewardsByStakerViewer.d.ts +24 -0
- package/dist/browser/SimpleStepRewardsByStakerViewer.d.ts.map +1 -0
- package/dist/browser/SimpleStepRewardsByStepViewer.d.ts +25 -0
- package/dist/browser/SimpleStepRewardsByStepViewer.d.ts.map +1 -0
- package/dist/browser/SimpleStepRewardsTotalViewer.d.ts +21 -0
- package/dist/browser/SimpleStepRewardsTotalViewer.d.ts.map +1 -0
- package/dist/browser/SimpleStepRewardsViewer.d.ts +24 -0
- package/dist/browser/SimpleStepRewardsViewer.d.ts.map +1 -0
- package/dist/browser/SimpleStepViewer.d.ts +27 -0
- package/dist/browser/SimpleStepViewer.d.ts.map +1 -0
- package/dist/browser/SimpleXyoConnection.d.ts +20 -0
- package/dist/browser/SimpleXyoConnection.d.ts.map +1 -0
- package/dist/browser/buildProviderLocator.d.ts +26 -0
- package/dist/browser/buildProviderLocator.d.ts.map +1 -0
- package/dist/browser/index.d.ts +11 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.mjs +1196 -0
- package/dist/browser/index.mjs.map +1 -0
- package/dist/browser/primitives/index.d.ts +4 -0
- package/dist/browser/primitives/index.d.ts.map +1 -0
- package/dist/browser/primitives/networkStakeStepRewardEarned.d.ts +4 -0
- package/dist/browser/primitives/networkStakeStepRewardEarned.d.ts.map +1 -0
- package/dist/browser/primitives/networkStakeStepRewardEarnedForPosition.d.ts +4 -0
- package/dist/browser/primitives/networkStakeStepRewardEarnedForPosition.d.ts.map +1 -0
- package/dist/browser/primitives/networkStakeStepRewardEarnedForStaker.d.ts +5 -0
- package/dist/browser/primitives/networkStakeStepRewardEarnedForStaker.d.ts.map +1 -0
- package/dist/neutral/NodeXyoViewer.d.ts +277 -0
- package/dist/neutral/NodeXyoViewer.d.ts.map +1 -0
- package/dist/neutral/SimpleNetworkStakeViewer.d.ts +18 -0
- package/dist/neutral/SimpleNetworkStakeViewer.d.ts.map +1 -0
- package/dist/neutral/SimpleStepRewardsByPositionViewer.d.ts +24 -0
- package/dist/neutral/SimpleStepRewardsByPositionViewer.d.ts.map +1 -0
- package/dist/neutral/SimpleStepRewardsByStakerViewer.d.ts +24 -0
- package/dist/neutral/SimpleStepRewardsByStakerViewer.d.ts.map +1 -0
- package/dist/neutral/SimpleStepRewardsByStepViewer.d.ts +25 -0
- package/dist/neutral/SimpleStepRewardsByStepViewer.d.ts.map +1 -0
- package/dist/neutral/SimpleStepRewardsTotalViewer.d.ts +21 -0
- package/dist/neutral/SimpleStepRewardsTotalViewer.d.ts.map +1 -0
- package/dist/neutral/SimpleStepRewardsViewer.d.ts +24 -0
- package/dist/neutral/SimpleStepRewardsViewer.d.ts.map +1 -0
- package/dist/neutral/SimpleStepViewer.d.ts +27 -0
- package/dist/neutral/SimpleStepViewer.d.ts.map +1 -0
- package/dist/neutral/SimpleXyoConnection.d.ts +20 -0
- package/dist/neutral/SimpleXyoConnection.d.ts.map +1 -0
- package/dist/neutral/buildProviderLocator.d.ts +26 -0
- package/dist/neutral/buildProviderLocator.d.ts.map +1 -0
- package/dist/neutral/index.d.ts +11 -0
- package/dist/neutral/index.d.ts.map +1 -0
- package/dist/neutral/index.mjs +1196 -0
- package/dist/neutral/index.mjs.map +1 -0
- package/dist/neutral/primitives/index.d.ts +4 -0
- package/dist/neutral/primitives/index.d.ts.map +1 -0
- package/dist/neutral/primitives/networkStakeStepRewardEarned.d.ts +4 -0
- package/dist/neutral/primitives/networkStakeStepRewardEarned.d.ts.map +1 -0
- package/dist/neutral/primitives/networkStakeStepRewardEarnedForPosition.d.ts +4 -0
- package/dist/neutral/primitives/networkStakeStepRewardEarnedForPosition.d.ts.map +1 -0
- package/dist/neutral/primitives/networkStakeStepRewardEarnedForStaker.d.ts +5 -0
- package/dist/neutral/primitives/networkStakeStepRewardEarnedForStaker.d.ts.map +1 -0
- package/dist/node/NodeXyoViewer.d.ts +277 -0
- package/dist/node/NodeXyoViewer.d.ts.map +1 -0
- package/dist/node/SimpleNetworkStakeViewer.d.ts +18 -0
- package/dist/node/SimpleNetworkStakeViewer.d.ts.map +1 -0
- package/dist/node/SimpleStepRewardsByPositionViewer.d.ts +24 -0
- package/dist/node/SimpleStepRewardsByPositionViewer.d.ts.map +1 -0
- package/dist/node/SimpleStepRewardsByStakerViewer.d.ts +24 -0
- package/dist/node/SimpleStepRewardsByStakerViewer.d.ts.map +1 -0
- package/dist/node/SimpleStepRewardsByStepViewer.d.ts +25 -0
- package/dist/node/SimpleStepRewardsByStepViewer.d.ts.map +1 -0
- package/dist/node/SimpleStepRewardsTotalViewer.d.ts +21 -0
- package/dist/node/SimpleStepRewardsTotalViewer.d.ts.map +1 -0
- package/dist/node/SimpleStepRewardsViewer.d.ts +24 -0
- package/dist/node/SimpleStepRewardsViewer.d.ts.map +1 -0
- package/dist/node/SimpleStepViewer.d.ts +27 -0
- package/dist/node/SimpleStepViewer.d.ts.map +1 -0
- package/dist/node/SimpleXyoConnection.d.ts +20 -0
- package/dist/node/SimpleXyoConnection.d.ts.map +1 -0
- package/dist/node/buildProviderLocator.d.ts +26 -0
- package/dist/node/buildProviderLocator.d.ts.map +1 -0
- package/dist/node/index.d.ts +11 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.mjs +1196 -0
- package/dist/node/index.mjs.map +1 -0
- package/dist/node/primitives/index.d.ts +4 -0
- package/dist/node/primitives/index.d.ts.map +1 -0
- package/dist/node/primitives/networkStakeStepRewardEarned.d.ts +4 -0
- package/dist/node/primitives/networkStakeStepRewardEarned.d.ts.map +1 -0
- package/dist/node/primitives/networkStakeStepRewardEarnedForPosition.d.ts +4 -0
- package/dist/node/primitives/networkStakeStepRewardEarnedForPosition.d.ts.map +1 -0
- package/dist/node/primitives/networkStakeStepRewardEarnedForStaker.d.ts +5 -0
- package/dist/node/primitives/networkStakeStepRewardEarnedForStaker.d.ts.map +1 -0
- package/package.json +101 -0
- package/src/NodeXyoViewer.ts +522 -0
- package/src/SimpleNetworkStakeViewer.ts +47 -0
- package/src/SimpleStepRewardsByPositionViewer.ts +105 -0
- package/src/SimpleStepRewardsByStakerViewer.ts +102 -0
- package/src/SimpleStepRewardsByStepViewer.ts +110 -0
- package/src/SimpleStepRewardsTotalViewer.ts +63 -0
- package/src/SimpleStepRewardsViewer.ts +75 -0
- package/src/SimpleStepViewer.ts +98 -0
- package/src/SimpleXyoConnection.ts +52 -0
- package/src/buildProviderLocator.ts +137 -0
- package/src/index.ts +10 -0
- package/src/primitives/index.ts +3 -0
- package/src/primitives/networkStakeStepRewardEarned.ts +33 -0
- package/src/primitives/networkStakeStepRewardEarnedForPosition.ts +45 -0
- package/src/primitives/networkStakeStepRewardEarnedForStaker.ts +43 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { Address, Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import { isArray } from '@xylabs/sdk-js'
|
|
3
|
+
import type {
|
|
4
|
+
AttoXL1,
|
|
5
|
+
XL1RangeMultipliers,
|
|
6
|
+
} from '@xyo-network/xl1-protocol'
|
|
7
|
+
import { asAttoXL1, asXL1BlockRange } from '@xyo-network/xl1-protocol'
|
|
8
|
+
import {
|
|
9
|
+
AbstractCreatableProvider,
|
|
10
|
+
blockRangeSteps,
|
|
11
|
+
BlockViewer,
|
|
12
|
+
BlockViewerMoniker,
|
|
13
|
+
creatableProvider,
|
|
14
|
+
CreatableProviderParams,
|
|
15
|
+
type NetworkStakeStepRewardsByStakerViewer, NetworkStakeStepRewardsByStakerViewerMoniker,
|
|
16
|
+
type NetworkStakeStepRewardsByStakerViewerOptions, type StakedChainContextRead,
|
|
17
|
+
} from '@xyo-network/xl1-protocol-sdk'
|
|
18
|
+
|
|
19
|
+
import { networkStakeStepRewardEarnedForStaker } from './primitives/index.ts'
|
|
20
|
+
|
|
21
|
+
export interface SimpleStepRewardsByStakerViewerParams extends CreatableProviderParams {
|
|
22
|
+
rewardMultipliers?: XL1RangeMultipliers
|
|
23
|
+
stakedChainContext: StakedChainContextRead
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@creatableProvider()
|
|
27
|
+
export class SimpleStepRewardsByStakerViewer extends
|
|
28
|
+
AbstractCreatableProvider<SimpleStepRewardsByStakerViewerParams> implements NetworkStakeStepRewardsByStakerViewer {
|
|
29
|
+
static readonly defaultMoniker = NetworkStakeStepRewardsByStakerViewerMoniker
|
|
30
|
+
static readonly monikers = [NetworkStakeStepRewardsByStakerViewerMoniker]
|
|
31
|
+
moniker = SimpleStepRewardsByStakerViewer.defaultMoniker
|
|
32
|
+
|
|
33
|
+
private _blockViewer?: BlockViewer
|
|
34
|
+
|
|
35
|
+
get rewardMultipliers() {
|
|
36
|
+
return this.params.rewardMultipliers ?? {}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
get stakedChainContext() {
|
|
40
|
+
return this.params.stakedChainContext
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
protected get blockViewer() {
|
|
44
|
+
return this._blockViewer!
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
async bonus({ range, stakers }: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {
|
|
48
|
+
const total = await this.total({ range, stakers })
|
|
49
|
+
const earned = await this.earned({ range, stakers })
|
|
50
|
+
const result: Record<Address, AttoXL1> = {}
|
|
51
|
+
for (const staker of Object.keys(total) as Address[]) {
|
|
52
|
+
result[staker] = asAttoXL1(total[staker] - (earned[staker] ?? 0n))
|
|
53
|
+
}
|
|
54
|
+
return result
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
claimed(_options?: NetworkStakeStepRewardsByStakerViewerOptions | undefined): Promisable<Record<Address, AttoXL1>> {
|
|
58
|
+
throw new Error('Method [claimed] not implemented.')
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
override async createHandler() {
|
|
62
|
+
await super.createHandler()
|
|
63
|
+
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async earned(options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {
|
|
67
|
+
return await this.calculateRewards(options)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
async total(options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promise<Record<Address, AttoXL1>> {
|
|
71
|
+
return await this.calculateRewards(options, this.rewardMultipliers)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
unclaimed(_options: NetworkStakeStepRewardsByStakerViewerOptions = {}): Promisable<Record<Address, AttoXL1>> {
|
|
75
|
+
throw new Error('Method [unclaimed] not implemented.')
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
protected async calculateRewards(
|
|
79
|
+
{ range, stakers }: NetworkStakeStepRewardsByStakerViewerOptions = {},
|
|
80
|
+
rewardMultipliers?: XL1RangeMultipliers,
|
|
81
|
+
): Promise<Record<Address, AttoXL1>> {
|
|
82
|
+
const result: Record<Address, AttoXL1> = {}
|
|
83
|
+
const steps = blockRangeSteps(asXL1BlockRange(
|
|
84
|
+
range ?? [0, (await this.stakedChainContext.head())[1]],
|
|
85
|
+
{ name: 'NodeStepRewardsByStakerViewer' },
|
|
86
|
+
), [3, 4, 5, 6, 7])
|
|
87
|
+
for (const step of steps) {
|
|
88
|
+
if (isArray(stakers)) {
|
|
89
|
+
for (const staker of stakers) {
|
|
90
|
+
result[staker] = asAttoXL1((result[staker] ?? 0n) + (await networkStakeStepRewardEarnedForStaker(
|
|
91
|
+
this.stakedChainContext,
|
|
92
|
+
this.blockViewer,
|
|
93
|
+
step,
|
|
94
|
+
staker,
|
|
95
|
+
rewardMultipliers,
|
|
96
|
+
))[0])
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return result
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import type {
|
|
3
|
+
AttoXL1,
|
|
4
|
+
StepIdentityString,
|
|
5
|
+
XL1RangeMultipliers,
|
|
6
|
+
} from '@xyo-network/xl1-protocol'
|
|
7
|
+
import { asAttoXL1, asXL1BlockRange } from '@xyo-network/xl1-protocol'
|
|
8
|
+
import type {
|
|
9
|
+
BlockViewer,
|
|
10
|
+
CreatableProviderParams,
|
|
11
|
+
NetworkStakeStepRewardsByStepViewer,
|
|
12
|
+
NetworkStakeStepRewardsByStepViewerOptions,
|
|
13
|
+
StakedChainContextRead,
|
|
14
|
+
StakeEventsViewer,
|
|
15
|
+
} from '@xyo-network/xl1-protocol-sdk'
|
|
16
|
+
import {
|
|
17
|
+
AbstractCreatableProvider,
|
|
18
|
+
blockRangeSteps,
|
|
19
|
+
BlockViewerMoniker,
|
|
20
|
+
creatableProvider, NetworkStakeStepRewardsByStepViewerMoniker, toStepIdentityString,
|
|
21
|
+
} from '@xyo-network/xl1-protocol-sdk'
|
|
22
|
+
|
|
23
|
+
import { networkStakeStepRewardEarned } from './primitives/index.ts'
|
|
24
|
+
|
|
25
|
+
export interface SimpleStepRewardsByStepViewerParams extends CreatableProviderParams {
|
|
26
|
+
rewardMultipliers?: XL1RangeMultipliers
|
|
27
|
+
stakeEventsViewer: StakeEventsViewer
|
|
28
|
+
stakedChainContext: StakedChainContextRead
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@creatableProvider()
|
|
32
|
+
export class SimpleStepRewardsByStepViewer extends
|
|
33
|
+
AbstractCreatableProvider<SimpleStepRewardsByStepViewerParams> implements NetworkStakeStepRewardsByStepViewer {
|
|
34
|
+
static readonly defaultMoniker = NetworkStakeStepRewardsByStepViewerMoniker
|
|
35
|
+
static readonly monikers = [NetworkStakeStepRewardsByStepViewerMoniker]
|
|
36
|
+
moniker = SimpleStepRewardsByStepViewer.defaultMoniker
|
|
37
|
+
|
|
38
|
+
private _blockViewer?: BlockViewer
|
|
39
|
+
|
|
40
|
+
get rewardMultipliers() {
|
|
41
|
+
return this.params.rewardMultipliers ?? {}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
get stakedChainContext() {
|
|
45
|
+
return this.params.stakedChainContext
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
protected get blockViewer() {
|
|
49
|
+
return this._blockViewer!
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async bonus({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {
|
|
53
|
+
const total = await this.total({ range, steps })
|
|
54
|
+
const earned = await this.earned({ range, steps })
|
|
55
|
+
const result: Record<StepIdentityString, AttoXL1> = {}
|
|
56
|
+
for (const stepString of Object.keys(total) as StepIdentityString[]) {
|
|
57
|
+
result[stepString] = asAttoXL1(total[stepString] - (earned[stepString] ?? 0n))
|
|
58
|
+
}
|
|
59
|
+
return result
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
claimed(_options?: NetworkStakeStepRewardsByStepViewerOptions | undefined): Promisable<Record<StepIdentityString, AttoXL1>> {
|
|
63
|
+
throw new Error('Method [claimed] not implemented.')
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
override async createHandler() {
|
|
67
|
+
await super.createHandler()
|
|
68
|
+
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
async earned({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {
|
|
72
|
+
const result: Record<StepIdentityString, AttoXL1> = {}
|
|
73
|
+
const resolvedSteps = steps ?? blockRangeSteps(asXL1BlockRange(
|
|
74
|
+
range ?? [0, (await this.stakedChainContext.head())[1]],
|
|
75
|
+
{ name: 'NodeStepRewardsByStepViewer' },
|
|
76
|
+
), [3, 4, 5, 6, 7])
|
|
77
|
+
for (const step of resolvedSteps) {
|
|
78
|
+
const stepIdentityString = toStepIdentityString(step)
|
|
79
|
+
result[stepIdentityString] = asAttoXL1((result[stepIdentityString] ?? 0n) + (await networkStakeStepRewardEarned(
|
|
80
|
+
this.stakedChainContext,
|
|
81
|
+
this.blockViewer,
|
|
82
|
+
step,
|
|
83
|
+
))[0])
|
|
84
|
+
}
|
|
85
|
+
return result
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
async total({ range, steps }: NetworkStakeStepRewardsByStepViewerOptions = {}): Promise<Record<StepIdentityString, AttoXL1>> {
|
|
89
|
+
const result: Record<StepIdentityString, AttoXL1> = {}
|
|
90
|
+
const resolvedSteps = steps ?? blockRangeSteps(asXL1BlockRange(
|
|
91
|
+
range ?? [0, (await this.stakedChainContext.head())[1]],
|
|
92
|
+
{ name: 'NodeStepRewardsByStepViewer' },
|
|
93
|
+
), [3, 4, 5, 6, 7])
|
|
94
|
+
for (const step of resolvedSteps) {
|
|
95
|
+
const stepIdentityString = toStepIdentityString(step)
|
|
96
|
+
result[stepIdentityString] = asAttoXL1((result[stepIdentityString] ?? 0n)
|
|
97
|
+
+ (await networkStakeStepRewardEarned(
|
|
98
|
+
this.stakedChainContext,
|
|
99
|
+
this.blockViewer,
|
|
100
|
+
step,
|
|
101
|
+
this.rewardMultipliers,
|
|
102
|
+
))[0])
|
|
103
|
+
}
|
|
104
|
+
return result
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
unclaimed(_options: NetworkStakeStepRewardsByStepViewerOptions = {}): Promisable<Record<StepIdentityString, AttoXL1>> {
|
|
108
|
+
throw new Error('Method [unclaimed] ot implemented.')
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
import type {
|
|
3
|
+
AttoXL1,
|
|
4
|
+
XL1RangeMultipliers,
|
|
5
|
+
} from '@xyo-network/xl1-protocol'
|
|
6
|
+
import { asAttoXL1 } from '@xyo-network/xl1-protocol'
|
|
7
|
+
import {
|
|
8
|
+
AbstractCreatableProvider,
|
|
9
|
+
creatableProvider,
|
|
10
|
+
CreatableProviderParams,
|
|
11
|
+
type NetworkStakeStepRewardsRangeOptions, type NetworkStakeStepRewardsTotalViewer, NetworkStakeStepRewardsTotalViewerMoniker,
|
|
12
|
+
type StakedChainContextRead,
|
|
13
|
+
} from '@xyo-network/xl1-protocol-sdk'
|
|
14
|
+
|
|
15
|
+
export interface SimpleStepRewardsTotalViewerParams extends CreatableProviderParams {
|
|
16
|
+
rewardMultipliers?: XL1RangeMultipliers
|
|
17
|
+
stakedChainContext: StakedChainContextRead
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@creatableProvider()
|
|
21
|
+
export class SimpleStepRewardsTotalViewer extends
|
|
22
|
+
AbstractCreatableProvider<SimpleStepRewardsTotalViewerParams> implements NetworkStakeStepRewardsTotalViewer {
|
|
23
|
+
static readonly defaultMoniker = NetworkStakeStepRewardsTotalViewerMoniker
|
|
24
|
+
static readonly monikers = [NetworkStakeStepRewardsTotalViewerMoniker]
|
|
25
|
+
moniker = SimpleStepRewardsTotalViewer.defaultMoniker
|
|
26
|
+
|
|
27
|
+
get rewardMultipliers() {
|
|
28
|
+
return this.params.rewardMultipliers ?? {}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
get stakedChainContext() {
|
|
32
|
+
return this.params.stakedChainContext
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async bonus({ range }: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {
|
|
36
|
+
const total = await this.total({ range })
|
|
37
|
+
const earned = await this.earned({ range })
|
|
38
|
+
return asAttoXL1(total - earned)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
claimed(_options?: NetworkStakeStepRewardsRangeOptions | undefined): Promisable<AttoXL1> {
|
|
42
|
+
throw new Error('Method [claimed] not implemented.')
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async earned(options: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {
|
|
46
|
+
return await this.calculateRewards(options)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async total(options: NetworkStakeStepRewardsRangeOptions = {}): Promise<AttoXL1> {
|
|
50
|
+
return await this.calculateRewards(options, this.rewardMultipliers)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
unclaimed(_options: NetworkStakeStepRewardsRangeOptions = {}): Promisable<AttoXL1> {
|
|
54
|
+
throw new Error('Method [unclaimed] not implemented.')
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
protected calculateRewards(
|
|
58
|
+
_options: NetworkStakeStepRewardsRangeOptions = {},
|
|
59
|
+
_rewardMultipliers?: XL1RangeMultipliers,
|
|
60
|
+
): Promise<AttoXL1> {
|
|
61
|
+
throw new Error('Method [calculateRewards] not implemented.')
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/sdk-js'
|
|
2
|
+
import type { XL1RangeMultipliers } from '@xyo-network/xl1-protocol'
|
|
3
|
+
import {
|
|
4
|
+
AbstractCreatableProvider,
|
|
5
|
+
BlockViewer,
|
|
6
|
+
BlockViewerMoniker,
|
|
7
|
+
creatableProvider,
|
|
8
|
+
CreatableProviderParams,
|
|
9
|
+
type NetworkStakeStepRewardsByPositionViewer, NetworkStakeStepRewardsByPositionViewerMoniker,
|
|
10
|
+
type NetworkStakeStepRewardsByStakerViewer, NetworkStakeStepRewardsByStakerViewerMoniker, type NetworkStakeStepRewardsByStepViewer,
|
|
11
|
+
NetworkStakeStepRewardsByStepViewerMoniker,
|
|
12
|
+
type NetworkStakeStepRewardsTotalViewer, type NetworkStakeStepRewardsViewer,
|
|
13
|
+
NetworkStakeStepRewardsViewerMoniker,
|
|
14
|
+
type StakedChainContextRead,
|
|
15
|
+
} from '@xyo-network/xl1-protocol-sdk'
|
|
16
|
+
|
|
17
|
+
import { SimpleStepRewardsByPositionViewer } from './SimpleStepRewardsByPositionViewer.ts'
|
|
18
|
+
import { SimpleStepRewardsByStakerViewer } from './SimpleStepRewardsByStakerViewer.ts'
|
|
19
|
+
import { SimpleStepRewardsByStepViewer } from './SimpleStepRewardsByStepViewer.ts'
|
|
20
|
+
|
|
21
|
+
export interface NodeStepRewardsViewerParams extends CreatableProviderParams {
|
|
22
|
+
rewardMultipliers?: XL1RangeMultipliers
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@creatableProvider()
|
|
26
|
+
export class SimpleStepRewardsViewer extends AbstractCreatableProvider<NodeStepRewardsViewerParams> implements NetworkStakeStepRewardsViewer {
|
|
27
|
+
static readonly defaultMoniker = NetworkStakeStepRewardsViewerMoniker
|
|
28
|
+
static readonly monikers = [NetworkStakeStepRewardsViewerMoniker]
|
|
29
|
+
moniker = SimpleStepRewardsViewer.defaultMoniker
|
|
30
|
+
|
|
31
|
+
private _blockViewer?: BlockViewer
|
|
32
|
+
private _position?: SimpleStepRewardsByPositionViewer
|
|
33
|
+
private _stakedChainContext?: StakedChainContextRead
|
|
34
|
+
private _staker?: SimpleStepRewardsByStakerViewer
|
|
35
|
+
private _step?: SimpleStepRewardsByStepViewer
|
|
36
|
+
|
|
37
|
+
get position(): NetworkStakeStepRewardsByPositionViewer {
|
|
38
|
+
return assertEx(this._position, () => 'Position viewer not initialized')
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
get staker(): NetworkStakeStepRewardsByStakerViewer {
|
|
42
|
+
return assertEx(this._staker, () => 'Position viewer not initialized')
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
get step(): NetworkStakeStepRewardsByStepViewer {
|
|
46
|
+
return assertEx(this._step, () => 'Step viewer not initialized')
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
get total(): NetworkStakeStepRewardsTotalViewer {
|
|
50
|
+
throw new Error('Method [total] not implemented.')
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
protected get rewardMultipliers() {
|
|
54
|
+
return this.params.rewardMultipliers
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
protected get stakedChainContext() {
|
|
58
|
+
return this._stakedChainContext
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
override async createHandler() {
|
|
62
|
+
await super.createHandler()
|
|
63
|
+
this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)
|
|
64
|
+
this._position = await this.locator.getInstance<SimpleStepRewardsByPositionViewer>(NetworkStakeStepRewardsByPositionViewerMoniker)
|
|
65
|
+
this._staker = await this.locator.getInstance<SimpleStepRewardsByStakerViewer>(NetworkStakeStepRewardsByStakerViewerMoniker)
|
|
66
|
+
this._step = await this.locator.getInstance<SimpleStepRewardsByStepViewer>(NetworkStakeStepRewardsByStepViewerMoniker)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
protected override async startHandler(): Promise<void> {
|
|
70
|
+
await super.startHandler()
|
|
71
|
+
await assertEx(this._position, () => 'Position viewer not created').start()
|
|
72
|
+
await assertEx(this._staker, () => 'Staker viewer not created').start()
|
|
73
|
+
await assertEx(this._step, () => 'Step viewer not created').start()
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type Address,
|
|
3
|
+
type Promisable,
|
|
4
|
+
} from '@xylabs/sdk-js'
|
|
5
|
+
import type { PositionId, StepIdentity } from '@xyo-network/xl1-protocol'
|
|
6
|
+
import {
|
|
7
|
+
AbstractCreatableProvider,
|
|
8
|
+
BlockViewer,
|
|
9
|
+
BlockViewerMoniker,
|
|
10
|
+
creatableProvider,
|
|
11
|
+
CreatableProviderParams,
|
|
12
|
+
externalBlockRangeFromStep,
|
|
13
|
+
NetworkStakeStepRewardsViewer,
|
|
14
|
+
NetworkStakeStepRewardsViewerMoniker,
|
|
15
|
+
type PagedPositionsOptions,
|
|
16
|
+
type PagedStakersOptions,
|
|
17
|
+
type Position,
|
|
18
|
+
StakeEventsViewer,
|
|
19
|
+
StakeEventsViewerMoniker,
|
|
20
|
+
StakeViewer,
|
|
21
|
+
StakeViewerMoniker,
|
|
22
|
+
type StepViewer,
|
|
23
|
+
StepViewerMoniker,
|
|
24
|
+
} from '@xyo-network/xl1-protocol-sdk'
|
|
25
|
+
|
|
26
|
+
export interface SimpleStepViewerParams extends CreatableProviderParams {
|
|
27
|
+
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@creatableProvider()
|
|
31
|
+
export class SimpleStepViewer extends AbstractCreatableProvider<SimpleStepViewerParams> implements StepViewer {
|
|
32
|
+
static readonly defaultMoniker = StepViewerMoniker
|
|
33
|
+
static readonly monikers = [StepViewerMoniker]
|
|
34
|
+
moniker = SimpleStepViewer.defaultMoniker
|
|
35
|
+
|
|
36
|
+
private _blockViewer?: BlockViewer
|
|
37
|
+
private _networkStakeStepRewardsViewer?: NetworkStakeStepRewardsViewer
|
|
38
|
+
private _stakeEventsViewer?: StakeEventsViewer
|
|
39
|
+
private _stakeViewer?: StakeViewer
|
|
40
|
+
|
|
41
|
+
get rewards() {
|
|
42
|
+
return this._networkStakeStepRewardsViewer!
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
protected get blockViewer() {
|
|
46
|
+
return this._blockViewer!
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
protected get stakeEventsViewer() {
|
|
50
|
+
return this._stakeEventsViewer!
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
protected get stakeViewer() {
|
|
54
|
+
return this._stakeViewer!
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
override async createHandler() {
|
|
58
|
+
await super.createHandler()
|
|
59
|
+
this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)
|
|
60
|
+
this._networkStakeStepRewardsViewer = await this.locator.getInstance<NetworkStakeStepRewardsViewer>(NetworkStakeStepRewardsViewerMoniker)
|
|
61
|
+
this._stakeViewer = await this.locator.getInstance<StakeViewer>(StakeViewerMoniker)
|
|
62
|
+
this._stakeEventsViewer = await this.locator.getInstance<StakeEventsViewer>(StakeEventsViewerMoniker)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async positionCount(step: StepIdentity): Promise<number> {
|
|
66
|
+
const externalRange = await externalBlockRangeFromStep(this.context, this.blockViewer, step)
|
|
67
|
+
const positionCount = await this.stakeEventsViewer.positionCount(externalRange)
|
|
68
|
+
return positionCount
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// TODO: Implement paging
|
|
72
|
+
async positions(step: StepIdentity, _options?: PagedPositionsOptions): Promise<Position[]> {
|
|
73
|
+
const count = await this.positionCount(step)
|
|
74
|
+
const externalRange = await externalBlockRangeFromStep(this.context, this.blockViewer, step)
|
|
75
|
+
const allPositions = await Promise.all(Array.from({ length: count + 1 }, (_, i) => i).map(id => this.stakeViewer.stakeById(id)))
|
|
76
|
+
return allPositions.filter(pos => pos.addBlock <= externalRange[1] && (pos.removeBlock === 0 || pos.removeBlock > externalRange[0]))
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
randomizer(_step: StepIdentity): Promisable<bigint> {
|
|
80
|
+
throw new Error('Method [randomizer] not implemented.')
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
stake(_step: StepIdentity): Promisable<bigint> {
|
|
84
|
+
throw new Error('Method [stake] not implemented.')
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
stakerCount(_step: StepIdentity): Promisable<number> {
|
|
88
|
+
throw new Error('Method [stakerCount] not implemented.')
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
stakers(_step: StepIdentity, _options?: PagedStakersOptions): Promisable<Address[]> {
|
|
92
|
+
throw new Error('Method [stakers] not implemented.')
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
weight(_step: StepIdentity, _positionId?: PositionId): Promisable<bigint> {
|
|
96
|
+
throw new Error('Method [weight] not implemented.')
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { CreatableParams } from '@xylabs/sdk-js'
|
|
2
|
+
import {
|
|
3
|
+
AbstractCreatableProvider,
|
|
4
|
+
creatableProvider,
|
|
5
|
+
type CreatableProviderContext,
|
|
6
|
+
type DataLakeRunner, DataLakeRunnerMoniker, type DataLakeViewer, DataLakeViewerMoniker,
|
|
7
|
+
type XyoConnection, XyoConnectionMoniker, type XyoNetwork, type XyoRunner, XyoRunnerMoniker,
|
|
8
|
+
type XyoViewer,
|
|
9
|
+
XyoViewerMoniker,
|
|
10
|
+
} from '@xyo-network/xl1-protocol-sdk'
|
|
11
|
+
|
|
12
|
+
export interface SimpleXyoConnectionParams<TContext extends CreatableProviderContext = CreatableProviderContext> extends CreatableParams {
|
|
13
|
+
context: TContext
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@creatableProvider()
|
|
17
|
+
export class SimpleXyoConnection<TParams extends SimpleXyoConnectionParams = SimpleXyoConnectionParams> extends
|
|
18
|
+
AbstractCreatableProvider<TParams> implements XyoConnection {
|
|
19
|
+
static readonly defaultMoniker = XyoConnectionMoniker
|
|
20
|
+
static readonly monikers = [XyoConnectionMoniker]
|
|
21
|
+
moniker = SimpleXyoConnection.defaultMoniker
|
|
22
|
+
|
|
23
|
+
protected _network?: XyoNetwork
|
|
24
|
+
protected _runner?: XyoRunner
|
|
25
|
+
protected _storage?: DataLakeRunner | DataLakeViewer
|
|
26
|
+
protected _viewer?: XyoViewer
|
|
27
|
+
|
|
28
|
+
get network(): XyoNetwork | undefined {
|
|
29
|
+
return this._network
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
get runner(): XyoRunner | undefined {
|
|
33
|
+
return this._runner
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
get storage(): DataLakeRunner | DataLakeViewer | undefined {
|
|
37
|
+
return this._storage
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
get viewer(): XyoViewer | undefined {
|
|
41
|
+
return this._viewer
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
override async createHandler() {
|
|
45
|
+
await super.createHandler()
|
|
46
|
+
this._runner = await this.locator.getInstance<XyoRunner>(XyoRunnerMoniker)
|
|
47
|
+
this._viewer = await this.locator.getInstance<XyoViewer>(XyoViewerMoniker)
|
|
48
|
+
const dataLakeRunner = await this.locator.tryGetInstance<DataLakeRunner>(DataLakeRunnerMoniker)
|
|
49
|
+
const dataLakeViewer = await this.locator.tryGetInstance<DataLakeViewer>(DataLakeViewerMoniker)
|
|
50
|
+
this._storage = dataLakeRunner ?? dataLakeViewer
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import type { ArchivistInstance } from '@xyo-network/archivist-model'
|
|
2
|
+
import type { NodeInstance } from '@xyo-network/node-model'
|
|
3
|
+
import type {
|
|
4
|
+
BalanceStepSummaryContext,
|
|
5
|
+
CreatableProviderContext, TransfersStepSummaryContext,
|
|
6
|
+
} from '@xyo-network/xl1-protocol-sdk'
|
|
7
|
+
import {
|
|
8
|
+
getDefaultConfig, ProviderFactoryLocator, SimpleAccountBalanceViewer, SimpleBlockViewer,
|
|
9
|
+
SimpleMempoolRunner, SimpleMempoolViewer, SimpleStakeEventsViewer,
|
|
10
|
+
SimpleStakeViewer,
|
|
11
|
+
SimpleTimeSyncViewer,
|
|
12
|
+
SimpleXyoRunner,
|
|
13
|
+
} from '@xyo-network/xl1-protocol-sdk'
|
|
14
|
+
import type { TransportFactory } from '@xyo-network/xl1-rpc'
|
|
15
|
+
import {
|
|
16
|
+
AccountBalanceViewerRpcSchemas,
|
|
17
|
+
BlockViewerRpcSchemas,
|
|
18
|
+
DataLakeViewerRpcSchemas,
|
|
19
|
+
JsonRpcAccountBalanceViewer, JsonRpcBlockViewer, JsonRpcDataLakeViewer, JsonRpcMempoolRunner, JsonRpcMempoolViewer,
|
|
20
|
+
JsonRpcNetworkStakeViewer, JsonRpcNetworkStakingStepRewardsViewer, JsonRpcStakeTotalsViewer,
|
|
21
|
+
JsonRpcTimeSyncViewer,
|
|
22
|
+
JsonRpcXyoRunner,
|
|
23
|
+
JsonRpcXyoViewer,
|
|
24
|
+
MempoolRunnerRpcSchemas,
|
|
25
|
+
MempoolViewerRpcSchemas,
|
|
26
|
+
NetworkStakeViewerRpcSchemas,
|
|
27
|
+
StakeTotalsViewerRpcSchemas,
|
|
28
|
+
TimeSyncViewerRpcSchemas,
|
|
29
|
+
XyoRunnerRpcSchemas,
|
|
30
|
+
XyoViewerRpcSchemas,
|
|
31
|
+
} from '@xyo-network/xl1-rpc'
|
|
32
|
+
|
|
33
|
+
import { NodeXyoViewer } from './NodeXyoViewer.ts'
|
|
34
|
+
import { SimpleNetworkStakeViewer } from './SimpleNetworkStakeViewer.ts'
|
|
35
|
+
import { SimpleStepRewardsByPositionViewer } from './SimpleStepRewardsByPositionViewer.ts'
|
|
36
|
+
import { SimpleStepRewardsByStakerViewer } from './SimpleStepRewardsByStakerViewer.ts'
|
|
37
|
+
import { SimpleStepRewardsByStepViewer } from './SimpleStepRewardsByStepViewer.ts'
|
|
38
|
+
import { SimpleStepRewardsTotalViewer } from './SimpleStepRewardsTotalViewer.ts'
|
|
39
|
+
import { SimpleStepRewardsViewer } from './SimpleStepRewardsViewer.ts'
|
|
40
|
+
import { SimpleStepViewer } from './SimpleStepViewer.ts'
|
|
41
|
+
import { SimpleXyoConnection } from './SimpleXyoConnection.ts'
|
|
42
|
+
|
|
43
|
+
export interface BuildProviderLocatorParams {
|
|
44
|
+
context?: Partial<CreatableProviderContext>
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function buildProviderLocator({ context = {} }: BuildProviderLocatorParams = {}) {
|
|
48
|
+
const {
|
|
49
|
+
config = getDefaultConfig(), locator, singletons = {}, ...restOfContext
|
|
50
|
+
} = context
|
|
51
|
+
return new ProviderFactoryLocator({
|
|
52
|
+
...restOfContext, config, singletons,
|
|
53
|
+
}, locator?.registry)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface BuildSimpleProviderLocatorParams extends BuildProviderLocatorParams {
|
|
57
|
+
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function buildSimpleProviderLocator(params: BuildSimpleProviderLocatorParams = {}) {
|
|
61
|
+
const locator = buildProviderLocator(params)
|
|
62
|
+
return locator.registerMany([
|
|
63
|
+
SimpleStakeViewer.factory<SimpleStakeViewer>(),
|
|
64
|
+
SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(),
|
|
65
|
+
SimpleNetworkStakeViewer.factory<SimpleNetworkStakeViewer>(),
|
|
66
|
+
SimpleTimeSyncViewer.factory<SimpleTimeSyncViewer>(),
|
|
67
|
+
SimpleStepViewer.factory<SimpleStepViewer>(),
|
|
68
|
+
SimpleStepRewardsViewer.factory<SimpleStepRewardsViewer>(),
|
|
69
|
+
SimpleStepRewardsByPositionViewer.factory<SimpleStepRewardsByPositionViewer>(),
|
|
70
|
+
SimpleStepRewardsByStakerViewer.factory<SimpleStepRewardsByStakerViewer>(),
|
|
71
|
+
SimpleStepRewardsByStepViewer.factory<SimpleStepRewardsByStepViewer>(),
|
|
72
|
+
SimpleStepRewardsTotalViewer.factory<SimpleStepRewardsTotalViewer>(),
|
|
73
|
+
SimpleStakeViewer.factory<SimpleStakeViewer>(),
|
|
74
|
+
SimpleXyoConnection.factory<SimpleXyoConnection>(),
|
|
75
|
+
])
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export interface BuildJsonRpcProviderLocatorParams extends BuildProviderLocatorParams {
|
|
79
|
+
transportFactory: TransportFactory
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export async function buildJsonRpcProviderLocator(params: BuildJsonRpcProviderLocatorParams) {
|
|
83
|
+
const locator = buildProviderLocator(params)
|
|
84
|
+
const transportFactory = params.transportFactory
|
|
85
|
+
return locator.registerMany([
|
|
86
|
+
JsonRpcStakeTotalsViewer.factory<JsonRpcStakeTotalsViewer>({ transport: await transportFactory(StakeTotalsViewerRpcSchemas) }),
|
|
87
|
+
JsonRpcAccountBalanceViewer.factory<JsonRpcAccountBalanceViewer>({ transport: await transportFactory(AccountBalanceViewerRpcSchemas) }),
|
|
88
|
+
JsonRpcBlockViewer.factory<JsonRpcBlockViewer>({ transport: await transportFactory(BlockViewerRpcSchemas) }),
|
|
89
|
+
JsonRpcDataLakeViewer.factory<JsonRpcDataLakeViewer>({ transport: await transportFactory(DataLakeViewerRpcSchemas) }),
|
|
90
|
+
JsonRpcMempoolRunner.factory<JsonRpcMempoolRunner>({ transport: await transportFactory(MempoolRunnerRpcSchemas) }),
|
|
91
|
+
JsonRpcMempoolViewer.factory<JsonRpcMempoolViewer>({ transport: await transportFactory(MempoolViewerRpcSchemas) }),
|
|
92
|
+
JsonRpcNetworkStakeViewer.factory<JsonRpcNetworkStakeViewer>({ transport: await transportFactory(NetworkStakeViewerRpcSchemas) }),
|
|
93
|
+
JsonRpcTimeSyncViewer.factory<JsonRpcTimeSyncViewer>({ transport: await transportFactory(TimeSyncViewerRpcSchemas) }),
|
|
94
|
+
JsonRpcNetworkStakingStepRewardsViewer.factory<JsonRpcNetworkStakingStepRewardsViewer>({ transport: await transportFactory(NetworkStakeViewerRpcSchemas) }),
|
|
95
|
+
JsonRpcXyoRunner.factory<JsonRpcXyoRunner>({ transport: await transportFactory(XyoRunnerRpcSchemas) }),
|
|
96
|
+
JsonRpcXyoViewer.factory<JsonRpcXyoViewer>({ transport: await transportFactory(XyoViewerRpcSchemas) }),
|
|
97
|
+
SimpleStakeViewer.factory<SimpleStakeViewer>(),
|
|
98
|
+
SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(),
|
|
99
|
+
SimpleStepViewer.factory<SimpleStepViewer>(),
|
|
100
|
+
SimpleXyoConnection.factory<SimpleXyoConnection>(),
|
|
101
|
+
])
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export interface BuildLocalProviderLocatorParams extends BuildProviderLocatorParams {
|
|
105
|
+
balanceSummaryContext: BalanceStepSummaryContext
|
|
106
|
+
finalizedArchivist: ArchivistInstance
|
|
107
|
+
node: NodeInstance
|
|
108
|
+
pendingBlocksArchivist: ArchivistInstance
|
|
109
|
+
pendingTransactionsArchivist: ArchivistInstance
|
|
110
|
+
transfersSummaryContext: TransfersStepSummaryContext
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export function buildLocalProviderLocator({
|
|
114
|
+
balanceSummaryContext, finalizedArchivist, pendingBlocksArchivist,
|
|
115
|
+
pendingTransactionsArchivist,
|
|
116
|
+
transfersSummaryContext, node,
|
|
117
|
+
...params
|
|
118
|
+
}: BuildLocalProviderLocatorParams) {
|
|
119
|
+
const locator = buildSimpleProviderLocator(params)
|
|
120
|
+
return locator.registerMany([
|
|
121
|
+
SimpleMempoolViewer.factory<SimpleMempoolViewer>({
|
|
122
|
+
pendingTransactionsArchivist,
|
|
123
|
+
pendingBlocksArchivist,
|
|
124
|
+
}),
|
|
125
|
+
SimpleMempoolRunner.factory<SimpleMempoolRunner>({
|
|
126
|
+
pendingTransactionsArchivist,
|
|
127
|
+
pendingBlocksArchivist,
|
|
128
|
+
}),
|
|
129
|
+
SimpleAccountBalanceViewer.factory<SimpleAccountBalanceViewer>({
|
|
130
|
+
balanceSummaryContext,
|
|
131
|
+
transfersSummaryContext,
|
|
132
|
+
}),
|
|
133
|
+
SimpleBlockViewer.factory<SimpleBlockViewer>({ finalizedArchivist }),
|
|
134
|
+
SimpleXyoRunner.factory<SimpleXyoRunner>({ pendingTransactionsArchivist }),
|
|
135
|
+
NodeXyoViewer.factory<NodeXyoViewer>({ node }),
|
|
136
|
+
])
|
|
137
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './buildProviderLocator.ts'
|
|
2
|
+
export * from './NodeXyoViewer.ts'
|
|
3
|
+
export * from './SimpleNetworkStakeViewer.ts'
|
|
4
|
+
export * from './SimpleStepRewardsByPositionViewer.ts'
|
|
5
|
+
export * from './SimpleStepRewardsByStakerViewer.ts'
|
|
6
|
+
export * from './SimpleStepRewardsByStepViewer.ts'
|
|
7
|
+
export * from './SimpleStepRewardsTotalViewer.ts'
|
|
8
|
+
export * from './SimpleStepRewardsViewer.ts'
|
|
9
|
+
export * from './SimpleStepViewer.ts'
|
|
10
|
+
export * from './SimpleXyoConnection.ts'
|