@gzeoneth/gov-tracker 0.2.1-beta.ec7d8a7 → 0.2.1-beta.f5af747

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 (187) hide show
  1. package/README.md +126 -80
  2. package/dist/abis.d.ts +3 -0
  3. package/dist/abis.d.ts.map +1 -1
  4. package/dist/abis.js +30 -2
  5. package/dist/abis.js.map +1 -1
  6. package/dist/calldata/index.d.ts +1 -1
  7. package/dist/calldata/index.d.ts.map +1 -1
  8. package/dist/calldata/index.js.map +1 -1
  9. package/dist/calldata/parameter-decoder.d.ts.map +1 -1
  10. package/dist/calldata/parameter-decoder.js +8 -1
  11. package/dist/calldata/parameter-decoder.js.map +1 -1
  12. package/dist/calldata/signature-lookup.d.ts +17 -2
  13. package/dist/calldata/signature-lookup.d.ts.map +1 -1
  14. package/dist/calldata/signature-lookup.js +20 -2
  15. package/dist/calldata/signature-lookup.js.map +1 -1
  16. package/dist/cli/cli.js +266 -27
  17. package/dist/cli/cli.js.map +1 -1
  18. package/dist/cli/lib/cli.d.ts +50 -2
  19. package/dist/cli/lib/cli.d.ts.map +1 -1
  20. package/dist/cli/lib/cli.js +378 -66
  21. package/dist/cli/lib/cli.js.map +1 -1
  22. package/dist/cli/lib/json-state.d.ts +23 -0
  23. package/dist/cli/lib/json-state.d.ts.map +1 -1
  24. package/dist/cli/lib/json-state.js +51 -4
  25. package/dist/cli/lib/json-state.js.map +1 -1
  26. package/dist/constants.d.ts +9 -1
  27. package/dist/constants.d.ts.map +1 -1
  28. package/dist/constants.js +16 -1
  29. package/dist/constants.js.map +1 -1
  30. package/dist/data/bundled-cache.json +3720 -1240
  31. package/dist/deduplication.d.ts +132 -0
  32. package/dist/deduplication.d.ts.map +1 -0
  33. package/dist/deduplication.js +270 -0
  34. package/dist/deduplication.js.map +1 -0
  35. package/dist/discovery/governor-discovery.d.ts.map +1 -1
  36. package/dist/discovery/governor-discovery.js +50 -35
  37. package/dist/discovery/governor-discovery.js.map +1 -1
  38. package/dist/discovery/timelock-discovery.d.ts +15 -6
  39. package/dist/discovery/timelock-discovery.d.ts.map +1 -1
  40. package/dist/discovery/timelock-discovery.js +27 -11
  41. package/dist/discovery/timelock-discovery.js.map +1 -1
  42. package/dist/election/contracts.d.ts +8 -0
  43. package/dist/election/contracts.d.ts.map +1 -0
  44. package/dist/election/contracts.js +28 -0
  45. package/dist/election/contracts.js.map +1 -0
  46. package/dist/election/details.d.ts +5 -0
  47. package/dist/election/details.d.ts.map +1 -0
  48. package/dist/election/details.js +95 -0
  49. package/dist/election/details.js.map +1 -0
  50. package/dist/election/index.d.ts +11 -0
  51. package/dist/election/index.d.ts.map +1 -0
  52. package/dist/election/index.js +45 -0
  53. package/dist/election/index.js.map +1 -0
  54. package/dist/election/params.d.ts +13 -0
  55. package/dist/election/params.d.ts.map +1 -0
  56. package/dist/election/params.js +93 -0
  57. package/dist/election/params.js.map +1 -0
  58. package/dist/election/participants.d.ts +6 -0
  59. package/dist/election/participants.d.ts.map +1 -0
  60. package/dist/election/participants.js +102 -0
  61. package/dist/election/participants.js.map +1 -0
  62. package/dist/election/prepare.d.ts +10 -0
  63. package/dist/election/prepare.d.ts.map +1 -0
  64. package/dist/election/prepare.js +52 -0
  65. package/dist/election/prepare.js.map +1 -0
  66. package/dist/election/proposal-ids.d.ts +18 -0
  67. package/dist/election/proposal-ids.d.ts.map +1 -0
  68. package/dist/election/proposal-ids.js +77 -0
  69. package/dist/election/proposal-ids.js.map +1 -0
  70. package/dist/election/status.d.ts +6 -0
  71. package/dist/election/status.d.ts.map +1 -0
  72. package/dist/election/status.js +86 -0
  73. package/dist/election/status.js.map +1 -0
  74. package/dist/election/tracking.d.ts +28 -0
  75. package/dist/election/tracking.d.ts.map +1 -0
  76. package/dist/election/tracking.js +412 -0
  77. package/dist/election/tracking.js.map +1 -0
  78. package/dist/index.d.ts +29 -7
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +81 -8
  81. package/dist/index.js.map +1 -1
  82. package/dist/stages/builder.d.ts +4 -0
  83. package/dist/stages/builder.d.ts.map +1 -1
  84. package/dist/stages/builder.js +7 -0
  85. package/dist/stages/builder.js.map +1 -1
  86. package/dist/stages/l2-to-l1-message.d.ts +3 -1
  87. package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
  88. package/dist/stages/l2-to-l1-message.js +6 -6
  89. package/dist/stages/l2-to-l1-message.js.map +1 -1
  90. package/dist/stages/proposal-created.d.ts +1 -0
  91. package/dist/stages/proposal-created.d.ts.map +1 -1
  92. package/dist/stages/proposal-created.js +1 -0
  93. package/dist/stages/proposal-created.js.map +1 -1
  94. package/dist/stages/proposal-queued.d.ts +1 -0
  95. package/dist/stages/proposal-queued.d.ts.map +1 -1
  96. package/dist/stages/proposal-queued.js +3 -1
  97. package/dist/stages/proposal-queued.js.map +1 -1
  98. package/dist/stages/retryables.js +2 -2
  99. package/dist/stages/retryables.js.map +1 -1
  100. package/dist/stages/timelock.d.ts +3 -1
  101. package/dist/stages/timelock.d.ts.map +1 -1
  102. package/dist/stages/timelock.js +11 -7
  103. package/dist/stages/timelock.js.map +1 -1
  104. package/dist/stages/utils.d.ts +4 -7
  105. package/dist/stages/utils.d.ts.map +1 -1
  106. package/dist/stages/utils.js +31 -22
  107. package/dist/stages/utils.js.map +1 -1
  108. package/dist/stages/voting.d.ts.map +1 -1
  109. package/dist/stages/voting.js +5 -4
  110. package/dist/stages/voting.js.map +1 -1
  111. package/dist/tracker/cache.d.ts +10 -6
  112. package/dist/tracker/cache.d.ts.map +1 -1
  113. package/dist/tracker/cache.js +36 -13
  114. package/dist/tracker/cache.js.map +1 -1
  115. package/dist/tracker/checkpoint-helpers.d.ts +63 -0
  116. package/dist/tracker/checkpoint-helpers.d.ts.map +1 -0
  117. package/dist/tracker/checkpoint-helpers.js +176 -0
  118. package/dist/tracker/checkpoint-helpers.js.map +1 -0
  119. package/dist/tracker/discovery.d.ts +40 -9
  120. package/dist/tracker/discovery.d.ts.map +1 -1
  121. package/dist/tracker/discovery.js +152 -15
  122. package/dist/tracker/discovery.js.map +1 -1
  123. package/dist/tracker/execute.d.ts.map +1 -1
  124. package/dist/tracker/execute.js +1 -25
  125. package/dist/tracker/execute.js.map +1 -1
  126. package/dist/tracker/pipeline.d.ts.map +1 -1
  127. package/dist/tracker/pipeline.js +26 -11
  128. package/dist/tracker/pipeline.js.map +1 -1
  129. package/dist/tracker/query.d.ts +1 -0
  130. package/dist/tracker/query.d.ts.map +1 -1
  131. package/dist/tracker/query.js +14 -61
  132. package/dist/tracker/query.js.map +1 -1
  133. package/dist/tracker/state.d.ts +0 -10
  134. package/dist/tracker/state.d.ts.map +1 -1
  135. package/dist/tracker/state.js +1 -28
  136. package/dist/tracker/state.js.map +1 -1
  137. package/dist/tracker.d.ts +69 -4
  138. package/dist/tracker.d.ts.map +1 -1
  139. package/dist/tracker.js +274 -13
  140. package/dist/tracker.js.map +1 -1
  141. package/dist/types/config.d.ts +49 -0
  142. package/dist/types/config.d.ts.map +1 -1
  143. package/dist/types/core.d.ts +4 -2
  144. package/dist/types/core.d.ts.map +1 -1
  145. package/dist/types/election.d.ts +91 -0
  146. package/dist/types/election.d.ts.map +1 -1
  147. package/dist/types/index.d.ts +5 -7
  148. package/dist/types/index.d.ts.map +1 -1
  149. package/dist/types/index.js +2 -3
  150. package/dist/types/index.js.map +1 -1
  151. package/dist/types/stages.d.ts +70 -1
  152. package/dist/types/stages.d.ts.map +1 -1
  153. package/dist/types/stages.js.map +1 -1
  154. package/dist/types/tracking.d.ts +30 -4
  155. package/dist/types/tracking.d.ts.map +1 -1
  156. package/dist/utils/block-cache.d.ts +50 -0
  157. package/dist/utils/block-cache.d.ts.map +1 -0
  158. package/dist/utils/block-cache.js +80 -0
  159. package/dist/utils/block-cache.js.map +1 -0
  160. package/dist/utils/formatters.d.ts +91 -0
  161. package/dist/utils/formatters.d.ts.map +1 -0
  162. package/dist/utils/formatters.js +327 -0
  163. package/dist/utils/formatters.js.map +1 -0
  164. package/dist/utils/multicall.d.ts +52 -0
  165. package/dist/utils/multicall.d.ts.map +1 -0
  166. package/dist/utils/multicall.js +75 -0
  167. package/dist/utils/multicall.js.map +1 -0
  168. package/dist/utils/salt-computation.d.ts.map +1 -1
  169. package/dist/utils/salt-computation.js +33 -7
  170. package/dist/utils/salt-computation.js.map +1 -1
  171. package/dist/utils/stage-metadata.d.ts +0 -20
  172. package/dist/utils/stage-metadata.d.ts.map +1 -1
  173. package/dist/utils/stage-metadata.js +29 -44
  174. package/dist/utils/stage-metadata.js.map +1 -1
  175. package/dist/utils/timing.d.ts +13 -0
  176. package/dist/utils/timing.d.ts.map +1 -1
  177. package/dist/utils/timing.js +37 -1
  178. package/dist/utils/timing.js.map +1 -1
  179. package/package.json +10 -2
  180. package/dist/election.d.ts +0 -172
  181. package/dist/election.d.ts.map +0 -1
  182. package/dist/election.js +0 -467
  183. package/dist/election.js.map +0 -1
  184. package/dist/types/cross-chain.d.ts +0 -24
  185. package/dist/types/cross-chain.d.ts.map +0 -1
  186. package/dist/types/cross-chain.js +0 -6
  187. package/dist/types/cross-chain.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IACzC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;CAChF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IACzC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/E,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
