@gzeoneth/gov-tracker 0.4.0-beta.757932 → 0.4.0-beta.8ed5f35

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 (210) hide show
  1. package/README.md +18 -10
  2. package/dist/calldata/decoder.d.ts.map +1 -1
  3. package/dist/calldata/decoder.js +33 -28
  4. package/dist/calldata/decoder.js.map +1 -1
  5. package/dist/calldata/parameter-decoder.d.ts.map +1 -1
  6. package/dist/calldata/parameter-decoder.js +19 -25
  7. package/dist/calldata/parameter-decoder.js.map +1 -1
  8. package/dist/calldata/retryable-ticket.d.ts +2 -2
  9. package/dist/calldata/retryable-ticket.d.ts.map +1 -1
  10. package/dist/calldata/retryable-ticket.js +17 -12
  11. package/dist/calldata/retryable-ticket.js.map +1 -1
  12. package/dist/calldata/signature-lookup.js +5 -4
  13. package/dist/calldata/signature-lookup.js.map +1 -1
  14. package/dist/cli/cli.js +41 -20
  15. package/dist/cli/cli.js.map +1 -1
  16. package/dist/cli/lib/cli.d.ts +4 -2
  17. package/dist/cli/lib/cli.d.ts.map +1 -1
  18. package/dist/cli/lib/cli.js +34 -18
  19. package/dist/cli/lib/cli.js.map +1 -1
  20. package/dist/cli/lib/election-check.d.ts.map +1 -1
  21. package/dist/cli/lib/election-check.js +2 -1
  22. package/dist/cli/lib/election-check.js.map +1 -1
  23. package/dist/cli/lib/json-state.js +1 -1
  24. package/dist/cli/lib/json-state.js.map +1 -1
  25. package/dist/cli/tui/components/StageProgress.js +1 -1
  26. package/dist/cli/tui/components/StageProgress.js.map +1 -1
  27. package/dist/cli/tui/components/StageRow.d.ts.map +1 -1
  28. package/dist/cli/tui/components/StageRow.js +15 -20
  29. package/dist/cli/tui/components/StageRow.js.map +1 -1
  30. package/dist/cli/tui/components/VotingStats.d.ts.map +1 -1
  31. package/dist/cli/tui/components/VotingStats.js +2 -1
  32. package/dist/cli/tui/components/VotingStats.js.map +1 -1
  33. package/dist/cli/tui/hooks/useCache.d.ts.map +1 -1
  34. package/dist/cli/tui/hooks/useCache.js +2 -1
  35. package/dist/cli/tui/hooks/useCache.js.map +1 -1
  36. package/dist/cli/tui/hooks/useElectionData.d.ts.map +1 -1
  37. package/dist/cli/tui/hooks/useElectionData.js +3 -2
  38. package/dist/cli/tui/hooks/useElectionData.js.map +1 -1
  39. package/dist/cli/tui/hooks/useNavigation.d.ts.map +1 -1
  40. package/dist/cli/tui/hooks/useNavigation.js +2 -3
  41. package/dist/cli/tui/hooks/useNavigation.js.map +1 -1
  42. package/dist/cli/tui/hooks/useProposals.d.ts.map +1 -1
  43. package/dist/cli/tui/hooks/useProposals.js +26 -36
  44. package/dist/cli/tui/hooks/useProposals.js.map +1 -1
  45. package/dist/cli/tui/hooks/useStageCalldata.d.ts.map +1 -1
  46. package/dist/cli/tui/hooks/useStageCalldata.js +2 -1
  47. package/dist/cli/tui/hooks/useStageCalldata.js.map +1 -1
  48. package/dist/cli/tui/utils/index.d.ts +7 -7
  49. package/dist/cli/tui/utils/index.d.ts.map +1 -1
  50. package/dist/cli/tui/utils/index.js +18 -13
  51. package/dist/cli/tui/utils/index.js.map +1 -1
  52. package/dist/cli/tui/utils/markdown-parser.d.ts +5 -0
  53. package/dist/cli/tui/utils/markdown-parser.d.ts.map +1 -1
  54. package/dist/cli/tui/utils/markdown-parser.js +16 -0
  55. package/dist/cli/tui/utils/markdown-parser.js.map +1 -1
  56. package/dist/cli/tui/utils/navigation.d.ts +1 -0
  57. package/dist/cli/tui/utils/navigation.d.ts.map +1 -1
  58. package/dist/cli/tui/utils/navigation.js +9 -5
  59. package/dist/cli/tui/utils/navigation.js.map +1 -1
  60. package/dist/cli/tui/utils/proposal-detail-helpers.js +6 -6
  61. package/dist/cli/tui/utils/proposal-detail-helpers.js.map +1 -1
  62. package/dist/cli/tui/utils/stage-status.d.ts +4 -0
  63. package/dist/cli/tui/utils/stage-status.d.ts.map +1 -1
  64. package/dist/cli/tui/utils/stage-status.js +47 -1
  65. package/dist/cli/tui/utils/stage-status.js.map +1 -1
  66. package/dist/cli/tui/utils/time.d.ts +4 -4
  67. package/dist/cli/tui/utils/time.d.ts.map +1 -1
  68. package/dist/cli/tui/utils/time.js +13 -11
  69. package/dist/cli/tui/utils/time.js.map +1 -1
  70. package/dist/cli/tui/views/CalldataView.d.ts.map +1 -1
  71. package/dist/cli/tui/views/CalldataView.js +3 -2
  72. package/dist/cli/tui/views/CalldataView.js.map +1 -1
  73. package/dist/cli/tui/views/DescriptionView.d.ts.map +1 -1
  74. package/dist/cli/tui/views/DescriptionView.js +4 -2
  75. package/dist/cli/tui/views/DescriptionView.js.map +1 -1
  76. package/dist/cli/tui/views/ElectionView.d.ts.map +1 -1
  77. package/dist/cli/tui/views/ElectionView.js +4 -9
  78. package/dist/cli/tui/views/ElectionView.js.map +1 -1
  79. package/dist/constants.d.ts +11 -23
  80. package/dist/constants.d.ts.map +1 -1
  81. package/dist/constants.js +22 -20
  82. package/dist/constants.js.map +1 -1
  83. package/dist/deduplication.d.ts.map +1 -1
  84. package/dist/deduplication.js +34 -54
  85. package/dist/deduplication.js.map +1 -1
  86. package/dist/discovery/governor-discovery.d.ts.map +1 -1
  87. package/dist/discovery/governor-discovery.js +7 -10
  88. package/dist/discovery/governor-discovery.js.map +1 -1
  89. package/dist/discovery/timelock-discovery.d.ts.map +1 -1
  90. package/dist/discovery/timelock-discovery.js +27 -30
  91. package/dist/discovery/timelock-discovery.js.map +1 -1
  92. package/dist/election/contracts.d.ts.map +1 -1
  93. package/dist/election/contracts.js +4 -1
  94. package/dist/election/contracts.js.map +1 -1
  95. package/dist/election/details.d.ts.map +1 -1
  96. package/dist/election/details.js +7 -3
  97. package/dist/election/details.js.map +1 -1
  98. package/dist/election/params.d.ts.map +1 -1
  99. package/dist/election/params.js +3 -12
  100. package/dist/election/params.js.map +1 -1
  101. package/dist/election/participants.d.ts.map +1 -1
  102. package/dist/election/participants.js +21 -26
  103. package/dist/election/participants.js.map +1 -1
  104. package/dist/election/proposal-ids.js +17 -20
  105. package/dist/election/proposal-ids.js.map +1 -1
  106. package/dist/election/status.d.ts.map +1 -1
  107. package/dist/election/status.js +6 -0
  108. package/dist/election/status.js.map +1 -1
  109. package/dist/index.d.ts +23 -13
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +37 -13
  112. package/dist/index.js.map +1 -1
  113. package/dist/simulation/index.d.ts +4 -1
  114. package/dist/simulation/index.d.ts.map +1 -1
  115. package/dist/simulation/index.js +5 -1
  116. package/dist/simulation/index.js.map +1 -1
  117. package/dist/simulation/simulation-data.d.ts +33 -2
  118. package/dist/simulation/simulation-data.d.ts.map +1 -1
  119. package/dist/simulation/simulation-data.js +68 -24
  120. package/dist/simulation/simulation-data.js.map +1 -1
  121. package/dist/simulation/tenderly-payloads.d.ts +107 -0
  122. package/dist/simulation/tenderly-payloads.d.ts.map +1 -0
  123. package/dist/simulation/tenderly-payloads.js +103 -0
  124. package/dist/simulation/tenderly-payloads.js.map +1 -0
  125. package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
  126. package/dist/stages/l2-to-l1-message.js +43 -63
  127. package/dist/stages/l2-to-l1-message.js.map +1 -1
  128. package/dist/stages/retryables.d.ts.map +1 -1
  129. package/dist/stages/retryables.js +10 -9
  130. package/dist/stages/retryables.js.map +1 -1
  131. package/dist/stages/timelock.d.ts +4 -2
  132. package/dist/stages/timelock.d.ts.map +1 -1
  133. package/dist/stages/timelock.js +45 -53
  134. package/dist/stages/timelock.js.map +1 -1
  135. package/dist/stages/utils.d.ts +56 -1
  136. package/dist/stages/utils.d.ts.map +1 -1
  137. package/dist/stages/utils.js +146 -30
  138. package/dist/stages/utils.js.map +1 -1
  139. package/dist/tracker/bundled-cache.d.ts +136 -0
  140. package/dist/tracker/bundled-cache.d.ts.map +1 -0
  141. package/dist/tracker/bundled-cache.js +207 -0
  142. package/dist/tracker/bundled-cache.js.map +1 -0
  143. package/dist/tracker/checkpoint-helpers.d.ts +20 -1
  144. package/dist/tracker/checkpoint-helpers.d.ts.map +1 -1
  145. package/dist/tracker/checkpoint-helpers.js +41 -7
  146. package/dist/tracker/checkpoint-helpers.js.map +1 -1
  147. package/dist/tracker/discovery.d.ts +3 -0
  148. package/dist/tracker/discovery.d.ts.map +1 -1
  149. package/dist/tracker/discovery.js +59 -34
  150. package/dist/tracker/discovery.js.map +1 -1
  151. package/dist/tracker/pipeline.d.ts +3 -10
  152. package/dist/tracker/pipeline.d.ts.map +1 -1
  153. package/dist/tracker/pipeline.js +18 -32
  154. package/dist/tracker/pipeline.js.map +1 -1
  155. package/dist/tracker/query.d.ts +1 -0
  156. package/dist/tracker/query.d.ts.map +1 -1
  157. package/dist/tracker/query.js +28 -36
  158. package/dist/tracker/query.js.map +1 -1
  159. package/dist/tracker/state.d.ts +3 -2
  160. package/dist/tracker/state.d.ts.map +1 -1
  161. package/dist/tracker/state.js +5 -4
  162. package/dist/tracker/state.js.map +1 -1
  163. package/dist/tracker.d.ts +33 -11
  164. package/dist/tracker.d.ts.map +1 -1
  165. package/dist/tracker.js +76 -43
  166. package/dist/tracker.js.map +1 -1
  167. package/dist/types/config.d.ts +39 -3
  168. package/dist/types/config.d.ts.map +1 -1
  169. package/dist/types/index.d.ts +1 -1
  170. package/dist/types/index.d.ts.map +1 -1
  171. package/dist/types/index.js.map +1 -1
  172. package/dist/types/simulation.d.ts +2 -2
  173. package/dist/types/simulation.d.ts.map +1 -1
  174. package/dist/utils/chain.d.ts +5 -1
  175. package/dist/utils/chain.d.ts.map +1 -1
  176. package/dist/utils/chain.js +7 -0
  177. package/dist/utils/chain.js.map +1 -1
  178. package/dist/utils/formatters.d.ts +2 -6
  179. package/dist/utils/formatters.d.ts.map +1 -1
  180. package/dist/utils/formatters.js +9 -12
  181. package/dist/utils/formatters.js.map +1 -1
  182. package/dist/utils/log-filters.js +1 -1
  183. package/dist/utils/log-filters.js.map +1 -1
  184. package/dist/utils/multicall.d.ts +0 -1
  185. package/dist/utils/multicall.d.ts.map +1 -1
  186. package/dist/utils/rpc-utils.d.ts +5 -0
  187. package/dist/utils/rpc-utils.d.ts.map +1 -1
  188. package/dist/utils/rpc-utils.js +9 -1
  189. package/dist/utils/rpc-utils.js.map +1 -1
  190. package/dist/utils/stage-metadata.d.ts +19 -0
  191. package/dist/utils/stage-metadata.d.ts.map +1 -1
  192. package/dist/utils/stage-metadata.js +44 -0
  193. package/dist/utils/stage-metadata.js.map +1 -1
  194. package/dist/utils/timing.d.ts +3 -10
  195. package/dist/utils/timing.d.ts.map +1 -1
  196. package/dist/utils/timing.js +9 -22
  197. package/dist/utils/timing.js.map +1 -1
  198. package/package.json +1 -1
  199. package/dist/cli/tui/utils/calldata-formatter.d.ts +0 -7
  200. package/dist/cli/tui/utils/calldata-formatter.d.ts.map +0 -1
  201. package/dist/cli/tui/utils/calldata-formatter.js +0 -14
  202. package/dist/cli/tui/utils/calldata-formatter.js.map +0 -1
  203. package/dist/cli/tui/utils/stage-formatter.d.ts +0 -7
  204. package/dist/cli/tui/utils/stage-formatter.d.ts.map +0 -1
  205. package/dist/cli/tui/utils/stage-formatter.js +0 -13
  206. package/dist/cli/tui/utils/stage-formatter.js.map +0 -1
  207. package/dist/cli/tui/utils/text.d.ts +0 -7
  208. package/dist/cli/tui/utils/text.d.ts.map +0 -1
  209. package/dist/cli/tui/utils/text.js +0 -12
  210. package/dist/cli/tui/utils/text.js.map +0 -1
