@xyo-network/chain-services 1.14.0 → 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.
Files changed (33) hide show
  1. package/dist/neutral/AccountBalance/BaseAccountBalanceService.d.ts.map +1 -1
  2. package/dist/neutral/BaseService.d.ts +5 -3
  3. package/dist/neutral/BaseService.d.ts.map +1 -1
  4. package/dist/neutral/BlockProducer/BaseBlockProducerService.d.ts +5 -1
  5. package/dist/neutral/BlockProducer/BaseBlockProducerService.d.ts.map +1 -1
  6. package/dist/neutral/Bridge/BaseBridgeService.d.ts +15 -0
  7. package/dist/neutral/Bridge/BaseBridgeService.d.ts.map +1 -0
  8. package/dist/neutral/Bridge/index.d.ts +2 -0
  9. package/dist/neutral/Bridge/index.d.ts.map +1 -0
  10. package/dist/neutral/StepStake/BaseStepStakeService.d.ts +14 -0
  11. package/dist/neutral/StepStake/BaseStepStakeService.d.ts.map +1 -0
  12. package/dist/neutral/StepStake/index.d.ts +2 -0
  13. package/dist/neutral/StepStake/index.d.ts.map +1 -0
  14. package/dist/neutral/Time/BaseTimeSyncService.d.ts +22 -0
  15. package/dist/neutral/Time/BaseTimeSyncService.d.ts.map +1 -0
  16. package/dist/neutral/Time/index.d.ts +2 -0
  17. package/dist/neutral/Time/index.d.ts.map +1 -0
  18. package/dist/neutral/index.d.ts +3 -0
  19. package/dist/neutral/index.d.ts.map +1 -1
  20. package/dist/neutral/index.mjs +211 -51
  21. package/dist/neutral/index.mjs.map +1 -1
  22. package/package.json +11 -11
  23. package/src/AccountBalance/BaseAccountBalanceService.ts +11 -8
  24. package/src/BaseService.ts +8 -3
  25. package/src/BlockProducer/BaseBlockProducerService.ts +48 -19
  26. package/src/BlockProducer/spec/BaseBlockProducerService.spec.ts +5 -0
  27. package/src/Bridge/BaseBridgeService.ts +35 -0
  28. package/src/Bridge/index.ts +1 -0
  29. package/src/StepStake/BaseStepStakeService.ts +26 -0
  30. package/src/StepStake/index.ts +1 -0
  31. package/src/Time/BaseTimeSyncService.ts +79 -0
  32. package/src/Time/index.ts +1 -0
  33. 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;AAC3C,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;CAW3F"}
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 { Service } from '@xyo-network/xl1-protocol';
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 Service {
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,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAGxD,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,CAAC;IAC9C,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;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,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"}
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,EACtC,aAAa,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,QAAQ,EACxE,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;CACvB;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,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;CAwD9I"}
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,2 @@
1
+ export * from './BaseBridgeService.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export * from './BaseStepStakeService.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export * from './BaseTimeSyncService.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Time/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA"}
@@ -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"}
@@ -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
- const summary = await balanceSummary({
79
- chainArchivist: this.params.chainArchivist,
80
- summaryRepository: this.params.summaryRepository,
81
- head
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: 0.5,
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 fundedTransfers = [];
317
- const fundedNextBlockTransactions = (await Promise.all(nextBlockTransactions.map(async (tx) => {
318
- const transfer = transactionTransfers.find((txTransfer) => txTransfer.from === tx[0].from);
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 creatable7 } from "@xylabs/creatable";
707
- function _ts_decorate7(decorators, target, key, desc) {
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(_ts_decorate7, "_ts_decorate");
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 = _ts_decorate7([
752
- creatable7()
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 creatable8 } from "@xylabs/creatable";
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 _ts_decorate8(decorators, target, key, desc) {
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(_ts_decorate8, "_ts_decorate");
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 = _ts_decorate8([
796
- creatable8()
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 creatable9 } from "@xylabs/creatable";
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 _ts_decorate9(decorators, target, key, desc) {
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(_ts_decorate9, "_ts_decorate");
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 = _ts_decorate9([
1071
- creatable9()
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 creatable10 } from "@xylabs/creatable";
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 _ts_decorate10(decorators, target, key, desc) {
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(_ts_decorate10, "_ts_decorate");
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 = _ts_decorate10([
1301
- creatable10()
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,