@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.
- package/README.md +18 -10
- package/dist/calldata/decoder.d.ts.map +1 -1
- package/dist/calldata/decoder.js +33 -28
- package/dist/calldata/decoder.js.map +1 -1
- package/dist/calldata/parameter-decoder.d.ts.map +1 -1
- package/dist/calldata/parameter-decoder.js +19 -25
- package/dist/calldata/parameter-decoder.js.map +1 -1
- package/dist/calldata/retryable-ticket.d.ts +2 -2
- package/dist/calldata/retryable-ticket.d.ts.map +1 -1
- package/dist/calldata/retryable-ticket.js +17 -12
- package/dist/calldata/retryable-ticket.js.map +1 -1
- package/dist/calldata/signature-lookup.js +5 -4
- package/dist/calldata/signature-lookup.js.map +1 -1
- package/dist/cli/cli.js +41 -20
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/lib/cli.d.ts +4 -2
- package/dist/cli/lib/cli.d.ts.map +1 -1
- package/dist/cli/lib/cli.js +34 -18
- package/dist/cli/lib/cli.js.map +1 -1
- package/dist/cli/lib/election-check.d.ts.map +1 -1
- package/dist/cli/lib/election-check.js +2 -1
- package/dist/cli/lib/election-check.js.map +1 -1
- package/dist/cli/lib/json-state.js +1 -1
- package/dist/cli/lib/json-state.js.map +1 -1
- package/dist/cli/tui/components/StageProgress.js +1 -1
- package/dist/cli/tui/components/StageProgress.js.map +1 -1
- package/dist/cli/tui/components/StageRow.d.ts.map +1 -1
- package/dist/cli/tui/components/StageRow.js +15 -20
- package/dist/cli/tui/components/StageRow.js.map +1 -1
- package/dist/cli/tui/components/VotingStats.d.ts.map +1 -1
- package/dist/cli/tui/components/VotingStats.js +2 -1
- package/dist/cli/tui/components/VotingStats.js.map +1 -1
- package/dist/cli/tui/hooks/useCache.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useCache.js +2 -1
- package/dist/cli/tui/hooks/useCache.js.map +1 -1
- package/dist/cli/tui/hooks/useElectionData.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useElectionData.js +3 -2
- package/dist/cli/tui/hooks/useElectionData.js.map +1 -1
- package/dist/cli/tui/hooks/useNavigation.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useNavigation.js +2 -3
- package/dist/cli/tui/hooks/useNavigation.js.map +1 -1
- package/dist/cli/tui/hooks/useProposals.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useProposals.js +26 -36
- package/dist/cli/tui/hooks/useProposals.js.map +1 -1
- package/dist/cli/tui/hooks/useStageCalldata.d.ts.map +1 -1
- package/dist/cli/tui/hooks/useStageCalldata.js +2 -1
- package/dist/cli/tui/hooks/useStageCalldata.js.map +1 -1
- package/dist/cli/tui/utils/index.d.ts +7 -7
- package/dist/cli/tui/utils/index.d.ts.map +1 -1
- package/dist/cli/tui/utils/index.js +18 -13
- package/dist/cli/tui/utils/index.js.map +1 -1
- package/dist/cli/tui/utils/markdown-parser.d.ts +5 -0
- package/dist/cli/tui/utils/markdown-parser.d.ts.map +1 -1
- package/dist/cli/tui/utils/markdown-parser.js +16 -0
- package/dist/cli/tui/utils/markdown-parser.js.map +1 -1
- package/dist/cli/tui/utils/navigation.d.ts +1 -0
- package/dist/cli/tui/utils/navigation.d.ts.map +1 -1
- package/dist/cli/tui/utils/navigation.js +9 -5
- package/dist/cli/tui/utils/navigation.js.map +1 -1
- package/dist/cli/tui/utils/proposal-detail-helpers.js +6 -6
- package/dist/cli/tui/utils/proposal-detail-helpers.js.map +1 -1
- package/dist/cli/tui/utils/stage-status.d.ts +4 -0
- package/dist/cli/tui/utils/stage-status.d.ts.map +1 -1
- package/dist/cli/tui/utils/stage-status.js +47 -1
- package/dist/cli/tui/utils/stage-status.js.map +1 -1
- package/dist/cli/tui/utils/time.d.ts +4 -4
- package/dist/cli/tui/utils/time.d.ts.map +1 -1
- package/dist/cli/tui/utils/time.js +13 -11
- package/dist/cli/tui/utils/time.js.map +1 -1
- package/dist/cli/tui/views/CalldataView.d.ts.map +1 -1
- package/dist/cli/tui/views/CalldataView.js +3 -2
- package/dist/cli/tui/views/CalldataView.js.map +1 -1
- package/dist/cli/tui/views/DescriptionView.d.ts.map +1 -1
- package/dist/cli/tui/views/DescriptionView.js +4 -2
- package/dist/cli/tui/views/DescriptionView.js.map +1 -1
- package/dist/cli/tui/views/ElectionView.d.ts.map +1 -1
- package/dist/cli/tui/views/ElectionView.js +4 -9
- package/dist/cli/tui/views/ElectionView.js.map +1 -1
- package/dist/constants.d.ts +11 -23
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +22 -20
- package/dist/constants.js.map +1 -1
- package/dist/deduplication.d.ts.map +1 -1
- package/dist/deduplication.js +34 -54
- package/dist/deduplication.js.map +1 -1
- package/dist/discovery/governor-discovery.d.ts.map +1 -1
- package/dist/discovery/governor-discovery.js +7 -10
- package/dist/discovery/governor-discovery.js.map +1 -1
- package/dist/discovery/timelock-discovery.d.ts.map +1 -1
- package/dist/discovery/timelock-discovery.js +27 -30
- package/dist/discovery/timelock-discovery.js.map +1 -1
- package/dist/election/contracts.d.ts.map +1 -1
- package/dist/election/contracts.js +4 -1
- package/dist/election/contracts.js.map +1 -1
- package/dist/election/details.d.ts.map +1 -1
- package/dist/election/details.js +7 -3
- package/dist/election/details.js.map +1 -1
- package/dist/election/params.d.ts.map +1 -1
- package/dist/election/params.js +3 -12
- package/dist/election/params.js.map +1 -1
- package/dist/election/participants.d.ts.map +1 -1
- package/dist/election/participants.js +21 -26
- package/dist/election/participants.js.map +1 -1
- package/dist/election/proposal-ids.js +17 -20
- package/dist/election/proposal-ids.js.map +1 -1
- package/dist/election/status.d.ts.map +1 -1
- package/dist/election/status.js +6 -0
- package/dist/election/status.js.map +1 -1
- package/dist/index.d.ts +23 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -13
- package/dist/index.js.map +1 -1
- package/dist/simulation/index.d.ts +4 -1
- package/dist/simulation/index.d.ts.map +1 -1
- package/dist/simulation/index.js +5 -1
- package/dist/simulation/index.js.map +1 -1
- package/dist/simulation/simulation-data.d.ts +33 -2
- package/dist/simulation/simulation-data.d.ts.map +1 -1
- package/dist/simulation/simulation-data.js +68 -24
- package/dist/simulation/simulation-data.js.map +1 -1
- package/dist/simulation/tenderly-payloads.d.ts +107 -0
- package/dist/simulation/tenderly-payloads.d.ts.map +1 -0
- package/dist/simulation/tenderly-payloads.js +103 -0
- package/dist/simulation/tenderly-payloads.js.map +1 -0
- package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
- package/dist/stages/l2-to-l1-message.js +43 -63
- package/dist/stages/l2-to-l1-message.js.map +1 -1
- package/dist/stages/retryables.d.ts.map +1 -1
- package/dist/stages/retryables.js +10 -9
- package/dist/stages/retryables.js.map +1 -1
- package/dist/stages/timelock.d.ts +4 -2
- package/dist/stages/timelock.d.ts.map +1 -1
- package/dist/stages/timelock.js +45 -53
- package/dist/stages/timelock.js.map +1 -1
- package/dist/stages/utils.d.ts +56 -1
- package/dist/stages/utils.d.ts.map +1 -1
- package/dist/stages/utils.js +146 -30
- package/dist/stages/utils.js.map +1 -1
- package/dist/tracker/bundled-cache.d.ts +136 -0
- package/dist/tracker/bundled-cache.d.ts.map +1 -0
- package/dist/tracker/bundled-cache.js +207 -0
- package/dist/tracker/bundled-cache.js.map +1 -0
- package/dist/tracker/checkpoint-helpers.d.ts +20 -1
- package/dist/tracker/checkpoint-helpers.d.ts.map +1 -1
- package/dist/tracker/checkpoint-helpers.js +41 -7
- package/dist/tracker/checkpoint-helpers.js.map +1 -1
- package/dist/tracker/discovery.d.ts +3 -0
- package/dist/tracker/discovery.d.ts.map +1 -1
- package/dist/tracker/discovery.js +59 -34
- package/dist/tracker/discovery.js.map +1 -1
- package/dist/tracker/pipeline.d.ts +3 -10
- package/dist/tracker/pipeline.d.ts.map +1 -1
- package/dist/tracker/pipeline.js +18 -32
- package/dist/tracker/pipeline.js.map +1 -1
- package/dist/tracker/query.d.ts +1 -0
- package/dist/tracker/query.d.ts.map +1 -1
- package/dist/tracker/query.js +28 -36
- package/dist/tracker/query.js.map +1 -1
- package/dist/tracker/state.d.ts +3 -2
- package/dist/tracker/state.d.ts.map +1 -1
- package/dist/tracker/state.js +5 -4
- package/dist/tracker/state.js.map +1 -1
- package/dist/tracker.d.ts +33 -11
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +76 -43
- package/dist/tracker.js.map +1 -1
- package/dist/types/config.d.ts +39 -3
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/simulation.d.ts +2 -2
- package/dist/types/simulation.d.ts.map +1 -1
- package/dist/utils/chain.d.ts +5 -1
- package/dist/utils/chain.d.ts.map +1 -1
- package/dist/utils/chain.js +7 -0
- package/dist/utils/chain.js.map +1 -1
- package/dist/utils/formatters.d.ts +2 -6
- package/dist/utils/formatters.d.ts.map +1 -1
- package/dist/utils/formatters.js +9 -12
- package/dist/utils/formatters.js.map +1 -1
- package/dist/utils/log-filters.js +1 -1
- package/dist/utils/log-filters.js.map +1 -1
- package/dist/utils/multicall.d.ts +0 -1
- package/dist/utils/multicall.d.ts.map +1 -1
- package/dist/utils/rpc-utils.d.ts +5 -0
- package/dist/utils/rpc-utils.d.ts.map +1 -1
- package/dist/utils/rpc-utils.js +9 -1
- package/dist/utils/rpc-utils.js.map +1 -1
- package/dist/utils/stage-metadata.d.ts +19 -0
- package/dist/utils/stage-metadata.d.ts.map +1 -1
- package/dist/utils/stage-metadata.js +44 -0
- package/dist/utils/stage-metadata.js.map +1 -1
- package/dist/utils/timing.d.ts +3 -10
- package/dist/utils/timing.d.ts.map +1 -1
- package/dist/utils/timing.js +9 -22
- package/dist/utils/timing.js.map +1 -1
- package/package.json +1 -1
- package/dist/cli/tui/utils/calldata-formatter.d.ts +0 -7
- package/dist/cli/tui/utils/calldata-formatter.d.ts.map +0 -1
- package/dist/cli/tui/utils/calldata-formatter.js +0 -14
- package/dist/cli/tui/utils/calldata-formatter.js.map +0 -1
- package/dist/cli/tui/utils/stage-formatter.d.ts +0 -7
- package/dist/cli/tui/utils/stage-formatter.d.ts.map +0 -1
- package/dist/cli/tui/utils/stage-formatter.js +0 -13
- package/dist/cli/tui/utils/stage-formatter.js.map +0 -1
- package/dist/cli/tui/utils/text.d.ts +0 -7
- package/dist/cli/tui/utils/text.d.ts.map +0 -1
- package/dist/cli/tui/utils/text.js +0 -12
- 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
|
|
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:
|
|
14
|
-
* l1Provider:
|
|
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:
|
|
40
|
-
* l1Provider:
|
|
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.
|
|
48
|
-
exports.
|
|
49
|
-
exports.
|
|
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
|
|
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,
|
|
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"}
|
package/dist/simulation/index.js
CHANGED
|
@@ -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,
|
|
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:
|
|
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;
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
|
|
86
|
-
// Decode
|
|
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":";AAAA;;;;;GAKG;;AAgCH,gEAuBC;
|
|
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"}
|