@@ -47,8 +47,8 @@ export declare function isL2Chain(chain: Chain): chain is L2Chain;
47
47
  * Get human-readable display name for a chain
48
48
  */
49
49
  export declare function getChainDisplayName(chain: Chain): string;
50
- export type StageType = "PROPOSAL_CREATED" | "VOTING_ACTIVE" | "PROPOSAL_QUEUED" | "L2_TIMELOCK" | "L2_TO_L1_MESSAGE" | "L1_TIMELOCK" | "RETRYABLE_EXECUTED";
51
- export type StageStatus = "NOT_STARTED" | "PENDING" | "READY" | "COMPLETED" | "FAILED" | "SKIPPED";
50
+ export type StageType = "PROPOSAL_CREATED" | "VOTING_ACTIVE" | "PROPOSAL_QUEUED" | "L2_TIMELOCK" | "L2_TO_L1_MESSAGE" | "L1_TIMELOCK" | "RETRYABLE_EXECUTED" | "CREATE_ELECTION" | "NOMINEE_ELECTION" | "NOMINEE_VETTING" | "MEMBER_ELECTION";
51
+ export type StageStatus = "NOT_STARTED" | "PENDING" | "READY" | "COMPLETED" | "FAILED" | "SKIPPED" | "CANCELED";
52
52
  export interface StageTransaction {
53
53
  hash: string;
54
54
  blockNumber: number;
@@ -72,5 +72,7 @@ export interface SearchHint {
72
72
  startBlock: number;
73
73
  endBlock?: number;
74
74
  direction?: "forward" | "backward";
75
+ /** Override chunk size for this search (uses chain-appropriate default if not specified) */
76
+ chunkSize?: number;
75
77
  }
76
78
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,GAAG,MAAM,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAI1C,CAAC;AAWX;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAEtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAGhE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,UAAU,CAE9D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,OAAO,CAExD;AAYD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAExD;AAID,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;AAEnG,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,GAAG,MAAM,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAI1C,CAAC;AAWX;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,CAEtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAGhE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,UAAU,CAE9D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,OAAO,CAExD;AAYD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAExD;AAID,MAAM,MAAM,SAAS,GACjB,kBAAkB,GAClB,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,aAAa,GACb,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,SAAS,GACT,OAAO,GACP,WAAW,GACX,QAAQ,GACR,SAAS,GACT,UAAU,CAAC;AAEf,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,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;IACnC,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -1,8 +1,81 @@
1
1
  /**
2
2
  * Election-related types for Security Council elections
3
3
  */
4
+ import { BigNumber } from "ethers";
4
5
  import { ProposalState } from "./governor";
5
6
  import { PreparedTransaction } from "./tracking";
7
+ /**
8
+ * A contender who has registered for the nominee election
9
+ */
10
+ export interface ElectionContender {
11
+ address: string;
12
+ /** Block number when they registered as contender */
13
+ registeredAtBlock: number;
14
+ /** Transaction hash of ContenderAdded event */
15
+ registrationTxHash: string;
16
+ }
17
+ /**
18
+ * A nominee who received enough votes to qualify
19
+ */
20
+ export interface ElectionNominee {
21
+ address: string;
22
+ /** Total votes received from all voters */
23
+ votesReceived: BigNumber;
24
+ /** Whether excluded by the nominee vetter */
25
+ isExcluded: boolean;
26
+ /** Block when became nominee (crossed vote threshold) */
27
+ nominatedAtBlock?: number;
28
+ /** Block when excluded (if applicable) */
29
+ excludedAtBlock?: number;
30
+ /** Transaction hash of exclusion (if applicable) */
31
+ exclusionTxHash?: string;
32
+ }
33
+ /**
34
+ * Nominee's standing in the member election
35
+ */
36
+ export interface MemberElectionNominee {
37
+ address: string;
38
+ /** Total weighted votes received */
39
+ weightReceived: BigNumber;
40
+ /** Whether in top 6 (will be elected) */
41
+ isWinner: boolean;
42
+ /** Rank by weight (1 = highest) */
43
+ rank: number;
44
+ }
45
+ /**
46
+ * Detailed nominee election information
47
+ */
48
+ export interface NomineeElectionDetails {
49
+ proposalId: string;
50
+ electionIndex: number;
51
+ /** All registered contenders */
52
+ contenders: ElectionContender[];
53
+ /** All nominees (including excluded) */
54
+ nominees: ElectionNominee[];
55
+ /** Compliant (non-excluded) nominees */
56
+ compliantNominees: ElectionNominee[];
57
+ /** Excluded nominees with reasons */
58
+ excludedNominees: ElectionNominee[];
59
+ /** Vote threshold to become nominee */
60
+ quorumThreshold: BigNumber;
61
+ /** Target number of nominees needed */
62
+ targetNomineeCount: number;
63
+ }
64
+ /**
65
+ * Detailed member election information
66
+ */
67
+ export interface MemberElectionDetails {
68
+ proposalId: string;
69
+ electionIndex: number;
70
+ /** All nominees with their weighted votes */
71
+ nominees: MemberElectionNominee[];
72
+ /** Top 6 winners who will be elected */
73
+ winners: string[];
74
+ /** Full weight voting deadline block */
75
+ fullWeightDeadline: number;
76
+ /** Proposal deadline block */
77
+ proposalDeadline: number;
78
+ }
6
79
  /**
7
80
  * Cohort identifier for Security Council elections
8
81
  */
@@ -27,6 +100,22 @@ export interface ElectionProposalStatus {
27
100
  vettingDeadline: number | null;
28
101
  isInVettingPeriod: boolean;
29
102
  canProceedToMemberPhase: boolean;
103
+ /** True when member election succeeded and can be executed to install new council */
104
+ canExecuteMember: boolean;
105
+ /** Stage tracking fields (v0.3.0+) */
106
+ stages?: import("./stages").TrackedStage[];
107
+ isFailed?: boolean;
108
+ failureReason?: string;
109
+ /** L2 timelock operationId from member election execution */
110
+ timelockOperationId?: string;
111
+ /** Transaction hashes for each phase */
112
+ creationTxHash?: string;
113
+ nomineeExecuteTxHash?: string;
114
+ memberExecuteTxHash?: string;
115
+ /** Fields for next election (not yet created) - used for createElection preparation */
116
+ canCreateElection?: boolean;
117
+ secondsUntilElection?: number;
118
+ timeUntilElection?: string;
30
119
  }
31
120
  /**
32
121
  * Election status information
@@ -47,10 +136,12 @@ export interface ElectionCheckResult {
47
136
  status: ElectionStatus;
48
137
  canCreate: boolean;
49
138
  canTriggerMember: boolean;
139
+ canExecuteMember: boolean;
50
140
  currentElection?: ElectionProposalStatus;
51
141
  prepared: {
52
142
  createElection?: PreparedTransaction;
53
143
  triggerMember?: PreparedTransaction;
144
+ executeMember?: PreparedTransaction;
54
145
  };
55
146
  }
56
147
  //# sourceMappingURL=election.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"election.d.ts","sourceRoot":"","sources":["../../src/types/election.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,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,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,aAAa,GAAG,IAAI,CAAC;IAC3C,mBAAmB,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1C,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"}
1
+ {"version":3,"file":"election.d.ts","sourceRoot":"","sources":["../../src/types/election.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,7 @@
5
5
  * - core: Primitives (StageType, Chain, timing/ETA types)
6
6
  * - governor: Governor, proposal, voting types
7
7
  * - timelock: Timelock operations and state
8
- * - cross-chain: L2→L1 messages and retryables
9
- * - stages: Stage data types and TrackedStage
8
+ * - stages: Stage data types, TrackedStage, cross-chain types
10
9
  * - tracking: Context, results, checkpoints, execution
11
10
  * - config: TrackerOptions, ChunkingConfig
12
11
  * - election: Security Council election types
@@ -14,11 +13,10 @@
14
13
  export { StageType, StageStatus, Chain, KnownChain, L2Chain, ChainId, chainIdToChain, chainToChainId, isKnownChain, isL2Chain, getChainDisplayName, StageTransaction, StageTiming, SearchHint, } from "./core";
15
14
  export { ProposalType, GovernorCapability, ProposalState, ProposalData, VotingData, ProposalCreatedEventArgs, } from "./governor";
16
15
  export { TimelockOperationState, SerializedCallScheduledData, CallScheduledData, CallExecutedData, TimelockParams, TimelockBatchParams, TimelockState, OperationState, TimelockLink, } from "./timelock";
17
- export { RetryableCreationDetail, RetryableRedemptionDetail } from "./cross-chain";
18
- export { BaseStageData, ProposalCreatedData, VotingActiveData, ProposalQueuedData, BaseTimelockData, TimelockStageData, L2ToL1MessageStageData, RetryableStageData, StageDataMap, TrackedStage, TypedTrackedStage, isStageType, getStageData, } from "./stages";
19
- export { PrepareOptions, PrepareResult, PreparedTransaction, GovernorTrackingInput, TimelockTrackingInput, DiscoveryTrackingInput, TrackingInput, NextStageHints, StageTrackResult, DiscoveryWatermarks, DiscoveryTargets, TrackingCheckpoint, TrackerStats, TrackingResult, } from "./tracking";
20
- export { ChunkingConfig, RetryConfig, TrackingProgress, OnProgressCallback, TrackerOptions, CacheAdapter, } from "./config";
21
- export { CohortType, ElectionPhase, ElectionProposalStatus, ElectionStatus, ElectionCheckResult, } from "./election";
16
+ export { BaseStageData, ProposalCreatedData, VotingActiveData, ProposalQueuedData, BaseTimelockData, TimelockStageData, L2ToL1MessageStageData, RetryableStageData, RetryableCreationDetail, RetryableRedemptionDetail, CreateElectionData, NomineeElectionData, NomineeVettingData, MemberElectionData, StageDataMap, TrackedStage, TypedTrackedStage, isStageType, getStageData, } from "./stages";
17
+ export { PrepareOptions, PrepareResult, PreparedTransaction, GovernorTrackingInput, TimelockTrackingInput, DiscoveryTrackingInput, ElectionTrackingInput, TrackingInput, NextStageHints, StageTrackResult, DiscoveryKey, DiscoveryWatermarks, WatermarkHashes, DiscoveryTargets, TrackingCheckpoint, TrackerStats, TrackingResult, } from "./tracking";
18
+ export { TrackingContext, ChunkingConfig, RetryConfig, TrackingProgress, OnProgressCallback, TrackerOptions, CacheAdapter, } from "./config";
19
+ export { CohortType, ElectionPhase, ElectionProposalStatus, ElectionStatus, ElectionCheckResult, ElectionContender, ElectionNominee, MemberElectionNominee, NomineeElectionDetails, MemberElectionDetails, } from "./election";
22
20
  export { DecodingSource, DecodedCalldata, DecodedParameter, isRetryable, RetryableTicketData, KnownAddress, SignatureEntry, ExtractedCalldata, } from "./calldata";
23
21
  export { SimulationType, BaseSimulationData, RetryableSimulationData, TimelockSimulationData, CallSimulationData, SimulationData, ExtractedSimulation, } from "./simulation";
24
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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,KAAK,EACL,UAAU,EACV,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,UAAU,GACX,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,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAGnF,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,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,sBAAsB,EACtB,cAAc,EACd,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EACL,SAAS,EACT,WAAW,EACX,KAAK,EACL,UAAU,EACV,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,UAAU,GACX,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,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,mBAAmB,EAEnB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EAErB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,cAAc,CAAC"}
@@ -6,8 +6,7 @@
6
6
  * - core: Primitives (StageType, Chain, timing/ETA types)
7
7
  * - governor: Governor, proposal, voting types
8
8
  * - timelock: Timelock operations and state
9
- * - cross-chain: L2→L1 messages and retryables
10
- * - stages: Stage data types and TrackedStage
9
+ * - stages: Stage data types, TrackedStage, cross-chain types
11
10
  * - tracking: Context, results, checkpoints, execution
12
11
  * - config: TrackerOptions, ChunkingConfig
13
12
  * - election: Security Council election types
@@ -21,7 +20,7 @@ Object.defineProperty(exports, "chainToChainId", { enumerable: true, get: functi
21
20
  Object.defineProperty(exports, "isKnownChain", { enumerable: true, get: function () { return core_1.isKnownChain; } });
22
21
  Object.defineProperty(exports, "isL2Chain", { enumerable: true, get: function () { return core_1.isL2Chain; } });
23
22
  Object.defineProperty(exports, "getChainDisplayName", { enumerable: true, get: function () { return core_1.getChainDisplayName; } });
24
- // Stage data types
23
+ // Stage data types (includes cross-chain types)
25
24
  var stages_1 = require("./stages");
26
25
  Object.defineProperty(exports, "isStageType", { enumerable: true, get: function () { return stages_1.isStageType; } });
27
26
  Object.defineProperty(exports, "getStageData", { enumerable: true, get: function () { return stages_1.getStageData; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,2BAA2B;AAC3B,+BAegB;AARd,sGAAA,cAAc,OAAA;AACd,sGAAA,cAAc,OAAA;AACd,oGAAA,YAAY,OAAA;AACZ,iGAAA,SAAS,OAAA;AACT,2GAAA,mBAAmB,OAAA;AAgCrB,mBAAmB;AACnB,mCAckB;AAFhB,qGAAA,WAAW,OAAA;AACX,sGAAA,YAAY,OAAA;AAwCd,0BAA0B;AAC1B,uCASoB;AALlB,uGAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,2BAA2B;AAC3B,+BAegB;AARd,sGAAA,cAAc,OAAA;AACd,sGAAA,cAAc,OAAA;AACd,oGAAA,YAAY,OAAA;AACZ,iGAAA,SAAS,OAAA;AACT,2GAAA,mBAAmB,OAAA;AA6BrB,gDAAgD;AAChD,mCAoBkB;AAFhB,qGAAA,WAAW,OAAA;AACX,sGAAA,YAAY,OAAA;AAmDd,0BAA0B;AAC1B,uCASoB;AALlB,uGAAA,WAAW,OAAA"}
@@ -3,7 +3,26 @@
3
3
  */
4
4
  import { Chain, ChainId, L2Chain, StageType, StageStatus, StageTransaction, StageTiming } from "./core";
5
5
  import { SerializedCallScheduledData } from "./timelock";
6
- import { RetryableCreationDetail, RetryableRedemptionDetail } from "./cross-chain";
6
+ import { CohortType } from "./election";
7
+ /**
8
+ * Retryable creation detail
9
+ */
10
+ export interface RetryableCreationDetail {
11
+ index: number;
12
+ targetChain: L2Chain;
13
+ targetChainId: ChainId;
14
+ l2TxHash: string;
15
+ }
16
+ /**
17
+ * Retryable redemption detail
18
+ */
19
+ export interface RetryableRedemptionDetail {
20
+ index: number;
21
+ targetChain: L2Chain;
22
+ targetChainId: ChainId;
23
+ status: string;
24
+ l2TxHash: string | null;
25
+ }
7
26
  /**
8
27
  * Base stage data with common fields
9
28
  */
@@ -147,6 +166,46 @@ export interface RetryableStageData extends BaseStageData {
147
166
  pendingCount?: number;
148
167
  txNotIndexedYet?: boolean;
149
168
  }
169
+ /**
170
+ * Data for CREATE_ELECTION stage
171
+ */
172
+ export interface CreateElectionData extends BaseStageData {
173
+ electionIndex: number;
174
+ cohort: CohortType;
175
+ startTimestamp: number;
176
+ nomineeProposalId?: string;
177
+ }
178
+ /**
179
+ * Data for NOMINEE_ELECTION stage
180
+ */
181
+ export interface NomineeElectionData extends BaseStageData {
182
+ nomineeProposalId: string;
183
+ proposalState: string;
184
+ contenderCount: number;
185
+ compliantNomineeCount: number;
186
+ targetNomineeCount: number;
187
+ quorumThreshold?: string;
188
+ }
189
+ /**
190
+ * Data for NOMINEE_VETTING stage
191
+ */
192
+ export interface NomineeVettingData extends BaseStageData {
193
+ nomineeProposalId: string;
194
+ vettingDeadline: number;
195
+ currentL1Block: number;
196
+ compliantNomineeCount: number;
197
+ memberProposalId?: string;
198
+ }
199
+ /**
200
+ * Data for MEMBER_ELECTION stage
201
+ */
202
+ export interface MemberElectionData extends BaseStageData {
203
+ memberProposalId: string;
204
+ proposalState: string;
205
+ winnersCount: number;
206
+ operationId?: string;
207
+ timelockAddress?: string;
208
+ }
150
209
  /**
151
210
  * Maps each StageType to its corresponding data interface.
152
211
  *
@@ -162,6 +221,10 @@ export interface StageDataMap {
162
221
  L2_TO_L1_MESSAGE: L2ToL1MessageStageData;
163
222
  L1_TIMELOCK: TimelockStageData;
164
223
  RETRYABLE_EXECUTED: RetryableStageData;
224
+ CREATE_ELECTION: CreateElectionData;
225
+ NOMINEE_ELECTION: NomineeElectionData;
226
+ NOMINEE_VETTING: NomineeVettingData;
227
+ MEMBER_ELECTION: MemberElectionData;
165
228
  }
166
229
  /**
167
230
  * Common fields shared by all TrackedStage variants
@@ -174,6 +237,12 @@ interface TrackedStageBase {
174
237
  timing?: StageTiming;
175
238
  executable?: boolean;
176
239
  error?: string;
240
+ /**
241
+ * Indicates if stage is stale (READY but past expected completion time).
242
+ * Computed based on configurable staleness threshold.
243
+ * Undefined means staleness was not computed (e.g., stage not READY).
244
+ */
245
+ isStale?: boolean;
177
246
  }
