@xyo-network/chain-services 1.17.7 → 1.18.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.
- package/dist/neutral/AccountBalance/accountBalanceServiceFromArchivist.d.ts +3 -3
- package/dist/neutral/AccountBalance/accountBalanceServiceFromArchivist.d.ts.map +1 -1
- package/dist/neutral/BaseService.d.ts +2 -2
- package/dist/neutral/BaseService.d.ts.map +1 -1
- package/dist/neutral/ChainService/Evm/Evm.d.ts +3 -4
- package/dist/neutral/ChainService/Evm/Evm.d.ts.map +1 -1
- package/dist/neutral/ChainService/Memory/Memory.d.ts +3 -4
- package/dist/neutral/ChainService/Memory/Memory.d.ts.map +1 -1
- package/dist/neutral/ChainValidator/XyoValidator.d.ts +4 -2
- package/dist/neutral/ChainValidator/XyoValidator.d.ts.map +1 -1
- package/dist/neutral/PendingTransactions/BasePendingTransactions.d.ts +0 -1
- package/dist/neutral/PendingTransactions/BasePendingTransactions.d.ts.map +1 -1
- package/dist/neutral/Schemas/BaseSchemasService.d.ts +1 -1
- package/dist/neutral/Schemas/BaseSchemasService.d.ts.map +1 -1
- package/dist/neutral/StakeIntent/XyoStakeIntentService.d.ts +5 -3
- package/dist/neutral/StakeIntent/XyoStakeIntentService.d.ts.map +1 -1
- package/dist/neutral/blockViewerFromChainIteratorAndArchivist.d.ts.map +1 -1
- package/dist/neutral/implementation/chain/evm.d.ts +2 -2
- package/dist/neutral/implementation/chain/evm.d.ts.map +1 -1
- package/dist/neutral/implementation/chain/index.d.ts +2 -3
- package/dist/neutral/implementation/chain/index.d.ts.map +1 -1
- package/dist/neutral/implementation/head/createBootstrapHead.d.ts +3 -3
- package/dist/neutral/implementation/head/createBootstrapHead.d.ts.map +1 -1
- package/dist/neutral/implementation/head/index.d.ts +1 -1
- package/dist/neutral/implementation/head/index.d.ts.map +1 -1
- package/dist/neutral/implementation/index.d.ts +0 -9
- package/dist/neutral/implementation/index.d.ts.map +1 -1
- package/dist/neutral/index.d.ts +0 -2
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +378 -997
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/model/Params.d.ts +3 -4
- package/dist/neutral/model/Params.d.ts.map +1 -1
- package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts +25 -33
- package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/package.json +15 -17
- package/src/AccountBalance/accountBalanceServiceFromArchivist.ts +10 -16
- package/src/BaseService.ts +3 -2
- package/src/ChainService/Evm/Evm.ts +24 -37
- package/src/ChainService/Memory/Memory.ts +6 -12
- package/src/ChainValidator/XyoValidator.ts +11 -4
- package/src/PendingTransactions/BasePendingTransactions.ts +2 -6
- package/src/Schemas/BaseSchemasService.ts +2 -2
- package/src/StakeIntent/XyoStakeIntentService.ts +12 -8
- package/src/blockViewerFromChainIteratorAndArchivist.ts +9 -0
- package/src/implementation/chain/evm.ts +5 -5
- package/src/implementation/chain/index.ts +12 -14
- package/src/implementation/head/createBootstrapHead.ts +13 -8
- package/src/implementation/head/index.ts +1 -1
- package/src/implementation/index.ts +0 -9
- package/src/index.ts +0 -2
- package/src/model/Params.ts +4 -4
- package/src/simple/block/runner/SimpleBlockRunner.ts +122 -122
- package/dist/neutral/ChainBlockNumberIteration/ChainBlockNumberIterationService.d.ts +0 -50
- package/dist/neutral/ChainBlockNumberIteration/ChainBlockNumberIterationService.d.ts.map +0 -1
- package/dist/neutral/ChainBlockNumberIteration/index.d.ts +0 -3
- package/dist/neutral/ChainBlockNumberIteration/index.d.ts.map +0 -1
- package/dist/neutral/ChainBlockNumberIteration/model/BlockNumberIteration.d.ts +0 -7
- package/dist/neutral/ChainBlockNumberIteration/model/BlockNumberIteration.d.ts.map +0 -1
- package/dist/neutral/ChainBlockNumberIteration/model/Params.d.ts +0 -9
- package/dist/neutral/ChainBlockNumberIteration/model/Params.d.ts.map +0 -1
- package/dist/neutral/ChainBlockNumberIteration/model/index.d.ts +0 -3
- package/dist/neutral/ChainBlockNumberIteration/model/index.d.ts.map +0 -1
- package/dist/neutral/Time/BaseTimeSyncService.d.ts +0 -24
- package/dist/neutral/Time/BaseTimeSyncService.d.ts.map +0 -1
- package/dist/neutral/Time/index.d.ts +0 -2
- package/dist/neutral/Time/index.d.ts.map +0 -1
- package/dist/neutral/implementation/accountBalance.d.ts +0 -7
- package/dist/neutral/implementation/accountBalance.d.ts.map +0 -1
- package/dist/neutral/implementation/blockViewer.d.ts +0 -7
- package/dist/neutral/implementation/blockViewer.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/config/getBridgeDestinationDetails.d.ts +0 -8
- package/dist/neutral/implementation/head/createForkedHead/config/getBridgeDestinationDetails.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/config/getBridgeSourceDetails.d.ts +0 -9
- package/dist/neutral/implementation/head/createForkedHead/config/getBridgeSourceDetails.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/config/getForkDetails.d.ts +0 -4
- package/dist/neutral/implementation/head/createForkedHead/config/getForkDetails.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/config/index.d.ts +0 -4
- package/dist/neutral/implementation/head/createForkedHead/config/index.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/createForkedHead.d.ts +0 -5
- package/dist/neutral/implementation/head/createForkedHead/createForkedHead.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/getBridgeDestinationObservation.d.ts +0 -11
- package/dist/neutral/implementation/head/createForkedHead/getBridgeDestinationObservation.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/getBridgeIntent.d.ts +0 -11
- package/dist/neutral/implementation/head/createForkedHead/getBridgeIntent.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/getBridgeSourceObservation.d.ts +0 -11
- package/dist/neutral/implementation/head/createForkedHead/getBridgeSourceObservation.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/getFirstBlockForNewChain.d.ts +0 -13
- package/dist/neutral/implementation/head/createForkedHead/getFirstBlockForNewChain.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/index.d.ts +0 -2
- package/dist/neutral/implementation/head/createForkedHead/index.d.ts.map +0 -1
- package/dist/neutral/implementation/head/getForkFromBlock.d.ts +0 -12
- package/dist/neutral/implementation/head/getForkFromBlock.d.ts.map +0 -1
- package/dist/neutral/implementation/head/head.d.ts +0 -11
- package/dist/neutral/implementation/head/head.d.ts.map +0 -1
- package/dist/neutral/implementation/head/submitNewChain.d.ts +0 -10
- package/dist/neutral/implementation/head/submitNewChain.d.ts.map +0 -1
- package/dist/neutral/implementation/mempoolRunner.d.ts +0 -7
- package/dist/neutral/implementation/mempoolRunner.d.ts.map +0 -1
- package/dist/neutral/implementation/mempoolViewer.d.ts +0 -7
- package/dist/neutral/implementation/mempoolViewer.d.ts.map +0 -1
- package/dist/neutral/implementation/pendingTransactions.d.ts +0 -9
- package/dist/neutral/implementation/pendingTransactions.d.ts.map +0 -1
- package/dist/neutral/implementation/producer.d.ts +0 -5
- package/dist/neutral/implementation/producer.d.ts.map +0 -1
- package/dist/neutral/implementation/reward.d.ts +0 -14
- package/dist/neutral/implementation/reward.d.ts.map +0 -1
- package/dist/neutral/implementation/time.d.ts +0 -6
- package/dist/neutral/implementation/time.d.ts.map +0 -1
- package/dist/neutral/implementation/validator.d.ts +0 -5
- package/dist/neutral/implementation/validator.d.ts.map +0 -1
- package/dist/neutral/simple/block/runner/spec/SimpleBlockRunner.d.ts +0 -2
- package/dist/neutral/simple/block/runner/spec/SimpleBlockRunner.d.ts.map +0 -1
- package/src/ChainBlockNumberIteration/ChainBlockNumberIterationService.ts +0 -176
- package/src/ChainBlockNumberIteration/index.ts +0 -2
- package/src/ChainBlockNumberIteration/model/BlockNumberIteration.ts +0 -7
- package/src/ChainBlockNumberIteration/model/Params.ts +0 -10
- package/src/ChainBlockNumberIteration/model/index.ts +0 -2
- package/src/Time/BaseTimeSyncService.ts +0 -54
- package/src/Time/index.ts +0 -1
- package/src/implementation/accountBalance.ts +0 -29
- package/src/implementation/blockViewer.ts +0 -29
- package/src/implementation/head/createForkedHead/config/getBridgeDestinationDetails.ts +0 -27
- package/src/implementation/head/createForkedHead/config/getBridgeSourceDetails.ts +0 -19
- package/src/implementation/head/createForkedHead/config/getForkDetails.ts +0 -10
- package/src/implementation/head/createForkedHead/config/index.ts +0 -3
- package/src/implementation/head/createForkedHead/createForkedHead.ts +0 -29
- package/src/implementation/head/createForkedHead/getBridgeDestinationObservation.ts +0 -42
- package/src/implementation/head/createForkedHead/getBridgeIntent.ts +0 -51
- package/src/implementation/head/createForkedHead/getBridgeSourceObservation.ts +0 -46
- package/src/implementation/head/createForkedHead/getFirstBlockForNewChain.ts +0 -41
- package/src/implementation/head/createForkedHead/index.ts +0 -1
- package/src/implementation/head/getForkFromBlock.ts +0 -43
- package/src/implementation/head/head.ts +0 -49
- package/src/implementation/head/submitNewChain.ts +0 -27
- package/src/implementation/mempoolRunner.ts +0 -29
- package/src/implementation/mempoolViewer.ts +0 -29
- package/src/implementation/pendingTransactions.ts +0 -36
- package/src/implementation/producer.ts +0 -16
- package/src/implementation/reward.ts +0 -53
- package/src/implementation/time.ts +0 -26
- package/src/implementation/validator.ts +0 -15
- package/src/simple/block/runner/spec/SimpleBlockRunner.ts +0 -418
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import type { CreatableParams, EmptyObject } from '@xylabs/sdk-js';
|
|
2
1
|
import type { AccountInstance } from '@xyo-network/account-model';
|
|
3
2
|
import type { OpenTelemetryProviders } from '@xyo-network/xl1-protocol';
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import type { CreatableProviderParams } from '@xyo-network/xl1-protocol-sdk';
|
|
4
|
+
export interface BaseServiceParams extends CreatableProviderParams, OpenTelemetryProviders {
|
|
6
5
|
}
|
|
7
|
-
export interface BaseAccountableServiceParams
|
|
6
|
+
export interface BaseAccountableServiceParams extends BaseServiceParams {
|
|
8
7
|
account: AccountInstance;
|
|
9
8
|
}
|
|
10
9
|
//# sourceMappingURL=Params.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Params.d.ts","sourceRoot":"","sources":["../../../src/model/Params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"Params.d.ts","sourceRoot":"","sources":["../../../src/model/Params.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAE5E,MAAM,WAAW,iBAAkB,SAAQ,uBAAuB,EAAE,sBAAsB;CAEzF;AAED,MAAM,WAAW,4BAA6B,SAAQ,iBAAiB;IACrE,OAAO,EAAE,eAAe,CAAA;CACzB"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Address, Hex, Promisable } from '@xylabs/sdk-js';
|
|
2
2
|
import { AccountInstance } from '@xyo-network/account-model';
|
|
3
3
|
import { ArchivistInstance } from '@xyo-network/archivist-model';
|
|
4
4
|
import { BlockRewardDiviner } from '@xyo-network/chain-modules';
|
|
5
5
|
import { WithHashMeta } from '@xyo-network/payload-model';
|
|
6
|
-
import { BlockBoundWitness,
|
|
7
|
-
import { AccountBalanceViewer, BlockRewardViewer, BlockRunner,
|
|
8
|
-
import z from 'zod';
|
|
6
|
+
import { BlockBoundWitness, ChainStakeIntent, SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta, Transfer } from '@xyo-network/xl1-protocol';
|
|
7
|
+
import { AbstractCreatableProvider, AccountBalanceViewer, BlockRewardViewer, BlockRunner, BlockValidationViewer, CreatableProviderParams, HydratedBlockStateValidationFunction, MempoolRunner, MempoolViewer, TimeSyncViewer } from '@xyo-network/xl1-protocol-sdk';
|
|
9
8
|
/**
|
|
10
9
|
* The default block size for a block
|
|
11
10
|
*/
|
|
@@ -19,35 +18,28 @@ export declare const XYO_PRODUCER_REDECLARATION_DURATION = 10000;
|
|
|
19
18
|
* their intent to produce blocks
|
|
20
19
|
*/
|
|
21
20
|
export declare const XYO_PRODUCER_REDECLARATION_WINDOW = 500;
|
|
22
|
-
export
|
|
23
|
-
balanceViewer: z.ZodObject<{}, z.z.core.$loose>;
|
|
24
|
-
blockRewardViewer: z.ZodObject<{}, z.z.core.$loose>;
|
|
25
|
-
chainId: z.ZodString;
|
|
26
|
-
config: z.ZodObject<{}, z.z.core.$loose>;
|
|
27
|
-
mempoolViewer: z.ZodObject<{}, z.z.core.$loose>;
|
|
28
|
-
mempoolRunner: z.ZodObject<{}, z.z.core.$loose>;
|
|
29
|
-
rejectedTransactionsArchivist: z.ZodOptional<z.ZodObject<{}, z.z.core.$loose>>;
|
|
30
|
-
rewardAddress: z.ZodPipe<z.ZodString, z.ZodTransform<Address, string>>;
|
|
31
|
-
time: z.ZodObject<{}, z.z.core.$loose>;
|
|
32
|
-
validateHydratedBlockState: z.ZodOptional<z.ZodFunction<z.z.core.$ZodFunctionArgs, z.z.core.$ZodFunctionOut>>;
|
|
33
|
-
}, z.z.core.$strip>;
|
|
34
|
-
export type SimpleBlockRunnerParams = CreatableParams & {
|
|
21
|
+
export type SimpleBlockRunnerParams = CreatableProviderParams & {
|
|
35
22
|
account: AccountInstance;
|
|
36
|
-
balanceViewer: AccountBalanceViewer;
|
|
37
|
-
blockRewardViewer: BlockRewardViewer;
|
|
38
|
-
chainId: ChainId;
|
|
39
|
-
config: Config;
|
|
40
|
-
mempoolRunner: MempoolRunner;
|
|
41
|
-
mempoolViewer: MempoolViewer;
|
|
42
23
|
rejectedTransactionsArchivist?: ArchivistInstance;
|
|
43
24
|
rewardAddress: Address;
|
|
44
|
-
time: TimeSyncViewer;
|
|
45
25
|
validateHydratedBlockState?: HydratedBlockStateValidationFunction;
|
|
46
26
|
};
|
|
47
|
-
export declare class SimpleBlockRunner extends
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
27
|
+
export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleBlockRunnerParams> implements BlockRunner {
|
|
28
|
+
static readonly defaultMoniker: "BlockRunner";
|
|
29
|
+
static readonly monikers: "BlockRunner"[];
|
|
30
|
+
moniker: "BlockRunner";
|
|
31
|
+
protected _blockRewardDiviner?: BlockRewardDiviner;
|
|
32
|
+
protected _lastRedeclarationBlock?: number;
|
|
33
|
+
protected _rejectedTransactionsArchivist?: ArchivistInstance;
|
|
34
|
+
private _account?;
|
|
35
|
+
private _accountBalanceViewer?;
|
|
36
|
+
private _address?;
|
|
37
|
+
private _blockRewardViewer?;
|
|
38
|
+
private _blockValidationViewer?;
|
|
39
|
+
private _mempoolRunner?;
|
|
40
|
+
private _mempoolViewer?;
|
|
41
|
+
private _rewardAddress?;
|
|
42
|
+
private _timeSyncViewer?;
|
|
51
43
|
/**
|
|
52
44
|
* The default block size for a block
|
|
53
45
|
*/
|
|
@@ -62,17 +54,17 @@ export declare class SimpleBlockRunner extends AbstractCreatable<SimpleBlockRunn
|
|
|
62
54
|
* their intent to continue producing blocks
|
|
63
55
|
*/
|
|
64
56
|
static get RedeclarationWindow(): number;
|
|
65
|
-
get address(): Address;
|
|
66
57
|
protected get account(): AccountInstance;
|
|
67
|
-
protected get
|
|
58
|
+
protected get accountBalanceViewer(): AccountBalanceViewer;
|
|
59
|
+
protected get address(): Address;
|
|
68
60
|
protected get blockRewardViewer(): BlockRewardViewer;
|
|
69
|
-
protected get
|
|
61
|
+
protected get blockValidationViewer(): BlockValidationViewer;
|
|
70
62
|
protected get mempoolRunner(): MempoolRunner;
|
|
71
63
|
protected get mempoolViewer(): MempoolViewer;
|
|
72
64
|
protected get rejectedTransactionsArchivist(): ArchivistInstance<import("@xyo-network/archivist-model").ArchivistParams<import("@xyo-network/module-model").AnyConfigSchema<import("@xyo-network/archivist-model").ArchivistConfig>>, import("@xyo-network/archivist-model").ArchivistModuleEventData, import("@xyo-network/payload-model").Payload>;
|
|
73
65
|
protected get rewardAddress(): Address;
|
|
74
|
-
protected get
|
|
75
|
-
|
|
66
|
+
protected get timeSyncViewer(): TimeSyncViewer;
|
|
67
|
+
createHandler(): Promise<void>;
|
|
76
68
|
next(head: WithHashMeta<BlockBoundWitness>): Promise<SignedHydratedBlockWithHashMeta | undefined>;
|
|
77
69
|
produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force: true): Promise<SignedHydratedBlockWithHashMeta>;
|
|
78
70
|
produceNextBlock(head: SignedBlockBoundWitnessWithHashMeta, force?: false): Promise<SignedHydratedBlockWithHashMeta | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleBlockRunner.d.ts","sourceRoot":"","sources":["../../../../../src/simple/block/runner/SimpleBlockRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"SimpleBlockRunner.d.ts","sourceRoot":"","sources":["../../../../../src/simple/block/runner/SimpleBlockRunner.ts"],"names":[],"mappings":"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"}
|
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.
|
|
4
|
+
"version": "1.18.0",
|
|
5
5
|
"description": "XYO Layer One SDK Services",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"!**/*.test.*"
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@opentelemetry/api": "
|
|
42
|
+
"@opentelemetry/api": "^1.9.0",
|
|
43
43
|
"@xylabs/sdk-js": "~5.0.51",
|
|
44
44
|
"@xyo-network/account-model": "~5.2.17",
|
|
45
45
|
"@xyo-network/archivist-memory": "~5.2.17",
|
|
@@ -47,36 +47,34 @@
|
|
|
47
47
|
"@xyo-network/boundwitness-model": "~5.2.17",
|
|
48
48
|
"@xyo-network/boundwitness-validator": "~5.2.17",
|
|
49
49
|
"@xyo-network/boundwitness-wrapper": "~5.2.17",
|
|
50
|
-
"@xyo-network/chain-analyze": "~1.
|
|
51
|
-
"@xyo-network/chain-modules": "~1.
|
|
52
|
-
"@xyo-network/chain-protocol": "~1.
|
|
53
|
-
"@xyo-network/chain-utils": "~1.
|
|
50
|
+
"@xyo-network/chain-analyze": "~1.18.0",
|
|
51
|
+
"@xyo-network/chain-modules": "~1.18.0",
|
|
52
|
+
"@xyo-network/chain-protocol": "~1.18.0",
|
|
53
|
+
"@xyo-network/chain-utils": "~1.18.0",
|
|
54
54
|
"@xyo-network/payload-builder": "~5.2.17",
|
|
55
55
|
"@xyo-network/payload-model": "~5.2.17",
|
|
56
56
|
"@xyo-network/typechain": "~4.0.11",
|
|
57
57
|
"@xyo-network/xl1-protocol": "~1.14.17",
|
|
58
|
-
"@xyo-network/xl1-protocol-sdk": "~1.
|
|
59
|
-
"@xyo-network/xl1-
|
|
60
|
-
"@xyo-network/xl1-
|
|
61
|
-
"@xyo-network/xl1-wrappers": "~1.17.7",
|
|
58
|
+
"@xyo-network/xl1-protocol-sdk": "~1.18.0",
|
|
59
|
+
"@xyo-network/xl1-validation": "~1.18.0",
|
|
60
|
+
"@xyo-network/xl1-wrappers": "~1.18.0",
|
|
62
61
|
"async-mutex": "~0.5.0",
|
|
63
62
|
"ethers": "^6.16.0",
|
|
64
|
-
"lru-cache": "
|
|
65
|
-
"zod": "~4.1.13"
|
|
63
|
+
"lru-cache": "^11.2.4"
|
|
66
64
|
},
|
|
67
65
|
"devDependencies": {
|
|
68
|
-
"@types/node": "~25.0.
|
|
66
|
+
"@types/node": "~25.0.2",
|
|
69
67
|
"@xylabs/sdk-js": "~5.0.51",
|
|
70
|
-
"@xylabs/ts-scripts-yarn3": "~7.2.
|
|
71
|
-
"@xylabs/tsconfig": "~7.2.
|
|
68
|
+
"@xylabs/ts-scripts-yarn3": "~7.2.32",
|
|
69
|
+
"@xylabs/tsconfig": "~7.2.32",
|
|
72
70
|
"@xylabs/vitest-extended": "~5.0.51",
|
|
73
71
|
"@xyo-network/account": "~5.2.17",
|
|
74
72
|
"@xyo-network/account-model": "~5.2.17",
|
|
75
|
-
"@xyo-network/chain-validation": "~1.
|
|
73
|
+
"@xyo-network/chain-validation": "~1.18.0",
|
|
76
74
|
"@xyo-network/wallet": "~5.2.17",
|
|
77
75
|
"@xyo-network/wallet-model": "~5.2.17",
|
|
78
76
|
"cosmiconfig": "^9.0.0",
|
|
79
|
-
"eslint": "^9.39.
|
|
77
|
+
"eslint": "^9.39.2",
|
|
80
78
|
"tslib": "~2.8.1",
|
|
81
79
|
"typescript": "~5.9.3",
|
|
82
80
|
"vitest": "~4.0.15",
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import type { Hash } from '@xylabs/sdk-js'
|
|
2
2
|
import { assertEx } from '@xylabs/sdk-js'
|
|
3
|
-
import type {
|
|
3
|
+
import type { ReadWriteArchivist } from '@xyo-network/archivist-model'
|
|
4
4
|
import type { Payload, WithStorageMeta } from '@xyo-network/payload-model'
|
|
5
5
|
import type { ChainId } from '@xyo-network/xl1-protocol'
|
|
6
6
|
import { StepSizes } from '@xyo-network/xl1-protocol'
|
|
7
7
|
import type {
|
|
8
|
-
AccountBalanceViewer, BalancesStepSummary,
|
|
8
|
+
AccountBalanceViewer, BalancesStepSummary, CreatableProviderContext, SimpleAccountBalanceViewerParams, TransfersStepSummary,
|
|
9
9
|
} from '@xyo-network/xl1-protocol-sdk'
|
|
10
10
|
import {
|
|
11
|
-
findMostRecentBlock, LruCacheMap,
|
|
11
|
+
findMostRecentBlock, LruCacheMap, payloadMapFromStore,
|
|
12
12
|
SimpleAccountBalanceViewer,
|
|
13
|
-
SimpleBlockViewer,
|
|
14
13
|
} from '@xyo-network/xl1-protocol-sdk'
|
|
15
14
|
import { Semaphore } from 'async-mutex'
|
|
16
15
|
|
|
17
16
|
// this is intended to only be used for testing
|
|
18
17
|
export const accountBalancesViewerFromArchivist = async (
|
|
18
|
+
context: CreatableProviderContext,
|
|
19
19
|
chainId: ChainId,
|
|
20
|
-
archivist:
|
|
20
|
+
archivist: ReadWriteArchivist<WithStorageMeta<Payload>>,
|
|
21
21
|
): Promise<AccountBalanceViewer> => {
|
|
22
22
|
const summaryMap = new LruCacheMap<string, BalancesStepSummary>({
|
|
23
23
|
max: 100_000,
|
|
@@ -33,19 +33,21 @@ export const accountBalancesViewerFromArchivist = async (
|
|
|
33
33
|
updateAgeOnGet: true,
|
|
34
34
|
})
|
|
35
35
|
|
|
36
|
-
const chainMap =
|
|
36
|
+
const chainMap = payloadMapFromStore<WithStorageMeta<Payload>>(archivist)
|
|
37
37
|
const headFunc = async (): Promise<[Hash, number]> => {
|
|
38
38
|
const head = assertEx(await findMostRecentBlock(archivist), () => 'No blocks found in chainArchivist')
|
|
39
39
|
return [head._hash, head.block]
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
const service = await SimpleAccountBalanceViewer.create({
|
|
43
|
-
context
|
|
43
|
+
context,
|
|
44
|
+
balanceSummaryContext: {
|
|
44
45
|
chainId,
|
|
45
46
|
store: { chainMap },
|
|
46
47
|
stepSemaphores: StepSizes.map(() => new Semaphore(20)),
|
|
47
48
|
summaryMap,
|
|
48
49
|
head: headFunc,
|
|
50
|
+
singletons: context.singletons,
|
|
49
51
|
},
|
|
50
52
|
transfersSummaryContext: {
|
|
51
53
|
chainId,
|
|
@@ -53,16 +55,8 @@ export const accountBalancesViewerFromArchivist = async (
|
|
|
53
55
|
stepSemaphores: StepSizes.map(() => new Semaphore(20)),
|
|
54
56
|
summaryMap: transferSummaryMap,
|
|
55
57
|
head: headFunc,
|
|
56
|
-
|
|
58
|
+
singletons: context.singletons,
|
|
57
59
|
},
|
|
58
|
-
blockViewer: await SimpleBlockViewer.create({
|
|
59
|
-
context: {
|
|
60
|
-
chainId,
|
|
61
|
-
head: headFunc,
|
|
62
|
-
store: { chainMap },
|
|
63
|
-
},
|
|
64
|
-
finalizedArchivist: archivist,
|
|
65
|
-
} satisfies SimpleBlockViewerParams),
|
|
66
60
|
} satisfies SimpleAccountBalanceViewerParams)
|
|
67
61
|
return service
|
|
68
62
|
}
|
package/src/BaseService.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { EventData, Promisable } from '@xylabs/sdk-js'
|
|
2
|
-
import {
|
|
2
|
+
import { creatable } from '@xylabs/sdk-js'
|
|
3
|
+
import { AbstractCreatableProvider } from '@xyo-network/xl1-protocol-sdk'
|
|
3
4
|
import { Mutex } from 'async-mutex'
|
|
4
5
|
|
|
5
6
|
import type { BaseAccountableServiceParams, BaseServiceParams } from './model/index.ts'
|
|
@@ -10,7 +11,7 @@ declare global {
|
|
|
10
11
|
|
|
11
12
|
@creatable()
|
|
12
13
|
export class BaseService<TParams extends BaseServiceParams = BaseServiceParams, TEventData extends EventData = EventData>
|
|
13
|
-
extends
|
|
14
|
+
extends AbstractCreatableProvider<TParams, TEventData> {
|
|
14
15
|
private static singletonInitMutex = new Mutex()
|
|
15
16
|
|
|
16
17
|
static get singletons() {
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
Address, Hex, Promisable,
|
|
3
3
|
} from '@xylabs/sdk-js'
|
|
4
|
-
import {
|
|
5
|
-
assertEx, toAddress, toEthAddress,
|
|
6
|
-
} from '@xylabs/sdk-js'
|
|
4
|
+
import { toAddress, toEthAddress } from '@xylabs/sdk-js'
|
|
7
5
|
import type { StakedXyoChain } from '@xyo-network/typechain'
|
|
8
|
-
import { StakedXyoChain__factory as StakedXyoChainFactory } from '@xyo-network/typechain'
|
|
9
6
|
import type { AttoXL1, XL1BlockNumber } from '@xyo-network/xl1-protocol'
|
|
10
7
|
import { ChainContractViewerMoniker, type ChainService } from '@xyo-network/xl1-protocol-sdk'
|
|
11
8
|
import { getAddress } from 'ethers/address'
|
|
@@ -14,7 +11,7 @@ import type { ContractRunner } from 'ethers/providers'
|
|
|
14
11
|
import { BaseService } from '../../BaseService.ts'
|
|
15
12
|
import type { BaseServiceParams } from '../../model/index.ts'
|
|
16
13
|
|
|
17
|
-
export interface
|
|
14
|
+
export interface EvmChainViewerParams extends BaseServiceParams {
|
|
18
15
|
contract: StakedXyoChain
|
|
19
16
|
id: Hex
|
|
20
17
|
runner: ContractRunner
|
|
@@ -23,69 +20,59 @@ export interface EvmChainServiceParams extends BaseServiceParams {
|
|
|
23
20
|
/**
|
|
24
21
|
* A class that represents a chain stake as backed by an EVM smart contract
|
|
25
22
|
*/
|
|
26
|
-
export class
|
|
23
|
+
export class EvmChainViewer extends BaseService<EvmChainViewerParams> implements ChainService {
|
|
27
24
|
static readonly defaultMoniker = ChainContractViewerMoniker
|
|
28
25
|
static readonly monikers = [ChainContractViewerMoniker]
|
|
29
|
-
moniker =
|
|
26
|
+
moniker = EvmChainViewer.defaultMoniker
|
|
27
|
+
|
|
28
|
+
protected get contract() {
|
|
29
|
+
return this.params.contract
|
|
30
|
+
}
|
|
30
31
|
|
|
31
32
|
async active(): Promise<bigint> {
|
|
32
|
-
return await (
|
|
33
|
+
return await (this.contract).active()
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
async activeByStaked(staked: Address): Promise<bigint> {
|
|
36
|
-
return await (
|
|
37
|
+
return await (this.contract).activeByAddressStaked(getAddress(toEthAddress(staked)))
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
async activeByStaker(address: Address): Promise<bigint> {
|
|
40
|
-
return await (
|
|
41
|
+
return await (this.contract).activeByStaker(getAddress(toEthAddress(address)))
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
async addStake(staked: Address, amount: bigint): Promise<boolean> {
|
|
44
|
-
const result = await (
|
|
45
|
+
const result = await (this.contract).addStake(getAddress(toEthAddress(staked)), amount)
|
|
45
46
|
await result.wait()
|
|
46
47
|
return true
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
chainId(): Promisable<Hex> {
|
|
50
|
-
return assertEx(this.params.id)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
async contract() {
|
|
54
|
-
if (this.params.contract === undefined) {
|
|
55
|
-
this.params.contract = StakedXyoChainFactory.connect(
|
|
56
|
-
toEthAddress(await this.chainId()),
|
|
57
|
-
this.params.runner,
|
|
58
|
-
) as StakedXyoChain
|
|
59
|
-
}
|
|
60
|
-
return assertEx(this.params.contract)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
50
|
async forkedAtBlockNumber(): Promise<bigint> {
|
|
64
|
-
return await (
|
|
51
|
+
return await (this.contract).forkedAtBlockNumber()
|
|
65
52
|
}
|
|
66
53
|
|
|
67
54
|
async forkedAtHash(): Promise<bigint> {
|
|
68
|
-
return await (
|
|
55
|
+
return await (this.contract).forkedAtHash()
|
|
69
56
|
}
|
|
70
57
|
|
|
71
58
|
async forkedChainId(): Promise<Address> {
|
|
72
|
-
return toAddress(await (
|
|
59
|
+
return toAddress(await (this.contract).forkedChainId())
|
|
73
60
|
}
|
|
74
61
|
|
|
75
62
|
async minWithdrawalBlocks(): Promise<bigint> {
|
|
76
|
-
return await (
|
|
63
|
+
return await (this.contract).minWithdrawalBlocks()
|
|
77
64
|
}
|
|
78
65
|
|
|
79
66
|
async pending(): Promise<bigint> {
|
|
80
|
-
return await (
|
|
67
|
+
return await (this.contract).pending()
|
|
81
68
|
}
|
|
82
69
|
|
|
83
70
|
async pendingByStaker(staker: Address): Promise<bigint> {
|
|
84
|
-
return await (
|
|
71
|
+
return await (this.contract).pendingByStaker(getAddress(toEthAddress(staker)))
|
|
85
72
|
}
|
|
86
73
|
|
|
87
74
|
async removeStake(slot: bigint): Promise<boolean> {
|
|
88
|
-
const result = await (
|
|
75
|
+
const result = await (this.contract).removeStake(slot)
|
|
89
76
|
await result.wait()
|
|
90
77
|
return true
|
|
91
78
|
}
|
|
@@ -95,24 +82,24 @@ export class EvmChainService extends BaseService<EvmChainServiceParams> implemen
|
|
|
95
82
|
}
|
|
96
83
|
|
|
97
84
|
async rewardsContract(): Promise<string> {
|
|
98
|
-
return await (
|
|
85
|
+
return await (this.contract).rewardsContract()
|
|
99
86
|
}
|
|
100
87
|
|
|
101
88
|
async stakingTokenAddress(): Promise<string> {
|
|
102
|
-
return await (
|
|
89
|
+
return await (this.contract).stakingTokenAddress()
|
|
103
90
|
}
|
|
104
91
|
|
|
105
92
|
async withdrawStake(slot: bigint): Promise<boolean> {
|
|
106
|
-
const result = await (
|
|
93
|
+
const result = await (this.contract).withdrawStake(slot)
|
|
107
94
|
await result.wait()
|
|
108
95
|
return true
|
|
109
96
|
}
|
|
110
97
|
|
|
111
98
|
async withdrawn(): Promise<bigint> {
|
|
112
|
-
return await (
|
|
99
|
+
return await (this.contract).withdrawn()
|
|
113
100
|
}
|
|
114
101
|
|
|
115
102
|
async withdrawnByStaker(staker: string): Promise<bigint> {
|
|
116
|
-
return await (
|
|
103
|
+
return await (this.contract).withdrawnByStaker(getAddress(staker))
|
|
117
104
|
}
|
|
118
105
|
}
|
|
@@ -1,29 +1,27 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
Address, Hex, Promisable,
|
|
3
3
|
} from '@xylabs/sdk-js'
|
|
4
|
-
import {
|
|
5
|
-
assertEx, toAddress, ZERO_ADDRESS,
|
|
6
|
-
} from '@xylabs/sdk-js'
|
|
4
|
+
import { toAddress, ZERO_ADDRESS } from '@xylabs/sdk-js'
|
|
7
5
|
import type { AttoXL1, XL1BlockNumber } from '@xyo-network/xl1-protocol'
|
|
8
6
|
import {
|
|
9
7
|
ChainContractViewerMoniker,
|
|
10
|
-
type ChainService,
|
|
8
|
+
type ChainService,
|
|
11
9
|
} from '@xyo-network/xl1-protocol-sdk'
|
|
12
10
|
|
|
13
11
|
import { BaseService } from '../../BaseService.ts'
|
|
14
12
|
import type { BaseServiceParams } from '../../model/index.ts'
|
|
15
13
|
|
|
16
|
-
export interface
|
|
14
|
+
export interface MemoryChainViewerParams extends BaseServiceParams {
|
|
17
15
|
chainId: Hex
|
|
18
16
|
}
|
|
19
17
|
|
|
20
18
|
/**
|
|
21
19
|
* A class that represents a chain stake as backed in memory
|
|
22
20
|
*/
|
|
23
|
-
export class
|
|
21
|
+
export class MemoryChainViewer extends BaseService<MemoryChainViewerParams> implements ChainService {
|
|
24
22
|
static readonly defaultMoniker = ChainContractViewerMoniker
|
|
25
23
|
static readonly monikers = [ChainContractViewerMoniker]
|
|
26
|
-
moniker =
|
|
24
|
+
moniker = MemoryChainViewer.defaultMoniker
|
|
27
25
|
|
|
28
26
|
protected _chainId: Hex | undefined
|
|
29
27
|
protected _simulatedStake: bigint = 1n
|
|
@@ -44,12 +42,8 @@ export class MemoryChainService extends BaseService<MemoryChainServiceParams> im
|
|
|
44
42
|
return await Promise.resolve(true)
|
|
45
43
|
}
|
|
46
44
|
|
|
47
|
-
chainId(): Promisable<Hex> {
|
|
48
|
-
return assertEx(this._chainId, () => 'Chain ID not set')
|
|
49
|
-
}
|
|
50
|
-
|
|
51
45
|
override createHandler(): void {
|
|
52
|
-
const { minStake = 1 } = this.params.config.producer ?? {}
|
|
46
|
+
const { minStake = 1 } = this.params.context.config.producer ?? {}
|
|
53
47
|
this._simulatedStake = BigInt(minStake)
|
|
54
48
|
}
|
|
55
49
|
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
creatable,
|
|
3
3
|
Promisable,
|
|
4
4
|
} from '@xylabs/sdk-js'
|
|
5
5
|
import {
|
|
6
6
|
BlockBoundWitness,
|
|
7
7
|
SignedHydratedTransactionWithStorageMeta,
|
|
8
8
|
} from '@xyo-network/xl1-protocol'
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
BlockViewer, BlockViewerMoniker, HydratedBlockStateValidationFunction,
|
|
11
|
+
} from '@xyo-network/xl1-protocol-sdk'
|
|
10
12
|
|
|
11
13
|
import { BaseService } from '../BaseService.ts'
|
|
12
14
|
import { BaseServiceParams } from '../model/index.ts'
|
|
13
15
|
import { Validator } from './model/index.ts'
|
|
14
16
|
|
|
15
|
-
export interface XyoValidatorParams
|
|
17
|
+
export interface XyoValidatorParams extends BaseServiceParams {
|
|
16
18
|
// account: AccountInstance
|
|
17
19
|
// blockRewardService: BlockRewardService
|
|
18
20
|
blockViewer: BlockViewer
|
|
@@ -25,6 +27,7 @@ export interface XyoValidatorParams<TConfig extends EmptyObject = EmptyObject> e
|
|
|
25
27
|
|
|
26
28
|
@creatable()
|
|
27
29
|
export class XyoValidator<TParams extends XyoValidatorParams = XyoValidatorParams> extends BaseService<TParams> implements Validator {
|
|
30
|
+
private _blockViewer?: BlockViewer
|
|
28
31
|
// get address() {
|
|
29
32
|
// return this.account.address
|
|
30
33
|
// }
|
|
@@ -34,7 +37,7 @@ export class XyoValidator<TParams extends XyoValidatorParams = XyoValidatorParam
|
|
|
34
37
|
// }
|
|
35
38
|
|
|
36
39
|
protected get blockViewer() {
|
|
37
|
-
return
|
|
40
|
+
return this._blockViewer!
|
|
38
41
|
}
|
|
39
42
|
|
|
40
43
|
// protected get chainInfo() {
|
|
@@ -53,6 +56,10 @@ export class XyoValidator<TParams extends XyoValidatorParams = XyoValidatorParam
|
|
|
53
56
|
// return assertEx(this.params.blockRewardService, () => 'blockRewardService is required')
|
|
54
57
|
// }
|
|
55
58
|
|
|
59
|
+
override async createHandler() {
|
|
60
|
+
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)
|
|
61
|
+
}
|
|
62
|
+
|
|
56
63
|
validatePendingBlock(_block: BlockBoundWitness): Promisable<Error[]> {
|
|
57
64
|
return [] // await validateBlockProtocol(block, this.chainInfo)
|
|
58
65
|
}
|
|
@@ -96,10 +96,6 @@ export class BasePendingTransactionsService extends BaseService<BasePendingTrans
|
|
|
96
96
|
return assertEx(this.params.chainArchivist, () => 'No completed blocks with data archivist')
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
private get chainId() {
|
|
100
|
-
return assertEx(this.params.chainId, () => 'No chain id')
|
|
101
|
-
}
|
|
102
|
-
|
|
103
99
|
private get pendingBundledTransactionsArchivist() {
|
|
104
100
|
return assertEx(this.params.pendingBundledTransactionsArchivist, () => 'No pending bundled transactions archivist')
|
|
105
101
|
}
|
|
@@ -196,7 +192,7 @@ export class BasePendingTransactionsService extends BaseService<BasePendingTrans
|
|
|
196
192
|
|
|
197
193
|
const txValidationResults = await Promise.all(activeTransactions.map(async tx => ([tx, await validateTransaction(
|
|
198
194
|
tx,
|
|
199
|
-
{ chainId: this.chainId },
|
|
195
|
+
{ chainId: this.params.chainId },
|
|
200
196
|
this.additionalPendingTransactionValidators,
|
|
201
197
|
)])))
|
|
202
198
|
|
|
@@ -268,7 +264,7 @@ export class BasePendingTransactionsService extends BaseService<BasePendingTrans
|
|
|
268
264
|
}))).filter(exists)
|
|
269
265
|
// Filter to only valid transactions
|
|
270
266
|
const validTransactions = await filterAsync(hydratedUnprocessedTransactions, async (tx) => {
|
|
271
|
-
const errors = await validateTransaction(tx, { chainId: this.chainId }, [TransactionJsonSchemaValidator])
|
|
267
|
+
const errors = await validateTransaction(tx, { chainId: this.params.chainId }, [TransactionJsonSchemaValidator])
|
|
272
268
|
if (errors.length > 0) {
|
|
273
269
|
this.logger?.warn('validateTransaction', errors)
|
|
274
270
|
}
|
|
@@ -12,7 +12,7 @@ import { BaseService } from '../BaseService.ts'
|
|
|
12
12
|
import { BaseServiceParams } from '../model/index.ts'
|
|
13
13
|
|
|
14
14
|
export interface BaseSchemasServiceParams extends BaseServiceParams {
|
|
15
|
-
|
|
15
|
+
schemasStepSummaryContext: SchemasStepSummaryContext
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
@creatable()
|
|
@@ -23,7 +23,7 @@ export class BaseSchemasService extends BaseService<BaseSchemasServiceParams> im
|
|
|
23
23
|
|
|
24
24
|
async schemas(head: Hash, schemas: Schema[]): Promise<Partial<Record<Schema, number>>> {
|
|
25
25
|
return await spanRootAsync('transfers', async () => {
|
|
26
|
-
const [summary] = await schemasSummary(this.params.
|
|
26
|
+
const [summary] = await schemasSummary(this.params.schemasStepSummaryContext)
|
|
27
27
|
const result: Record<Schema, number> = {}
|
|
28
28
|
for (const schema of schemas) {
|
|
29
29
|
const count = summary[schema] ?? 0
|
|
@@ -20,8 +20,9 @@ import {
|
|
|
20
20
|
import {
|
|
21
21
|
asChainIndexingServiceStateWithStorageMeta,
|
|
22
22
|
BlockViewer,
|
|
23
|
+
BlockViewerMoniker,
|
|
23
24
|
ChainIndexingServiceState, ChainIndexingServiceStateSchema, ChainStakeViewer,
|
|
24
|
-
|
|
25
|
+
ChainStakeViewerMoniker,
|
|
25
26
|
isChainIndexingServiceState,
|
|
26
27
|
readPayloadMapFromStore,
|
|
27
28
|
StakeIntentService,
|
|
@@ -33,7 +34,7 @@ import { LRUCache } from 'lru-cache'
|
|
|
33
34
|
import { BaseService } from '../BaseService.ts'
|
|
34
35
|
import { BaseServiceParams } from '../model/index.ts'
|
|
35
36
|
|
|
36
|
-
export interface XyoStakeIntentServiceParams extends BaseServiceParams
|
|
37
|
+
export interface XyoStakeIntentServiceParams extends BaseServiceParams {
|
|
37
38
|
blockViewer: BlockViewer
|
|
38
39
|
chainArchivist: ArchivistInstance
|
|
39
40
|
chainStakeViewer: ChainStakeViewer
|
|
@@ -65,8 +66,11 @@ export class XyoStakeIntentService extends BaseService<XyoStakeIntentServicePara
|
|
|
65
66
|
protected _stakeCache = new LRUCache<Address, bigint>({ max: STAKE_CACHE_MAX_ENTRIES })
|
|
66
67
|
protected _updateMutex = new Mutex()
|
|
67
68
|
|
|
69
|
+
private _blockViewer?: BlockViewer
|
|
70
|
+
private _chainStakeViewer?: ChainStakeViewer
|
|
71
|
+
|
|
68
72
|
protected get blockViewer() {
|
|
69
|
-
return this.
|
|
73
|
+
return this._blockViewer!
|
|
70
74
|
}
|
|
71
75
|
|
|
72
76
|
protected get chainArchivist() {
|
|
@@ -74,24 +78,24 @@ export class XyoStakeIntentService extends BaseService<XyoStakeIntentServicePara
|
|
|
74
78
|
}
|
|
75
79
|
|
|
76
80
|
protected get chainStakeViewer() {
|
|
77
|
-
return
|
|
81
|
+
return this._chainStakeViewer!
|
|
78
82
|
}
|
|
79
83
|
|
|
80
84
|
protected get stakeIntentStateArchivist() {
|
|
81
85
|
return assertEx(this.params.stakeIntentStateArchivist!, () => 'stakeIntentStateArchivist not set')
|
|
82
86
|
}
|
|
83
87
|
|
|
84
|
-
static override async paramsHandler(params
|
|
88
|
+
static override async paramsHandler(params: Partial<XyoStakeIntentServiceParams>): Promise<XyoStakeIntentServiceParams> {
|
|
85
89
|
return {
|
|
86
90
|
...await super.paramsHandler(params),
|
|
87
|
-
blockViewer: assertEx(params?.blockViewer, () => 'blockViewer is required'),
|
|
88
91
|
chainArchivist: assertEx(params?.chainArchivist, () => 'chainArchivist is required'),
|
|
89
|
-
chainStakeViewer: assertEx(params?.chainStakeViewer, () => 'chainStakeViewer is required'),
|
|
90
92
|
stakeIntentStateArchivist: assertEx(params?.stakeIntentStateArchivist, () => 'stakeIntentStateArchivist is required'),
|
|
91
93
|
} as XyoStakeIntentServiceParams
|
|
92
94
|
}
|
|
93
95
|
|
|
94
96
|
override async createHandler() {
|
|
97
|
+
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker)
|
|
98
|
+
this._chainStakeViewer = await this.locator.getInstance(ChainStakeViewerMoniker)
|
|
95
99
|
const head = await this.blockViewer.currentBlock()
|
|
96
100
|
if (isUndefined(head)) return
|
|
97
101
|
await this.recoverState(head[0]._hash)
|
|
@@ -118,7 +122,7 @@ export class XyoStakeIntentService extends BaseService<XyoStakeIntentServicePara
|
|
|
118
122
|
getRequiredMinimumStakeForIntent(intent: Intent): bigint {
|
|
119
123
|
switch (intent) {
|
|
120
124
|
case 'producer': {
|
|
121
|
-
const { minStake } = this.params.config.producer
|
|
125
|
+
const { minStake } = this.params.context.config.producer
|
|
122
126
|
return BigInt(minStake)
|
|
123
127
|
}
|
|
124
128
|
}
|