@xyo-network/xl1-protocol-sdk 1.26.23 → 1.26.25

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 (38) hide show
  1. package/dist/neutral/CreatableProvider/AbstractCreatableProvider.d.ts +2 -0
  2. package/dist/neutral/CreatableProvider/AbstractCreatableProvider.d.ts.map +1 -1
  3. package/dist/neutral/config/Actor.d.ts +12 -0
  4. package/dist/neutral/config/Actor.d.ts.map +1 -1
  5. package/dist/neutral/config/Actors.d.ts +2 -0
  6. package/dist/neutral/config/Actors.d.ts.map +1 -1
  7. package/dist/neutral/config/Base.d.ts +2 -0
  8. package/dist/neutral/config/Base.d.ts.map +1 -1
  9. package/dist/neutral/config/Config.d.ts +8 -0
  10. package/dist/neutral/config/Config.d.ts.map +1 -1
  11. package/dist/neutral/config/HostActor.d.ts +12 -0
  12. package/dist/neutral/config/HostActor.d.ts.map +1 -1
  13. package/dist/neutral/config/Validation.d.ts +2 -0
  14. package/dist/neutral/config/Validation.d.ts.map +1 -1
  15. package/dist/neutral/context/Actor.d.ts +12 -0
  16. package/dist/neutral/context/Actor.d.ts.map +1 -1
  17. package/dist/neutral/context/HostActor.d.ts +12 -0
  18. package/dist/neutral/context/HostActor.d.ts.map +1 -1
  19. package/dist/neutral/getFileConfig.d.ts +4 -0
  20. package/dist/neutral/getFileConfig.d.ts.map +1 -1
  21. package/dist/neutral/getFileConfig.mjs +19 -1
  22. package/dist/neutral/getFileConfig.mjs.map +1 -1
  23. package/dist/neutral/index.mjs +1980 -1929
  24. package/dist/neutral/index.mjs.map +1 -1
  25. package/dist/neutral/isInternetAvailable.d.ts.map +1 -1
  26. package/dist/neutral/model/CreatableProviderContext.zod.d.ts +12 -0
  27. package/dist/neutral/model/CreatableProviderContext.zod.d.ts.map +1 -1
  28. package/dist/neutral/primitives/uncle/findBestUncle.d.ts +15 -34
  29. package/dist/neutral/primitives/uncle/findBestUncle.d.ts.map +1 -1
  30. package/dist/neutral/primitives/uncle/getProducerKey.d.ts +4 -0
  31. package/dist/neutral/primitives/uncle/getProducerKey.d.ts.map +1 -0
  32. package/dist/neutral/primitives/uncle/index.d.ts +1 -0
  33. package/dist/neutral/primitives/uncle/index.d.ts.map +1 -1
  34. package/dist/neutral/primitives/uncle/scoreUncle.d.ts +3 -1
  35. package/dist/neutral/primitives/uncle/scoreUncle.d.ts.map +1 -1
  36. package/dist/neutral/test/index.mjs +427 -411
  37. package/dist/neutral/test/index.mjs.map +1 -1
  38. package/package.json +8 -12
@@ -1 +1 @@
1
- {"version":3,"file":"isInternetAvailable.d.ts","sourceRoot":"","sources":["../../src/isInternetAvailable.ts"],"names":[],"mappings":"AAEA,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAAC,OAAO,CAO3D,CAAA"}
1
+ {"version":3,"file":"isInternetAvailable.d.ts","sourceRoot":"","sources":["../../src/isInternetAvailable.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAAC,OAAO,CAO3D,CAAA"}
@@ -99,6 +99,8 @@ export declare const BaseConfigContextZod: z.ZodObject<{
99
99
  } & {
100
100
  readonly __address: true;
101
101
  }, string>>>>>;
102
+ minCandidates: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
103
+ backoffMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
102
104
  }, z.core.$strip>>;
103
105
  }, z.core.$loose>;
104
106
  locator: z.ZodOptional<z.ZodType<ProviderFactoryLocatorInstance<CreatableProviderContextType>, unknown, z.core.$ZodTypeInternals<ProviderFactoryLocatorInstance<CreatableProviderContextType>, unknown>>>;