178
247
  /**
179
248
  * Mapped type generating a discriminated union of all stage types.
@@ -1 +1 @@
1
- {"version":3,"file":"stages.d.ts","sourceRoot":"","sources":["../../src/types/stages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stages.d.ts","sourceRoot":"","sources":["../../src/types/stages.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stages.js","sourceRoot":"","sources":["../../src/types/stages.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAyOH,kCAKC;AAKD,oCAUC;AA9BD;;;;;;;;;GASG;AACH,SAAgB,WAAW,CACzB,KAAmB,EACnB,IAAO;IAEP,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,wEAAwE;IACxE,0CAA0C;IAC1C,OAAO,KAAK,CAAC,IAAuB,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"stages.js","sourceRoot":"","sources":["../../src/types/stages.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAwTH,kCAKC;AAKD,oCAUC;AA9BD;;;;;;;;;GASG;AACH,SAAgB,WAAW,CACzB,KAAmB,EACnB,IAAO;IAEP,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,wEAAwE;IACxE,0CAA0C;IAC1C,OAAO,KAAK,CAAC,IAAuB,CAAC;AACvC,CAAC"}
@@ -3,9 +3,9 @@
3
3
  */
4
4
  import { Chain, ChainId, StageType } from "./core";
5
5
  import { TrackedStage } from "./stages";
