@gzeoneth/gov-tracker 0.1.0

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 (203) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +201 -0
  3. package/dist/abis.d.ts +79 -0
  4. package/dist/abis.d.ts.map +1 -0
  5. package/dist/abis.js +159 -0
  6. package/dist/abis.js.map +1 -0
  7. package/dist/cli/lib/cli.d.ts +92 -0
  8. package/dist/cli/lib/cli.d.ts.map +1 -0
  9. package/dist/cli/lib/cli.js +562 -0
  10. package/dist/cli/lib/cli.js.map +1 -0
  11. package/dist/cli/lib/election-check.d.ts +46 -0
  12. package/dist/cli/lib/election-check.d.ts.map +1 -0
  13. package/dist/cli/lib/election-check.js +136 -0
  14. package/dist/cli/lib/election-check.js.map +1 -0
  15. package/dist/cli/lib/json-state.d.ts +100 -0
  16. package/dist/cli/lib/json-state.d.ts.map +1 -0
  17. package/dist/cli/lib/json-state.js +225 -0
  18. package/dist/cli/lib/json-state.js.map +1 -0
  19. package/dist/cli/monitor.d.ts +3 -0
  20. package/dist/cli/monitor.d.ts.map +1 -0
  21. package/dist/cli/monitor.js +442 -0
  22. package/dist/cli/monitor.js.map +1 -0
  23. package/dist/constants.d.ts +235 -0
  24. package/dist/constants.d.ts.map +1 -0
  25. package/dist/constants.js +293 -0
  26. package/dist/constants.js.map +1 -0
  27. package/dist/discovery/governor-discovery.d.ts +84 -0
  28. package/dist/discovery/governor-discovery.d.ts.map +1 -0
  29. package/dist/discovery/governor-discovery.js +310 -0
  30. package/dist/discovery/governor-discovery.js.map +1 -0
  31. package/dist/discovery/security-council.d.ts +68 -0
  32. package/dist/discovery/security-council.d.ts.map +1 -0
  33. package/dist/discovery/security-council.js +181 -0
  34. package/dist/discovery/security-council.js.map +1 -0
  35. package/dist/discovery/timelock-discovery.d.ts +99 -0
  36. package/dist/discovery/timelock-discovery.d.ts.map +1 -0
  37. package/dist/discovery/timelock-discovery.js +322 -0
  38. package/dist/discovery/timelock-discovery.js.map +1 -0
  39. package/dist/election.d.ts +172 -0
  40. package/dist/election.d.ts.map +1 -0
  41. package/dist/election.js +464 -0
  42. package/dist/election.js.map +1 -0
  43. package/dist/index.d.ts +56 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +164 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/stages/base.d.ts +127 -0
  48. package/dist/stages/base.d.ts.map +1 -0
  49. package/dist/stages/base.js +280 -0
  50. package/dist/stages/base.js.map +1 -0
  51. package/dist/stages/l2-to-l1-message.d.ts +108 -0
  52. package/dist/stages/l2-to-l1-message.d.ts.map +1 -0
  53. package/dist/stages/l2-to-l1-message.js +422 -0
  54. package/dist/stages/l2-to-l1-message.js.map +1 -0
  55. package/dist/stages/proposal-created.d.ts +20 -0
  56. package/dist/stages/proposal-created.d.ts.map +1 -0
  57. package/dist/stages/proposal-created.js +62 -0
  58. package/dist/stages/proposal-created.js.map +1 -0
  59. package/dist/stages/proposal-queued.d.ts +39 -0
  60. package/dist/stages/proposal-queued.d.ts.map +1 -0
  61. package/dist/stages/proposal-queued.js +131 -0
  62. package/dist/stages/proposal-queued.js.map +1 -0
  63. package/dist/stages/retryables.d.ts +79 -0
  64. package/dist/stages/retryables.d.ts.map +1 -0
  65. package/dist/stages/retryables.js +307 -0
  66. package/dist/stages/retryables.js.map +1 -0
  67. package/dist/stages/stage-builder.d.ts +46 -0
  68. package/dist/stages/stage-builder.d.ts.map +1 -0
  69. package/dist/stages/stage-builder.js +87 -0
  70. package/dist/stages/stage-builder.js.map +1 -0
  71. package/dist/stages/timelock.d.ts +100 -0
  72. package/dist/stages/timelock.d.ts.map +1 -0
  73. package/dist/stages/timelock.js +552 -0
  74. package/dist/stages/timelock.js.map +1 -0
  75. package/dist/stages/voting.d.ts +18 -0
  76. package/dist/stages/voting.d.ts.map +1 -0
  77. package/dist/stages/voting.js +109 -0
  78. package/dist/stages/voting.js.map +1 -0
  79. package/dist/tracker/context.d.ts +111 -0
  80. package/dist/tracker/context.d.ts.map +1 -0
  81. package/dist/tracker/context.js +264 -0
  82. package/dist/tracker/context.js.map +1 -0
  83. package/dist/tracker/discovery.d.ts +89 -0
  84. package/dist/tracker/discovery.d.ts.map +1 -0
  85. package/dist/tracker/discovery.js +228 -0
  86. package/dist/tracker/discovery.js.map +1 -0
  87. package/dist/tracker/execute.d.ts +44 -0
  88. package/dist/tracker/execute.d.ts.map +1 -0
  89. package/dist/tracker/execute.js +126 -0
  90. package/dist/tracker/execute.js.map +1 -0
  91. package/dist/tracker/index.d.ts +18 -0
  92. package/dist/tracker/index.d.ts.map +1 -0
  93. package/dist/tracker/index.js +70 -0
  94. package/dist/tracker/index.js.map +1 -0
  95. package/dist/tracker/pipeline.d.ts +47 -0
  96. package/dist/tracker/pipeline.d.ts.map +1 -0
  97. package/dist/tracker/pipeline.js +299 -0
  98. package/dist/tracker/pipeline.js.map +1 -0
  99. package/dist/tracker/query.d.ts +45 -0
  100. package/dist/tracker/query.d.ts.map +1 -0
  101. package/dist/tracker/query.js +159 -0
  102. package/dist/tracker/query.js.map +1 -0
  103. package/dist/tracker/state.d.ts +104 -0
  104. package/dist/tracker/state.d.ts.map +1 -0
  105. package/dist/tracker/state.js +287 -0
  106. package/dist/tracker/state.js.map +1 -0
  107. package/dist/tracker.d.ts +261 -0
  108. package/dist/tracker.d.ts.map +1 -0
  109. package/dist/tracker.js +556 -0
  110. package/dist/tracker.js.map +1 -0
  111. package/dist/types/config.d.ts +81 -0
  112. package/dist/types/config.d.ts.map +1 -0
  113. package/dist/types/config.js +6 -0
  114. package/dist/types/config.js.map +1 -0
  115. package/dist/types/core.d.ts +51 -0
  116. package/dist/types/core.d.ts.map +1 -0
  117. package/dist/types/core.js +6 -0
  118. package/dist/types/core.js.map +1 -0
  119. package/dist/types/cross-chain.d.ts +80 -0
  120. package/dist/types/cross-chain.d.ts.map +1 -0
  121. package/dist/types/cross-chain.js +6 -0
  122. package/dist/types/cross-chain.js.map +1 -0
  123. package/dist/types/election.d.ts +59 -0
  124. package/dist/types/election.d.ts.map +1 -0
  125. package/dist/types/election.js +6 -0
  126. package/dist/types/election.js.map +1 -0
  127. package/dist/types/governor.d.ts +71 -0
  128. package/dist/types/governor.d.ts.map +1 -0
  129. package/dist/types/governor.js +6 -0
  130. package/dist/types/governor.js.map +1 -0
  131. package/dist/types/index.d.ts +22 -0
  132. package/dist/types/index.d.ts.map +1 -0
  133. package/dist/types/index.js +21 -0
  134. package/dist/types/index.js.map +1 -0
  135. package/dist/types/stages.d.ts +189 -0
  136. package/dist/types/stages.d.ts.map +1 -0
  137. package/dist/types/stages.js +23 -0
  138. package/dist/types/stages.js.map +1 -0
  139. package/dist/types/timelock.d.ts +108 -0
  140. package/dist/types/timelock.d.ts.map +1 -0
  141. package/dist/types/timelock.js +6 -0
  142. package/dist/types/timelock.js.map +1 -0
  143. package/dist/types/tracking.d.ts +180 -0
  144. package/dist/types/tracking.d.ts.map +1 -0
  145. package/dist/types/tracking.js +6 -0
  146. package/dist/types/tracking.js.map +1 -0
  147. package/dist/types.d.ts +6 -0
  148. package/dist/types.d.ts.map +1 -0
  149. package/dist/types.js +22 -0
  150. package/dist/types.js.map +1 -0
  151. package/dist/utils/chain.d.ts +18 -0
  152. package/dist/utils/chain.d.ts.map +1 -0
  153. package/dist/utils/chain.js +34 -0
  154. package/dist/utils/chain.js.map +1 -0
  155. package/dist/utils/log-filters.d.ts +67 -0
  156. package/dist/utils/log-filters.d.ts.map +1 -0
  157. package/dist/utils/log-filters.js +116 -0
  158. package/dist/utils/log-filters.js.map +1 -0
  159. package/dist/utils/log-search.d.ts +76 -0
  160. package/dist/utils/log-search.d.ts.map +1 -0
  161. package/dist/utils/log-search.js +142 -0
  162. package/dist/utils/log-search.js.map +1 -0
  163. package/dist/utils/logger.d.ts +41 -0
  164. package/dist/utils/logger.d.ts.map +1 -0
  165. package/dist/utils/logger.js +50 -0
  166. package/dist/utils/logger.js.map +1 -0
  167. package/dist/utils/operation-id.d.ts +48 -0
  168. package/dist/utils/operation-id.d.ts.map +1 -0
  169. package/dist/utils/operation-id.js +102 -0
  170. package/dist/utils/operation-id.js.map +1 -0
  171. package/dist/utils/rpc-utils.d.ts +30 -0
  172. package/dist/utils/rpc-utils.d.ts.map +1 -0
  173. package/dist/utils/rpc-utils.js +99 -0
  174. package/dist/utils/rpc-utils.js.map +1 -0
  175. package/dist/utils/salt-computation.d.ts +78 -0
  176. package/dist/utils/salt-computation.d.ts.map +1 -0
  177. package/dist/utils/salt-computation.js +132 -0
  178. package/dist/utils/salt-computation.js.map +1 -0
  179. package/dist/utils/salt-resolver.d.ts +63 -0
  180. package/dist/utils/salt-resolver.d.ts.map +1 -0
  181. package/dist/utils/salt-resolver.js +144 -0
  182. package/dist/utils/salt-resolver.js.map +1 -0
  183. package/dist/utils/scoped-logger.d.ts +43 -0
  184. package/dist/utils/scoped-logger.d.ts.map +1 -0
  185. package/dist/utils/scoped-logger.js +72 -0
  186. package/dist/utils/scoped-logger.js.map +1 -0
  187. package/dist/utils/stage-helpers.d.ts +51 -0
  188. package/dist/utils/stage-helpers.d.ts.map +1 -0
  189. package/dist/utils/stage-helpers.js +143 -0
  190. package/dist/utils/stage-helpers.js.map +1 -0
  191. package/dist/utils/stage-metadata.d.ts +62 -0
  192. package/dist/utils/stage-metadata.d.ts.map +1 -0
  193. package/dist/utils/stage-metadata.js +140 -0
  194. package/dist/utils/stage-metadata.js.map +1 -0
  195. package/dist/utils/timing.d.ts +115 -0
  196. package/dist/utils/timing.d.ts.map +1 -0
  197. package/dist/utils/timing.js +303 -0
  198. package/dist/utils/timing.js.map +1 -0
  199. package/dist/utils/urls.d.ts +20 -0
  200. package/dist/utils/urls.d.ts.map +1 -0
  201. package/dist/utils/urls.js +51 -0
  202. package/dist/utils/urls.js.map +1 -0
  203. package/package.json +72 -0
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Core primitive types for Arbitrum Governance Stage Tracking SDK
3
+ */
4
+ export type StageType = "PROPOSAL_CREATED" | "VOTING_ACTIVE" | "PROPOSAL_QUEUED" | "L2_TIMELOCK" | "L2_TO_L1_MESSAGE" | "L1_TIMELOCK" | "RETRYABLE_EXECUTED";
5
+ export type StageStatus = "NOT_STARTED" | "PENDING" | "READY" | "COMPLETED" | "FAILED" | "SKIPPED";
6
+ export type ChainType = "L1" | "L2" | "NOVA";
7
+ export type TargetChainType = "Arb1" | "Nova";
8
+ export interface StageTransaction {
9
+ hash: string;
10
+ blockNumber: number;
11
+ timestamp?: number;
12
+ chain: ChainType;
13
+ logIndex?: number;
14
+ targetChain?: TargetChainType;
15
+ /** Human-readable description for display (e.g., "queued", "executed") */
16
+ description?: string;
17
+ }
18
+ export interface StageTiming {
19
+ startedAt?: number;
20
+ eta?: number;
21
+ delaySeconds?: number;
22
+ expiresAt?: number;
23
+ }
24
+ export interface SearchHint {
25
+ startBlock: number;
26
+ endBlock?: number;
27
+ direction?: "forward" | "backward";
28
+ }
29
+ export interface EstimatedTimeRange {
30
+ minDate: Date;
31
+ maxDate: Date;
32
+ }
33
+ export interface VotingTimeRange {
34
+ votingStartDate: Date;
35
+ votingEndMinDate: Date;
36
+ votingEndMaxDate: Date;
37
+ }
38
+ export interface BlockBasedTiming {
39
+ startBlock: number;
40
+ endBlock: number;
41
+ currentL1Block: number;
42
+ }
43
+ export interface StageMetadata {
44
+ type: StageType;
45
+ estimatedDuration?: string;
46
+ }
47
+ export interface EstimatedTimesResult {
48
+ estimatedTimes: Map<StageType, EstimatedTimeRange>;
49
+ votingTimeRange: VotingTimeRange | null;
50
+ }
51
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,MAAM,SAAS,GACjB,kBAAkB,GAClB,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,aAAa,GACb,oBAAoB,CAAC;AAEzB,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AACnG,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAC7C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACpC;AAID,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,IAAI,CAAC;IACtB,gBAAgB,EAAE,IAAI,CAAC;IACvB,gBAAgB,EAAE,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IACnD,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Core primitive types for Arbitrum Governance Stage Tracking SDK
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Cross-chain types: L2→L1 messages and retryables
3
+ */
4
+ import { BigNumber } from "ethers";
5
+ import { TargetChainType } from "./core";
6
+ /**
7
+ * L2 to L1 message status
8
+ */
9
+ export type L2ToL1MessageStatus = "UNCONFIRMED" | "CONFIRMED" | "EXECUTED";
10
+ /**
11
+ * L2 to L1 message data
12
+ */
13
+ export interface L2ToL1MessageData {
14
+ messageId: string;
15
+ sender: string;
16
+ destination: string;
17
+ arbBlockNum: BigNumber;
18
+ ethBlockNum: BigNumber;
19
+ timestamp: BigNumber;
20
+ callvalue: BigNumber;
21
+ data: string;
22
+ status: L2ToL1MessageStatus;
23
+ l2TxHash: string;
24
+ l1TxHash?: string;
25
+ firstExecutableBlock?: number;
26
+ }
27
+ /**
28
+ * Retryable ticket status
29
+ */
30
+ export type RetryableStatus = "CREATED" | "REDEEMED" | "EXPIRED" | "FAILED";
31
+ /**
32
+ * Retryable ticket data
33
+ */
34
+ export interface RetryableData {
35
+ ticketId: string;
36
+ l1TxHash: string;
37
+ l2TxHash?: string;
38
+ from: string;
39
+ to: string;
40
+ value: BigNumber;
41
+ data: string;
42
+ status: RetryableStatus;
43
+ createdAtBlock: number;
44
+ redeemedAtBlock?: number;
45
+ }
46
+ /**
47
+ * Retryable ticket info for stage data
48
+ */
49
+ export interface RetryableTicketInfo {
50
+ l2TxHash: string;
51
+ targetChain: TargetChainType;
52
+ status: string;
53
+ }
54
+ /**
55
+ * Retryable redemption info for stage data
56
+ */
57
+ export interface RetryableRedemptionInfo {
58
+ l2TxHash: string;
59
+ targetChain: TargetChainType;
60
+ txHash: string;
61
+ blockNumber: number;
62
+ }
63
+ /**
64
+ * Retryable creation detail
65
+ */
66
+ export interface RetryableCreationDetail {
67
+ index: number;
68
+ targetChain: TargetChainType;
69
+ l2TxHash: string;
70
+ }
71
+ /**
72
+ * Retryable redemption detail
73
+ */
74
+ export interface RetryableRedemptionDetail {
75
+ index: number;
76
+ targetChain: TargetChainType;
77
+ status: string;
78
+ l2TxHash: string | null;
79
+ }
80
+ //# sourceMappingURL=cross-chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-chain.d.ts","sourceRoot":"","sources":["../../src/types/cross-chain.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,SAAS,CAAC;IACvB,WAAW,EAAE,SAAS,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,eAAe,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,eAAe,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,eAAe,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,eAAe,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Cross-chain types: L2→L1 messages and retryables
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=cross-chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-chain.js","sourceRoot":"","sources":["../../src/types/cross-chain.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Election-related types for Security Council elections
3
+ */
4
+ import { PreparedTransaction } from "./tracking";
5
+ /**
6
+ * Cohort identifier for Security Council elections
7
+ */
8
+ export type CohortType = 0 | 1;
9
+ /**
10
+ * Election phase in the Security Council election lifecycle
11
+ */
12
+ export type ElectionPhase = "NOT_STARTED" | "NOMINEE_SELECTION" | "VETTING_PERIOD" | "MEMBER_ELECTION" | "PENDING_EXECUTION" | "COMPLETED";
13
+ /**
14
+ * Governor proposal state (matches OpenZeppelin GovernorCountingSimple)
15
+ */
16
+ export type GovernorProposalState = "Pending" | "Active" | "Canceled" | "Defeated" | "Succeeded" | "Queued" | "Expired" | "Executed";
17
+ /**
18
+ * Status of an election proposal
19
+ */
20
+ export interface ElectionProposalStatus {
21
+ electionIndex: number;
22
+ phase: ElectionPhase;
23
+ cohort: CohortType;
24
+ nomineeProposalId: string | null;
25
+ memberProposalId: string | null;
26
+ nomineeProposalState: GovernorProposalState | null;
27
+ memberProposalState: GovernorProposalState | null;
28
+ compliantNomineeCount: number;
29
+ targetNomineeCount: number;
30
+ vettingDeadline: number | null;
31
+ isInVettingPeriod: boolean;
32
+ canProceedToMemberPhase: boolean;
33
+ }
34
+ /**
35
+ * Election status information
36
+ */
37
+ export interface ElectionStatus {
38
+ electionCount: number;
39
+ cohort: CohortType;
40
+ nextElectionTimestamp: number;
41
+ currentL1Timestamp: number;
42
+ canCreateElection: boolean;
43
+ secondsUntilElection: number;
44
+ timeUntilElection: string;
45
+ }
46
+ /**
47
+ * Result of checking Security Council election status
48
+ */
49
+ export interface ElectionCheckResult {
50
+ status: ElectionStatus;
51
+ canCreate: boolean;
52
+ canTriggerMember: boolean;
53
+ currentElection?: ElectionProposalStatus;
54
+ prepared: {
55
+ createElection?: PreparedTransaction;
56
+ triggerMember?: PreparedTransaction;
57
+ };
58
+ }
59
+ //# sourceMappingURL=election.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"election.d.ts","sourceRoot":"","sources":["../../src/types/election.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,aAAa,GACb,mBAAmB,GACnB,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAAW,GACX,QAAQ,GACR,SAAS,GACT,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oBAAoB,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACnD,mBAAmB,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAClD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,QAAQ,EAAE;QACR,cAAc,CAAC,EAAE,mBAAmB,CAAC;QACrC,aAAa,CAAC,EAAE,mBAAmB,CAAC;KACrC,CAAC;CACH"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Election-related types for Security Council elections
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=election.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"election.js","sourceRoot":"","sources":["../../src/types/election.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Governor-related types for Arbitrum Governance
3
+ */
4
+ import { BigNumber } from "ethers";
5
+ /**
6
+ * Proposal types in Arbitrum governance
7
+ *
8
+ * Naming aligned with governance documentation:
9
+ * - CONSTITUTIONAL: Core Governor proposals (require L1 round-trip)
10
+ * - NON_CONSTITUTIONAL: Treasury Governor proposals (L2 only)
11
+ * - ELECTION_*: Security Council election governors
12
+ *
13
+ * @see https://docs.arbitrum.foundation/concepts/lifecycle-anatomy-aip-proposal
14
+ */
15
+ export type ProposalType = "CONSTITUTIONAL" | "NON_CONSTITUTIONAL" | "ELECTION_NOMINEE" | "ELECTION_MEMBER" | "UNKNOWN";
16
+ /**
17
+ * Governor capability determines the proposal execution path
18
+ */
19
+ export type GovernorCapability = "WITH_TIMELOCK" | "WITH_VETTING" | "NO_TIMELOCK";
20
+ /**
21
+ * Proposal state from the governor contract
22
+ */
23
+ export type ProposalState = "Pending" | "Active" | "Canceled" | "Defeated" | "Succeeded" | "Queued" | "Expired" | "Executed";
24
+ /**
25
+ * Parsed proposal data from ProposalCreated event
26
+ */
27
+ export interface ProposalData {
28
+ proposalId: string;
29
+ proposer: string;
30
+ targets: string[];
31
+ values: BigNumber[];
32
+ signatures: string[];
33
+ calldatas: string[];
34
+ startBlock: BigNumber;
35
+ endBlock: BigNumber;
36
+ description: string;
37
+ creationBlock: number;
38
+ creationTxHash: string;
39
+ }
40
+ /**
41
+ * Voting information for a proposal
42
+ */
43
+ export interface VotingData {
44
+ startBlock: BigNumber;
45
+ endBlock: BigNumber;
46
+ deadline: BigNumber;
47
+ forVotes: BigNumber;
48
+ againstVotes: BigNumber;
49
+ abstainVotes: BigNumber;
50
+ quorum: BigNumber;
51
+ hasReachedQuorum: boolean;
52
+ isVotingPeriodOver: boolean;
53
+ extendedDeadline?: BigNumber;
54
+ vettingDeadline?: BigNumber;
55
+ isVettingPeriod?: boolean;
56
+ }
57
+ /**
58
+ * Parsed arguments from ProposalCreated event
59
+ */
60
+ export interface ProposalCreatedEventArgs {
61
+ proposalId: BigNumber;
62
+ proposer: string;
63
+ targets: string[];
64
+ values: BigNumber[];
65
+ signatures: string[];
66
+ calldatas: string[];
67
+ startBlock: BigNumber;
68
+ endBlock: BigNumber;
69
+ description: string;
70
+ }
71
+ //# sourceMappingURL=governor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governor.d.ts","sourceRoot":"","sources":["../../src/types/governor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,oBAAoB,GACpB,kBAAkB,GAClB,iBAAiB,GACjB,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG,cAAc,GAAG,aAAa,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAAW,GACX,QAAQ,GACR,SAAS,GACT,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,EAAE,SAAS,CAAC;IACxB,YAAY,EAAE,SAAS,CAAC;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Governor-related types for Arbitrum Governance
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=governor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governor.js","sourceRoot":"","sources":["../../src/types/governor.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Type definitions for Arbitrum Governance Stage Tracking SDK
3
+ *
4
+ * Organized by domain:
5
+ * - core: Primitives (StageType, ChainType, timing/ETA types)
6
+ * - governor: Governor, proposal, voting types
7
+ * - timelock: Timelock operations and state
8
+ * - cross-chain: L2→L1 messages and retryables
9
+ * - stages: Stage data types and TrackedStage
10
+ * - tracking: Context, results, checkpoints, execution
11
+ * - config: TrackerOptions, ChunkingConfig
12
+ * - election: Security Council election types
13
+ */
14
+ export { StageType, StageStatus, ChainType, TargetChainType, StageTransaction, StageTiming, SearchHint, EstimatedTimeRange, VotingTimeRange, BlockBasedTiming, StageMetadata, EstimatedTimesResult, } from "./core";
15
+ export { ProposalType, GovernorCapability, ProposalState, ProposalData, VotingData, ProposalCreatedEventArgs, } from "./governor";
16
+ export { TimelockOperationState, SerializedCallScheduledData, CallScheduledData, CallExecutedData, TimelockParams, TimelockBatchParams, TimelockState, OperationState, TimelockLink, } from "./timelock";
17
+ export { L2ToL1MessageStatus, L2ToL1MessageData, RetryableStatus, RetryableData, RetryableTicketInfo, RetryableRedemptionInfo, RetryableCreationDetail, RetryableRedemptionDetail, } from "./cross-chain";
18
+ export { BaseStageData, ProposalCreatedData, VotingActiveData, ProposalQueuedData, BaseTimelockData, TimelockStageData, L2TimelockData, L1TimelockData, L2ToL1MessageStageData, RetryableStageData, StageDataMap, TrackedStageData, TrackedStage, TypedTrackedStage, isStageType, getStageData, } from "./stages";
19
+ export { PrepareOptions, PrepareResult, PreparedTransaction, ExecutionResult, GovernorTrackingInput, TimelockTrackingInput, DiscoveryTrackingInput, TrackingInput, StageTrackingContext, NextStageHints, StageTrackResult, StageTrackResultWith, DiscoveryWatermarks, DiscoveryTargets, TrackingCheckpoint, TrackerStats, TrackingResult, } from "./tracking";
20
+ export { ChunkingConfig, RetryConfig, TrackingProgress, OnProgressCallback, TrackerOptions, CacheAdapter, } from "./config";
21
+ export { CohortType, ElectionPhase, GovernorProposalState, ElectionProposalStatus, ElectionStatus, ElectionCheckResult, } from "./election";
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,SAAS,EACT,WAAW,EACX,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * Type definitions for Arbitrum Governance Stage Tracking SDK
4
+ *
5
+ * Organized by domain:
6
+ * - core: Primitives (StageType, ChainType, timing/ETA types)
7
+ * - governor: Governor, proposal, voting types
8
+ * - timelock: Timelock operations and state
9
+ * - cross-chain: L2→L1 messages and retryables
10
+ * - stages: Stage data types and TrackedStage
11
+ * - tracking: Context, results, checkpoints, execution
12
+ * - config: TrackerOptions, ChunkingConfig
13
+ * - election: Security Council election types
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.getStageData = exports.isStageType = void 0;
17
+ // Stage data types
18
+ var stages_1 = require("./stages");
19
+ Object.defineProperty(exports, "isStageType", { enumerable: true, get: function () { return stages_1.isStageType; } });
20
+ Object.defineProperty(exports, "getStageData", { enumerable: true, get: function () { return stages_1.getStageData; } });
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAqDH,mBAAmB;AACnB,mCAiBkB;AAFhB,qGAAA,WAAW,OAAA;AACX,sGAAA,YAAY,OAAA"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Stage data types and TrackedStage definitions
3
+ */
4
+ import { ChainType, StageType, StageStatus, StageTransaction, StageTiming, TargetChainType } from "./core";
5
+ import { SerializedCallScheduledData } from "./timelock";
6
+ import { RetryableTicketInfo, RetryableRedemptionInfo, RetryableCreationDetail, RetryableRedemptionDetail } from "./cross-chain";
7
+ /**
8
+ * Base stage data with common fields
9
+ */
10
+ export interface BaseStageData {
11
+ reason?: string;
12
+ skipReason?: string;
13
+ note?: string;
14
+ message?: string;
15
+ fastPath?: boolean;
16
+ }
17
+ /**
18
+ * Data for PROPOSAL_CREATED stage
19
+ */
20
+ export interface ProposalCreatedData extends BaseStageData {
21
+ proposalId?: string;
22
+ proposer: string;
23
+ description: string;
24
+ startBlock: string;
25
+ endBlock: string;
26
+ targetCount?: number;
27
+ targets?: string[];
28
+ values?: string[];
29
+ signatures?: string[];
30
+ calldatas?: string[];
31
+ proposalType?: string;
32
+ }
33
+ /**
34
+ * Data for VOTING_ACTIVE stage
35
+ */
36
+ export interface VotingActiveData extends BaseStageData {
37
+ forVotes: string;
38
+ againstVotes: string;
39
+ abstainVotes: string;
40
+ quorum: string;
41
+ quorumReached: boolean;
42
+ deadline: string;
43
+ extendedDeadline?: string;
44
+ wasExtended?: boolean;
45
+ extensionPossible?: boolean;
46
+ hasVettingPeriod?: boolean;
47
+ vettingDeadline?: string;
48
+ isVettingActive?: boolean;
49
+ proposalState?: string;
50
+ startBlock?: string;
51
+ currentBlock?: string;
52
+ }
53
+ /**
54
+ * Data for PROPOSAL_QUEUED stage
55
+ */
56
+ export interface ProposalQueuedData extends BaseStageData {
57
+ proposalState: string;
58
+ timelockAddress?: string;
59
+ operationId?: string;
60
+ eta?: number;
61
+ callCount?: number;
62
+ canQueue?: boolean;
63
+ governorAddress?: string;
64
+ proposalId?: string;
65
+ targets?: string[];
66
+ values?: string[];
67
+ calldatas?: string[];
68
+ description?: string;
69
+ callScheduledData?: SerializedCallScheduledData[];
70
+ }
71
+ /**
72
+ * Base for all timelock stages
73
+ */
74
+ export interface BaseTimelockData extends BaseStageData {
75
+ operationId: string;
76
+ timelockAddress: string;
77
+ callScheduledData: SerializedCallScheduledData[];
78
+ eta?: number;
79
+ state?: string;
80
+ waitingForDelay?: boolean;
81
+ }
82
+ /**
83
+ * Common data for all timelock stages (L2 and L1)
84
+ */
85
+ export interface TimelockStageData extends BaseTimelockData {
86
+ isSecurityCouncilOperation?: boolean;
87
+ securityCouncilMembers?: string[];
88
+ securityCouncilNonce?: string;
89
+ salt?: string;
90
+ predecessor?: string;
91
+ description?: string;
92
+ /** Whether operation uses scheduleBatch (true) or schedule (false) */
93
+ isBatchOperation?: boolean;
94
+ }
95
+ /** Data for L2 timelock stages */
96
+ export type L2TimelockData = TimelockStageData;
97
+ /** Data for L1 timelock stages */
98
+ export type L1TimelockData = TimelockStageData;
99
+ /**
100
+ * Data for L2_TO_L1_MESSAGE stage
101
+ */
102
+ export interface L2ToL1MessageStageData extends BaseStageData {
103
+ messageCount: number;
104
+ l2Block: number;
105
+ l2TxHash: string;
106
+ messagePositions: string[];
107
+ firstExecutableBlock?: number;
108
+ currentL1Block?: number;
109
+ status?: string;
110
+ messageDetails?: Array<{
111
+ index: number;
112
+ status: string;
113
+ }>;
114
+ hasMultipleMessages?: boolean;
115
+ /** L2ToL1Tx event from Arbitrum SDK (contains message data for salt decoding) */
116
+ l2ToL1TxEvent?: any;
117
+ }
118
+ /**
119
+ * Data for RETRYABLE stages (CREATED and REDEEMED)
120
+ */
121
+ export interface RetryableStageData extends BaseStageData {
122
+ ticketCount?: number;
123
+ /** All target chains for retryables (can be both Arb1 and Nova) */
124
+ targetChains?: TargetChainType[];
125
+ l2TxHash?: string;
126
+ l1Block?: number;
127
+ tickets?: RetryableTicketInfo[];
128
+ redemptions?: RetryableRedemptionInfo[];
129
+ creationDetails?: RetryableCreationDetail[];
130
+ redemptionDetails?: RetryableRedemptionDetail[];
131
+ statuses?: string[];
132
+ redeemedCount?: number;
133
+ pendingCount?: number;
134
+ txNotIndexedYet?: boolean;
135
+ }
136
+ /**
137
+ * Maps each StageType to its corresponding data interface.
138
+ *
139
+ * Note: The consolidated stages (L2_TIMELOCK, L2_TO_L1_MESSAGE, L1_TIMELOCK)
140
+ * use unified data types that contain all fields needed across their
141
+ * sub-states (PENDING, READY, COMPLETED).
142
+ */
143
+ export interface StageDataMap {
144
+ PROPOSAL_CREATED: ProposalCreatedData;
145
+ VOTING_ACTIVE: VotingActiveData;
146
+ PROPOSAL_QUEUED: ProposalQueuedData;
147
+ L2_TIMELOCK: L2TimelockData;
148
+ L2_TO_L1_MESSAGE: L2ToL1MessageStageData;
149
+ L1_TIMELOCK: L1TimelockData;
150
+ RETRYABLE_EXECUTED: RetryableStageData;
151
+ }
152
+ /**
153
+ * Union of all stage data types
154
+ */
155
+ export type TrackedStageData = Partial<ProposalCreatedData & VotingActiveData & ProposalQueuedData & L2TimelockData & L2ToL1MessageStageData & RetryableStageData> & BaseStageData & {
156
+ isElection?: boolean;
157
+ waitingForVetting?: boolean;
158
+ proposalState?: string;
159
+ currentL1Block?: number;
160
+ };
161
+ /**
162
+ * A tracked stage in the lifecycle
163
+ */
164
+ export interface TrackedStage {
165
+ type: StageType;
166
+ status: StageStatus;
167
+ chain: ChainType;
168
+ transactions: StageTransaction[];
169
+ data: TrackedStageData;
170
+ timing?: StageTiming;
171
+ executable?: boolean;
172
+ error?: string;
173
+ }
174
+ /**
175
+ * Type-safe tracked stage with properly typed data field
176
+ */
177
+ export type TypedTrackedStage<T extends StageType> = Omit<TrackedStage, "type" | "data"> & {
178
+ type: T;
179
+ data: StageDataMap[T];
180
+ };
181
+ /**
182
+ * Type guard to check if a stage is of a specific type
183
+ */
184
+ export declare function isStageType<T extends StageType>(stage: TrackedStage, type: T): boolean;
185
+ /**
186
+ * Safely get typed stage data, returning null if types don't match
187
+ */
188
+ export declare function getStageData<T extends StageType>(stage: TrackedStage, expectedType: T): StageDataMap[T] | null;
189
+ //# sourceMappingURL=stages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stages.d.ts","sourceRoot":"","sources":["../../src/types/stages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * Stage data types and TrackedStage definitions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isStageType = isStageType;
7
+ exports.getStageData = getStageData;
8
+ /**
9
+ * Type guard to check if a stage is of a specific type
10
+ */
11
+ function isStageType(stage, type) {
12
+ return stage.type === type;
13
+ }
14
+ /**
15
+ * Safely get typed stage data, returning null if types don't match
16
+ */
17
+ function getStageData(stage, expectedType) {
18
+ if (stage.type !== expectedType) {
19
+ return null;
20
+ }
21
+ return stage.data;
22
+ }
23
+ //# sourceMappingURL=stages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stages.js","sourceRoot":"","sources":["../../src/types/stages.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAsNH,kCAEC;AAKD,oCAQC;AAlBD;;GAEG;AACH,SAAgB,WAAW,CAAsB,KAAmB,EAAE,IAAO;IAC3E,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAC1B,KAAmB,EACnB,YAAe;IAEf,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,IAAkC,CAAC;AAClD,CAAC"}