@@ -172,6 +174,8 @@ export declare const isBaseConfigContext: <T>(value: T) => value is T & {
172
174
  } | undefined;
173
175
  };
174
176
  validation: {
177
+ minCandidates: number;
178
+ backoffMs: number;
175
179
  allowedRewardRedeemers?: (Lowercase<string> & {
176
180
  readonly __hex: true;
177
181
  } & {
@@ -257,6 +261,8 @@ export declare const asBaseConfigContext: {
257
261
  } | undefined;
258
262
  };
259
263
  validation: {
264
+ minCandidates: number;
265
+ backoffMs: number;
260
266
  allowedRewardRedeemers?: (Lowercase<string> & {
261
267
  readonly __hex: true;
262
268
  } & {
@@ -340,6 +346,8 @@ export declare const asBaseConfigContext: {
340
346
  } | undefined;
341
347
  };
342
348
  validation: {
349
+ minCandidates: number;
350
+ backoffMs: number;
343
351
  allowedRewardRedeemers?: (Lowercase<string> & {
344
352
  readonly __hex: true;
345
353
  } & {
@@ -426,6 +434,8 @@ export declare const toBaseConfigContext: {
426
434
  } | undefined;
427
435
  };
428
436
  validation: {
437
+ minCandidates: number;
438
+ backoffMs: number;
429
439
  allowedRewardRedeemers?: (Lowercase<string> & {
430
440
  readonly __hex: true;
431
441
  } & {
@@ -509,6 +519,8 @@ export declare const toBaseConfigContext: {
509
519
  } | undefined;
510
520
  };
511
521
  validation: {
522
+ minCandidates: number;
523
+ backoffMs: number;
512
524
  allowedRewardRedeemers?: (Lowercase<string> & {
513
525
  readonly __hex: true;
514
526
  } & {
@@ -1 +1 @@
1
- {"version":3,"file":"CreatableProviderContext.zod.d.ts","sourceRoot":"","sources":["../../../src/model/CreatableProviderContext.zod.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAEnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAA;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,wCAAwC;AACxC,eAAO,MAAM,uBAAuB,yDAAwE,CAAA;AAE5G,0CAA0C;AAC1C,eAAO,MAAM,yBAAyB,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAC2C,CAAA;AAE3H,yCAAyC;AACzC,MAAM,MAAM,4BAA4B,GAAG,cAAc,GAAG;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,EAAE,8BAA8B,CAAA;IACvC,cAAc,CAAC,EAAE,oBAAoB,CAAA;CACtC,CAAA;AAED,qCAAqC;AACrC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG/B,CAAA;AACF,8BAA8B;AAC9B,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEpE,4CAA4C;AAC5C,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAK3E,CAAA;AAEL,sEAAsE;AACtE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAqC,CAAA;AACrE,kEAAkE;AAClE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4D,CAAA;AAC5F,oCAAoC;AACpC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4D,CAAA;AAE5F,6EAA6E;AAC7E,eAAO,MAAM,0BAA0B;;;;;;;;UA9B/B,MAAM;YACJ,UAAU;aACT,8BAA8B;qBACtB,oBAAoB;CA2B4C,CAAA;AACnF,yEAAyE;AACzE,eAAO,MAAM,0BAA0B;;;;;;;;;cAhC/B,MAAM;gBACJ,UAAU;iBACT,8BAA8B;yBACtB,oBAAoB;;;;;;;;;;cAH/B,MAAM;gBACJ,UAAU;iBACT,8BAA8B;yBACtB,oBAAoB;;CA6B0E,CAAA;AACjH,2CAA2C;AAC3C,eAAO,MAAM,0BAA0B;;;;;;;;;cAlC/B,MAAM;gBACJ,UAAU;iBACT,8BAA8B;yBACtB,oBAAoB;;;;;;;;;;cAH/B,MAAM;gBACJ,UAAU;iBACT,8BAA8B;yBACtB,oBAAoB;;CA+B0E,CAAA"}
1
+ {"version":3,"file":"CreatableProviderContext.zod.d.ts","sourceRoot":"","sources":["../../../src/model/CreatableProviderContext.zod.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAEnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAA;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,wCAAwC;AACxC,eAAO,MAAM,uBAAuB,yDAAwE,CAAA;AAE5G,0CAA0C;AAC1C,eAAO,MAAM,yBAAyB,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAC2C,CAAA;AAE3H,yCAAyC;AACzC,MAAM,MAAM,4BAA4B,GAAG,cAAc,GAAG;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,EAAE,8BAA8B,CAAA;IACvC,cAAc,CAAC,EAAE,oBAAoB,CAAA;CACtC,CAAA;AAED,qCAAqC;AACrC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG/B,CAAA;AACF,8BAA8B;AAC9B,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEpE,4CAA4C;AAC5C,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAK3E,CAAA;AAEL,sEAAsE;AACtE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAqC,CAAA;AACrE,kEAAkE;AAClE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4D,CAAA;AAC5F,oCAAoC;AACpC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4D,CAAA;AAE5F,6EAA6E;AAC7E,eAAO,MAAM,0BAA0B;;;;;;;;UA9B/B,MAAM;YACJ,UAAU;aACT,8BAA8B;qBACtB,oBAAoB;CA2B4C,CAAA;AACnF,yEAAyE;AACzE,eAAO,MAAM,0BAA0B;;;;;;;;;cAhC/B,MAAM;gBACJ,UAAU;iBACT,8BAA8B;yBACtB,oBAAoB;;;;;;;;;;cAH/B,MAAM;gBACJ,UAAU;iBACT,8BAA8B;yBACtB,oBAAoB;;CA6B0E,CAAA;AACjH,2CAA2C;AAC3C,eAAO,MAAM,0BAA0B;;;;;;;;;cAlC/B,MAAM;gBACJ,UAAU;iBACT,8BAA8B;yBACtB,oBAAoB;;;;;;;;;;cAH/B,MAAM;gBACJ,UAAU;iBACT,8BAA8B;yBACtB,oBAAoB;;CA+B0E,CAAA"}
@@ -1,36 +1,17 @@
1
1
  import type { SignedHydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol-lib';
2
- /** FindBestUncle helper function. */
3
- export declare function findBestUncle(finalizedWindowedChain: SignedHydratedBlockWithHashMeta[], uncles: SignedHydratedBlockWithHashMeta[][]): [{
4
- schema: "network.xyo.boundwitness" & {
5
- readonly __schema: true;
6
- };
7
- addresses: (Lowercase<string> & {
8
- readonly __hex: true;
9
- } & {
10
- readonly __address: true;
11
- })[];
12
- payload_hashes: import("@xylabs/sdk-js").BrandedHash[];
13
- payload_schemas: import("@xyo-network/sdk-js").BrandedSchema<string>[];
14
- previous_hashes: (import("@xylabs/sdk-js").BrandedHash | null)[];
15
- $signatures: import("@xylabs/sdk-js").BrandedHex[];
16
- block: import("@xyo-network/xl1-protocol-lib").XL1BlockNumber;
17
- chain: import("@xylabs/sdk-js").BrandedHex;
18
- previous: import("@xylabs/sdk-js").BrandedHash | null;
19
- $epoch: number;
20
- _hash: import("@xylabs/sdk-js").BrandedHash;
21
- _dataHash: import("@xylabs/sdk-js").BrandedHash;
22
- $destination?: (Lowercase<string> & {
23
- readonly __hex: true;
24
- } & {
25
- readonly __address: true;
26
- }) | undefined;
27
- $sourceQuery?: import("@xylabs/sdk-js").BrandedHash | undefined;
28
- protocol?: number | undefined;
29
- step_hashes?: import("@xylabs/sdk-js").BrandedHash[] | undefined;
30
- }, {
31
- [x: string]: unknown;
32
- schema: import("@xyo-network/sdk-js").BrandedSchema<string>;
33
- _hash: import("@xylabs/sdk-js").BrandedHash;
34
- _dataHash: import("@xylabs/sdk-js").BrandedHash;
35
- }[]][];
2
+ /** Default minimum number of uncle candidates before selecting. */
3
+ export declare const DEFAULT_MIN_CANDIDATES = 2;
4
+ /** Default back-off timeout in milliseconds. If the head has not changed for this long, minCandidates is ignored. */
5
+ export declare const DEFAULT_BACKOFF_MS = 120000;
6
+ /** Options for findBestUncle block selection. */
7
+ export interface FindBestUncleOptions {
8
+ /** Back-off timeout in ms. If head age exceeds this, minCandidates is ignored. Default: 120_000. */
9
+ backoffMs?: number;
10
+ /** Minimum number of uncle candidates before selecting. Default: 2. */
11
+ minCandidates?: number;
12
+ /** Current timestamp in ms. Injectable for testing. Default: Date.now(). */
13
+ now?: number;
14
+ }
15
+ /** Selects the best uncle chain from candidates using Proof of Perfect scoring. */
16
+ export declare function findBestUncle(finalizedWindowedChain: SignedHydratedBlockWithHashMeta[], uncles: SignedHydratedBlockWithHashMeta[][], options?: FindBestUncleOptions): SignedHydratedBlockWithHashMeta[] | undefined;
36
17
  //# sourceMappingURL=findBestUncle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"findBestUncle.d.ts","sourceRoot":"","sources":["../../../../src/primitives/uncle/findBestUncle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAA;AAIpF,qCAAqC;AACrC,wBAAgB,aAAa,CAAC,sBAAsB,EAAE,+BAA+B,EAAE,EAAE,MAAM,EAAE,+BAA+B,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAGnI"}
1
+ {"version":3,"file":"findBestUncle.d.ts","sourceRoot":"","sources":["../../../../src/primitives/uncle/findBestUncle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAA;AAIpF,mEAAmE;AACnE,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC,qHAAqH;AACrH,eAAO,MAAM,kBAAkB,SAAU,CAAA;AAEzC,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,oGAAoG;IACpG,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,4EAA4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAC3B,sBAAsB,EAAE,+BAA+B,EAAE,EACzD,MAAM,EAAE,+BAA+B,EAAE,EAAE,EAC3C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,+BAA+B,EAAE,GAAG,SAAS,CAiB/C"}
@@ -0,0 +1,4 @@
1
+ import type { SignedHydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol-lib';
2
+ /** Extracts a canonical producer identity string from a block's signer addresses. */
3
+ export declare function getProducerKey(block: SignedHydratedBlockWithHashMeta): string;
4
+ //# sourceMappingURL=getProducerKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getProducerKey.d.ts","sourceRoot":"","sources":["../../../../src/primitives/uncle/getProducerKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAA;AAEpF,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,KAAK,EAAE,+BAA+B,GAAG,MAAM,CAE7E"}
@@ -1,4 +1,5 @@
1
1
  export * from './findBestUncle.ts';
2
2
  export * from './findUncles.ts';
3
+ export * from './getProducerKey.ts';
3
4
  export * from './scoreUncle.ts';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/primitives/uncle/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/primitives/uncle/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA"}
@@ -1,4 +1,6 @@
1
1
  import type { SignedHydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol-lib';
2
- /** ScoreUncle helper function. */
2
+ /** Bonus applied when a candidate block is from a different producer than the current head. */
3
+ export declare const PRODUCER_DIVERSITY_BONUS = 1000;
4
+ /** Scores an uncle chain candidate for block selection (Proof of Perfect). */
3
5
  export declare function scoreUncle(finalizedWindowedChain: SignedHydratedBlockWithHashMeta[], blocks: SignedHydratedBlockWithHashMeta[]): number;
4
6
  //# sourceMappingURL=scoreUncle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoreUncle.d.ts","sourceRoot":"","sources":["../../../../src/primitives/uncle/scoreUncle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAA;AAEpF,kCAAkC;AAClC,wBAAgB,UAAU,CAAC,sBAAsB,EAAE,+BAA+B,EAAE,EAAE,MAAM,EAAE,+BAA+B,EAAE,UAG9H"}
1
+ {"version":3,"file":"scoreUncle.d.ts","sourceRoot":"","sources":["../../../../src/primitives/uncle/scoreUncle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAA;AAIpF,+FAA+F;AAC/F,eAAO,MAAM,wBAAwB,OAAO,CAAA;AAE5C,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,sBAAsB,EAAE,+BAA+B,EAAE,EAAE,MAAM,EAAE,+BAA+B,EAAE,GAAG,MAAM,CAevI"}