6
- import { CallScheduledData } from "./timelock";
6
+ import { CallScheduledData, TimelockLink } from "./timelock";
7
7
  import { ProposalType, ProposalData, ProposalState } from "./governor";
8
- import { TimelockState, TimelockLink } from "./timelock";
8
+ import { ElectionProposalStatus } from "./election";
9
9
  export interface PrepareOptions {
10
10
  salt?: string;
11
11
  predecessor?: string;
@@ -65,10 +65,17 @@ export interface DiscoveryTrackingInput {
65
65
  type: "discovery";
66
66
  id: "watermarks";
67
67
  }
68
+ /**
69
+ * Input for tracking a Security Council election
70
+ */
71
+ export interface ElectionTrackingInput {
72
+ type: "election";
73
+ electionIndex: number;
74
+ }
68
75
  /**
69
76
  * Union type for all tracking entry points
70
77
  */
71
- export type TrackingInput = GovernorTrackingInput | TimelockTrackingInput | DiscoveryTrackingInput;
78
+ export type TrackingInput = GovernorTrackingInput | TimelockTrackingInput | DiscoveryTrackingInput | ElectionTrackingInput;
72
79
  /**
73
80
  * Hints for the next stage in the pipeline
74
81
  */
@@ -94,6 +101,8 @@ export interface StageTrackResult {
94
101
  export type DiscoveryKey = "constitutionalGovernor" | "nonConstitutionalGovernor" | "electionNomineeGovernor" | "electionMemberGovernor" | "l2ConstitutionalTimelock" | "l2NonConstitutionalTimelock";
95
102
  /** Discovery watermarks for incremental block scanning */
96
103
  export type DiscoveryWatermarks = Partial<Record<DiscoveryKey, number>>;
104
+ /** Block hashes for watermark reorg detection */
105
+ export type WatermarkHashes = Partial<Record<DiscoveryKey, string>>;
97
106
  /** Discovery targets configuration */
98
107
  export type DiscoveryTargets = Partial<Record<DiscoveryKey, boolean>>;
99
108
  /**
@@ -112,10 +121,26 @@ export interface TrackingCheckpoint {
112
121
  cachedData: {
113
122
  completedStages?: TrackedStage[];
114
123
  discoveryWatermarks?: DiscoveryWatermarks;
124
+ /** Block hashes for reorg detection (v0.2.2+) */
125
+ watermarkHashes?: WatermarkHashes;
126
+ /** Election status for election checkpoints (v0.2.2+) */
127
+ electionStatus?: ElectionProposalStatus;
115
128
  };
116
129
  metadata?: {
117
130
  errorCount: number;
118
131
  lastTrackedAt: number;
132
+ /**
133
+ * Reference to the parent checkpoint that created this timelock operation.
134
+ * Used for deduplication when tracking results spawn child timelock operations.
135
+ *
136
+ * Examples:
137
+ * - Election executes → schedules to L2 timelock → sourceCheckpoint = "election:5"
138
+ * - Proposal queued → schedules to L2 timelock → sourceCheckpoint = "tx:0x..."
139
+ * - L2 timelock executed → schedules to L1 → child already tracked in stages, no need for separate key
140
+ *
141
+ * @see linkCheckpointToChild
142
+ */
143
+ sourceCheckpoint?: string;
119
144
  };
120
145
  }
