@gzeoneth/gov-tracker 0.2.0-0 → 0.2.0-1

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 (88) hide show
  1. package/README.md +3 -0
  2. package/dist/calldata/decoder.d.ts.map +1 -1
  3. package/dist/calldata/decoder.js +8 -2
  4. package/dist/calldata/decoder.js.map +1 -1
  5. package/dist/calldata/parameter-decoder.js +6 -6
  6. package/dist/calldata/parameter-decoder.js.map +1 -1
  7. package/dist/cli/lib/cli.d.ts.map +1 -1
  8. package/dist/cli/lib/cli.js +5 -6
  9. package/dist/cli/lib/cli.js.map +1 -1
  10. package/dist/cli/lib/json-state.d.ts.map +1 -1
  11. package/dist/cli/lib/json-state.js +12 -11
  12. package/dist/cli/lib/json-state.js.map +1 -1
  13. package/dist/index.d.ts +3 -3
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +18 -18
  16. package/dist/index.js.map +1 -1
  17. package/dist/stages/{stage-builder.d.ts → builder.d.ts} +11 -7
  18. package/dist/stages/builder.d.ts.map +1 -0
  19. package/dist/stages/{stage-builder.js → builder.js} +12 -3
  20. package/dist/stages/builder.js.map +1 -0
  21. package/dist/stages/l2-to-l1-message.d.ts +3 -3
  22. package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
  23. package/dist/stages/l2-to-l1-message.js +11 -12
  24. package/dist/stages/l2-to-l1-message.js.map +1 -1
  25. package/dist/stages/proposal-created.d.ts +2 -2
  26. package/dist/stages/proposal-created.d.ts.map +1 -1
  27. package/dist/stages/proposal-created.js +4 -4
  28. package/dist/stages/proposal-created.js.map +1 -1
  29. package/dist/stages/proposal-queued.d.ts +2 -2
  30. package/dist/stages/proposal-queued.d.ts.map +1 -1
  31. package/dist/stages/proposal-queued.js +8 -9
  32. package/dist/stages/proposal-queued.js.map +1 -1
  33. package/dist/stages/retryables.d.ts +3 -3
  34. package/dist/stages/retryables.d.ts.map +1 -1
  35. package/dist/stages/retryables.js +14 -15
  36. package/dist/stages/retryables.js.map +1 -1
  37. package/dist/stages/timelock.d.ts +3 -3
  38. package/dist/stages/timelock.d.ts.map +1 -1
  39. package/dist/stages/timelock.js +32 -32
  40. package/dist/stages/timelock.js.map +1 -1
  41. package/dist/stages/{base.d.ts → utils.d.ts} +78 -35
  42. package/dist/stages/utils.d.ts.map +1 -0
  43. package/dist/stages/{base.js → utils.js} +208 -63
  44. package/dist/stages/utils.js.map +1 -0
  45. package/dist/stages/voting.d.ts +2 -2
  46. package/dist/stages/voting.d.ts.map +1 -1
  47. package/dist/stages/voting.js +2 -2
  48. package/dist/stages/voting.js.map +1 -1
  49. package/dist/tracker/cache.d.ts +104 -0
  50. package/dist/tracker/cache.d.ts.map +1 -0
  51. package/dist/tracker/cache.js +287 -0
  52. package/dist/tracker/cache.js.map +1 -0
  53. package/dist/tracker/execute.js +8 -8
  54. package/dist/tracker/execute.js.map +1 -1
  55. package/dist/tracker/pipeline.d.ts +3 -3
  56. package/dist/tracker/pipeline.d.ts.map +1 -1
  57. package/dist/tracker/pipeline.js +38 -35
  58. package/dist/tracker/pipeline.js.map +1 -1
  59. package/dist/tracker/query.js +3 -3
  60. package/dist/tracker/query.js.map +1 -1
  61. package/dist/tracker/state.d.ts +88 -81
  62. package/dist/tracker/state.d.ts.map +1 -1
  63. package/dist/tracker/state.js +241 -264
  64. package/dist/tracker/state.js.map +1 -1
  65. package/dist/tracker.d.ts +4 -4
  66. package/dist/tracker.d.ts.map +1 -1
  67. package/dist/tracker.js +22 -20
  68. package/dist/tracker.js.map +1 -1
  69. package/dist/types/index.d.ts +1 -1
  70. package/dist/types/index.d.ts.map +1 -1
  71. package/dist/types/index.js.map +1 -1
  72. package/dist/types/stages.d.ts +32 -17
  73. package/dist/types/stages.d.ts.map +1 -1
  74. package/dist/types/stages.js +2 -0
  75. package/dist/types/stages.js.map +1 -1
  76. package/package.json +2 -1
  77. package/dist/stages/base.d.ts.map +0 -1
  78. package/dist/stages/base.js.map +0 -1
  79. package/dist/stages/stage-builder.d.ts.map +0 -1
  80. package/dist/stages/stage-builder.js.map +0 -1
  81. package/dist/tracker/context.d.ts +0 -111
  82. package/dist/tracker/context.d.ts.map +0 -1
  83. package/dist/tracker/context.js +0 -264
  84. package/dist/tracker/context.js.map +0 -1
  85. package/dist/utils/stage-helpers.d.ts +0 -50
  86. package/dist/utils/stage-helpers.d.ts.map +0 -1
  87. package/dist/utils/stage-helpers.js +0 -135
  88. package/dist/utils/stage-helpers.js.map +0 -1