package/dist/index.js CHANGED
@@ -5,13 +5,14 @@
5
5
  * A lightweight, high-performance library for tracking Arbitrum DAO
6
6
  * governance proposal lifecycle stages.
7
7
  *
8
- * @example Basic usage (Node.js)
8
+ * @example Basic usage with RPC URLs
9
9
  * ```typescript
10
10
  * import { createTracker, findExecutableStage } from "@gzeoneth/gov-tracker";
11
11
  *
12
+ * // Accepts RPC URLs directly (creates providers internally)
12
13
  * const tracker = createTracker({
13
- * l2Provider: new ethers.providers.StaticJsonRpcProvider(ARB1_RPC),
14
- * l1Provider: new ethers.providers.StaticJsonRpcProvider(ETH_RPC),
14
+ * l2Provider: "https://arb1.arbitrum.io/rpc",
15
+ * l1Provider: "https://eth.llamarpc.com",
15
16
  * });
16
17
  *
17
18
  * const results = await tracker.trackByTxHash(proposalCreationTxHash);
@@ -26,9 +27,13 @@
26
27
  *
27
28
  * @example Browser usage with LocalStorageCache
28
29
  * ```typescript
29
- * import { createTracker, LocalStorageCache } from "@gzeoneth/gov-tracker";
30
+ * import { createTracker, LocalStorageCache, extractProposals } from "@gzeoneth/gov-tracker";
30
31
  * import bundledCache from "@gzeoneth/gov-tracker/bundled-cache.json";
31
32
  *
33
+ * // Extract typed data from bundled cache
34
+ * const proposals = extractProposals(bundledCache);
35
+ * console.log(`Loaded ${proposals.length} proposals from cache`);
36
+ *
32
37
  * // Initialize cache with bundled data for faster first load
33
38
  * const cache = new LocalStorageCache("arb-gov:");
34
39
  * for (const [key, checkpoint] of Object.entries(bundledCache)) {
@@ -36,18 +41,18 @@
36
41
  * }
37
42
  *
38
43
  * const tracker = createTracker({
39
- * l2Provider: new ethers.providers.StaticJsonRpcProvider(ARB1_RPC),
40
- * l1Provider: new ethers.providers.StaticJsonRpcProvider(ETH_RPC),
44
+ * l2Provider: "https://arb1.arbitrum.io/rpc",
45
+ * l1Provider: "https://eth.llamarpc.com",
41
46
  * cache, // Updates persist to localStorage
42
47
  * });