121
146
  /**
@@ -150,9 +175,10 @@ export interface TrackingResult {
150
175
  isComplete: boolean;
151
176
  proposalType?: ProposalType;
152
177
  proposalData?: ProposalData;
153
- timelockState?: TimelockState;
154
178
  timelockLink?: TimelockLink;
155
179
  currentState?: ProposalState;
156
180
  isElection?: boolean;
181
+ /** Election status for election proposals - includes full lifecycle tracking */
182
+ electionStatus?: ElectionProposalStatus;
157
183
  }
158
184
  //# sourceMappingURL=tracking.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracking.d.ts","sourceRoot":"","sources":["../../src/types/tracking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracking.d.ts","sourceRoot":"","sources":["../../src/types/tracking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Block-scoped cache for RPC results
3
+ *
4
+ * Caches results that are immutable at a specific block number.
5
+ * Does NOT cache results queried at "latest" (mutable).
6
+ */
7
+ export interface BlockCacheOptions<T> {
8
+ /** Optional predicate to determine if result should be cached even without blockNumber */
9
+ isImmutable?: (value: T) => boolean;
10
+ }
11
+ /**
12
+ * A cache that stores values scoped by block number.
13
+ * Only caches when blockNumber is provided (immutable historical state),
14
+ * OR when the value passes the isImmutable predicate.
15
+ */
16
+ export declare class BlockScopedCache<K, V> {
17
+ private cache;
18
+ private isImmutable?;
19
+ constructor(options?: BlockCacheOptions<V>);
20
+ private makeKey;
21
+ /**
22
+ * Get a cached value.
23
+ * @param key - The cache key
24
+ * @param blockNumber - If provided, looks up block-scoped entry. If not, looks up "latest" entry.
25
+ * @param options.skipCache - If true, always returns undefined (forces fresh fetch)
26
+ */
27
+ get(key: K, blockNumber?: number, options?: {
28
+ skipCache?: boolean;
29
+ }): V | undefined;
30
+ /**
31
+ * Set a cached value.
32
+ * @param key - The cache key
33
+ * @param value - The value to cache
34
+ * @param blockNumber - If provided, caches as immutable block-scoped entry
35
+ */
36
+ set(key: K, value: V, blockNumber?: number): void;
37
+ /**
38
+ * Check if a value exists in cache.
39
+ */
40
+ has(key: K, blockNumber?: number): boolean;
41
+ /**
42
+ * Clear all cached entries.
43
+ */
44
+ clear(): void;
45
+ /**
46
+ * Get the number of cached entries.
47
+ */
48
+ get size(): number;
49
+ }
50
+ //# sourceMappingURL=block-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-cache.d.ts","sourceRoot":"","sources":["../../src/utils/block-cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,0FAA0F;IAC1F,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;CACrC;AAED;;;;GAIG;AACH,qBAAa,gBAAgB,CAAC,CAAC,EAAE,CAAC;IAChC,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,WAAW,CAAC,CAAwB;gBAEhC,OAAO,GAAE,iBAAiB,CAAC,CAAC,CAAM;IAI9C,OAAO,CAAC,OAAO;IAKf;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,CAAC,GAAG,SAAS;IAgBnF;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAWjD;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAI1C;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /**
3
+ * Block-scoped cache for RPC results
4
+ *
5
+ * Caches results that are immutable at a specific block number.
6
+ * Does NOT cache results queried at "latest" (mutable).
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.BlockScopedCache = void 0;
10
+ /**
11
+ * A cache that stores values scoped by block number.
12
+ * Only caches when blockNumber is provided (immutable historical state),
13
+ * OR when the value passes the isImmutable predicate.
14
+ */
15
+ class BlockScopedCache {
16
+ constructor(options = {}) {
17
+ this.cache = new Map();
18
+ this.isImmutable = options.isImmutable;
19
+ }
20
+ makeKey(key, blockNumber) {
21
+ const keyStr = typeof key === "string" ? key : JSON.stringify(key);
22
+ return blockNumber !== undefined ? `${keyStr}:${blockNumber}` : keyStr;
23
+ }
24
+ /**
25
+ * Get a cached value.
26
+ * @param key - The cache key
27
+ * @param blockNumber - If provided, looks up block-scoped entry. If not, looks up "latest" entry.
28
+ * @param options.skipCache - If true, always returns undefined (forces fresh fetch)
29
+ */
30
+ get(key, blockNumber, options) {
31
+ // Skip cache if requested
32
+ if (options?.skipCache) {
33
+ return undefined;
34
+ }
35
+ // When blockNumber is provided, only check block-scoped cache
36
+ if (blockNumber !== undefined) {
37
+ return this.cache.get(this.makeKey(key, blockNumber));
38
+ }
39
+ // When no blockNumber, check if we have an immutable "latest" entry
40
+ const latestKey = this.makeKey(key);
41
+ return this.cache.get(latestKey);
42
+ }
43
+ /**
44
+ * Set a cached value.
45
+ * @param key - The cache key
46
+ * @param value - The value to cache
47
+ * @param blockNumber - If provided, caches as immutable block-scoped entry
48
+ */
49
+ set(key, value, blockNumber) {
50
+ if (blockNumber !== undefined) {
51
+ // Block-scoped: always cache (immutable historical state)
52
+ this.cache.set(this.makeKey(key, blockNumber), value);
53
+ }
54
+ else if (this.isImmutable?.(value)) {
55
+ // No blockNumber but value is immutable: cache as "latest"
56
+ this.cache.set(this.makeKey(key), value);
57
+ }
58
+ // Otherwise: don't cache (mutable state queried at "latest")
59
+ }
60
+ /**
61
+ * Check if a value exists in cache.
62
+ */
63
+ has(key, blockNumber) {
64
+ return this.cache.has(this.makeKey(key, blockNumber));
65
+ }
66
+ /**
67
+ * Clear all cached entries.
68
+ */
69
+ clear() {
70
+ this.cache.clear();
71
+ }
72
+ /**
73
+ * Get the number of cached entries.
74
+ */
75
+ get size() {
76
+ return this.cache.size;
77
+ }
78
+ }
79
+ exports.BlockScopedCache = BlockScopedCache;
80
+ //# sourceMappingURL=block-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-cache.js","sourceRoot":"","sources":["../../src/utils/block-cache.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAOH;;;;GAIG;AACH,MAAa,gBAAgB;IAI3B,YAAY,UAAgC,EAAE;QAHtC,UAAK,GAAG,IAAI,GAAG,EAAa,CAAC;QAInC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACzC,CAAC;IAEO,OAAO,CAAC,GAAM,EAAE,WAAoB;QAC1C,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnE,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACzE,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAM,EAAE,WAAoB,EAAE,OAAiC;QACjE,0BAA0B;QAC1B,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,8DAA8D;QAC9D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,oEAAoE;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAM,EAAE,KAAQ,EAAE,WAAoB;QACxC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,0DAA0D;YAC1D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,2DAA2D;YAC3D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,6DAA6D;IAC/D,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAM,EAAE,WAAoB;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF;AAxED,4CAwEC"}