@@ -11,7 +11,7 @@ exports.getCheckpoint = getCheckpoint;
11
11
  exports.getAllCheckpoints = getAllCheckpoints;
12
12
  exports.queryIncompleteCheckpoints = queryIncompleteCheckpoints;
13
13
  exports.getStats = getStats;
14
- const base_1 = require("../stages/base");
14
+ const utils_1 = require("../stages/utils");
15
15
  const constants_1 = require("../constants");
16
16
  /**
17
17
  * List all checkpoint keys in the cache.
@@ -68,7 +68,7 @@ async function queryIncompleteCheckpoints(cache, options = {}) {
68
68
  const errorCount = checkpoint.metadata?.errorCount ?? 0;
69
69
  const completedStages = checkpoint.cachedData.completedStages ?? [];
70
70
  // Skip if already complete
71
- if (completedStages.length > 0 && (0, base_1.areAllStagesComplete)(completedStages)) {
71
+ if (completedStages.length > 0 && (0, utils_1.areAllStagesComplete)(completedStages)) {
72
72
  continue;
73
73
  }
74
74
  // Skip if voting failed (terminal state)
@@ -105,7 +105,7 @@ async function getStats(cache, maxErrorCount = 5) {
105
105
  let electionTotal = 0, electionComplete = 0;
106
106
  for (const [, checkpoint] of checkpoints) {
107
107
  const completedStages = checkpoint.cachedData?.completedStages ?? [];
108
- const isComplete = completedStages.length > 0 && (0, base_1.areAllStagesComplete)(completedStages);
108
+ const isComplete = completedStages.length > 0 && (0, utils_1.areAllStagesComplete)(completedStages);
109
109
  const errorCount = checkpoint.metadata?.errorCount ?? 0;
110
110
  const isErrored = errorCount >= maxErrorCount;
111
111
  const inputType = checkpoint.input.type;
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/tracker/query.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAUH,gDAMC;AAKD,sCAMC;AAKD,8CAYC;AASD,gEAgDC;AAWD,4BAgEC;AA7KD,yCAAsD;AACtD,4CAA0D;AAE1D;;;GAGG;AACI,KAAK,UAAU,kBAAkB,CAAC,KAA+B;IACtE,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAA2B,CAAC,CAAC;IACrD,0CAA0C;IAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CACjC,KAA+B,EAC/B,GAAW;IAEX,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,MAAM,KAAK,CAAC,GAAG,CAAqB,GAAG,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,iBAAiB,CACrC,KAA+B;IAE/B,MAAM,GAAG,GAAG,IAAI,GAAG,EAA8B,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnD,IAAI,UAAU,EAAE,CAAC;YACf,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,0BAA0B,CAC9C,KAA+B,EAC/B,UAGI,EAAE;IAEN,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,UAAU,GAAG,kBAAM,CAAC,UAAU,CAAC;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,MAAM,OAAO,GAA2D,EAAE,CAAC;IAC3E,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,UAAU,IAAI,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,UAAU,CAAC,UAAU,CAAC,eAAe,IAAI,EAAE,CAAC;QAEpE,2BAA2B;QAC3B,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,IAAA,2BAAoB,EAAC,eAAe,CAAC,EAAE,CAAC;YACxE,SAAS;QACX,CAAC;QAED,yCAAyC;QACzC,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAC5E,IAAI,WAAW,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrC,SAAS;QACX,CAAC;QAED,mCAAmC;QACnC,IAAI,UAAU,IAAI,aAAa,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QAED,kBAAkB;QAClB,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,CAAC,CAAC;QAC5C,IAAI,SAAS,GAAG,CAAC,IAAI,GAAG,GAAG,SAAS,GAAG,QAAQ,EAAE,CAAC;YAChD,SAAS;QACX,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,QAAQ,CAC5B,KAA+B,EAC/B,gBAAwB,CAAC;IAEzB,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAEnD,IAAI,aAAa,GAAG,CAAC,EACnB,gBAAgB,GAAG,CAAC,EACpB,cAAc,GAAG,CAAC,EAClB,eAAe,GAAG,CAAC,CAAC;IACtB,IAAI,aAAa,GAAG,CAAC,EACnB,gBAAgB,GAAG,CAAC,EACpB,cAAc,GAAG,CAAC,EAClB,eAAe,GAAG,CAAC,CAAC;IACtB,IAAI,aAAa,GAAG,CAAC,EACnB,gBAAgB,GAAG,CAAC,CAAC;IAEvB,KAAK,MAAM,CAAC,EAAE,UAAU,CAAC,IAAI,WAAW,EAAE,CAAC;QACzC,MAAM,eAAe,GAAG,UAAU,CAAC,UAAU,EAAE,eAAe,IAAI,EAAE,CAAC;QACrE,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,IAAA,2BAAoB,EAAC,eAAe,CAAC,CAAC;QACvF,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,UAAU,IAAI,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,UAAU,IAAI,aAAa,CAAC;QAC9C,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QAExC,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,IACE,UAAU,CAAC,KAAK,CAAC,eAAe;gBAChC,IAAA,8BAAkB,EAAC,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,EACpD,CAAC;gBACD,aAAa,EAAE,CAAC;gBAChB,IAAI,UAAU;oBAAE,gBAAgB,EAAE,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,aAAa,EAAE,CAAC;gBAChB,IAAI,UAAU;oBAAE,gBAAgB,EAAE,CAAC;qBAC9B,IAAI,SAAS;oBAAE,eAAe,EAAE,CAAC;;oBACjC,cAAc,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,aAAa,EAAE,CAAC;YAChB,IAAI,UAAU;gBAAE,gBAAgB,EAAE,CAAC;iBAC9B,IAAI,SAAS;gBAAE,eAAe,EAAE,CAAC;;gBACjC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,WAAW,CAAC,IAAI;QACvB,SAAS,EAAE;YACT,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,eAAe;SACzB;QACD,SAAS,EAAE;YACT,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,eAAe;SACzB;QACD,SAAS,EAAE;YACT,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,gBAAgB;SAC3B;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/tracker/query.ts"],"names":[],"mappings":"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"}
@@ -1,104 +1,111 @@
1
1
  /**
2
- * Cache utilities for tracker state
2
+ * TrackingState - Functional state management for pipeline tracking
3
3
  *
4
- * Provides cache implementations and utility functions.
5
- * All other state management is handled directly in tracker.ts.
4
+ * This module provides a purely functional approach to tracking context:
5
+ * - TrackingState interface defines the immutable state shape
6
+ * - Pure functions transform state and derive values
7
+ * - No classes, no mutation, no hidden state
6
8
  *
7
- * Available cache adapters:
8
- * - FileCache: File-based persistence (Node.js only)
9
- * - LocalStorageCache: Browser localStorage (web only)
10
- * - MemoryCache: In-memory, no persistence (universal)
9
+ * Benefits:
10
+ * - Easy testing: just create plain objects
11
+ * - Transparent: can log/inspect full state anytime
12
+ * - Predictable: same input same output
13
+ * - Composable: mix and match functions freely
14
+ * - Debuggable: save/restore state snapshots
11
15
  */