43
48
  * ```
44
49
  * @packageDocumentation
45
50
  */
46
51
  Object.defineProperty(exports, "__esModule", { value: true });
47
- exports.getL1BlockNumberFromL2 = exports.estimateTimestampFromBlock = exports.calculateRemainingSeconds = exports.calculateExpectedEta = exports.calculateEta = exports.isScOperationSuperseded = exports.getHighestScNonce = exports.checkVettingPeriod = exports.extractAllSecurityCouncilParams = exports.extractSecurityCouncilParamsForOperation = exports.extractSecurityCouncilParams = exports.isSecurityCouncilElectionProposal = exports.isSecurityCouncilOperation = exports.findCallScheduledByTxHash = exports.getTimelockState = exports.getTimelockOperationState = exports.isL1Timelock = exports.isKnownL2Timelock = exports.discoverProposalByTxHash = exports.getProposalState = exports.getTimelockAddress = exports.detectGovernorCapabilities = exports.isElectionProposal = exports.detectProposalType = exports.findStage = exports.isConstitutional = exports.isTimelockStage = exports.extractOperationId = exports.areAllStagesComplete = exports.getCurrentStage = exports.getTrackingStatusSummary = exports.needsAction = exports.findAllExecutableStages = exports.findExecutableStage = exports.buildDefaultTargets = exports.isElectionGovernor = exports.TIMELOCK_SELECTORS = exports.NETWORK_IDS = exports.CHUNK_SIZES = exports.DEFAULT_RPC_URLS = exports.CHAIN_IDS = exports.ADDRESSES = exports.isRetryable = exports.isL2Chain = exports.isKnownChain = exports.getStageData = exports.isStageType = exports.extractTimelockLink = exports.createTracker = exports.ProposalStageTracker = void 0;
48
- exports.getAllFoldableKeys = exports.filterVisibleLines = exports.formatDecodedCalldata = exports.getProposalIdDisplay = exports.getTxHash = exports.formatStageData = exports.CHAIN_TO_CHAIN_ID = exports.formatDate = exports.formatValue = exports.safeStringify = exports.truncate = exports.wrapText = exports.MAX_DESCRIPTION_LENGTH = exports.safeJsonParse = exports.sanitizeForDisplay = exports.truncateDescription = exports.isGasEstimationError = exports.getChainDisplayName = exports.chainToChainId = exports.chainIdToChain = exports.getChain = exports.isAddressIn = exports.addressEquals = exports.formatStageTitle = exports.getStageMetadata = exports.ELECTION_TIMING = exports.GOVERNANCE_START_BLOCKS = exports.getStageTransactionUrl = exports.getTxUrl = exports.prepareGovernorQueue = exports.prepareRetryableStage = exports.prepareAllRetryables = exports.prepareRetryableRedemption = exports.getL2ToL1Messages = exports.prepareL2ToL1MessageStage = exports.prepareL2ToL1Message = exports.calculateBatchRetryableValues = exports.calculateRetryableExecutionValue = exports.prepareTimelockStage = exports.prepareTimelockBatch = exports.prepareTimelockOperation = exports.tryFindSalt = exports.computeAndValidateOperationHash = exports.validateSaltBatch = exports.validateSalt = exports.decodeL1TimelockSchedule = exports.generateSecurityCouncilSalt = exports.saltFromDescription = exports.isStageStale = exports.invalidateBlockInfoCache = void 0;
49
- exports.createTrackingState = exports.createCheckpoint = exports.getBundledCachePath = exports.MemoryCache = exports.LocalStorageCache = exports.FileCache = exports.extractAllSimulationsFromDecoded = exports.prepareCallSimulation = exports.prepareTimelockSimulation = exports.prepareRetryableSimulation = exports.RETRYABLE_TICKET_MAGIC = exports.getRetryableChainName = exports.decodeRetryableTicket = exports.isRetryableTicketMagic = exports.getAddressLabel = exports.formatDecodedValue = exports.isLikelyCalldata = exports.parseParamTypes = exports.lookupLocalSignature = exports.lookupSignature = exports.decodeCalldataArray = exports.decodeCalldata = exports.autoLinkOrphanedCheckpoints = exports.findPotentialParent = exports.getDeduplicationStats = exports.getChildCheckpoints = exports.getChildToParentMap = exports.filterChildCheckpoints = exports.isChildCheckpoint = exports.getParentCheckpoint = exports.linkCheckpointToChild = exports.isSecurityCouncilTimelockOp = exports.serializeMemberDetails = exports.serializeNomineeDetails = exports.getMemberElectionDetails = exports.getNomineeElectionDetails = exports.getExcludedNominees = exports.getNomineesWithVotes = exports.getContenders = exports.prepareMemberElectionExecution = exports.prepareMemberElectionTrigger = exports.prepareElectionCreation = exports.getMemberElectionProposalParams = exports.getElectionProposalParams = exports.getElectionProposalId = exports.getElectionIndexForProposalId = exports.hasVettingPeriod = exports.checkElectionStatus = exports.getElectionCount = exports.toggleFoldKey = void 0;
50
- exports.WATERMARKS_KEY = exports.TX_KEY_PREFIX = exports.ELECTION_KEY_PREFIX = exports.DEFAULT_ERROR_THRESHOLD = exports.parseTimelockOpKey = exports.parseElectionKey = exports.isDiscoveryKey = exports.isTimelockOpKey = exports.isTxKey = exports.isElectionKey = exports.timelockOpCacheKey = exports.txHashCacheKey = exports.electionCacheKey = exports.computeCacheStats = exports.getCheckpointErrorCount = exports.isCheckpointErrored = exports.isCheckpointComplete = exports.createCheckpointMetadata = exports.proposalStateToStageStatus = exports.getElectionContext = void 0;
52
+ exports.calculateEta = exports.isScOperationSuperseded = exports.getHighestScNonce = exports.checkVettingPeriod = exports.extractAllSecurityCouncilParams = exports.extractSecurityCouncilParamsForOperation = exports.extractSecurityCouncilParams = exports.isSecurityCouncilElectionProposal = exports.isSecurityCouncilOperation = exports.findCallScheduledByTxHash = exports.getTimelockState = exports.getTimelockOperationState = exports.isL1Timelock = exports.isKnownL2Timelock = exports.discoverProposalByTxHash = exports.getProposalState = exports.getTimelockAddress = exports.detectGovernorCapabilities = exports.isElectionProposal = exports.detectProposalType = exports.splitStages = exports.normalizeTimeline = exports.mergeStages = exports.findStage = exports.isConstitutional = exports.isTimelockStage = exports.extractOperationId = exports.areAllStagesComplete = exports.getCurrentStage = exports.getLifecyclePhase = exports.getTrackingStatusSummary = exports.needsAction = exports.findAllExecutableStages = exports.findExecutableStage = exports.buildDefaultTargets = exports.isElectionGovernor = exports.TIMELOCK_SELECTORS = exports.NETWORK_IDS = exports.CHUNK_SIZES = exports.DEFAULT_RPC_URLS = exports.CHAIN_IDS = exports.ADDRESSES = exports.isRetryable = exports.isL2Chain = exports.isKnownChain = exports.getStageData = exports.isStageType = exports.extractTimelockLink = exports.createTracker = exports.ProposalStageTracker = void 0;
53
+ exports.formatStageData = exports.formatDate = exports.formatValue = exports.safeStringify = exports.truncate = exports.wrapText = exports.MAX_DESCRIPTION_LENGTH = exports.safeJsonParse = exports.sanitizeForDisplay = exports.truncateDescription = exports.isGasEstimationError = exports.getChainDisplayName = exports.chainToChainId = exports.chainIdToChain = exports.getChain = exports.isAddressIn = exports.addressEquals = exports.ALL_STAGE_TYPES = exports.getAllStageMetadata = exports.formatStageTitle = exports.getStageMetadata = exports.ELECTION_TIMING = exports.GOVERNANCE_START_BLOCKS = exports.getStageTransactionUrl = exports.getTxUrl = exports.prepareGovernorQueue = exports.prepareRetryableStage = exports.prepareAllRetryables = exports.prepareRetryableRedemption = exports.getL2ToL1Messages = exports.prepareL2ToL1MessageStage = exports.prepareL2ToL1Message = exports.calculateBatchRetryableValues = exports.calculateRetryableExecutionValue = exports.prepareTimelockStage = exports.prepareTimelockBatch = exports.prepareTimelockOperation = exports.tryFindSalt = exports.computeAndValidateOperationHash = exports.validateSaltBatch = exports.validateSalt = exports.decodeL1TimelockSchedule = exports.generateSecurityCouncilSalt = exports.saltFromDescription = exports.isStageStale = exports.invalidateBlockInfoCache = exports.getL1BlockNumberFromL2 = exports.estimateTimestampFromBlock = exports.calculateRemainingSeconds = exports.calculateExpectedEta = void 0;
54
+ exports.buildTenderlyEncodeStatesRequest = exports.buildTenderlySimRequest = exports.extractSimulationsByActionIndex = exports.extractAllSimulationsFromDecoded = exports.prepareCallSimulation = exports.prepareTimelockSimulation = exports.prepareRetryableSimulation = exports.RETRYABLE_TICKET_MAGIC = exports.getRetryableChainName = exports.decodeRetryableTicket = exports.isRetryableTicketMagic = exports.getAddressLabel = exports.formatDecodedValue = exports.isLikelyCalldata = exports.parseParamTypes = exports.lookupLocalSignature = exports.lookupSignature = exports.decodeCalldataArray = exports.decodeCalldata = exports.autoLinkOrphanedCheckpoints = exports.findPotentialParent = exports.getDeduplicationStats = exports.getChildCheckpoints = exports.getChildToParentMap = exports.filterChildCheckpoints = exports.isChildCheckpoint = exports.getParentCheckpoint = exports.linkCheckpointToChild = exports.isSecurityCouncilTimelockOp = exports.serializeMemberDetails = exports.serializeNomineeDetails = exports.getMemberElectionDetails = exports.getNomineeElectionDetails = exports.getExcludedNominees = exports.getNomineesWithVotes = exports.getContenders = exports.prepareMemberElectionExecution = exports.prepareMemberElectionTrigger = exports.prepareElectionCreation = exports.getMemberElectionProposalParams = exports.getElectionProposalParams = exports.getElectionProposalId = exports.getElectionIndexForProposalId = exports.hasVettingPeriod = exports.checkElectionStatus = exports.getElectionCount = exports.filterVisibleLines = exports.formatDecodedCalldata = exports.getProposalIdDisplay = exports.getTxHash = void 0;
55
+ exports.loadWatermarks = exports.WATERMARKS_KEY = exports.TX_KEY_PREFIX = exports.ELECTION_KEY_PREFIX = exports.DEFAULT_ERROR_THRESHOLD = exports.trimFromStage = exports.parseTimelockOpKey = exports.parseElectionKey = exports.isDiscoveryKey = exports.isTimelockOpKey = exports.isTxKey = exports.isElectionKey = exports.timelockOpCacheKey = exports.txHashCacheKey = exports.electionCacheKey = exports.computeCacheStats = exports.getCheckpointErrorCount = exports.isCheckpointErrored = exports.isCheckpointComplete = exports.createCheckpointMetadata = exports.proposalStateToStageStatus = exports.getElectionContext = exports.createTrackingState = exports.createCheckpoint = exports.getVotingDataFromStages = exports.getWatermarksFromCache = exports.extractTimelockLinkFromStages = exports.extractOperationIds = exports.extractElections = exports.extractTimelockOps = exports.extractProposals = exports.getBundledCachePath = exports.MemoryCache = exports.LocalStorageCache = exports.FileCache = void 0;
51
56
  // ============================================================================
52
57
  // TIER 1: Core Public API
53
58
  // ============================================================================
@@ -79,12 +84,17 @@ Object.defineProperty(exports, "findExecutableStage", { enumerable: true, get: f
79
84
  Object.defineProperty(exports, "findAllExecutableStages", { enumerable: true, get: function () { return utils_1.findAllExecutableStages; } });
80
85
  Object.defineProperty(exports, "needsAction", { enumerable: true, get: function () { return utils_1.needsAction; } });
81
86
  Object.defineProperty(exports, "getTrackingStatusSummary", { enumerable: true, get: function () { return utils_1.getTrackingStatusSummary; } });
87
+ Object.defineProperty(exports, "getLifecyclePhase", { enumerable: true, get: function () { return utils_1.getLifecyclePhase; } });
82
88
  Object.defineProperty(exports, "getCurrentStage", { enumerable: true, get: function () { return utils_1.getCurrentStage; } });
83
89
  Object.defineProperty(exports, "areAllStagesComplete", { enumerable: true, get: function () { return utils_1.areAllStagesComplete; } });
84
90
  Object.defineProperty(exports, "extractOperationId", { enumerable: true, get: function () { return utils_1.extractOperationId; } });
85
91
  Object.defineProperty(exports, "isTimelockStage", { enumerable: true, get: function () { return utils_1.isTimelockStage; } });
86
92
  Object.defineProperty(exports, "isConstitutional", { enumerable: true, get: function () { return utils_1.isConstitutional; } });
87
93
  Object.defineProperty(exports, "findStage", { enumerable: true, get: function () { return utils_1.findStage; } });
94
+ // Stage merging utilities
95
+ Object.defineProperty(exports, "mergeStages", { enumerable: true, get: function () { return utils_1.mergeStages; } });
96
+ Object.defineProperty(exports, "normalizeTimeline", { enumerable: true, get: function () { return utils_1.normalizeTimeline; } });
97
+ Object.defineProperty(exports, "splitStages", { enumerable: true, get: function () { return utils_1.splitStages; } });
88
98
  // ============================================================================
89
99
  // TIER 2: Advanced API - Power user functions
90
100
  // ============================================================================
@@ -170,6 +180,8 @@ Object.defineProperty(exports, "ELECTION_TIMING", { enumerable: true, get: funct
170
180
  var stage_metadata_1 = require("./utils/stage-metadata");
171
181
  Object.defineProperty(exports, "getStageMetadata", { enumerable: true, get: function () { return stage_metadata_1.getStageMetadata; } });
172
182
  Object.defineProperty(exports, "formatStageTitle", { enumerable: true, get: function () { return stage_metadata_1.formatStageTitle; } });
183
+ Object.defineProperty(exports, "getAllStageMetadata", { enumerable: true, get: function () { return stage_metadata_1.getAllStageMetadata; } });
184
+ Object.defineProperty(exports, "ALL_STAGE_TYPES", { enumerable: true, get: function () { return stage_metadata_1.ALL_STAGE_TYPES; } });
173
185
  // Address utilities
174
186
  var chain_1 = require("./utils/chain");
175
187
  Object.defineProperty(exports, "addressEquals", { enumerable: true, get: function () { return chain_1.addressEquals; } });
@@ -195,14 +207,11 @@ Object.defineProperty(exports, "truncate", { enumerable: true, get: function ()
195
207
  Object.defineProperty(exports, "safeStringify", { enumerable: true, get: function () { return formatters_1.safeStringify; } });
196
208
  Object.defineProperty(exports, "formatValue", { enumerable: true, get: function () { return formatters_1.formatValue; } });
197
209
  Object.defineProperty(exports, "formatDate", { enumerable: true, get: function () { return formatters_1.formatDate; } });
198
- Object.defineProperty(exports, "CHAIN_TO_CHAIN_ID", { enumerable: true, get: function () { return formatters_1.CHAIN_TO_CHAIN_ID; } });
199
210
  Object.defineProperty(exports, "formatStageData", { enumerable: true, get: function () { return formatters_1.formatStageData; } });
200
211
  Object.defineProperty(exports, "getTxHash", { enumerable: true, get: function () { return formatters_1.getTxHash; } });
201
212
  Object.defineProperty(exports, "getProposalIdDisplay", { enumerable: true, get: function () { return formatters_1.getProposalIdDisplay; } });
202
213
  Object.defineProperty(exports, "formatDecodedCalldata", { enumerable: true, get: function () { return formatters_1.formatDecodedCalldata; } });
203
214
  Object.defineProperty(exports, "filterVisibleLines", { enumerable: true, get: function () { return formatters_1.filterVisibleLines; } });
204
- Object.defineProperty(exports, "getAllFoldableKeys", { enumerable: true, get: function () { return formatters_1.getAllFoldableKeys; } });
205
- Object.defineProperty(exports, "toggleFoldKey", { enumerable: true, get: function () { return formatters_1.toggleFoldKey; } });
206
215
  // ============================================================================
207
216
  // TIER 5: Election Tracking
208
217
  // ============================================================================
@@ -271,6 +280,10 @@ Object.defineProperty(exports, "prepareRetryableSimulation", { enumerable: true,
271
280
  Object.defineProperty(exports, "prepareTimelockSimulation", { enumerable: true, get: function () { return simulation_1.prepareTimelockSimulation; } });
272
281
  Object.defineProperty(exports, "prepareCallSimulation", { enumerable: true, get: function () { return simulation_1.prepareCallSimulation; } });
273
282
  Object.defineProperty(exports, "extractAllSimulationsFromDecoded", { enumerable: true, get: function () { return simulation_1.extractAllSimulationsFromDecoded; } });
283
+ Object.defineProperty(exports, "extractSimulationsByActionIndex", { enumerable: true, get: function () { return simulation_1.extractSimulationsByActionIndex; } });
284
+ // Tenderly payload builders (dependency-free)
285
+ Object.defineProperty(exports, "buildTenderlySimRequest", { enumerable: true, get: function () { return simulation_1.buildTenderlySimRequest; } });
286
+ Object.defineProperty(exports, "buildTenderlyEncodeStatesRequest", { enumerable: true, get: function () { return simulation_1.buildTenderlyEncodeStatesRequest; } });
274
287
  // ============================================================================
275
288
  // TIER 8: Cache Implementations
276
289
  // ============================================================================
@@ -279,6 +292,15 @@ Object.defineProperty(exports, "FileCache", { enumerable: true, get: function ()
279
292
  Object.defineProperty(exports, "LocalStorageCache", { enumerable: true, get: function () { return cache_1.LocalStorageCache; } });
280
293
  Object.defineProperty(exports, "MemoryCache", { enumerable: true, get: function () { return cache_1.MemoryCache; } });
281
294
  Object.defineProperty(exports, "getBundledCachePath", { enumerable: true, get: function () { return cache_1.getBundledCachePath; } });
295
+ // Bundled cache extraction utilities
296
+ var bundled_cache_1 = require("./tracker/bundled-cache");
297
+ Object.defineProperty(exports, "extractProposals", { enumerable: true, get: function () { return bundled_cache_1.extractProposals; } });
298
+ Object.defineProperty(exports, "extractTimelockOps", { enumerable: true, get: function () { return bundled_cache_1.extractTimelockOps; } });
299
+ Object.defineProperty(exports, "extractElections", { enumerable: true, get: function () { return bundled_cache_1.extractElections; } });
300
+ Object.defineProperty(exports, "extractOperationIds", { enumerable: true, get: function () { return bundled_cache_1.extractOperationIds; } });
301
+ Object.defineProperty(exports, "extractTimelockLinkFromStages", { enumerable: true, get: function () { return bundled_cache_1.extractTimelockLinkFromStages; } });
302
+ Object.defineProperty(exports, "getWatermarksFromCache", { enumerable: true, get: function () { return bundled_cache_1.getWatermarksFromCache; } });
303
+ Object.defineProperty(exports, "getVotingDataFromStages", { enumerable: true, get: function () { return bundled_cache_1.getVotingDataFromStages; } });
282
304
  // ============================================================================
283
305
  // TIER 9: Internal Utilities (for testing)
284
306
  // ============================================================================
@@ -303,9 +325,11 @@ Object.defineProperty(exports, "isTimelockOpKey", { enumerable: true, get: funct
303
325
  Object.defineProperty(exports, "isDiscoveryKey", { enumerable: true, get: function () { return checkpoint_helpers_1.isDiscoveryKey; } });
304
326
  Object.defineProperty(exports, "parseElectionKey", { enumerable: true, get: function () { return checkpoint_helpers_1.parseElectionKey; } });
305
327
  Object.defineProperty(exports, "parseTimelockOpKey", { enumerable: true, get: function () { return checkpoint_helpers_1.parseTimelockOpKey; } });
328
+ Object.defineProperty(exports, "trimFromStage", { enumerable: true, get: function () { return checkpoint_helpers_1.trimFromStage; } });
306
329
  Object.defineProperty(exports, "DEFAULT_ERROR_THRESHOLD", { enumerable: true, get: function () { return checkpoint_helpers_1.DEFAULT_ERROR_THRESHOLD; } });
307
330
  Object.defineProperty(exports, "ELECTION_KEY_PREFIX", { enumerable: true, get: function () { return checkpoint_helpers_1.ELECTION_KEY_PREFIX; } });
308
331
  Object.defineProperty(exports, "TX_KEY_PREFIX", { enumerable: true, get: function () { return checkpoint_helpers_1.TX_KEY_PREFIX; } });
309
332
  var discovery_1 = require("./tracker/discovery");
310
333
  Object.defineProperty(exports, "WATERMARKS_KEY", { enumerable: true, get: function () { return discovery_1.WATERMARKS_KEY; } });
334
+ Object.defineProperty(exports, "loadWatermarks", { enumerable: true, get: function () { return discovery_1.loadWatermarks; } });
311
335
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;;;;;;AAEH,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,oBAAoB;AACpB,qCAAqF;AAA5E,+GAAA,oBAAoB,OAAA;AAAE,wGAAA,aAAa,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AA4FjE,cAAc;AACd,iCAA0F;AAAjF,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,kGAAA,SAAS,OAAA;AAAE,oGAAA,WAAW,OAAA;AAExE,YAAY;AACZ,yCASqB;AARnB,sGAAA,SAAS,OAAA;AACT,sGAAA,SAAS,OAAA;AACT,6GAAA,gBAAgB,OAAA;AAChB,wGAAA,WAAW,OAAA;AACX,wGAAA,WAAW,OAAA;AACX,+GAAA,kBAAkB,OAAA;AAClB,+GAAA,kBAAkB,OAAA;AAClB,gHAAA,mBAAmB,OAAA;AAGrB,kBAAkB;AAClB,wCAWwB;AAVtB,4GAAA,mBAAmB,OAAA;AACnB,gHAAA,uBAAuB,OAAA;AACvB,oGAAA,WAAW,OAAA;AACX,iHAAA,wBAAwB,OAAA;AACxB,wGAAA,eAAe,OAAA;AACf,6GAAA,oBAAoB,OAAA;AACpB,2GAAA,kBAAkB,OAAA;AAClB,wGAAA,eAAe,OAAA;AACf,yGAAA,gBAAgB,OAAA;AAChB,kGAAA,SAAS,OAAA;AAGX,+EAA+E;AAC/E,8CAA8C;AAC9C,+EAA+E;AAE/E,yBAAyB;AACzB,qEAOwC;AANtC,wHAAA,kBAAkB,OAAA;AAClB,wHAAA,kBAAkB,OAAA;AAClB,gIAAA,0BAA0B,OAAA;AAC1B,wHAAA,kBAAkB,OAAA;AAClB,sHAAA,gBAAgB,OAAA;AAChB,8HAAA,wBAAwB,OAAA;AAI1B,yBAAyB;AACzB,qEAMwC;AALtC,uHAAA,iBAAiB,OAAA;AACjB,kHAAA,YAAY,OAAA;AACZ,+HAAA,yBAAyB,OAAA;AACzB,sHAAA,gBAAgB,OAAA;AAChB,+HAAA,yBAAyB,OAAA;AAI3B,mBAAmB;AACnB,iEAUsC;AATpC,8HAAA,0BAA0B,OAAA;AAC1B,qIAAA,iCAAiC,OAAA;AACjC,gIAAA,4BAA4B,OAAA;AAC5B,4IAAA,wCAAwC,OAAA;AACxC,mIAAA,+BAA+B,OAAA;AAC/B,sHAAA,kBAAkB,OAAA;AAClB,mCAAmC;AACnC,qHAAA,iBAAiB,OAAA;AACjB,2HAAA,uBAAuB,OAAA;AAOzB,mBAAmB;AACnB,yCAQwB;AAPtB,sGAAA,YAAY,OAAA;AACZ,8GAAA,oBAAoB,OAAA;AACpB,mHAAA,yBAAyB,OAAA;AACzB,oHAAA,0BAA0B,OAAA;AAC1B,gHAAA,sBAAsB,OAAA;AACtB,kHAAA,wBAAwB,OAAA;AACxB,sGAAA,YAAY,OAAA;AAGd,iBAAiB;AACjB,6DAIkC;AAHhC,uHAAA,mBAAmB,OAAA;AACnB,+HAAA,2BAA2B,OAAA;AAC3B,4HAAA,wBAAwB,OAAA;AAI1B,yBAAyB;AACzB,qDAK8B;AAJ5B,4GAAA,YAAY,OAAA;AACZ,iHAAA,iBAAiB,OAAA;AACjB,+HAAA,+BAA+B,OAAA;AAC/B,2GAAA,WAAW,OAAA;AAGb,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E,uBAAuB;AACvB,8CAM2B;AALzB,oHAAA,wBAAwB,OAAA;AACxB,gHAAA,oBAAoB,OAAA;AACpB,gHAAA,oBAAoB,OAAA;AACpB,4HAAA,gCAAgC,OAAA;AAChC,yHAAA,6BAA6B,OAAA;AAG/B,4BAA4B;AAC5B,8DAImC;AAHjC,wHAAA,oBAAoB,OAAA;AACpB,6HAAA,yBAAyB,OAAA;AACzB,qHAAA,iBAAiB,OAAA;AAInB,wBAAwB;AACxB,kDAI6B;AAH3B,wHAAA,0BAA0B,OAAA;AAC1B,kHAAA,oBAAoB,OAAA;AACpB,mHAAA,qBAAqB,OAAA;AAIvB,6BAA6B;AAC7B,4DAAgE;AAAvD,uHAAA,oBAAoB,OAAA;AAG7B,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E,+BAA+B;AAC/B,yCAKqB;AAJnB,qGAAA,QAAQ,OAAA;AACR,mHAAA,sBAAsB,OAAA;AACtB,oHAAA,uBAAuB,OAAA;AACvB,4GAAA,eAAe,OAAA;AAGjB,iBAAiB;AACjB,yDAA4E;AAAnE,kHAAA,gBAAgB,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AAG3C,oBAAoB;AACpB,uCAAqE;AAA5D,sGAAA,aAAa,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAC7C,iCAA8E;AAArE,uGAAA,cAAc,OAAA;AAAE,uGAAA,cAAc,OAAA;AAAE,4GAAA,mBAAmB,OAAA;AAE5D,uBAAuB;AACvB,+CAAyD;AAAhD,iHAAA,oBAAoB,OAAA;AAE7B,qBAAqB;AACrB,6CAK0B;AAJxB,+GAAA,mBAAmB,OAAA;AACnB,8GAAA,kBAAkB,OAAA;AAClB,yGAAA,aAAa,OAAA;AACb,kHAAA,sBAAsB,OAAA;AAGxB,+BAA+B;AAC/B,iDAgB4B;AAf1B,sGAAA,QAAQ,OAAA;AACR,sGAAA,QAAQ,OAAA;AACR,2GAAA,aAAa,OAAA;AACb,yGAAA,WAAW,OAAA;AACX,wGAAA,UAAU,OAAA;AACV,+GAAA,iBAAiB,OAAA;AAEjB,6GAAA,eAAe,OAAA;AACf,uGAAA,SAAS,OAAA;AACT,kHAAA,oBAAoB,OAAA;AAEpB,mHAAA,qBAAqB,OAAA;AACrB,gHAAA,kBAAkB,OAAA;AAClB,gHAAA,kBAAkB,OAAA;AAClB,2GAAA,aAAa,OAAA;AAGf,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,uCAwBoB;AAvBlB,kBAAkB;AAClB,4GAAA,gBAAgB,OAAA;AAChB,+GAAA,mBAAmB,OAAA;AACnB,4GAAA,gBAAgB,OAAA;AAChB,8BAA8B;AAC9B,yHAAA,6BAA6B,OAAA;AAC7B,wBAAwB;AACxB,iHAAA,qBAAqB,OAAA;AACrB,qHAAA,yBAAyB,OAAA;AACzB,2HAAA,+BAA+B,OAAA;AAC/B,uBAAuB;AACvB,mHAAA,uBAAuB,OAAA;AACvB,wHAAA,4BAA4B,OAAA;AAC5B,0HAAA,8BAA8B,OAAA;AAC9B,6BAA6B;AAC7B,yGAAA,aAAa,OAAA;AACb,gHAAA,oBAAoB,OAAA;AACpB,+GAAA,mBAAmB,OAAA;AACnB,qHAAA,yBAAyB,OAAA;AACzB,oHAAA,wBAAwB,OAAA;AACxB,iCAAiC;AACjC,mHAAA,uBAAuB,OAAA;AACvB,kHAAA,sBAAsB,OAAA;AAIxB,mCAAmC;AACnC,iDAWyB;AAVvB,4HAAA,2BAA2B,OAAA;AAC3B,sHAAA,qBAAqB,OAAA;AACrB,oHAAA,mBAAmB,OAAA;AACnB,kHAAA,iBAAiB,OAAA;AACjB,uHAAA,sBAAsB,OAAA;AACtB,oHAAA,mBAAmB,OAAA;AACnB,oHAAA,mBAAmB,OAAA;AACnB,sHAAA,qBAAqB,OAAA;AACrB,oHAAA,mBAAmB,OAAA;AACnB,4HAAA,2BAA2B,OAAA;AAI7B,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,uCAmBoB;AAlBlB,eAAe;AACf,0GAAA,cAAc,OAAA;AACd,+GAAA,mBAAmB,OAAA;AACnB,mBAAmB;AACnB,2GAAA,eAAe,OAAA;AACf,gHAAA,oBAAoB,OAAA;AAEpB,sBAAsB;AACtB,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAChB,8GAAA,kBAAkB,OAAA;AAClB,oBAAoB;AACpB,2GAAA,eAAe,OAAA;AACf,mBAAmB;AACnB,kHAAA,sBAAsB,OAAA;AACtB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AAGxB,+EAA+E;AAC/E,sCAAsC;AACtC,+EAA+E;AAE/E,2CAKsB;AAJpB,wHAAA,0BAA0B,OAAA;AAC1B,uHAAA,yBAAyB,OAAA;AACzB,mHAAA,qBAAqB,OAAA;AACrB,8HAAA,gCAAgC,OAAA;AAGlC,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E,yCAAiG;AAAxF,kGAAA,SAAS,OAAA;AAAE,0GAAA,iBAAiB,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,4GAAA,mBAAmB,OAAA;AAEvE,+EAA+E;AAC/E,2CAA2C;AAC3C,+EAA+E;AAE/E,yCAAwE;AAA/D,yGAAA,gBAAgB,OAAA;AAAE,4GAAA,mBAAmB,OAAA;AAE9C,+CAAoF;AAA3E,8GAAA,kBAAkB,OAAA;AAAE,sHAAA,0BAA0B,OAAA;AAEvD,mEAkBsC;AAjBpC,8HAAA,wBAAwB,OAAA;AACxB,0HAAA,oBAAoB,OAAA;AACpB,yHAAA,mBAAmB,OAAA;AACnB,6HAAA,uBAAuB,OAAA;AACvB,uHAAA,iBAAiB,OAAA;AACjB,sHAAA,gBAAgB,OAAA;AAChB,oHAAA,cAAc,OAAA;AACd,wHAAA,kBAAkB,OAAA;AAClB,mHAAA,aAAa,OAAA;AACb,6GAAA,OAAO,OAAA;AACP,qHAAA,eAAe,OAAA;AACf,oHAAA,cAAc,OAAA;AACd,sHAAA,gBAAgB,OAAA;AAChB,wHAAA,kBAAkB,OAAA;AAClB,6HAAA,uBAAuB,OAAA;AACvB,yHAAA,mBAAmB,OAAA;AACnB,mHAAA,aAAa,OAAA;AAGf,iDAAqD;AAA5C,2GAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,8 @@
3
3
  *
4
4
  * Re-exports simulation data preparation functions for Tenderly API usage.
5
5
  */
6
- export { prepareRetryableSimulation, prepareTimelockSimulation, prepareCallSimulation, extractAllSimulationsFromDecoded, } from "./simulation-data";
6
+ export { prepareRetryableSimulation, prepareTimelockSimulation, prepareCallSimulation, extractAllSimulationsFromDecoded, extractSimulationsByActionIndex, } from "./simulation-data";
7
+ export type { IndexedSimulation } from "./simulation-data";
8
+ export { buildTenderlySimRequest, buildTenderlyEncodeStatesRequest } from "./tenderly-payloads";
9
+ export type { TenderlySimRequest, TenderlyEncodeStatesRequest } from "./tenderly-payloads";
7
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simulation/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,gCAAgC,GACjC,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simulation/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAChG,YAAY,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC"}
@@ -5,10 +5,14 @@
5
5
  * Re-exports simulation data preparation functions for Tenderly API usage.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.extractAllSimulationsFromDecoded = exports.prepareCallSimulation = exports.prepareTimelockSimulation = exports.prepareRetryableSimulation = void 0;
8
+ exports.buildTenderlyEncodeStatesRequest = exports.buildTenderlySimRequest = exports.extractSimulationsByActionIndex = exports.extractAllSimulationsFromDecoded = exports.prepareCallSimulation = exports.prepareTimelockSimulation = exports.prepareRetryableSimulation = void 0;
9
9
  var simulation_data_1 = require("./simulation-data");
10
10
  Object.defineProperty(exports, "prepareRetryableSimulation", { enumerable: true, get: function () { return simulation_data_1.prepareRetryableSimulation; } });
11
11
  Object.defineProperty(exports, "prepareTimelockSimulation", { enumerable: true, get: function () { return simulation_data_1.prepareTimelockSimulation; } });
12
12
  Object.defineProperty(exports, "prepareCallSimulation", { enumerable: true, get: function () { return simulation_data_1.prepareCallSimulation; } });
13
13
  Object.defineProperty(exports, "extractAllSimulationsFromDecoded", { enumerable: true, get: function () { return simulation_data_1.extractAllSimulationsFromDecoded; } });
14
+ Object.defineProperty(exports, "extractSimulationsByActionIndex", { enumerable: true, get: function () { return simulation_data_1.extractSimulationsByActionIndex; } });
15
+ var tenderly_payloads_1 = require("./tenderly-payloads");
16
+ Object.defineProperty(exports, "buildTenderlySimRequest", { enumerable: true, get: function () { return tenderly_payloads_1.buildTenderlySimRequest; } });
17
+ Object.defineProperty(exports, "buildTenderlyEncodeStatesRequest", { enumerable: true, get: function () { return tenderly_payloads_1.buildTenderlyEncodeStatesRequest; } });
14
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/simulation/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,qDAK2B;AAJzB,6HAAA,0BAA0B,OAAA;AAC1B,4HAAA,yBAAyB,OAAA;AACzB,wHAAA,qBAAqB,OAAA;AACrB,mIAAA,gCAAgC,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/simulation/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,qDAM2B;AALzB,6HAAA,0BAA0B,OAAA;AAC1B,4HAAA,yBAAyB,OAAA;AACzB,wHAAA,qBAAqB,OAAA;AACrB,mIAAA,gCAAgC,OAAA;AAChC,kIAAA,+BAA+B,OAAA;AAIjC,yDAAgG;AAAvF,4HAAA,uBAAuB,OAAA;AAAE,qIAAA,gCAAgC,OAAA"}
@@ -5,7 +5,7 @@
5
5
  * Does not make API calls - returns data for client consumption.
6
6
  */
7
7
  import type { DecodedCalldata } from "../types/calldata";
8
- import { Chain } from "../types";
8
+ import { Chain, L2Chain } from "../types";
9
9
  import type { RetryableSimulationData, TimelockSimulationData, CallSimulationData, ExtractedSimulation } from "../types/simulation";
10
10
  /**
11
11
  * Prepare retryable ticket simulation data
@@ -16,7 +16,7 @@ import type { RetryableSimulationData, TimelockSimulationData, CallSimulationDat
16
16
  * @param l2Chain - Target L2 chain
17
17
  * @returns Simulation data for client use
18
18
  */
19
- export declare function prepareRetryableSimulation(l2Target: string, l2Calldata: string, l2Value: string, l2Chain: Chain): RetryableSimulationData;
19
+ export declare function prepareRetryableSimulation(l2Target: string, l2Calldata: string, l2Value: string, l2Chain: L2Chain | "unknown"): RetryableSimulationData;
20
20
  /**
21
21
  * Prepare timelock batch simulation data
22
22
  *
@@ -50,4 +50,35 @@ export declare function prepareCallSimulation(target: string, calldata: string,
50
50
  * @returns Array of extracted simulations
51
51
  */
52
52
  export declare function extractAllSimulationsFromDecoded(decoded: DecodedCalldata, chainContext?: Chain): ExtractedSimulation[];
53
+ /**
54
+ * Simulation data with action index tracking.
55
+ * Extends ExtractedSimulation with the proposal action index.
56
+ */
57
+ export interface IndexedSimulation extends ExtractedSimulation {
58
+ /** Index of the proposal action this simulation came from (0-based) */
59
+ actionIndex: number;
60
+ }
61
+ /**
62
+ * Extract simulations from decoded proposal actions with action index tracking.
63
+ *
64
+ * This is a convenience wrapper for UI builders that need to map simulations
65
+ * back to their source proposal action. Each returned simulation includes
66
+ * the actionIndex indicating which proposal action it originated from.
67
+ *
68
+ * @param decodedActions - Array of decoded calldata from proposal actions
69
+ * @param chain - Chain context for simulation preparation
70
+ * @returns Array of simulations with action index tracking
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * const decodedActions = await Promise.all(
75
+ * calldatas.map((cd, i) => decodeCalldata(cd, targets[i], 0, "arb1"))
76
+ * );
77
+ * const indexed = extractSimulationsByActionIndex(decodedActions, "arb1");
78
+ *
79
+ * // Group by action for UI display
80
+ * const byAction = Map.groupBy(indexed, s => s.actionIndex);
81
+ * ```
82
+ */
83
+ export declare function extractSimulationsByActionIndex(decodedActions: DecodedCalldata[], chain?: Chain): IndexedSimulation[];
53
84
  //# sourceMappingURL=simulation-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"simulation-data.d.ts","sourceRoot":"","sources":["../../src/simulation/simulation-data.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAkB,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAY7B;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,KAAK,GACb,uBAAuB,CAkBzB;AA2ED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,eAAe,EAAE,MAAM,EACvB,qBAAqB,EAAE,MAAM,EAC7B,KAAK,GAAE,KAAkB,GACxB,sBAAsB,GAAG,IAAI,CAiC/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,kBAAkB,CA0BpB;AAwGD;;;;;;;;;;;GAWG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,eAAe,EACxB,YAAY,GAAE,KAAc,GAC3B,mBAAmB,EAAE,CA0CvB"}
