@xyo-network/chain-services 1.14.1 → 1.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/neutral/AccountBalance/BaseAccountBalanceService.d.ts.map +1 -1
- package/dist/neutral/BaseService.d.ts +5 -3
- package/dist/neutral/BaseService.d.ts.map +1 -1
- package/dist/neutral/BlockProducer/BaseBlockProducerService.d.ts +5 -1
- package/dist/neutral/BlockProducer/BaseBlockProducerService.d.ts.map +1 -1
- package/dist/neutral/Bridge/BaseBridgeService.d.ts +15 -0
- package/dist/neutral/Bridge/BaseBridgeService.d.ts.map +1 -0
- package/dist/neutral/Bridge/index.d.ts +2 -0
- package/dist/neutral/Bridge/index.d.ts.map +1 -0
- package/dist/neutral/StepStake/BaseStepStakeService.d.ts +14 -0
- package/dist/neutral/StepStake/BaseStepStakeService.d.ts.map +1 -0
- package/dist/neutral/StepStake/index.d.ts +2 -0
- package/dist/neutral/StepStake/index.d.ts.map +1 -0
- package/dist/neutral/Time/BaseTimeSyncService.d.ts +22 -0
- package/dist/neutral/Time/BaseTimeSyncService.d.ts.map +1 -0
- package/dist/neutral/Time/index.d.ts +2 -0
- package/dist/neutral/Time/index.d.ts.map +1 -0
- package/dist/neutral/index.d.ts +3 -0
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +211 -51
- package/dist/neutral/index.mjs.map +1 -1
- package/package.json +11 -11
- package/src/AccountBalance/BaseAccountBalanceService.ts +11 -8
- package/src/BaseService.ts +8 -3
- package/src/BlockProducer/BaseBlockProducerService.ts +48 -19
- package/src/BlockProducer/spec/BaseBlockProducerService.spec.ts +5 -0
- package/src/Bridge/BaseBridgeService.ts +35 -0
- package/src/Bridge/index.ts +1 -0
- package/src/StepStake/BaseStepStakeService.ts +26 -0
- package/src/StepStake/index.ts +1 -0
- package/src/Time/BaseTimeSyncService.ts +79 -0
- package/src/Time/index.ts +1 -0
- package/src/index.ts +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAccountBalanceService.d.ts","sourceRoot":"","sources":["../../../src/AccountBalance/BaseAccountBalanceService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"BaseAccountBalanceService.d.ts","sourceRoot":"","sources":["../../../src/AccountBalance/BaseAccountBalanceService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EACL,uBAAuB,EACvB,OAAO,EAAE,iBAAiB,EAC3B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,mBAAmB,EAEpB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,WAAW,+BAAgC,SAAQ,iBAAiB;IACxE,cAAc,EAAE,aAAa,CAAA;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAA;CAChE;AAED,qBACa,yBAA0B,SAAQ,WAAW,CAAC,+BAA+B,CAAE,YAAW,uBAAuB;IACtH,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;CAa3F"}
|
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
import { AbstractCreatable } from '@xylabs/creatable';
|
|
2
2
|
import type { EventData } from '@xylabs/events';
|
|
3
|
+
import { Hash } from '@xylabs/hex';
|
|
3
4
|
import type { Promisable } from '@xylabs/promise';
|
|
4
|
-
import type {
|
|
5
|
+
import type { ServiceInterface } from '@xyo-network/xl1-protocol';
|
|
5
6
|
import type { BaseAccountableServiceParams, BaseServiceParams } from './model/index.ts';
|
|
6
7
|
declare global {
|
|
7
8
|
var xyoServiceSingletons: Record<string, unknown>;
|
|
8
9
|
}
|
|
9
|
-
export declare class BaseService<TParams extends BaseServiceParams = BaseServiceParams, TEventData extends EventData = EventData> extends AbstractCreatable<TParams, TEventData> {
|
|
10
|
+
export declare class BaseService<TParams extends BaseServiceParams = BaseServiceParams, TEventData extends EventData = EventData> extends AbstractCreatable<TParams, TEventData> implements ServiceInterface {
|
|
10
11
|
private static singletonInitMutex;
|
|
11
12
|
static get singletons(): Record<string, unknown>;
|
|
12
13
|
static initSingleton<TService extends BaseService<TParams>, TParams extends BaseServiceParams>(params: Partial<TParams>): Promise<TService>;
|
|
13
14
|
paramsHandler(params?: Partial<TParams>): TParams;
|
|
14
15
|
span<T>(name: string, fn: () => T): T;
|
|
15
16
|
spanAsync<T>(name: string, fn: () => Promise<T>): Promise<T>;
|
|
17
|
+
sync(_head: Hash): Promise<void>;
|
|
16
18
|
}
|
|
17
19
|
export declare abstract class BaseAccountableService<TParams extends BaseAccountableServiceParams = BaseAccountableServiceParams> extends BaseService<TParams> {
|
|
18
20
|
}
|
|
19
|
-
export interface CreatableService<T extends BaseService = BaseService> extends
|
|
21
|
+
export interface CreatableService<T extends BaseService = BaseService> extends ServiceInterface {
|
|
20
22
|
new (params: T['params']): T;
|
|
21
23
|
create<T extends BaseService>(this: CreatableService<T>, params?: Partial<T['params']>): Promisable<T>;
|
|
22
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseService.d.ts","sourceRoot":"","sources":["../../src/BaseService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAa,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"BaseService.d.ts","sourceRoot":"","sources":["../../src/BaseService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAa,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAGjE,OAAO,KAAK,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEvF,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClD;AAED,qBACa,WAAW,CAAC,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,UAAU,SAAS,SAAS,GAAG,SAAS,CACtH,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAE,YAAW,gBAAgB;IAC1E,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAc;IAE/C,MAAM,KAAK,UAAU,4BAEpB;IAED,MAAM,CAAC,aAAa,CAAC,QAAQ,SAAS,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,SAAS,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC;IAOvH,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;IAIjD,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;IAIlE,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjC;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,gBAAgB;IAC7F,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,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;CACvG;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 { AccountBalanceServiceV2, BlockBoundWitness, BlockProducerService, ChainStakeIntent, HydratedBlock, PendingTransactionsService, StakeIntentService, Transfer } from '@xyo-network/xl1-protocol';
|
|
5
|
+
import { AccountBalanceServiceV2, BlockBoundWitness, BlockProducerService, ChainStakeIntent, HydratedBlock, PendingTransactionsService, StakeIntentService, TimeSyncViewInterface, Transfer } from '@xyo-network/xl1-protocol';
|
|
6
6
|
import { BaseService } from '../BaseService.ts';
|
|
7
7
|
import { XyoValidatorParams } from '../ChainValidator/index.ts';
|
|
8
8
|
/**
|
|
@@ -20,6 +20,7 @@ export interface BaseBlockProducerServiceParams extends XyoValidatorParams {
|
|
|
20
20
|
pendingTransactionsService: PendingTransactionsService;
|
|
21
21
|
rejectedTransactionsArchivist: ArchivistInstance;
|
|
22
22
|
rewardAddress: Address;
|
|
23
|
+
time: TimeSyncViewInterface;
|
|
23
24
|
}
|
|
24
25
|
export declare class BaseBlockProducerService extends BaseService<BaseBlockProducerServiceParams> implements BlockProducerService {
|
|
25
26
|
protected _blockRewardDiviner: BlockRewardDiviner | undefined;
|
|
@@ -62,6 +63,7 @@ export declare class BaseBlockProducerService extends BaseService<BaseBlockProdu
|
|
|
62
63
|
protected get rewardAddress(): Address;
|
|
63
64
|
protected get rewardService(): import("@xyo-network/xl1-protocol").BlockRewardService;
|
|
64
65
|
protected get stakeIntentService(): StakeIntentService;
|
|
66
|
+
protected get time(): TimeSyncViewInterface;
|
|
65
67
|
protected get validateHydratedBlockState(): import("@xyo-network/xl1-protocol").HydratedBlockStateValidationFunctionV2;
|
|
66
68
|
next(head: WithStorageMeta<BlockBoundWitness>): Promise<HydratedBlock | undefined>;
|
|
67
69
|
protected getBlockRewardTransfer(block: number): Promise<Transfer | undefined>;
|
|
@@ -72,5 +74,7 @@ export declare class BaseBlockProducerService extends BaseService<BaseBlockProdu
|
|
|
72
74
|
*/
|
|
73
75
|
protected getProducerRedeclaration(head: WithStorageMeta<BlockBoundWitness>): Promise<ChainStakeIntent | undefined>;
|
|
74
76
|
protected proposeNextValidBlock(head: WithStorageMeta<BlockBoundWitness>, validateBalances?: boolean): Promise<HydratedBlock | undefined>;
|
|
77
|
+
private filterByFunded;
|
|
78
|
+
private generateTimePayload;
|
|
75
79
|
}
|
|
76
80
|
//# sourceMappingURL=BaseBlockProducerService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseBlockProducerService.d.ts","sourceRoot":"","sources":["../../../src/BlockProducer/BaseBlockProducerService.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACR,MAAM,aAAa,CAAA;AACpB,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,uBAAuB,EAC4B,iBAAiB,EACpE,oBAAoB,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"BaseBlockProducerService.d.ts","sourceRoot":"","sources":["../../../src/BlockProducer/BaseBlockProducerService.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACR,MAAM,aAAa,CAAA;AACpB,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,uBAAuB,EAC4B,iBAAiB,EACpE,oBAAoB,EAAE,gBAAgB,EAEtC,aAAa,EAAE,0BAA0B,EAA6B,kBAAkB,EAA2B,qBAAqB,EAA2B,QAAQ,EAC5K,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAG/D;;GAEG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAA;AAKpC,eAAO,MAAM,mCAAmC,QAAS,CAAA;AAEzD;;;GAGG;AACH,eAAO,MAAM,iCAAiC,MAAM,CAAA;AAEpD,MAAM,WAAW,8BAA+B,SAAQ,kBAAkB;IACxE,cAAc,EAAE,uBAAuB,CAAA;IACvC,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,6BAA6B,EAAE,iBAAiB,CAAA;IAChD,aAAa,EAAE,OAAO,CAAA;IACtB,IAAI,EAAE,qBAAqB,CAAA;CAC5B;AAED,qBACa,wBAAyB,SAAQ,WAAW,CAAC,8BAA8B,CAAE,YAAW,oBAAoB;IACvH,SAAS,CAAC,mBAAmB,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAE7D;;OAEG;IACH,MAAM,KAAK,gBAAgB,IAAI,MAAM,CAEpC;IAED;;;OAGG;IACH,MAAM,KAAK,qBAAqB,IAAI,MAAM,CAEzC;IAED;;;OAGG;IACH,MAAM,KAAK,mBAAmB,IAAI,MAAM,CAEvC;IAED,IAAI,OAAO;;;;OAEV;IAED,SAAS,KAAK,OAAO,yDAEpB;IAED,SAAS,KAAK,cAAc,4BAE3B;IAED,SAAS,KAAK,cAAc;;;;uDAE3B;IAED,SAAS,KAAK,OAAO;;;;;;OAEpB;IAED,SAAS,KAAK,eAAe,wDAE5B;IAED,SAAS,KAAK,0BAA0B,+BAEvC;IAED,SAAS,KAAK,6BAA6B,0SAE1C;IAED,SAAS,KAAK,aAAa,IAAI,OAAO,CAErC;IAED,SAAS,KAAK,aAAa,2DAE1B;IAED,SAAS,KAAK,kBAAkB,IAAI,kBAAkB,CAErD;IAED,SAAS,KAAK,IAAI,IAAI,qBAAqB,CAE1C;IAED,SAAS,KAAK,0BAA0B,+EAEvC;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;cAiBzG,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,UAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;YA6C/H,cAAc;YAyBd,mBAAmB;CASlC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Promisable } from '@xylabs/promise';
|
|
2
|
+
import { ReadArchivist } from '@xyo-network/archivist-model';
|
|
3
|
+
import { BridgeBack, BridgeComplete, BridgeRequest, BridgeService } from '@xyo-network/xl1-protocol';
|
|
4
|
+
import { BaseService } from '../BaseService.ts';
|
|
5
|
+
import { BaseServiceParams } from '../model/index.ts';
|
|
6
|
+
export interface BaseBridgeServiceParams extends BaseServiceParams {
|
|
7
|
+
chainArchivist: ReadArchivist;
|
|
8
|
+
}
|
|
9
|
+
export declare class BaseBridgeService extends BaseService<BaseBridgeServiceParams> implements BridgeService {
|
|
10
|
+
completedBridgeBack(): Promisable<BridgeBack[]>;
|
|
11
|
+
completedBridgeRequests(): Promisable<[BridgeRequest, BridgeComplete][]>;
|
|
12
|
+
pendingBridgeBack(): Promisable<BridgeBack[]>;
|
|
13
|
+
pendingBridgeRequests(): Promisable<BridgeRequest[]>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=BaseBridgeService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseBridgeService.d.ts","sourceRoot":"","sources":["../../../src/Bridge/BaseBridgeService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,cAAc,EAAE,aAAa,CAAA;CAC9B;AAED,qBACa,iBAAkB,SAAQ,WAAW,CAAC,uBAAuB,CAAE,YAAW,aAAa;IAClG,mBAAmB,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;IAI/C,uBAAuB,IAAI,UAAU,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC;IAIxE,iBAAiB,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;IAI7C,qBAAqB,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;CAGrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Bridge/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Address } from '@xylabs/hex';
|
|
2
|
+
import { Promisable } from '@xylabs/promise';
|
|
3
|
+
import { ReadArchivist } from '@xyo-network/archivist-model';
|
|
4
|
+
import { CompletedStep, StepStakeService } from '@xyo-network/xl1-protocol';
|
|
5
|
+
import { BaseService } from '../BaseService.ts';
|
|
6
|
+
import { BaseServiceParams } from '../model/index.ts';
|
|
7
|
+
export interface BaseStepStakeServiceParams extends BaseServiceParams {
|
|
8
|
+
chainArchivist: ReadArchivist;
|
|
9
|
+
}
|
|
10
|
+
export declare class BaseStepStakeService extends BaseService<BaseStepStakeServiceParams> implements StepStakeService {
|
|
11
|
+
stepStake(_step: CompletedStep): Promisable<Record<Address, bigint>>;
|
|
12
|
+
stepStakeForAddress(_address: Address, _step: CompletedStep): Promisable<bigint>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=BaseStepStakeService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseStepStakeService.d.ts","sourceRoot":"","sources":["../../../src/StepStake/BaseStepStakeService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;IACnE,cAAc,EAAE,aAAa,CAAA;CAC9B;AAED,qBACa,oBAAqB,SAAQ,WAAW,CAAC,0BAA0B,CAAE,YAAW,gBAAgB;IAC3G,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAIpE,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC;CAGjF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/StepStake/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReadArchivist } from '@xyo-network/archivist-model';
|
|
2
|
+
import { EventingChainBlockNumberIteratorService, TimeDomain, TimeSyncService } from '@xyo-network/xl1-protocol';
|
|
3
|
+
import { Provider } from 'ethers';
|
|
4
|
+
import { BaseService } from '../BaseService.ts';
|
|
5
|
+
import { BaseServiceParams } from '../model/index.ts';
|
|
6
|
+
export interface BaseTimeServiceParams extends BaseServiceParams {
|
|
7
|
+
chainArchivist: ReadArchivist;
|
|
8
|
+
chainIterator: EventingChainBlockNumberIteratorService;
|
|
9
|
+
ethProvider?: Provider;
|
|
10
|
+
}
|
|
11
|
+
export declare class BaseTimeSyncService extends BaseService<BaseTimeServiceParams> implements TimeSyncService {
|
|
12
|
+
get chainArchivist(): ReadArchivist<import("@xyo-network/payload-model").Payload, import("@xylabs/typeof").Brand<import("@xylabs/typeof").Brand<Lowercase<string>, {
|
|
13
|
+
readonly __hex: true;
|
|
14
|
+
}>, {
|
|
15
|
+
readonly __hash: true;
|
|
16
|
+
}>, import("@xyo-network/payload-model").Sequence>;
|
|
17
|
+
get chainIterator(): EventingChainBlockNumberIteratorService;
|
|
18
|
+
get ethProvider(): Provider | undefined;
|
|
19
|
+
convertTime(fromDomain: TimeDomain, toDomain: TimeDomain, from: number): Promise<number>;
|
|
20
|
+
currentTime(domain: TimeDomain): Promise<number>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=BaseTimeSyncService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseTimeSyncService.d.ts","sourceRoot":"","sources":["../../../src/Time/BaseTimeSyncService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAEL,uCAAuC,EAAE,UAAU,EAAc,eAAe,EACjF,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,cAAc,EAAE,aAAa,CAAA;IAC7B,aAAa,EAAE,uCAAuC,CAAA;IACtD,WAAW,CAAC,EAAE,QAAQ,CAAA;CACvB;AAED,qBACa,mBAAoB,SAAQ,WAAW,CAAC,qBAAqB,CAAE,YAAW,eAAe;IACpG,IAAI,cAAc;;;;uDAEjB;IAED,IAAI,aAAa,4CAEhB;IAED,IAAI,WAAW,yBAEd;IAEK,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BxF,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;CAgBvD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Time/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA"}
|
package/dist/neutral/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './AccountBalance/index.ts';
|
|
|
2
2
|
export * from './BaseService.ts';
|
|
3
3
|
export * from './BlockProducer/index.ts';
|
|
4
4
|
export * from './BlockReward/index.ts';
|
|
5
|
+
export * from './Bridge/index.ts';
|
|
5
6
|
export * from './ChainBlockNumberIteration/index.ts';
|
|
6
7
|
export * from './ChainService/index.ts';
|
|
7
8
|
export * from './ChainValidator/index.ts';
|
|
@@ -9,4 +10,6 @@ export * from './Election/index.ts';
|
|
|
9
10
|
export * from './model/index.ts';
|
|
10
11
|
export * from './PendingTransactions/index.ts';
|
|
11
12
|
export * from './StakeIntent/index.ts';
|
|
13
|
+
export * from './StepStake/index.ts';
|
|
14
|
+
export * from './Time/index.ts';
|
|
12
15
|
//# 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,kBAAkB,CAAA;AAChC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sCAAsC,CAAA;AACpD,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,wBAAwB,CAAA"}
|
|
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,mBAAmB,CAAA;AACjC,cAAc,sCAAsC,CAAA;AACpD,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -9,6 +9,7 @@ import { LRUCache } from "lru-cache";
|
|
|
9
9
|
|
|
10
10
|
// src/AccountBalance/BaseAccountBalanceService.ts
|
|
11
11
|
import { creatable as creatable2 } from "@xylabs/creatable";
|
|
12
|
+
import { spanAsync as spanAsync2 } from "@xylabs/telemetry";
|
|
12
13
|
import { AttoXL1 } from "@xyo-network/xl1-protocol";
|
|
13
14
|
import { balanceSummary } from "@xyo-network/xl1-protocol-sdk";
|
|
14
15
|
|
|
@@ -46,6 +47,9 @@ var BaseService = class extends AbstractCreatable {
|
|
|
46
47
|
async spanAsync(name, fn) {
|
|
47
48
|
return await spanAsync(name, fn, this.tracer);
|
|
48
49
|
}
|
|
50
|
+
sync(_head) {
|
|
51
|
+
throw new Error("Method not implemented.");
|
|
52
|
+
}
|
|
49
53
|
};
|
|
50
54
|
BaseService = _ts_decorate([
|
|
51
55
|
creatable()
|
|
@@ -75,17 +79,19 @@ var BaseAccountBalanceService = class extends BaseService {
|
|
|
75
79
|
__name(this, "BaseAccountBalanceService");
|
|
76
80
|
}
|
|
77
81
|
async balances(head, address) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
+
return await spanAsync2("balances", async () => {
|
|
83
|
+
const summary = await balanceSummary({
|
|
84
|
+
chainArchivist: this.params.chainArchivist,
|
|
85
|
+
summaryRepository: this.params.summaryRepository,
|
|
86
|
+
head
|
|
87
|
+
});
|
|
88
|
+
const result = {};
|
|
89
|
+
for (const addr of address) {
|
|
90
|
+
const summaryBalance = summary[addr] ?? 0n;
|
|
91
|
+
result[addr] = AttoXL1(summaryBalance < 0n ? 0n : summaryBalance);
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
82
94
|
});
|
|
83
|
-
const result = {};
|
|
84
|
-
for (const addr of address) {
|
|
85
|
-
const summaryBalance = summary[addr] ?? 0n;
|
|
86
|
-
result[addr] = AttoXL1(summaryBalance < 0n ? 0n : summaryBalance);
|
|
87
|
-
}
|
|
88
|
-
return result;
|
|
89
95
|
}
|
|
90
96
|
};
|
|
91
97
|
BaseAccountBalanceService = _ts_decorate2([
|
|
@@ -137,7 +143,7 @@ import { hexToBigInt, toHex } from "@xylabs/hex";
|
|
|
137
143
|
import { FixedPercentageBlockRewardDiviner, FixedPercentageBlockRewardDivinerConfigSchema } from "@xyo-network/chain-modules";
|
|
138
144
|
import { buildNextBlock, createDeclarationIntent } from "@xyo-network/chain-protocol";
|
|
139
145
|
import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
|
|
140
|
-
import { asBlockBoundWitness, AttoXL1 as AttoXL12, BlockNumberSchema } from "@xyo-network/xl1-protocol";
|
|
146
|
+
import { asBlockBoundWitness, AttoXL1 as AttoXL12, BlockNumberSchema, defaultRewardRatio, TimeSchema } from "@xyo-network/xl1-protocol";
|
|
141
147
|
|
|
142
148
|
// src/BlockProducer/generateTransactionFeeTransfers.ts
|
|
143
149
|
import { assertEx } from "@xylabs/assert";
|
|
@@ -252,6 +258,9 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
|
|
|
252
258
|
get stakeIntentService() {
|
|
253
259
|
return assertEx2(this.params.stakeIntentService, () => "No StakeIntentService provided");
|
|
254
260
|
}
|
|
261
|
+
get time() {
|
|
262
|
+
return assertEx2(this.params.time, () => "No TimeSyncViewInterface provided");
|
|
263
|
+
}
|
|
255
264
|
get validateHydratedBlockState() {
|
|
256
265
|
return assertEx2(this.params.validateHydratedBlockState, () => "validateHydratedBlockState is required");
|
|
257
266
|
}
|
|
@@ -268,7 +277,7 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
|
|
|
268
277
|
blockRewardService: this.rewardService,
|
|
269
278
|
config: {
|
|
270
279
|
rewardAddress: this.rewardAddress,
|
|
271
|
-
rewardPercentageRatio:
|
|
280
|
+
rewardPercentageRatio: defaultRewardRatio,
|
|
272
281
|
schema: FixedPercentageBlockRewardDivinerConfigSchema
|
|
273
282
|
}
|
|
274
283
|
});
|
|
@@ -313,25 +322,9 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
|
|
|
313
322
|
const rewardTransferPayload = await this.getBlockRewardTransfer(nextBlock);
|
|
314
323
|
if (rewardTransferPayload) blockPayloads.push(rewardTransferPayload);
|
|
315
324
|
const transactionTransfers = await generateTransactionFeeTransfers(this.address, nextBlockTransactions);
|
|
316
|
-
const
|
|
317
|
-
const fundedNextBlockTransactions =
|
|
318
|
-
|
|
319
|
-
if (!transfer) return;
|
|
320
|
-
const totalTransferCost = Object.values(transfer?.transfers).reduce((acc, t) => acc + hexToBigInt(t ?? "00"), 0n);
|
|
321
|
-
if (validateBalances) {
|
|
322
|
-
const balance = (await this.balanceService.balances(head._hash, [
|
|
323
|
-
transfer.from
|
|
324
|
-
]))[transfer.from] ?? AttoXL12(0n);
|
|
325
|
-
if (balance >= totalTransferCost) {
|
|
326
|
-
fundedTransfers.push(transfer);
|
|
327
|
-
return tx;
|
|
328
|
-
}
|
|
329
|
-
} else {
|
|
330
|
-
fundedTransfers.push(transfer);
|
|
331
|
-
return tx;
|
|
332
|
-
}
|
|
333
|
-
}))).filter(exists2);
|
|
334
|
-
blockPayloads.push(...fundedTransfers);
|
|
325
|
+
const timePayload = await this.generateTimePayload(nextBlock);
|
|
326
|
+
const [fundedNextBlockTransactions, fundedTransfers] = await this.filterByFunded(head, nextBlockTransactions, transactionTransfers, validateBalances);
|
|
327
|
+
blockPayloads.push(...fundedTransfers, timePayload);
|
|
335
328
|
this.logger?.info(`buildNextBlock: Building block ${head.block + 1} (${(/* @__PURE__ */ new Date()).toISOString()})`);
|
|
336
329
|
const block = await buildNextBlock(head, fundedNextBlockTransactions, blockPayloads, [
|
|
337
330
|
this.account
|
|
@@ -351,6 +344,40 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
|
|
|
351
344
|
}
|
|
352
345
|
});
|
|
353
346
|
}
|
|
347
|
+
// remove unfunded transactions and block transfers
|
|
348
|
+
async filterByFunded(head, txs, transfers, validateBalances = false) {
|
|
349
|
+
const fundedTransfers = [];
|
|
350
|
+
const fundedTransactions = (await Promise.all(txs.map(async (tx) => {
|
|
351
|
+
const transfer = transfers.find((transfer2) => transfer2.from === tx[0].from);
|
|
352
|
+
if (!transfer) return;
|
|
353
|
+
const totalTransferCost = Object.values(transfer?.transfers).reduce((acc, t) => acc + hexToBigInt(t ?? "00"), 0n);
|
|
354
|
+
if (validateBalances) {
|
|
355
|
+
const balance = (await this.balanceService.balances(head._hash, [
|
|
356
|
+
transfer.from
|
|
357
|
+
]))[transfer.from] ?? AttoXL12(0n);
|
|
358
|
+
if (balance >= totalTransferCost) {
|
|
359
|
+
fundedTransfers.push(transfer);
|
|
360
|
+
return tx;
|
|
361
|
+
}
|
|
362
|
+
} else {
|
|
363
|
+
fundedTransfers.push(transfer);
|
|
364
|
+
return tx;
|
|
365
|
+
}
|
|
366
|
+
}))).filter(exists2);
|
|
367
|
+
return [
|
|
368
|
+
fundedTransactions,
|
|
369
|
+
fundedTransfers
|
|
370
|
+
];
|
|
371
|
+
}
|
|
372
|
+
async generateTimePayload(nextBlock) {
|
|
373
|
+
const timePayload = {
|
|
374
|
+
schema: TimeSchema,
|
|
375
|
+
xl1: nextBlock,
|
|
376
|
+
ethereum: await this.time.currentTime("ethereum"),
|
|
377
|
+
epoch: Date.now()
|
|
378
|
+
};
|
|
379
|
+
return timePayload;
|
|
380
|
+
}
|
|
354
381
|
};
|
|
355
382
|
BaseBlockProducerService = _ts_decorate3([
|
|
356
383
|
creatable3()
|
|
@@ -475,6 +502,36 @@ MemoryBlockRewardService = _ts_decorate6([
|
|
|
475
502
|
creatable6()
|
|
476
503
|
], MemoryBlockRewardService);
|
|
477
504
|
|
|
505
|
+
// src/Bridge/BaseBridgeService.ts
|
|
506
|
+
import { creatable as creatable7 } from "@xylabs/creatable";
|
|
507
|
+
function _ts_decorate7(decorators, target, key, desc) {
|
|
508
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
509
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
510
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
511
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
512
|
+
}
|
|
513
|
+
__name(_ts_decorate7, "_ts_decorate");
|
|
514
|
+
var BaseBridgeService = class extends BaseService {
|
|
515
|
+
static {
|
|
516
|
+
__name(this, "BaseBridgeService");
|
|
517
|
+
}
|
|
518
|
+
completedBridgeBack() {
|
|
519
|
+
throw new Error("Method not implemented.");
|
|
520
|
+
}
|
|
521
|
+
completedBridgeRequests() {
|
|
522
|
+
throw new Error("Method not implemented.");
|
|
523
|
+
}
|
|
524
|
+
pendingBridgeBack() {
|
|
525
|
+
throw new Error("Method not implemented.");
|
|
526
|
+
}
|
|
527
|
+
pendingBridgeRequests() {
|
|
528
|
+
throw new Error("Method not implemented.");
|
|
529
|
+
}
|
|
530
|
+
};
|
|
531
|
+
BaseBridgeService = _ts_decorate7([
|
|
532
|
+
creatable7()
|
|
533
|
+
], BaseBridgeService);
|
|
534
|
+
|
|
478
535
|
// src/ChainBlockNumberIteration/ChainBlockNumberIterationService.ts
|
|
479
536
|
import { assertEx as assertEx5 } from "@xylabs/assert";
|
|
480
537
|
import { isDefined, isNull } from "@xylabs/typeof";
|
|
@@ -703,14 +760,14 @@ var MemoryChainService = class extends BaseService {
|
|
|
703
760
|
|
|
704
761
|
// src/ChainValidator/XyoValidator.ts
|
|
705
762
|
import { assertEx as assertEx7 } from "@xylabs/assert";
|
|
706
|
-
import { creatable as
|
|
707
|
-
function
|
|
763
|
+
import { creatable as creatable8 } from "@xylabs/creatable";
|
|
764
|
+
function _ts_decorate8(decorators, target, key, desc) {
|
|
708
765
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
709
766
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
710
767
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
711
768
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
712
769
|
}
|
|
713
|
-
__name(
|
|
770
|
+
__name(_ts_decorate8, "_ts_decorate");
|
|
714
771
|
var XyoValidator = class extends BaseService {
|
|
715
772
|
static {
|
|
716
773
|
__name(this, "XyoValidator");
|
|
@@ -748,22 +805,22 @@ var XyoValidator = class extends BaseService {
|
|
|
748
805
|
return await Promise.resolve(true);
|
|
749
806
|
}
|
|
750
807
|
};
|
|
751
|
-
XyoValidator =
|
|
752
|
-
|
|
808
|
+
XyoValidator = _ts_decorate8([
|
|
809
|
+
creatable8()
|
|
753
810
|
], XyoValidator);
|
|
754
811
|
|
|
755
812
|
// src/Election/BaseElectionService.ts
|
|
756
813
|
import { assertEx as assertEx8 } from "@xylabs/assert";
|
|
757
|
-
import { creatable as
|
|
814
|
+
import { creatable as creatable9 } from "@xylabs/creatable";
|
|
758
815
|
import { hexToLast4BytesInt, shuffleWithSeed } from "@xyo-network/chain-utils";
|
|
759
816
|
import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/payload-builder";
|
|
760
|
-
function
|
|
817
|
+
function _ts_decorate9(decorators, target, key, desc) {
|
|
761
818
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
762
819
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
763
820
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
764
821
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
765
822
|
}
|
|
766
|
-
__name(
|
|
823
|
+
__name(_ts_decorate9, "_ts_decorate");
|
|
767
824
|
var BaseElectionService = class extends BaseService {
|
|
768
825
|
static {
|
|
769
826
|
__name(this, "BaseElectionService");
|
|
@@ -792,15 +849,15 @@ var BaseElectionService = class extends BaseService {
|
|
|
792
849
|
return creatorArray.slice(0, maxSize);
|
|
793
850
|
}
|
|
794
851
|
};
|
|
795
|
-
BaseElectionService =
|
|
796
|
-
|
|
852
|
+
BaseElectionService = _ts_decorate9([
|
|
853
|
+
creatable9()
|
|
797
854
|
], BaseElectionService);
|
|
798
855
|
|
|
799
856
|
// src/PendingTransactions/BasePendingTransactions.ts
|
|
800
857
|
import { ValueType } from "@opentelemetry/api";
|
|
801
858
|
import { filterAs, filterAsync } from "@xylabs/array";
|
|
802
859
|
import { assertEx as assertEx9 } from "@xylabs/assert";
|
|
803
|
-
import { creatable as
|
|
860
|
+
import { creatable as creatable10 } from "@xylabs/creatable";
|
|
804
861
|
import { exists as exists3 } from "@xylabs/exists";
|
|
805
862
|
import { forget } from "@xylabs/forget";
|
|
806
863
|
import { isDefined as isDefined2, isUndefined } from "@xylabs/typeof";
|
|
@@ -843,13 +900,13 @@ var bundle = /* @__PURE__ */ __name((root, transaction) => {
|
|
|
843
900
|
}, "bundle");
|
|
844
901
|
|
|
845
902
|
// src/PendingTransactions/BasePendingTransactions.ts
|
|
846
|
-
function
|
|
903
|
+
function _ts_decorate10(decorators, target, key, desc) {
|
|
847
904
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
848
905
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
849
906
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
850
907
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
851
908
|
}
|
|
852
|
-
__name(
|
|
909
|
+
__name(_ts_decorate10, "_ts_decorate");
|
|
853
910
|
var BasePendingTransactionsService = class _BasePendingTransactionsService extends BaseService {
|
|
854
911
|
static {
|
|
855
912
|
__name(this, "BasePendingTransactionsService");
|
|
@@ -1067,8 +1124,8 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
1067
1124
|
});
|
|
1068
1125
|
}
|
|
1069
1126
|
};
|
|
1070
|
-
BasePendingTransactionsService =
|
|
1071
|
-
|
|
1127
|
+
BasePendingTransactionsService = _ts_decorate10([
|
|
1128
|
+
creatable10()
|
|
1072
1129
|
], BasePendingTransactionsService);
|
|
1073
1130
|
var isTransactionExpired = /* @__PURE__ */ __name((block) => ([txBw]) => txBw.exp < block, "isTransactionExpired");
|
|
1074
1131
|
var isTransactionActive = /* @__PURE__ */ __name((block) => ([txBw]) => txBw.nbf <= block && txBw.exp >= block, "isTransactionActive");
|
|
@@ -1103,7 +1160,7 @@ var mapBoundWitnessToStakeIntentHashes = /* @__PURE__ */ __name((bw) => {
|
|
|
1103
1160
|
// src/StakeIntent/XyoStakeIntentService.ts
|
|
1104
1161
|
import { filterAs as filterAs3 } from "@xylabs/array";
|
|
1105
1162
|
import { assertEx as assertEx10 } from "@xylabs/assert";
|
|
1106
|
-
import { creatable as
|
|
1163
|
+
import { creatable as creatable11 } from "@xylabs/creatable";
|
|
1107
1164
|
import { asAddress } from "@xylabs/hex";
|
|
1108
1165
|
import { isUndefined as isUndefined2 } from "@xylabs/typeof";
|
|
1109
1166
|
import { analyzeChain, ChainStakeIntentAnalyzer, isChainSummaryStakeIntent } from "@xyo-network/chain-analyze";
|
|
@@ -1112,13 +1169,13 @@ import { PayloadBuilder as PayloadBuilder8 } from "@xyo-network/payload-builder"
|
|
|
1112
1169
|
import { asBlockBoundWitness as asBlockBoundWitness3, asBlockBoundWitnessWithStorageMeta, asChainIndexingServiceStateWithStorageMeta, asChainStakeIntent as asChainStakeIntent2, ChainIndexingServiceStateSchema, isChainIndexingServiceState } from "@xyo-network/xl1-protocol";
|
|
1113
1170
|
import { Mutex as Mutex3 } from "async-mutex";
|
|
1114
1171
|
import { LRUCache as LRUCache3 } from "lru-cache";
|
|
1115
|
-
function
|
|
1172
|
+
function _ts_decorate11(decorators, target, key, desc) {
|
|
1116
1173
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1117
1174
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1118
1175
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1119
1176
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1120
1177
|
}
|
|
1121
|
-
__name(
|
|
1178
|
+
__name(_ts_decorate11, "_ts_decorate");
|
|
1122
1179
|
var ACTIVE_STAKE_TTL = 1e3 * 60 * 60 * 2;
|
|
1123
1180
|
var NO_ACTIVE_STAKE_TTL = 1e3 * 2;
|
|
1124
1181
|
var STAKE_CACHE_MAX_ENTRIES = 1e4;
|
|
@@ -1297,17 +1354,120 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1297
1354
|
});
|
|
1298
1355
|
}
|
|
1299
1356
|
};
|
|
1300
|
-
XyoStakeIntentService =
|
|
1301
|
-
|
|
1357
|
+
XyoStakeIntentService = _ts_decorate11([
|
|
1358
|
+
creatable11()
|
|
1302
1359
|
], XyoStakeIntentService);
|
|
1360
|
+
|
|
1361
|
+
// src/StepStake/BaseStepStakeService.ts
|
|
1362
|
+
import { creatable as creatable12 } from "@xylabs/creatable";
|
|
1363
|
+
function _ts_decorate12(decorators, target, key, desc) {
|
|
1364
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1365
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1366
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1367
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1368
|
+
}
|
|
1369
|
+
__name(_ts_decorate12, "_ts_decorate");
|
|
1370
|
+
var BaseStepStakeService = class extends BaseService {
|
|
1371
|
+
static {
|
|
1372
|
+
__name(this, "BaseStepStakeService");
|
|
1373
|
+
}
|
|
1374
|
+
stepStake(_step) {
|
|
1375
|
+
throw new Error("Method not implemented.");
|
|
1376
|
+
}
|
|
1377
|
+
stepStakeForAddress(_address, _step) {
|
|
1378
|
+
throw new Error("Method not implemented.");
|
|
1379
|
+
}
|
|
1380
|
+
};
|
|
1381
|
+
BaseStepStakeService = _ts_decorate12([
|
|
1382
|
+
creatable12()
|
|
1383
|
+
], BaseStepStakeService);
|
|
1384
|
+
|
|
1385
|
+
// src/Time/BaseTimeSyncService.ts
|
|
1386
|
+
import { assertEx as assertEx11 } from "@xylabs/assert";
|
|
1387
|
+
import { creatable as creatable13 } from "@xylabs/creatable";
|
|
1388
|
+
import { asTimePayload, TimeSchema as TimeSchema2 } from "@xyo-network/xl1-protocol";
|
|
1389
|
+
function _ts_decorate13(decorators, target, key, desc) {
|
|
1390
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1391
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1392
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1393
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1394
|
+
}
|
|
1395
|
+
__name(_ts_decorate13, "_ts_decorate");
|
|
1396
|
+
var BaseTimeSyncService = class extends BaseService {
|
|
1397
|
+
static {
|
|
1398
|
+
__name(this, "BaseTimeSyncService");
|
|
1399
|
+
}
|
|
1400
|
+
get chainArchivist() {
|
|
1401
|
+
return this.params.chainArchivist;
|
|
1402
|
+
}
|
|
1403
|
+
get chainIterator() {
|
|
1404
|
+
return this.params.chainIterator;
|
|
1405
|
+
}
|
|
1406
|
+
get ethProvider() {
|
|
1407
|
+
return this.params.ethProvider;
|
|
1408
|
+
}
|
|
1409
|
+
async convertTime(fromDomain, toDomain, from) {
|
|
1410
|
+
switch (fromDomain) {
|
|
1411
|
+
case "xl1": {
|
|
1412
|
+
const block = assertEx11(await this.chainIterator.get(from), () => "Block not found");
|
|
1413
|
+
const timeSchemaIndex = block.payload_schemas.indexOf(TimeSchema2);
|
|
1414
|
+
const hash = timeSchemaIndex === -1 ? void 0 : block.payload_hashes[timeSchemaIndex];
|
|
1415
|
+
const [payload] = hash === void 0 ? [] : await this.chainArchivist.get([
|
|
1416
|
+
hash
|
|
1417
|
+
]);
|
|
1418
|
+
const timePayload = asTimePayload(payload);
|
|
1419
|
+
if (timePayload === void 0) return 0;
|
|
1420
|
+
switch (toDomain) {
|
|
1421
|
+
case "xl1": {
|
|
1422
|
+
return timePayload.xl1 ?? 0;
|
|
1423
|
+
}
|
|
1424
|
+
case "epoch": {
|
|
1425
|
+
return timePayload.epoch ?? 0;
|
|
1426
|
+
}
|
|
1427
|
+
case "ethereum": {
|
|
1428
|
+
return timePayload.ethereum ?? 0;
|
|
1429
|
+
}
|
|
1430
|
+
default: {
|
|
1431
|
+
throw new Error(`Unsupported to toDomain: ${toDomain}`);
|
|
1432
|
+
}
|
|
1433
|
+
}
|
|
1434
|
+
}
|
|
1435
|
+
default: {
|
|
1436
|
+
throw new Error(`Unsupported from fromDomain: ${fromDomain}`);
|
|
1437
|
+
}
|
|
1438
|
+
}
|
|
1439
|
+
}
|
|
1440
|
+
async currentTime(domain) {
|
|
1441
|
+
switch (domain) {
|
|
1442
|
+
case "xl1": {
|
|
1443
|
+
return (await this.chainIterator.head()).block;
|
|
1444
|
+
}
|
|
1445
|
+
case "epoch": {
|
|
1446
|
+
return Date.now();
|
|
1447
|
+
}
|
|
1448
|
+
case "ethereum": {
|
|
1449
|
+
return await this.ethProvider?.getBlockNumber() ?? 0;
|
|
1450
|
+
}
|
|
1451
|
+
default: {
|
|
1452
|
+
throw new Error(`Unknown time domain: ${domain}`);
|
|
1453
|
+
}
|
|
1454
|
+
}
|
|
1455
|
+
}
|
|
1456
|
+
};
|
|
1457
|
+
BaseTimeSyncService = _ts_decorate13([
|
|
1458
|
+
creatable13()
|
|
1459
|
+
], BaseTimeSyncService);
|
|
1303
1460
|
export {
|
|
1304
1461
|
BaseAccountBalanceService,
|
|
1305
1462
|
BaseAccountableService,
|
|
1306
1463
|
BaseBlockProducerService,
|
|
1307
1464
|
BaseBlockRewardService,
|
|
1465
|
+
BaseBridgeService,
|
|
1308
1466
|
BaseElectionService,
|
|
1309
1467
|
BasePendingTransactionsService,
|
|
1310
1468
|
BaseService,
|
|
1469
|
+
BaseStepStakeService,
|
|
1470
|
+
BaseTimeSyncService,
|
|
1311
1471
|
ChainBlockNumberIterationService,
|
|
1312
1472
|
DEFAULT_BLOCK_SIZE,
|
|
1313
1473
|
EvmBlockRewardService,
|