12
- import { TrackingCheckpoint, DiscoveryWatermarks, CacheAdapter } from "../types";
16
+ import { ethers } from "ethers";
17
+ import { TrackedStage, TrackingCheckpoint, TrackingInput, StageType, CallScheduledData, ProposalData, ProposalType, ProposalState, OnProgressCallback, ChunkingConfig } from "../types";
13
18
  /**
14
- * File-based cache that persists to JSON file.
15
- * Synchronously loads on construction, persists on every write.
16
- * Uses a write queue to prevent race conditions from concurrent writes.
19
+ * Providers for multi-chain operations
17
20
  */
18
- export declare class FileCache implements CacheAdapter {
19
- private readonly path;
20
- private cache;
21
- private writeQueue;
22
- constructor(path: string);
23
- private load;
24
- private persistSync;
25
- private persist;
26
- get<T>(key: string): Promise<T | null>;
27
- set<T>(key: string, value: T): Promise<void>;
28
- delete(key: string): Promise<void>;
29
- clear(): Promise<void>;
30
- has(key: string): Promise<boolean>;
31
- keys(): IterableIterator<string>;
21
+ export interface Providers {
22
+ readonly l2: ethers.providers.Provider;
23
+ readonly l1: ethers.providers.Provider;
24
+ readonly nova: ethers.providers.Provider;
32
25
  }
33
26
  /**
34
- * Browser localStorage-based cache adapter.
35
- * Persists to localStorage with a configurable key prefix.
36
- *
37
- * Limitations:
38
- * - 5MB storage limit (varies by browser)
39
- * - Synchronous API (blocks main thread, usually negligible)
40
- * - String-only storage (JSON serialization handled internally)
41
- *
42
- * @example
43
- * ```typescript
44
- * import { createTracker, LocalStorageCache } from "@gzeoneth/gov-tracker";
45
- *
46
- * const tracker = createTracker({
47
- * l2Provider,
48
- * l1Provider,
49
- * cache: new LocalStorageCache("arb-gov:"),
50
- * });
51
- * ```
27
+ * Options for creating a TrackingState
52
28
  */
53
- export declare class LocalStorageCache implements CacheAdapter {
54
- private readonly prefix;
55
- constructor(prefix?: string);
56
- private fullKey;
57
- get<T>(key: string): Promise<T | null>;
58
- set<T>(key: string, value: T): Promise<void>;
59
- delete(key: string): Promise<void>;
60
- clear(): Promise<void>;
61
- has(key: string): Promise<boolean>;
62
- keys(prefix?: string): Promise<string[]>;
29
+ export interface CreateTrackingStateOptions {
30
+ providers: Providers;
31
+ input: TrackingInput;
32
+ onProgress?: OnProgressCallback;
33
+ chunkingConfig?: ChunkingConfig;
34
+ checkpoint?: TrackingCheckpoint;
35
+ cacheKey?: string;
36
+ /** Bootstrap data for timelock-only tracking */
37
+ callScheduledData?: CallScheduledData[];
63
38
  }
64
39
  /**
65
- * In-memory cache adapter with no persistence.
66
- * Useful for testing, short-lived sessions, or as a fallback.
40
+ * TrackingState - Immutable state for pipeline tracking
67
41
  *
68
- * Data is lost when the page is refreshed or the process exits.
42
+ * All values are derived from stages. This interface represents
43
+ * a snapshot of the pipeline at a point in time.
69
44
  *
70
45
  * @example
71
46
  * ```typescript
72
- * import { createTracker, MemoryCache } from "@gzeoneth/gov-tracker";
73
- *
74
- * const tracker = createTracker({
75
- * l2Provider,
76
- * l1Provider,
77
- * cache: new MemoryCache(),
78
- * });
47
+ * let ctx = createTrackingState({ providers, input });
48
+ * ctx = await addStage(ctx, proposalCreatedStage);
49
+ * const opId = getOperationId(ctx);
79
50
  * ```
80
51
  */
81
- export declare class MemoryCache implements CacheAdapter {
82
- private cache;
83
- get<T>(key: string): Promise<T | null>;
84
- set<T>(key: string, value: T): Promise<void>;
85
- delete(key: string): Promise<void>;
86
- clear(): Promise<void>;
87
- has(key: string): Promise<boolean>;
88
- keys(): IterableIterator<string>;
52
+ export interface TrackingState {
53
+ readonly providers: Providers;
54
+ readonly chunkingConfig: ChunkingConfig;
55
+ readonly onProgress?: OnProgressCallback;
56
+ readonly cacheKey?: string;
57
+ readonly input: TrackingInput;
58
+ readonly callScheduledData?: CallScheduledData[];
59
+ readonly stages: TrackedStage[];
60
+ readonly stageIndex: number;
89
61
  }
90
62
  /**
91
- * Generate cache key from transaction hash (primary cache key format)
63
+ * Create a new TrackingState.
92
64
  */
93
- export declare function txHashCacheKey(txHash: string): string;
65
+ export declare function createTrackingState(options: CreateTrackingStateOptions): TrackingState;
94
66
  /**
95
- * Read all cache data without requiring RPC providers.
96
- * Use this for status/dashboard views that only need cached data.
97
- *
98
- * @param cachePath - Path to the cache file
67
+ * Add or update a stage. Returns new context.
68
+ */
69
+ export declare function addStage(ctx: TrackingState, stage: TrackedStage): Promise<TrackingState>;
70
+ /** Check if a stage is completed (COMPLETED or SKIPPED). */
71
+ export declare function isStageCompleted(ctx: TrackingState, type: StageType): boolean;
72
+ /** Get a completed stage for zero-RPC resume. */
73
+ export declare function getCompletedStage(ctx: TrackingState, type: StageType): TrackedStage | undefined;
74
+ /** Get a cached stage (any status). */
75
+ export declare function getCachedStage(ctx: TrackingState, type: StageType): TrackedStage | undefined;
76
+ /**
77
+ * Check if all stages are complete.
99
78
  */
100
- export declare function readCacheStatus(cachePath: string): Promise<{
101
- watermarks: DiscoveryWatermarks;
102
- checkpoints: Map<string, TrackingCheckpoint>;
103
- }>;
79
+ export declare function isComplete(ctx: TrackingState): boolean;
80
+ export declare const getGovernorAddress: (ctx: TrackingState) => string | undefined;
81
+ export declare const getProposalId: (ctx: TrackingState) => string | undefined;
82
+ export declare function getTimelockAddress(ctx: TrackingState): string | undefined;
83
+ export declare function getOperationId(ctx: TrackingState): string | undefined;
84
+ export declare function getCallScheduledData(ctx: TrackingState): CallScheduledData[] | undefined;
85
+ export declare const getFirstCallScheduledData: (ctx: TrackingState) => CallScheduledData | undefined;
86
+ export declare const getQueueBlockNumber: (ctx: TrackingState) => number | undefined;
87
+ /** Proposal data from PROPOSAL_CREATED stage */
88
+ export declare function getProposalData(ctx: TrackingState): ProposalData | undefined;
89
+ export declare function getProposalType(ctx: TrackingState): ProposalType | undefined;
90
+ export declare const getIsElection: (ctx: TrackingState) => boolean;
91
+ export declare const getProposalState: (ctx: TrackingState) => ProposalState | undefined;
92
+ export declare function getVotingEndBlock(ctx: TrackingState): number | undefined;
93
+ export declare function getL2ExecutionTxHash(ctx: TrackingState): string | undefined;
94
+ export declare const getFirstExecutableBlock: (ctx: TrackingState) => number | undefined;
95
+ export declare function getOutboxExecutionTx(ctx: TrackingState): {
96
+ hash: string;
97
+ blockNumber: number;
98
+ } | undefined;
99
+ export declare function getL1ExecutionTxHash(ctx: TrackingState): string | undefined;
100
+ export declare function createCheckpoint(ctx: TrackingState): TrackingCheckpoint;
101
+ export declare function toResult(ctx: TrackingState): {
102
+ input: TrackingInput;
103
+ stages: TrackedStage[];
104
+ checkpoint: TrackingCheckpoint;
105
+ isComplete: boolean;
106
+ proposalType: ProposalType | undefined;
107
+ proposalData: ProposalData | undefined;
108
+ currentState: ProposalState | undefined;
109
+ isElection: boolean;
110
+ };
104
111
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/tracker/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGjF;;;;GAIG;AACH,qBAAa,SAAU,YAAW,YAAY;IAC5C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,UAAU,CAAoC;gBAE1C,IAAI,EAAE,MAAM;IAKxB,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,WAAW;YAKL,OAAO;IAiBf,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAItC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxC,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC;CAGjC;AA2BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,GAAE,MAAmB;IAIvC,OAAO,CAAC,OAAO;IAIT,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAYtC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAatB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMlC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAe/C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,KAAK,CAAmC;IAE1C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAItC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxC,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC;CAGjC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAChE,UAAU,EAAE,mBAAmB,CAAC;IAChC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC9C,CAAC,CAqBD"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/tracker/state.ts"],"names":[],"mappings":"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"}