1
+ {"version":3,"file":"simulation-data.d.ts","sourceRoot":"","sources":["../../src/simulation/simulation-data.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAkB,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAY7B;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GAAG,SAAS,GAC3B,uBAAuB,CAkBzB;AAmFD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,eAAe,EAAE,MAAM,EACvB,qBAAqB,EAAE,MAAM,EAC7B,KAAK,GAAE,KAAkB,GACxB,sBAAsB,GAAG,IAAI,CAiC/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,kBAAkB,CA0BpB;AAwGD;;;;;;;;;;;GAWG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,eAAe,EACxB,YAAY,GAAE,KAAc,GAC3B,mBAAmB,EAAE,CA0CvB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,+BAA+B,CAC7C,cAAc,EAAE,eAAe,EAAE,EACjC,KAAK,GAAE,KAAc,GACpB,iBAAiB,EAAE,CAarB"}
@@ -10,6 +10,7 @@ exports.prepareRetryableSimulation = prepareRetryableSimulation;
10
10
  exports.prepareTimelockSimulation = prepareTimelockSimulation;
11
11
  exports.prepareCallSimulation = prepareCallSimulation;
12
12
  exports.extractAllSimulationsFromDecoded = extractAllSimulationsFromDecoded;
13
+ exports.extractSimulationsByActionIndex = extractSimulationsByActionIndex;
13
14
  const ethers_1 = require("ethers");
14
15
  const address_1 = require("@arbitrum/sdk/dist/lib/dataEntities/address");
15
16
  const types_1 = require("../types");
@@ -54,16 +55,21 @@ function prepareRetryableSimulation(l2Target, l2Calldata, l2Value, l2Chain) {
54
55
  * Decode scheduleBatch calldata to extract batch parameters
55
56
  */
56
57
  function decodeScheduleBatchParams(calldata) {
57
- // Remove selector
58
- const data = calldata.slice(10);
59
- const decoded = ethers_1.ethers.utils.defaultAbiCoder.decode(["address[]", "uint256[]", "bytes[]", "bytes32", "bytes32", "uint256"], "0x" + data);
60
- return {
61
- targets: decoded[0].map((a) => String(a)),
62
- values: decoded[1].map((v) => v.toString()),
63
- calldatas: decoded[2],
64
- predecessor: decoded[3],
65
- salt: decoded[4],
66
- };
58
+ try {
59
+ // Remove selector
60
+ const data = calldata.slice(10);
61
+ const decoded = ethers_1.ethers.utils.defaultAbiCoder.decode(["address[]", "uint256[]", "bytes[]", "bytes32", "bytes32", "uint256"], "0x" + data);
62
+ return {
63
+ targets: decoded[0].map((a) => String(a)),
64
+ values: decoded[1].map((v) => v.toString()),
65
+ calldatas: decoded[2],
66
+ predecessor: decoded[3],
67
+ salt: decoded[4],
68
+ };
69
+ }
70
+ catch {
71
+ return null;
72
+ }
67
73
  }
68
74
  /**
69
75
  * Convert scheduleBatch calldata to executeBatch
@@ -74,21 +80,26 @@ function decodeScheduleBatchParams(calldata) {
74
80
  * The delay parameter is removed when converting to execute
75
81
  */
76
82
  function convertScheduleToExecute(calldata) {
77
- if (calldata.toLowerCase().startsWith(constants_1.TIMELOCK_SELECTORS.scheduleBatch)) {
78
- // Decode scheduleBatch parameters (includes delay as 6th param)
79
- const data = calldata.slice(10);
80
- const decoded = ethers_1.ethers.utils.defaultAbiCoder.decode(["address[]", "uint256[]", "bytes[]", "bytes32", "bytes32", "uint256"], "0x" + data);
81
- // Re-encode as executeBatch (without delay)
82
- const encoded = ethers_1.ethers.utils.defaultAbiCoder.encode(["address[]", "uint256[]", "bytes[]", "bytes32", "bytes32"], [decoded[0], decoded[1], decoded[2], decoded[3], decoded[4]]);
83
- return constants_1.TIMELOCK_SELECTORS.executeBatch + encoded.slice(2);
83
+ try {
84
+ if (calldata.toLowerCase().startsWith(constants_1.TIMELOCK_SELECTORS.scheduleBatch)) {
85
+ // Decode scheduleBatch parameters (includes delay as 6th param)
86
+ const data = calldata.slice(10);
87
+ const decoded = ethers_1.ethers.utils.defaultAbiCoder.decode(["address[]", "uint256[]", "bytes[]", "bytes32", "bytes32", "uint256"], "0x" + data);
88
+ // Re-encode as executeBatch (without delay)
89
+ const encoded = ethers_1.ethers.utils.defaultAbiCoder.encode(["address[]", "uint256[]", "bytes[]", "bytes32", "bytes32"], [decoded[0], decoded[1], decoded[2], decoded[3], decoded[4]]);
90
+ return constants_1.TIMELOCK_SELECTORS.executeBatch + encoded.slice(2);
91
+ }
92
+ if (calldata.toLowerCase().startsWith(constants_1.TIMELOCK_SELECTORS.schedule)) {
93
+ // Decode schedule parameters (includes delay as 6th param)
94
+ const data = calldata.slice(10);
95
+ const decoded = ethers_1.ethers.utils.defaultAbiCoder.decode(["address", "uint256", "bytes", "bytes32", "bytes32", "uint256"], "0x" + data);
96
+ // Re-encode as execute (without delay)
97
+ const encoded = ethers_1.ethers.utils.defaultAbiCoder.encode(["address", "uint256", "bytes", "bytes32", "bytes32"], [decoded[0], decoded[1], decoded[2], decoded[3], decoded[4]]);
98
+ return constants_1.TIMELOCK_SELECTORS.execute + encoded.slice(2);
99
+ }
84
100
  }
85
- if (calldata.toLowerCase().startsWith(constants_1.TIMELOCK_SELECTORS.schedule)) {
86
- // Decode schedule parameters (includes delay as 6th param)
87
- const data = calldata.slice(10);
88
- const decoded = ethers_1.ethers.utils.defaultAbiCoder.decode(["address", "uint256", "bytes", "bytes32", "bytes32", "uint256"], "0x" + data);
89
- // Re-encode as execute (without delay)
90
- const encoded = ethers_1.ethers.utils.defaultAbiCoder.encode(["address", "uint256", "bytes", "bytes32", "bytes32"], [decoded[0], decoded[1], decoded[2], decoded[3], decoded[4]]);
91
- return constants_1.TIMELOCK_SELECTORS.execute + encoded.slice(2);
101
+ catch {
102
+ // Decode failed, return original calldata
92
103
  }
93
104
  return calldata;
94
105
  }
@@ -293,4 +304,37 @@ function extractAllSimulationsFromDecoded(decoded, chainContext = "arb1") {
293
304
  }
294
305
  return simulations;
295
306
  }
307
+ /**
308
+ * Extract simulations from decoded proposal actions with action index tracking.
309
+ *
310
+ * This is a convenience wrapper for UI builders that need to map simulations
311
+ * back to their source proposal action. Each returned simulation includes
312
+ * the actionIndex indicating which proposal action it originated from.
313
+ *
314
+ * @param decodedActions - Array of decoded calldata from proposal actions
315
+ * @param chain - Chain context for simulation preparation
316
+ * @returns Array of simulations with action index tracking
317
+ *
318
+ * @example
319
+ * ```typescript
320
+ * const decodedActions = await Promise.all(
321
+ * calldatas.map((cd, i) => decodeCalldata(cd, targets[i], 0, "arb1"))
322
+ * );
323
+ * const indexed = extractSimulationsByActionIndex(decodedActions, "arb1");
324
+ *
325
+ * // Group by action for UI display
326
+ * const byAction = Map.groupBy(indexed, s => s.actionIndex);
327
+ * ```
328
+ */
329
+ function extractSimulationsByActionIndex(decodedActions, chain = "arb1") {
330
+ const results = [];
331
+ for (let actionIndex = 0; actionIndex < decodedActions.length; actionIndex++) {
332
+ const decoded = decodedActions[actionIndex];
333
+ const sims = extractAllSimulationsFromDecoded(decoded, chain);
334
+ for (const sim of sims) {
335
+ results.push({ ...sim, actionIndex });
336
+ }
337
+ }
338
+ return results;
339
+ }
296
340
  //# sourceMappingURL=simulation-data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"simulation-data.js","sourceRoot":"","sources":["../../src/simulation/simulation-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simulation-data.js","sourceRoot":"","sources":["../../src/simulation/simulation-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Tenderly Payload Builders
3
+ *
4
+ * Dependency-free utilities for building Tenderly API request payloads.
5
+ * These functions prepare data structures only - no HTTP calls or SDK dependencies.
6
+ *
7
+ * @example Basic simulation request
8
+ * ```typescript
9
+ * const payload = buildTenderlySimRequest(simulation);
10
+ * const response = await fetch(
11
+ * `https://api.tenderly.co/api/v1/account/${account}/project/${project}/simulate`,
12
+ * { method: "POST", body: JSON.stringify(payload), headers: { "X-Access-Key": key } }
13
+ * );
14
+ * ```
15
+ *
16
+ * @example Timelock simulation with state override
17
+ * ```typescript
18
+ * // Step 1: Encode states
19
+ * const encodePayload = buildTenderlyEncodeStatesRequest([timelockSim]);
20
+ * const encodeResponse = await fetch(...);
21
+ * const encodedState = encodeResponse.stateOverrides[timelockAddress].value;
22
+ *
23
+ * // Step 2: Simulate with encoded state
24
+ * const simPayload = buildTenderlySimRequest(timelockSim, {
25
+ * state_objects: { [timelockAddress]: { storage: encodedState } }
26
+ * });
27
+ * ```
28
+ */
29
+ import type { SimulationData } from "../types/simulation";
30
+ /**
31
+ * Tenderly simulation request payload.
32
+ * Matches the Tenderly API simulate endpoint schema.
33
+ */
34
+ export interface TenderlySimRequest {
35
+ /** Network ID (e.g., "1", "42161", "42170") */
36
+ network_id: string;
37
+ /** Sender address */
38
+ from: string;
39
+ /** Target contract address */
40
+ to: string;
41
+ /** Encoded calldata */
42
+ input: string;
43
+ /** Wei value as string */
44
+ value: string;
45
+ /** Save simulation to dashboard */
46
+ save?: boolean;
47
+ /** Save even if simulation fails */
48
+ save_if_fails?: boolean;
49
+ /** Simulation type: "quick" (fast) or "full" (with traces) */
50
+ simulation_type?: "quick" | "full";
51
+ /** Optional state overrides for storage manipulation */
52
+ state_objects?: Record<string, {
53
+ storage: Record<string, string>;
54
+ }>;
55
+ }
56
+ /**
57
+ * Tenderly encode-states request payload.
58
+ * Used to convert symbolic storage keys to actual storage slots.
59
+ */
60
+ export interface TenderlyEncodeStatesRequest {
61
+ /** Network ID for the encoding context */
62
+ networkID: string;
63
+ /** State overrides with symbolic keys */
64
+ stateOverrides: Record<string, {
65
+ value: Record<string, string>;
66
+ }>;
67
+ }
68
+ /**
69
+ * Build a Tenderly simulate request payload from simulation data.
70
+ *
71
+ * @param simulation - Prepared simulation data from extraction functions
72
+ * @param overrides - Optional additional fields to merge into the request
73
+ * @returns Tenderly-compatible simulation request payload
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const payload = buildTenderlySimRequest(simulation);
78
+ * // { network_id: "42161", from: "0x...", to: "0x...", input: "0x...", value: "0", save: true }
79
+ * ```
80
+ */
81
+ export declare function buildTenderlySimRequest(simulation: SimulationData, overrides?: Partial<TenderlySimRequest>): TenderlySimRequest;
82
+ /**
83
+ * Build a Tenderly encode-states request for timelock simulations.
84
+ *
85
+ * Timelock operations require storage overrides to mark the operation as ready
86
+ * for execution. This function builds the request payload for Tenderly's
87
+ * encode-states API, which converts symbolic storage keys (like `_timestamps[opId]`)
88
+ * to actual storage slots.
89
+ *
90
+ * @param simulations - Array of simulation data (filters to timelock type)
91
+ * @returns Tenderly-compatible encode-states request payload, or null if no timelocks
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * const sims = extractAllSimulationsFromDecoded(decoded, "arb1");
96
+ * const encodePayload = buildTenderlyEncodeStatesRequest(sims.map(s => s.simulation));
97
+ *
98
+ * if (encodePayload) {
99
+ * const response = await fetch(
100
+ * `https://api.tenderly.co/.../encode-states`,
101
+ * { method: "POST", body: JSON.stringify(encodePayload) }
102
+ * );
103
+ * }
104
+ * ```
105
+ */
106
+ export declare function buildTenderlyEncodeStatesRequest(simulations: SimulationData[]): TenderlyEncodeStatesRequest | null;
107
+ //# sourceMappingURL=tenderly-payloads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenderly-payloads.d.ts","sourceRoot":"","sources":["../../src/simulation/tenderly-payloads.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,cAAc,EAA0B,MAAM,qBAAqB,CAAC;AAElF;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oCAAoC;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8DAA8D;IAC9D,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACnC,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;CACrE;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;CACnE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,cAAc,EAC1B,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACtC,kBAAkB,CAYpB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,cAAc,EAAE,GAC5B,2BAA2B,GAAG,IAAI,CAyBpC"}