@xyo-network/chain-services 1.5.29 → 1.5.30
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/index.mjs +252 -384
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/types/AccountBalance/XyoChainAccountBalanceService.d.ts +8 -1
- package/dist/types/AccountBalance/XyoChainAccountBalanceService.d.ts.map +1 -1
- package/dist/types/AccountBalance/accountBalanceServiceFromArchivist.d.ts.map +1 -1
- package/dist/types/BaseService.d.ts +2 -1
- package/dist/types/BaseService.d.ts.map +1 -1
- package/dist/types/BlockProducer/XyoBlockProducer.d.ts +4 -4
- package/dist/types/BlockProducer/XyoBlockProducer.d.ts.map +1 -1
- package/dist/types/{XyoChainBlockNumberIterator.d.ts → ChainBlockNumberIteration/ChainBlockNumberIterationService.d.ts} +4 -10
- package/dist/types/ChainBlockNumberIteration/ChainBlockNumberIterationService.d.ts.map +1 -0
- package/dist/types/ChainBlockNumberIteration/index.d.ts +3 -0
- package/dist/types/ChainBlockNumberIteration/index.d.ts.map +1 -0
- package/dist/types/ChainBlockNumberIteration/model/BlockNumberIteration.d.ts +7 -0
- package/dist/types/ChainBlockNumberIteration/model/BlockNumberIteration.d.ts.map +1 -0
- package/dist/types/ChainBlockNumberIteration/model/index.d.ts +2 -0
- package/dist/types/ChainBlockNumberIteration/model/index.d.ts.map +1 -0
- package/dist/types/ChainIndexService.d.ts +2 -2
- package/dist/types/ChainIndexService.d.ts.map +1 -1
- package/dist/types/PendingTransactions/PendingTransactions.d.ts +14 -4
- package/dist/types/PendingTransactions/PendingTransactions.d.ts.map +1 -1
- package/dist/types/PendingTransactions/bundledPayloadToHydratedTransaction.d.ts +4 -0
- package/dist/types/PendingTransactions/bundledPayloadToHydratedTransaction.d.ts.map +1 -0
- package/dist/types/PendingTransactions/hydratedTransactionToPayloadBundle.d.ts +5 -0
- package/dist/types/PendingTransactions/hydratedTransactionToPayloadBundle.d.ts.map +1 -0
- package/dist/types/StakeIntent/XyoStakeIntentService.d.ts.map +1 -1
- package/dist/types/Staker/Evm/Evm.d.ts +5 -8
- package/dist/types/Staker/Evm/Evm.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +38 -38
- package/src/AccountBalance/XyoChainAccountBalanceService.ts +36 -7
- package/src/AccountBalance/accountBalanceServiceFromArchivist.ts +1 -0
- package/src/BaseService.ts +2 -1
- package/src/BlockProducer/XyoBlockProducer.ts +6 -6
- package/src/{XyoChainBlockNumberIterator.ts → ChainBlockNumberIteration/ChainBlockNumberIterationService.ts} +14 -28
- package/src/ChainBlockNumberIteration/index.ts +2 -0
- package/src/ChainBlockNumberIteration/model/BlockNumberIteration.ts +7 -0
- package/src/ChainBlockNumberIteration/model/index.ts +1 -0
- package/src/ChainIndexService.ts +2 -2
- package/src/PendingTransactions/PendingTransactions.ts +70 -54
- package/src/PendingTransactions/bundledPayloadToHydratedTransaction.ts +14 -0
- package/src/PendingTransactions/hydratedTransactionToPayloadBundle.ts +23 -0
- package/src/StakeIntent/XyoStakeIntentService.ts +3 -2
- package/src/Staker/Evm/Evm.ts +34 -39
- package/src/index.ts +1 -2
- package/dist/types/BaseEthProvider.d.ts +0 -56
- package/dist/types/BaseEthProvider.d.ts.map +0 -1
- package/dist/types/XyoChainBlockNumberIterator.d.ts.map +0 -1
- package/src/BaseEthProvider.ts +0 -219
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseService.d.ts","sourceRoot":"","sources":["../../src/BaseService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EACV,4BAA4B,EAAE,iBAAiB,EAAE,OAAO,EACzD,MAAM,2BAA2B,CAAA;AAGlC,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClD;AAED,qBAAa,WAAW,CAAC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,CAAE,SAAQ,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseService.d.ts","sourceRoot":"","sources":["../../src/BaseService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EACV,4BAA4B,EAAE,iBAAiB,EAAE,OAAO,EACzD,MAAM,2BAA2B,CAAA;AAGlC,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClD;AAED,qBAAa,WAAW,CAAC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,UAAU,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IACzK,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAc;IAE/C,MAAM,KAAK,UAAU,4BAEpB;IAED,IAAI,IAAI,WAEP;WAEY,MAAM,CAAC,QAAQ,SAAS,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,SAAS,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAC/G,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAChC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GACvB,OAAO,CAAC,QAAQ,CAAC;IAOpB,MAAM,CAAC,aAAa,CAAC,QAAQ,SAAS,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,SAAS,iBAAiB,EAAE,MAAM,EAAE,OAAO;IAO9G,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC;IAIjC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAI/B,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAGnE;AAED,8BAAsB,sBAAsB,CAC1C,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAC3E,SAAQ,WAAW,CAAC,OAAO,CAAC;CAE7B;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,CAAE,SAAQ,OAAO;IACpF,KAAI,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC3B,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;CAC7F;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,MAC1D,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,UAItD"}
|
|
@@ -2,7 +2,7 @@ import { Address } from '@xylabs/hex';
|
|
|
2
2
|
import { ArchivistInstance } from '@xyo-network/archivist-model';
|
|
3
3
|
import { BlockRewardDiviner } from '@xyo-network/chain-modules';
|
|
4
4
|
import { WithStorageMeta } from '@xyo-network/payload-model';
|
|
5
|
-
import { AccountBalanceService, BlockBoundWitness,
|
|
5
|
+
import { AccountBalanceService, BlockBoundWitness, BlockProducerService, ChainStakeIntent, HydratedBlock, PendingTransactionsService, StakeIntentService, Transfer } from '@xyo-network/xl1-protocol';
|
|
6
6
|
import { BaseService } from '../BaseService.ts';
|
|
7
7
|
import { XyoValidatorParams } from '../ChainValidator/index.ts';
|
|
8
8
|
/**
|
|
@@ -18,10 +18,10 @@ export declare const XYO_PRODUCER_RESTAKE_WINDOW = 500n;
|
|
|
18
18
|
export interface XyoBlockProducerParams extends XyoValidatorParams {
|
|
19
19
|
balanceService: AccountBalanceService;
|
|
20
20
|
pendingTransactionsService: PendingTransactionsService;
|
|
21
|
-
|
|
21
|
+
rejectedTransactionsArchivist: ArchivistInstance;
|
|
22
22
|
rewardAddress: Address;
|
|
23
23
|
}
|
|
24
|
-
export declare class XyoBlockProducer extends BaseService<XyoBlockProducerParams> implements
|
|
24
|
+
export declare class XyoBlockProducer extends BaseService<XyoBlockProducerParams> implements BlockProducerService {
|
|
25
25
|
protected _blockRewardDiviner: BlockRewardDiviner | undefined;
|
|
26
26
|
static get DefaultBlockSize(): number;
|
|
27
27
|
get address(): Lowercase<string>;
|
|
@@ -31,7 +31,7 @@ export declare class XyoBlockProducer extends BaseService<XyoBlockProducerParams
|
|
|
31
31
|
protected get chainInfo(): import("@xyo-network/xl1-protocol").ChainInformation;
|
|
32
32
|
protected get electionService(): import("@xyo-network/xl1-protocol").ElectionService;
|
|
33
33
|
protected get pendingTransactionsService(): PendingTransactionsService;
|
|
34
|
-
protected get
|
|
34
|
+
protected get rejectedTransactionsArchivist(): ArchivistInstance<import("@xylabs/base").BaseParamsFields & {
|
|
35
35
|
account?: import("@xyo-network/account-model").AccountInstance | "random";
|
|
36
36
|
addToResolvers?: boolean;
|
|
37
37
|
additionalSigners?: import("@xyo-network/account-model").AccountInstance[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoBlockProducer.d.ts","sourceRoot":"","sources":["../../../src/BlockProducer/XyoBlockProducer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EACR,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EACL,qBAAqB,EACqB,iBAAiB,EAAkC,
|
|
1
|
+
{"version":3,"file":"XyoBlockProducer.d.ts","sourceRoot":"","sources":["../../../src/BlockProducer/XyoBlockProducer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EACR,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EACL,qBAAqB,EACqB,iBAAiB,EAAkC,oBAAoB,EAAE,gBAAgB,EACnI,aAAa,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,QAAQ,EACxE,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAG/D;;GAEG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAA;AAKpC,eAAO,MAAM,6BAA6B,QAAS,CAAA;AAEnD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,OAAO,CAAA;AAE/C,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,cAAc,EAAE,qBAAqB,CAAA;IACrC,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,6BAA6B,EAAE,iBAAiB,CAAA;IAChD,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,qBACa,gBAAiB,SAAQ,WAAW,CAAC,sBAAsB,CAAE,YAAW,oBAAoB;IACvG,SAAS,CAAC,mBAAmB,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAE7D,MAAM,KAAK,gBAAgB,IAAI,MAAM,CAEpC;IAED,IAAI,OAAO,sBAEV;IAED,SAAS,KAAK,OAAO,yDAEpB;IAED,SAAS,KAAK,cAAc,0BAE3B;IAED,SAAS,KAAK,cAAc,0HAE3B;IAED,SAAS,KAAK,SAAS,yDAEtB;IAED,SAAS,KAAK,eAAe,wDAE5B;IAED,SAAS,KAAK,0BAA0B,+BAEvC;IAED,SAAS,KAAK,6BAA6B;;;;;;;;wPAE1C;IAED,SAAS,KAAK,aAAa,IAAI,OAAO,CAErC;IAED,SAAS,KAAK,aAAa,2DAE1B;IAED,SAAS,KAAK,kBAAkB,IAAI,kBAAkB,CAErD;IAED,SAAS,KAAK,0BAA0B,6EAEvC;IAEK,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;cAWxE,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAoBpF;;;;OAIG;cACa,wBAAwB,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;cAwBzG,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,UAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAoD9I"}
|
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
import type { BaseParams } from '@xylabs/base';
|
|
2
|
-
import { BaseEmitter } from '@xylabs/events';
|
|
3
1
|
import type { ArchivistInstance } from '@xyo-network/archivist-model';
|
|
4
2
|
import type { BlockBoundWitness, ChainIdentification, ChainIteratorEventData, EventingChainBlockNumberIterator, XyoChainIteratorParams } from '@xyo-network/xl1-protocol';
|
|
5
3
|
import { LRUCache } from 'lru-cache';
|
|
6
|
-
|
|
4
|
+
import { BaseService } from '../BaseService.ts';
|
|
5
|
+
export declare class ChainBlockNumberIterationService extends BaseService<XyoChainIteratorParams, ChainIteratorEventData> implements EventingChainBlockNumberIterator {
|
|
7
6
|
protected _blocksByBlockNumber: LRUCache<number, BlockBoundWitness, unknown>;
|
|
8
|
-
|
|
9
|
-
protected _chainInformation: ChainIdentification;
|
|
10
|
-
protected _head: BlockBoundWitness;
|
|
11
|
-
protected constructor(params: XyoChainIteratorParams);
|
|
12
|
-
get archivist(): ArchivistInstance;
|
|
7
|
+
get chainArchivist(): ArchivistInstance;
|
|
13
8
|
get chainIdentification(): ChainIdentification;
|
|
14
|
-
static create(params: XyoChainIteratorParams): Promise<XyoChainBlockNumberIterator>;
|
|
15
9
|
get(block: number): Promise<BlockBoundWitness>;
|
|
16
10
|
head(): Promise<BlockBoundWitness>;
|
|
17
11
|
next(block: number): Promise<BlockBoundWitness | undefined>;
|
|
18
12
|
previous(block?: number | undefined, count?: number): Promise<BlockBoundWitness[]>;
|
|
19
13
|
updateHead(head: BlockBoundWitness): Promise<void>;
|
|
20
14
|
}
|
|
21
|
-
//# sourceMappingURL=
|
|
15
|
+
//# sourceMappingURL=ChainBlockNumberIterationService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChainBlockNumberIterationService.d.ts","sourceRoot":"","sources":["../../../src/ChainBlockNumberIteration/ChainBlockNumberIterationService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAErE,OAAO,KAAK,EACV,iBAAiB,EAAE,mBAAmB,EACtC,sBAAsB,EACtB,gCAAgC,EAChC,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAKlC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,qBAAa,gCAAiC,SAAQ,WAAW,CAAC,sBAAsB,EAAE,sBAAsB,CAAE,YAAW,gCAAgC;IAC3J,SAAS,CAAC,oBAAoB,+CAA2D;IAEzF,IAAI,cAAc,IAAI,iBAAiB,CAAgD;IAEvF,IAAI,mBAAmB,IAAI,mBAAmB,CAAqD;IAE7F,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyB9C,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAIlC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAQ3D,QAAQ,CAAC,KAAK,GAAE,MAAM,GAAG,SAAqB,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAkBhG,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAMzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ChainBlockNumberIteration/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA;AACrD,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/promise';
|
|
2
|
+
import type { BlockBoundWitness, HydratedTransaction } from '@xyo-network/xl1-protocol';
|
|
3
|
+
export interface BlockNumberIteration {
|
|
4
|
+
validatePendingBlock(block: BlockBoundWitness): Promisable<Error[]>;
|
|
5
|
+
validatePendingTransaction(tx: HydratedTransaction): Promise<boolean>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=BlockNumberIteration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlockNumberIteration.d.ts","sourceRoot":"","sources":["../../../../src/ChainBlockNumberIteration/model/BlockNumberIteration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEvF,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;IACnE,0BAA0B,CAAC,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACtE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChainBlockNumberIteration/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA"}
|
|
@@ -3,14 +3,14 @@ import { Promisable } from '@xylabs/promise';
|
|
|
3
3
|
import { ArchivistInstance } from '@xyo-network/archivist-model';
|
|
4
4
|
import { BaseServiceParams, HydratedBlock, Service } from '@xyo-network/xl1-protocol';
|
|
5
5
|
import { BaseService } from './BaseService.ts';
|
|
6
|
-
export interface
|
|
6
|
+
export interface ChainIndexServiceParams extends BaseServiceParams {
|
|
7
7
|
archivist?: ArchivistInstance;
|
|
8
8
|
}
|
|
9
9
|
export interface ChainIndexService extends Service {
|
|
10
10
|
get(index: bigint): Promisable<HydratedBlock | undefined>;
|
|
11
11
|
updateHead(head: Hash | null): Promisable<void>;
|
|
12
12
|
}
|
|
13
|
-
export declare class XyoChainIndexService extends BaseService<
|
|
13
|
+
export declare class XyoChainIndexService extends BaseService<ChainIndexServiceParams> implements ChainIndexService {
|
|
14
14
|
private _head;
|
|
15
15
|
private _internalArchivist;
|
|
16
16
|
protected get externalArchivist(): ArchivistInstance<import("@xylabs/base").BaseParamsFields & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChainIndexService.d.ts","sourceRoot":"","sources":["../../src/ChainIndexService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,iBAAiB,EAAE,aAAa,EAAE,OAAO,EAC1C,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,WAAW,EAAoB,MAAM,kBAAkB,CAAA;AAEhE,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"ChainIndexService.d.ts","sourceRoot":"","sources":["../../src/ChainIndexService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,iBAAiB,EAAE,aAAa,EAAE,OAAO,EAC1C,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,WAAW,EAAoB,MAAM,kBAAkB,CAAA;AAEhE,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,SAAS,CAAC,EAAE,iBAAiB,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAkB,SAAQ,OAAO;IAChD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC,CAAA;IACzD,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;CAChD;AAED,qBACa,oBAAqB,SAAQ,WAAW,CAAC,uBAAuB,CAAE,YAAW,iBAAiB;IACzG,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,kBAAkB,CAA+B;IAEzD,SAAS,KAAK,iBAAiB;;;;;;;;oQAE9B;IAED,SAAS,KAAK,iBAAiB;;;;;;;;wPAE9B;IAEc,aAAa;IAI5B,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,aAAa,GAAG,SAAS,CAAC;IAK/D,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;CAGjD"}
|
|
@@ -6,7 +6,7 @@ export interface XyoPendingTransactionsServiceParams extends BaseServiceParams {
|
|
|
6
6
|
chainArchivist?: ArchivistInstance;
|
|
7
7
|
chainIdentification?: ChainIdentification;
|
|
8
8
|
pendingBundledTransactionsArchivist?: ArchivistInstance;
|
|
9
|
-
|
|
9
|
+
rejectedTransactionsArchivist?: ArchivistInstance;
|
|
10
10
|
}
|
|
11
11
|
export declare class XyoPendingTransactionsService extends BaseService<XyoPendingTransactionsServiceParams> implements PendingTransactionsService {
|
|
12
12
|
private static readonly MutexPriority;
|
|
@@ -24,6 +24,11 @@ export declare class XyoPendingTransactionsService extends BaseService<XyoPendin
|
|
|
24
24
|
* The last count of total pending transactions
|
|
25
25
|
*/
|
|
26
26
|
private _pendingTransactionsCount;
|
|
27
|
+
/**
|
|
28
|
+
* A set of transaction hashes that are pending removal from the
|
|
29
|
+
* curated pending transactions archivist. This is used to track
|
|
30
|
+
* which transactions need to be removed from the archivist.
|
|
31
|
+
*/
|
|
27
32
|
private _removablePendingTransactionHashes;
|
|
28
33
|
/**
|
|
29
34
|
* A mutex to ensure that the curated pending transactions archivist is
|
|
@@ -35,14 +40,19 @@ export declare class XyoPendingTransactionsService extends BaseService<XyoPendin
|
|
|
35
40
|
private get pendingBundledTransactionsArchivist();
|
|
36
41
|
private get pendingBundledTransactionsLocalArchivist();
|
|
37
42
|
private get pendingTransactionsCount();
|
|
38
|
-
private get
|
|
43
|
+
private get rejectedTransactionsArchivist();
|
|
39
44
|
createHandler(): Promise<void>;
|
|
40
45
|
getPendingTransactions(head: Hash, limit: number): Promise<HydratedTransactionWithStorageMeta[]>;
|
|
41
46
|
private countPendingTransactions;
|
|
42
47
|
private filterAlreadyFinalizedTransactions;
|
|
43
48
|
private insertNewTransactions;
|
|
49
|
+
/**
|
|
50
|
+
* Marks any included transactions in the provided payloads for removal preventing them
|
|
51
|
+
* from being included in the curated pending transactions archivist and from being offered
|
|
52
|
+
* during the next retrieval of pending transactions.
|
|
53
|
+
* @param payloads An array of payloads that may contain transactions.
|
|
54
|
+
*/
|
|
55
|
+
private markAnyIncludedTransactionsForRemoval;
|
|
44
56
|
private removeBundledTransactions;
|
|
45
|
-
private removeFinalizedTransactions;
|
|
46
|
-
private removeRejectedBundledTransactions;
|
|
47
57
|
}
|
|
48
58
|
//# sourceMappingURL=PendingTransactions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PendingTransactions.d.ts","sourceRoot":"","sources":["../../../src/PendingTransactions/PendingTransactions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"PendingTransactions.d.ts","sourceRoot":"","sources":["../../../src/PendingTransactions/PendingTransactions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAOhE,OAAO,EAC6C,iBAAiB,EAAE,mBAAmB,EAAE,kCAAkC,EAClF,0BAA0B,EACrE,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AAIjE,MAAM,WAAW,mCAAoC,SAAQ,iBAAiB;IAC5E,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAClC,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,mCAAmC,CAAC,EAAE,iBAAiB,CAAA;IACvD,6BAA6B,CAAC,EAAE,iBAAiB,CAAA;CAClD;AAID,qBACa,6BAA8B,SAAQ,WAAW,CAAC,mCAAmC,CAAE,YAAW,0BAA0B;IACvI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAiB3B;IAEV;;;OAGG;IACH,OAAO,CAAC,8BAA8B,CAAc;IAEpD;;;OAGG;IACH,OAAO,CAAC,2CAA2C,CAA6B;IAEhF;;OAEG;IACH,OAAO,CAAC,yBAAyB,CAAY;IAE7C;;;;OAIG;IACH,OAAO,CAAC,kCAAkC,CAAuB;IAEjE;;;OAGG;IACH,OAAO,CAAC,+CAA+C,CAAc;IAErE,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,mBAAmB,GAE9B;IAED,OAAO,KAAK,mCAAmC,GAE9C;IAED,OAAO,KAAK,wCAAwC,GAEnD;IAED,OAAO,KAAK,wBAAwB,GAGnC;IAED,OAAO,KAAK,6BAA6B,GAExC;IAEc,aAAa;IA+BtB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kCAAkC,EAAE,CAAC;YA2DxF,wBAAwB;YAQxB,kCAAkC;YAUlC,qBAAqB;IA2BnC;;;;;OAKG;IACH,OAAO,CAAC,qCAAqC;YAO/B,yBAAyB;CAexC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PayloadBundle, WithStorageMeta } from '@xyo-network/payload-model';
|
|
2
|
+
import type { HydratedTransactionWithStorageMeta } from '@xyo-network/xl1-protocol';
|
|
3
|
+
export declare const bundledPayloadToHydratedTransaction: (payload: WithStorageMeta<PayloadBundle>) => Promise<HydratedTransactionWithStorageMeta | undefined>;
|
|
4
|
+
//# sourceMappingURL=bundledPayloadToHydratedTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundledPayloadToHydratedTransaction.d.ts","sourceRoot":"","sources":["../../../src/PendingTransactions/bundledPayloadToHydratedTransaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAChF,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,2BAA2B,CAAA;AAGnF,eAAO,MAAM,mCAAmC,GAC9C,SAAS,eAAe,CAAC,aAAa,CAAC,KACtC,OAAO,CAAC,kCAAkC,GAAG,SAAS,CAMxD,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PayloadBundle } from '@xyo-network/payload-model';
|
|
2
|
+
import type { HydratedTransaction, HydratedTransactionWithStorageMeta } from '@xyo-network/xl1-protocol';
|
|
3
|
+
export declare const hydratedTransactionToPayloadBundle: (transaction: HydratedTransaction) => Promise<PayloadBundle>;
|
|
4
|
+
export declare const hydratedTransactionWithHashStorageMetaToPayloadBundle: (transaction: HydratedTransactionWithStorageMeta) => PayloadBundle;
|
|
5
|
+
//# sourceMappingURL=hydratedTransactionToPayloadBundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydratedTransactionToPayloadBundle.d.ts","sourceRoot":"","sources":["../../../src/PendingTransactions/hydratedTransactionToPayloadBundle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,kCAAkC,EAAE,MAAM,2BAA2B,CAAA;AAGxG,eAAO,MAAM,kCAAkC,GAAU,aAAa,mBAAmB,KAAG,OAAO,CAAC,aAAa,CAGhH,CAAA;AAED,eAAO,MAAM,qDAAqD,GAAI,aAAa,kCAAkC,KAAG,aAGvH,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoStakeIntentService.d.ts","sourceRoot":"","sources":["../../../src/StakeIntent/XyoStakeIntentService.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EAAa,IAAI,EACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,iBAAiB,EAAwB,MAAM,8BAA8B,CAAA;AAKtF,OAAO,EAEc,WAAW,EAE/B,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,OAAO,EAAmB,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,EACV,iBAAiB,EAAE,gCAAgC,EAAE,MAAM,EAC5D,MAAM,2BAA2B,CAAA;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"XyoStakeIntentService.d.ts","sourceRoot":"","sources":["../../../src/StakeIntent/XyoStakeIntentService.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EAAa,IAAI,EACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,iBAAiB,EAAwB,MAAM,8BAA8B,CAAA;AAKtF,OAAO,EAEc,WAAW,EAE/B,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,OAAO,EAAmB,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,EACV,iBAAiB,EAAE,gCAAgC,EAAE,MAAM,EAC5D,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAGmF,gBAAgB,EAExG,kBAAkB,EACnB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAA;AAEjE,MAAM,WAAW,2BAA4B,SAAQ,iBAAiB;IACpE,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAClC,aAAa,CAAC,EAAE,gCAAgC,CAAA;IAChD,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,yBAAyB,CAAC,EAAE,iBAAiB,CAAA;CAC9C;AAWD,qBACa,qBAAsB,SAAQ,WAAW,CAAC,2BAA2B,CAAE,YAAW,kBAAkB;IAE/G,SAAS,CAAC,qBAAqB,EAAE,IAAI,GAAG,SAAS,CAAY;IAQ7D,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAoB;IAC9D,SAAS,CAAC,WAAW,+CAAkE;IACvF,SAAS,CAAC,YAAY,QAAc;gBAExB,MAAM,EAAE,2BAA2B;IAO/C,SAAS,KAAK,cAAc;;;;;;;;mNAE3B;IAED,SAAS,KAAK,aAAa,qCAE1B;IAED,SAAS,KAAK,gBAAgB,qBAE7B;IAED,SAAS,KAAK,yBAAyB;;;;;;;;mNAEtC;IAEc,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvC,0BAA0B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAO7G,6BAA6B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAUhF,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAK3E,kBAAkB;YAkClB,YAAY;YAQZ,YAAY;YA+BZ,WAAW;CAgC1B"}
|
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
import { Base } from '@xylabs/base';
|
|
2
1
|
import type { Address } from '@xylabs/hex';
|
|
3
|
-
import type { Promisable } from '@xylabs/promise';
|
|
4
2
|
import type { StakedXyoChain } from '@xyo-network/typechain';
|
|
5
3
|
import type { BaseServiceParams, ChainService } from '@xyo-network/xl1-protocol';
|
|
6
4
|
import type { ContractRunner } from 'ethers/providers';
|
|
7
|
-
|
|
5
|
+
import { BaseService } from '../../BaseService.ts';
|
|
6
|
+
export type EvmChainServiceParams = BaseServiceParams<{
|
|
8
7
|
contract: StakedXyoChain;
|
|
9
8
|
id: Address;
|
|
10
9
|
runner: ContractRunner;
|
|
11
|
-
}
|
|
10
|
+
}>;
|
|
12
11
|
/**
|
|
13
12
|
* A class that represents a chain stake as backed by an EVM smart contract
|
|
14
13
|
*/
|
|
15
|
-
export declare class EvmChainService extends
|
|
16
|
-
|
|
17
|
-
protected constructor(params: EvmChainServiceParams);
|
|
14
|
+
export declare class EvmChainService extends BaseService<EvmChainServiceParams> implements ChainService {
|
|
15
|
+
get contract(): StakedXyoChain;
|
|
18
16
|
get id(): Address;
|
|
19
17
|
get runner(): ContractRunner;
|
|
20
|
-
static create({ id, runner, logger, traceProvider, meterProvider, }: Omit<EvmChainServiceParams, 'contract'>): Promisable<EvmChainService>;
|
|
21
18
|
active(): Promise<bigint>;
|
|
22
19
|
activeByAddressStaked(address: string): Promise<bigint>;
|
|
23
20
|
activeByStaker(address: string): Promise<bigint>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Evm.d.ts","sourceRoot":"","sources":["../../../../src/Staker/Evm/Evm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Evm.d.ts","sourceRoot":"","sources":["../../../../src/Staker/Evm/Evm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAG1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAEhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;IACpD,QAAQ,EAAE,cAAc,CAAA;IACxB,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,cAAc,CAAA;CACvB,CAAC,CAAA;AAEF;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW,CAAC,qBAAqB,CAAE,YAAW,YAAY;IAC7F,IAAI,QAAQ,mBAQX;IAED,IAAI,EAAE,IAAI,OAAO,CAEhB;IAED,IAAI,MAAM,IAAI,cAAc,CAE3B;IAEK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAIzB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM1D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3C,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM7C,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGzD"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
export * from './AccountBalance/index.ts';
|
|
2
|
-
export * from './BaseEthProvider.ts';
|
|
3
2
|
export * from './BaseService.ts';
|
|
4
3
|
export * from './BlockProducer/index.ts';
|
|
5
4
|
export * from './BlockReward/index.ts';
|
|
5
|
+
export * from './ChainBlockNumberIteration/index.ts';
|
|
6
6
|
export * from './ChainValidator/index.ts';
|
|
7
7
|
export * from './Election/index.ts';
|
|
8
8
|
export * from './PendingTransactions/index.ts';
|
|
9
9
|
export * from './StakeIntent/index.ts';
|
|
10
10
|
export * from './Staker/index.ts';
|
|
11
|
-
export * from './XyoChainBlockNumberIterator.ts';
|
|
12
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sCAAsC,CAAA;AACpD,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA"}
|
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.5.
|
|
4
|
+
"version": "1.5.30",
|
|
5
5
|
"description": "XYO Layer One SDK Services",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -35,52 +35,52 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@opentelemetry/api": "^1.9.0",
|
|
38
|
-
"@xylabs/array": "^4.11.
|
|
39
|
-
"@xylabs/assert": "^4.11.
|
|
40
|
-
"@xylabs/base": "^4.11.
|
|
41
|
-
"@xylabs/decimal-precision": "^4.11.
|
|
42
|
-
"@xylabs/events": "^4.11.
|
|
43
|
-
"@xylabs/exists": "^4.11.
|
|
44
|
-
"@xylabs/forget": "^4.11.
|
|
45
|
-
"@xylabs/hex": "^4.11.
|
|
46
|
-
"@xylabs/promise": "^4.11.
|
|
47
|
-
"@xylabs/telemetry": "^4.11.
|
|
48
|
-
"@xylabs/typeof": "^4.11.
|
|
49
|
-
"@xyo-network/account-model": "^3.18.
|
|
50
|
-
"@xyo-network/archivist-memory": "^3.18.
|
|
51
|
-
"@xyo-network/archivist-model": "^3.18.
|
|
52
|
-
"@xyo-network/boundwitness-model": "^3.18.
|
|
53
|
-
"@xyo-network/boundwitness-validator": "^3.18.
|
|
54
|
-
"@xyo-network/boundwitness-wrapper": "^3.18.
|
|
55
|
-
"@xyo-network/chain-analyze": "^1.5.
|
|
56
|
-
"@xyo-network/chain-ethereum": "^1.5.
|
|
57
|
-
"@xyo-network/chain-modules": "^1.5.
|
|
58
|
-
"@xyo-network/chain-protocol": "^1.5.
|
|
59
|
-
"@xyo-network/chain-telemetry": "^1.5.
|
|
60
|
-
"@xyo-network/chain-utils": "^1.5.
|
|
61
|
-
"@xyo-network/chain-validation": "^1.5.
|
|
62
|
-
"@xyo-network/chain-wrappers": "^1.5.
|
|
63
|
-
"@xyo-network/payload-builder": "^3.18.
|
|
64
|
-
"@xyo-network/payload-model": "^3.18.
|
|
38
|
+
"@xylabs/array": "^4.11.20",
|
|
39
|
+
"@xylabs/assert": "^4.11.20",
|
|
40
|
+
"@xylabs/base": "^4.11.20",
|
|
41
|
+
"@xylabs/decimal-precision": "^4.11.20",
|
|
42
|
+
"@xylabs/events": "^4.11.20",
|
|
43
|
+
"@xylabs/exists": "^4.11.20",
|
|
44
|
+
"@xylabs/forget": "^4.11.20",
|
|
45
|
+
"@xylabs/hex": "^4.11.20",
|
|
46
|
+
"@xylabs/promise": "^4.11.20",
|
|
47
|
+
"@xylabs/telemetry": "^4.11.20",
|
|
48
|
+
"@xylabs/typeof": "^4.11.20",
|
|
49
|
+
"@xyo-network/account-model": "^3.18.8",
|
|
50
|
+
"@xyo-network/archivist-memory": "^3.18.8",
|
|
51
|
+
"@xyo-network/archivist-model": "^3.18.8",
|
|
52
|
+
"@xyo-network/boundwitness-model": "^3.18.8",
|
|
53
|
+
"@xyo-network/boundwitness-validator": "^3.18.8",
|
|
54
|
+
"@xyo-network/boundwitness-wrapper": "^3.18.8",
|
|
55
|
+
"@xyo-network/chain-analyze": "^1.5.30",
|
|
56
|
+
"@xyo-network/chain-ethereum": "^1.5.30",
|
|
57
|
+
"@xyo-network/chain-modules": "^1.5.30",
|
|
58
|
+
"@xyo-network/chain-protocol": "^1.5.30",
|
|
59
|
+
"@xyo-network/chain-telemetry": "^1.5.30",
|
|
60
|
+
"@xyo-network/chain-utils": "^1.5.30",
|
|
61
|
+
"@xyo-network/chain-validation": "^1.5.30",
|
|
62
|
+
"@xyo-network/chain-wrappers": "^1.5.30",
|
|
63
|
+
"@xyo-network/payload-builder": "^3.18.8",
|
|
64
|
+
"@xyo-network/payload-model": "^3.18.8",
|
|
65
65
|
"@xyo-network/typechain": "^3.5.4",
|
|
66
|
-
"@xyo-network/xl1-protocol": "^1.4.
|
|
67
|
-
"@xyo-network/xl1-protocol-sdk": "^1.5.
|
|
66
|
+
"@xyo-network/xl1-protocol": "^1.4.25",
|
|
67
|
+
"@xyo-network/xl1-protocol-sdk": "^1.5.30",
|
|
68
68
|
"async-mutex": "^0.5.0",
|
|
69
69
|
"ethers": "6.14.3",
|
|
70
70
|
"lru-cache": "^11.1.0",
|
|
71
71
|
"web3-types": "^1.10.0"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@types/node": "^
|
|
75
|
-
"@xylabs/delay": "^4.11.
|
|
74
|
+
"@types/node": "^24.0.1",
|
|
75
|
+
"@xylabs/delay": "^4.11.20",
|
|
76
76
|
"@xylabs/ts-scripts-yarn3": "^6.5.8",
|
|
77
77
|
"@xylabs/tsconfig": "^6.5.8",
|
|
78
|
-
"@xylabs/vitest-extended": "^4.11.
|
|
79
|
-
"@xyo-network/account": "^3.18.
|
|
80
|
-
"@xyo-network/account-model": "^3.18.
|
|
81
|
-
"@xyo-network/chain-validation": "^1.5.
|
|
82
|
-
"@xyo-network/wallet": "^3.18.
|
|
83
|
-
"knip": "^5.
|
|
78
|
+
"@xylabs/vitest-extended": "^4.11.20",
|
|
79
|
+
"@xyo-network/account": "^3.18.8",
|
|
80
|
+
"@xyo-network/account-model": "^3.18.8",
|
|
81
|
+
"@xyo-network/chain-validation": "^1.5.30",
|
|
82
|
+
"@xyo-network/wallet": "^3.18.8",
|
|
83
|
+
"knip": "^5.61.0",
|
|
84
84
|
"typescript": "^5.8.3",
|
|
85
85
|
"vitest": "^3.2.3",
|
|
86
86
|
"vitest-mock-extended": "^3.1.0"
|
|
@@ -4,9 +4,10 @@ import {
|
|
|
4
4
|
toHex,
|
|
5
5
|
} from '@xylabs/hex'
|
|
6
6
|
import {
|
|
7
|
-
analyzeChain, BalanceAnalyzer, isChainSummaryBalances,
|
|
7
|
+
analyzeChain, BalanceAnalyzer, ChainSummaryBalances, ChainSummaryBalancesSchema, isChainSummaryBalances,
|
|
8
8
|
} from '@xyo-network/chain-analyze'
|
|
9
9
|
import { SignedBigInt, toPositiveBigInt } from '@xyo-network/chain-protocol'
|
|
10
|
+
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
10
11
|
import {
|
|
11
12
|
AccountBalanceService, BaseServiceParams,
|
|
12
13
|
ChainServiceCollection,
|
|
@@ -19,7 +20,15 @@ export type ChainAccountBalanceServiceParams = BaseServiceParams<Partial<Pick<Ch
|
|
|
19
20
|
@creatableService()
|
|
20
21
|
export class XyoChainAccountBalanceService extends BaseService<ChainAccountBalanceServiceParams> implements AccountBalanceService {
|
|
21
22
|
private _balances: Partial<Record<Address, SignedBigInt>> = {}
|
|
22
|
-
|
|
23
|
+
/**
|
|
24
|
+
* The most recent head that was indexed to
|
|
25
|
+
*/
|
|
26
|
+
private _firstBlock: Hash | null = null
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The oldest block that was indexed through
|
|
30
|
+
*/
|
|
31
|
+
private _lastBlock: Hash | null = null
|
|
23
32
|
|
|
24
33
|
protected get chainArchivist() {
|
|
25
34
|
return assertEx(this.params.chainArchivist, () => 'chainArchivist is required')
|
|
@@ -39,14 +48,34 @@ export class XyoChainAccountBalanceService extends BaseService<ChainAccountBalan
|
|
|
39
48
|
}
|
|
40
49
|
|
|
41
50
|
async sync(head: Hash): Promise<void> {
|
|
51
|
+
// Create starting balances from the current balances
|
|
52
|
+
const startingBalances = new PayloadBuilder<ChainSummaryBalances>({ schema: ChainSummaryBalancesSchema })
|
|
53
|
+
.fields({
|
|
54
|
+
balances: this._balances,
|
|
55
|
+
firstBlock: this._firstBlock,
|
|
56
|
+
lastBlock: this._lastBlock,
|
|
57
|
+
})
|
|
58
|
+
.build()
|
|
59
|
+
|
|
60
|
+
// Calculate the balances for each address through the last indexed block based on the current balances
|
|
42
61
|
const analysis = await analyzeChain(
|
|
43
62
|
this.chainArchivist,
|
|
44
|
-
[new BalanceAnalyzer()],
|
|
63
|
+
[new BalanceAnalyzer(undefined, undefined, startingBalances)],
|
|
45
64
|
head,
|
|
46
|
-
this.
|
|
47
|
-
-1n,
|
|
48
|
-
this.tracer,
|
|
65
|
+
this._firstBlock,
|
|
49
66
|
)
|
|
50
|
-
|
|
67
|
+
// Find the balances for all addresses
|
|
68
|
+
const allAddressesBalances = analysis.find(isChainSummaryBalances)
|
|
69
|
+
|
|
70
|
+
// Return if no balances were found (nothing to index)
|
|
71
|
+
if (allAddressesBalances === undefined) return
|
|
72
|
+
|
|
73
|
+
// Merge to existing balances map
|
|
74
|
+
this._balances = { ...this._balances, ...allAddressesBalances.balances }
|
|
75
|
+
|
|
76
|
+
// Update first indexed block
|
|
77
|
+
this._firstBlock = allAddressesBalances.firstBlock
|
|
78
|
+
// Update last indexed block
|
|
79
|
+
if (this._lastBlock === null) this._lastBlock = allAddressesBalances.lastBlock
|
|
51
80
|
}
|
|
52
81
|
}
|
|
@@ -27,6 +27,7 @@ export const accountBalanceServiceFromArchivist = async (archivist: ArchivistIns
|
|
|
27
27
|
getBalances: (): Record<Address, Hex> => {
|
|
28
28
|
return Object.fromEntries(Object.entries(allAddressesBalances.balances).map(([key, value]) => ([key, isPositiveBigInt(value) ? value.positive : '0'])))
|
|
29
29
|
},
|
|
30
|
+
name: 'ArchivistAccountBalanceService',
|
|
30
31
|
async sync(head: Hash): Promise<void> {
|
|
31
32
|
const analysis = await analyzeChain(
|
|
32
33
|
archivist,
|
package/src/BaseService.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { EventData } from '@xylabs/events'
|
|
1
2
|
import { BaseEmitter } from '@xylabs/events'
|
|
2
3
|
import type { Promisable } from '@xylabs/promise'
|
|
3
4
|
import { span, spanAsync } from '@xylabs/telemetry'
|
|
@@ -10,7 +11,7 @@ declare global {
|
|
|
10
11
|
var xyoServiceSingletons: Record<string, unknown>
|
|
11
12
|
}
|
|
12
13
|
|
|
13
|
-
export class BaseService<TParams extends BaseServiceParams = BaseServiceParams> extends BaseEmitter<Partial<TParams
|
|
14
|
+
export class BaseService<TParams extends BaseServiceParams = BaseServiceParams, TEventData extends EventData = EventData> extends BaseEmitter<Partial<TParams>, TEventData> {
|
|
14
15
|
private static singletonInitMutex = new Mutex()
|
|
15
16
|
|
|
16
17
|
static get singletons() {
|
|
@@ -13,7 +13,7 @@ import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
|
13
13
|
import { WithStorageMeta } from '@xyo-network/payload-model'
|
|
14
14
|
import {
|
|
15
15
|
AccountBalanceService,
|
|
16
|
-
AllowedBlockPayload, asBlockBoundWitness, BlockBoundWitness, BlockNumber, BlockNumberSchema,
|
|
16
|
+
AllowedBlockPayload, asBlockBoundWitness, BlockBoundWitness, BlockNumber, BlockNumberSchema, BlockProducerService, ChainStakeIntent, ChainStakeIntentSchema,
|
|
17
17
|
HydratedBlock, PendingTransactionsService, StakeIntentService, Transfer,
|
|
18
18
|
} from '@xyo-network/xl1-protocol'
|
|
19
19
|
|
|
@@ -40,12 +40,12 @@ export const XYO_PRODUCER_RESTAKE_WINDOW = 500n
|
|
|
40
40
|
export interface XyoBlockProducerParams extends XyoValidatorParams {
|
|
41
41
|
balanceService: AccountBalanceService
|
|
42
42
|
pendingTransactionsService: PendingTransactionsService
|
|
43
|
-
|
|
43
|
+
rejectedTransactionsArchivist: ArchivistInstance
|
|
44
44
|
rewardAddress: Address
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
@creatableService()
|
|
48
|
-
export class XyoBlockProducer extends BaseService<XyoBlockProducerParams> implements
|
|
48
|
+
export class XyoBlockProducer extends BaseService<XyoBlockProducerParams> implements BlockProducerService {
|
|
49
49
|
protected _blockRewardDiviner: BlockRewardDiviner | undefined
|
|
50
50
|
|
|
51
51
|
static get DefaultBlockSize(): number {
|
|
@@ -80,8 +80,8 @@ export class XyoBlockProducer extends BaseService<XyoBlockProducerParams> implem
|
|
|
80
80
|
return assertEx(this.params.pendingTransactionsService, () => 'Missing pendingTransactionsService')
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
protected get
|
|
84
|
-
return assertEx(this.params.
|
|
83
|
+
protected get rejectedTransactionsArchivist() {
|
|
84
|
+
return assertEx(this.params.rejectedTransactionsArchivist, () => 'No rejected bundled transactions archivist')
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
protected get rewardAddress(): Address {
|
|
@@ -206,7 +206,7 @@ export class XyoBlockProducer extends BaseService<XyoBlockProducerParams> implem
|
|
|
206
206
|
if (errors.length > 0) {
|
|
207
207
|
this.logger?.warn(`Validation of produced block failed: ${errors.at(0)?.message}`)
|
|
208
208
|
const rejectedTransactions = block[1]
|
|
209
|
-
await this.
|
|
209
|
+
await this.rejectedTransactionsArchivist.insert(rejectedTransactions)
|
|
210
210
|
} else {
|
|
211
211
|
return block
|
|
212
212
|
}
|