@gzeoneth/gov-tracker 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +129 -72
- package/dist/abis.d.ts +3 -0
- package/dist/abis.d.ts.map +1 -1
- package/dist/abis.js +30 -2
- package/dist/abis.js.map +1 -1
- package/dist/calldata/index.d.ts +1 -1
- package/dist/calldata/index.d.ts.map +1 -1
- package/dist/calldata/index.js.map +1 -1
- package/dist/calldata/parameter-decoder.d.ts.map +1 -1
- package/dist/calldata/parameter-decoder.js +8 -1
- package/dist/calldata/parameter-decoder.js.map +1 -1
- package/dist/calldata/signature-lookup.d.ts +17 -2
- package/dist/calldata/signature-lookup.d.ts.map +1 -1
- package/dist/calldata/signature-lookup.js +20 -2
- package/dist/calldata/signature-lookup.js.map +1 -1
- package/dist/cli/cli.d.ts +21 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/{monitor.js → cli.js} +372 -73
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/lib/cli.d.ts +54 -3
- package/dist/cli/lib/cli.d.ts.map +1 -1
- package/dist/cli/lib/cli.js +387 -78
- package/dist/cli/lib/cli.js.map +1 -1
- package/dist/cli/lib/concurrency.d.ts +20 -0
- package/dist/cli/lib/concurrency.d.ts.map +1 -0
- package/dist/cli/lib/concurrency.js +32 -0
- package/dist/cli/lib/concurrency.js.map +1 -0
- package/dist/cli/lib/json-state.d.ts +23 -0
- package/dist/cli/lib/json-state.d.ts.map +1 -1
- package/dist/cli/lib/json-state.js +51 -4
- package/dist/cli/lib/json-state.js.map +1 -1
- package/dist/cli/tui/App.d.ts +11 -0
- package/dist/cli/tui/App.d.ts.map +1 -0
- package/dist/cli/tui/App.js +123 -0
- package/dist/cli/tui/App.js.map +1 -0
- package/dist/cli/tui/components/CopyableText.d.ts +23 -0
- package/dist/cli/tui/components/CopyableText.d.ts.map +1 -0
- package/dist/cli/tui/components/CopyableText.js +49 -0
- package/dist/cli/tui/components/CopyableText.js.map +1 -0
- package/dist/cli/tui/components/Header.d.ts +20 -0
- package/dist/cli/tui/components/Header.d.ts.map +1 -0
- package/dist/cli/tui/components/Header.js +47 -0
- package/dist/cli/tui/components/Header.js.map +1 -0
- package/dist/cli/tui/components/KeyHelp.d.ts +19 -0
- package/dist/cli/tui/components/KeyHelp.d.ts.map +1 -0
- package/dist/cli/tui/components/KeyHelp.js +60 -0
- package/dist/cli/tui/components/KeyHelp.js.map +1 -0
- package/dist/cli/tui/components/ProposalRow.d.ts +11 -0
- package/dist/cli/tui/components/ProposalRow.d.ts.map +1 -0
- package/dist/cli/tui/components/ProposalRow.js +92 -0
- package/dist/cli/tui/components/ProposalRow.js.map +1 -0
- package/dist/cli/tui/components/ScrollIndicator.d.ts +19 -0
- package/dist/cli/tui/components/ScrollIndicator.d.ts.map +1 -0
- package/dist/cli/tui/components/ScrollIndicator.js +50 -0
- package/dist/cli/tui/components/ScrollIndicator.js.map +1 -0
- package/dist/cli/tui/components/SearchBar.d.ts +12 -0
- package/dist/cli/tui/components/SearchBar.d.ts.map +1 -0
- package/dist/cli/tui/components/SearchBar.js +36 -0
- package/dist/cli/tui/components/SearchBar.js.map +1 -0
- package/dist/cli/tui/components/Spinner.d.ts +10 -0
- package/dist/cli/tui/components/Spinner.d.ts.map +1 -0
- package/dist/cli/tui/components/Spinner.js +24 -0
- package/dist/cli/tui/components/Spinner.js.map +1 -0
- package/dist/cli/tui/components/StageProgress.d.ts +12 -0
- package/dist/cli/tui/components/StageProgress.d.ts.map +1 -0
- package/dist/cli/tui/components/StageProgress.js +41 -0
- package/dist/cli/tui/components/StageProgress.js.map +1 -0
- package/dist/cli/tui/components/StageRow.d.ts +12 -0
- package/dist/cli/tui/components/StageRow.d.ts.map +1 -0
- package/dist/cli/tui/components/StageRow.js +80 -0
- package/dist/cli/tui/components/StageRow.js.map +1 -0
- package/dist/cli/tui/components/StatusBadge.d.ts +12 -0
- package/dist/cli/tui/components/StatusBadge.d.ts.map +1 -0
- package/dist/cli/tui/components/StatusBadge.js +27 -0
- package/dist/cli/tui/components/StatusBadge.js.map +1 -0
- package/dist/cli/tui/components/ViewLayout.d.ts +22 -0
- package/dist/cli/tui/components/ViewLayout.d.ts.map +1 -0
- package/dist/cli/tui/components/ViewLayout.js +24 -0
- package/dist/cli/tui/components/ViewLayout.js.map +1 -0
- package/dist/cli/tui/components/VotingStats.d.ts +11 -0
- package/dist/cli/tui/components/VotingStats.d.ts.map +1 -0
- package/dist/cli/tui/components/VotingStats.js +87 -0
- package/dist/cli/tui/components/VotingStats.js.map +1 -0
- package/dist/cli/tui/hooks/index.d.ts +11 -0
- package/dist/cli/tui/hooks/index.d.ts.map +1 -0
- package/dist/cli/tui/hooks/index.js +18 -0
- package/dist/cli/tui/hooks/index.js.map +1 -0
- package/dist/cli/tui/hooks/useCache.d.ts +12 -0
- package/dist/cli/tui/hooks/useCache.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useCache.js +52 -0
- package/dist/cli/tui/hooks/useCache.js.map +1 -0
- package/dist/cli/tui/hooks/useElectionData.d.ts +22 -0
- package/dist/cli/tui/hooks/useElectionData.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useElectionData.js +133 -0
- package/dist/cli/tui/hooks/useElectionData.js.map +1 -0
- package/dist/cli/tui/hooks/useNavigation.d.ts +39 -0
- package/dist/cli/tui/hooks/useNavigation.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useNavigation.js +173 -0
- package/dist/cli/tui/hooks/useNavigation.js.map +1 -0
- package/dist/cli/tui/hooks/useProposals.d.ts +10 -0
- package/dist/cli/tui/hooks/useProposals.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useProposals.js +201 -0
- package/dist/cli/tui/hooks/useProposals.js.map +1 -0
- package/dist/cli/tui/hooks/useScrollableInput.d.ts +14 -0
- package/dist/cli/tui/hooks/useScrollableInput.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useScrollableInput.js +44 -0
- package/dist/cli/tui/hooks/useScrollableInput.js.map +1 -0
- package/dist/cli/tui/hooks/useStageCalldata.d.ts +17 -0
- package/dist/cli/tui/hooks/useStageCalldata.d.ts.map +1 -0
- package/dist/cli/tui/hooks/useStageCalldata.js +77 -0
- package/dist/cli/tui/hooks/useStageCalldata.js.map +1 -0
- package/dist/cli/tui/index.d.ts +13 -0
- package/dist/cli/tui/index.d.ts.map +1 -0
- package/dist/cli/tui/index.js +96 -0
- package/dist/cli/tui/index.js.map +1 -0
- package/dist/cli/tui/ink-wrapper.d.ts +43 -0
- package/dist/cli/tui/ink-wrapper.d.ts.map +1 -0
- package/dist/cli/tui/ink-wrapper.js +41 -0
- package/dist/cli/tui/ink-wrapper.js.map +1 -0
- package/dist/cli/tui/types.d.ts +38 -0
- package/dist/cli/tui/types.d.ts.map +1 -0
- package/dist/cli/tui/types.js +6 -0
- package/dist/cli/tui/types.js.map +1 -0
- package/dist/cli/tui/utils/calldata-formatter.d.ts +7 -0
- package/dist/cli/tui/utils/calldata-formatter.d.ts.map +1 -0
- package/dist/cli/tui/utils/calldata-formatter.js +14 -0
- package/dist/cli/tui/utils/calldata-formatter.js.map +1 -0
- package/dist/cli/tui/utils/clipboard.d.ts +7 -0
- package/dist/cli/tui/utils/clipboard.d.ts.map +1 -0
- package/dist/cli/tui/utils/clipboard.js +46 -0
- package/dist/cli/tui/utils/clipboard.js.map +1 -0
- package/dist/cli/tui/utils/index.d.ts +16 -0
- package/dist/cli/tui/utils/index.d.ts.map +1 -0
- package/dist/cli/tui/utils/index.js +52 -0
- package/dist/cli/tui/utils/index.js.map +1 -0
- package/dist/cli/tui/utils/markdown-parser.d.ts +11 -0
- package/dist/cli/tui/utils/markdown-parser.d.ts.map +1 -0
- package/dist/cli/tui/utils/markdown-parser.js +77 -0
- package/dist/cli/tui/utils/markdown-parser.js.map +1 -0
- package/dist/cli/tui/utils/navigation.d.ts +17 -0
- package/dist/cli/tui/utils/navigation.d.ts.map +1 -0
- package/dist/cli/tui/utils/navigation.js +75 -0
- package/dist/cli/tui/utils/navigation.js.map +1 -0
- package/dist/cli/tui/utils/proposal-detail-helpers.d.ts +9 -0
- package/dist/cli/tui/utils/proposal-detail-helpers.d.ts.map +1 -0
- package/dist/cli/tui/utils/proposal-detail-helpers.js +21 -0
- package/dist/cli/tui/utils/proposal-detail-helpers.js.map +1 -0
- package/dist/cli/tui/utils/shortcuts.d.ts +17 -0
- package/dist/cli/tui/utils/shortcuts.d.ts.map +1 -0
- package/dist/cli/tui/utils/shortcuts.js +100 -0
- package/dist/cli/tui/utils/shortcuts.js.map +1 -0
- package/dist/cli/tui/utils/stage-formatter.d.ts +7 -0
- package/dist/cli/tui/utils/stage-formatter.d.ts.map +1 -0
- package/dist/cli/tui/utils/stage-formatter.js +14 -0
- package/dist/cli/tui/utils/stage-formatter.js.map +1 -0
- package/dist/cli/tui/utils/stage-status.d.ts +10 -0
- package/dist/cli/tui/utils/stage-status.d.ts.map +1 -0
- package/dist/cli/tui/utils/stage-status.js +64 -0
- package/dist/cli/tui/utils/stage-status.js.map +1 -0
- package/dist/cli/tui/utils/terminal.d.ts +18 -0
- package/dist/cli/tui/utils/terminal.d.ts.map +1 -0
- package/dist/cli/tui/utils/terminal.js +26 -0
- package/dist/cli/tui/utils/terminal.js.map +1 -0
- package/dist/cli/tui/utils/text.d.ts +7 -0
- package/dist/cli/tui/utils/text.d.ts.map +1 -0
- package/dist/cli/tui/utils/text.js +12 -0
- package/dist/cli/tui/utils/text.js.map +1 -0
- package/dist/cli/tui/utils/time.d.ts +19 -0
- package/dist/cli/tui/utils/time.d.ts.map +1 -0
- package/dist/cli/tui/utils/time.js +43 -0
- package/dist/cli/tui/utils/time.js.map +1 -0
- package/dist/cli/tui/views/CalldataView.d.ts +12 -0
- package/dist/cli/tui/views/CalldataView.d.ts.map +1 -0
- package/dist/cli/tui/views/CalldataView.js +110 -0
- package/dist/cli/tui/views/CalldataView.js.map +1 -0
- package/dist/cli/tui/views/DescriptionView.d.ts +12 -0
- package/dist/cli/tui/views/DescriptionView.d.ts.map +1 -0
- package/dist/cli/tui/views/DescriptionView.js +75 -0
- package/dist/cli/tui/views/DescriptionView.js.map +1 -0
- package/dist/cli/tui/views/ElectionView.d.ts +11 -0
- package/dist/cli/tui/views/ElectionView.d.ts.map +1 -0
- package/dist/cli/tui/views/ElectionView.js +193 -0
- package/dist/cli/tui/views/ElectionView.js.map +1 -0
- package/dist/cli/tui/views/HelpView.d.ts +10 -0
- package/dist/cli/tui/views/HelpView.d.ts.map +1 -0
- package/dist/cli/tui/views/HelpView.js +75 -0
- package/dist/cli/tui/views/HelpView.js.map +1 -0
- package/dist/cli/tui/views/ProposalDetail.d.ts +12 -0
- package/dist/cli/tui/views/ProposalDetail.d.ts.map +1 -0
- package/dist/cli/tui/views/ProposalDetail.js +103 -0
- package/dist/cli/tui/views/ProposalDetail.js.map +1 -0
- package/dist/cli/tui/views/ProposalList.d.ts +15 -0
- package/dist/cli/tui/views/ProposalList.d.ts.map +1 -0
- package/dist/cli/tui/views/ProposalList.js +154 -0
- package/dist/cli/tui/views/ProposalList.js.map +1 -0
- package/dist/cli/tui/views/SimulationView.d.ts +12 -0
- package/dist/cli/tui/views/SimulationView.d.ts.map +1 -0
- package/dist/cli/tui/views/SimulationView.js +110 -0
- package/dist/cli/tui/views/SimulationView.js.map +1 -0
- package/dist/cli/tui/views/StageView.d.ts +12 -0
- package/dist/cli/tui/views/StageView.d.ts.map +1 -0
- package/dist/cli/tui/views/StageView.js +109 -0
- package/dist/cli/tui/views/StageView.js.map +1 -0
- package/dist/cli/tui/views/registry.d.ts +18 -0
- package/dist/cli/tui/views/registry.d.ts.map +1 -0
- package/dist/cli/tui/views/registry.js +34 -0
- package/dist/cli/tui/views/registry.js.map +1 -0
- package/dist/constants.d.ts +44 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +52 -1
- package/dist/constants.js.map +1 -1
- package/dist/data/bundled-cache.json +16408 -2561
- package/dist/deduplication.d.ts +132 -0
- package/dist/deduplication.d.ts.map +1 -0
- package/dist/deduplication.js +270 -0
- package/dist/deduplication.js.map +1 -0
- package/dist/discovery/governor-discovery.d.ts.map +1 -1
- package/dist/discovery/governor-discovery.js +52 -36
- package/dist/discovery/governor-discovery.js.map +1 -1
- package/dist/discovery/timelock-discovery.d.ts +15 -6
- package/dist/discovery/timelock-discovery.d.ts.map +1 -1
- package/dist/discovery/timelock-discovery.js +27 -11
- package/dist/discovery/timelock-discovery.js.map +1 -1
- package/dist/election/contracts.d.ts +8 -0
- package/dist/election/contracts.d.ts.map +1 -0
- package/dist/election/contracts.js +28 -0
- package/dist/election/contracts.js.map +1 -0
- package/dist/election/details.d.ts +15 -0
- package/dist/election/details.d.ts.map +1 -0
- package/dist/election/details.js +157 -0
- package/dist/election/details.js.map +1 -0
- package/dist/election/index.d.ts +11 -0
- package/dist/election/index.d.ts.map +1 -0
- package/dist/election/index.js +48 -0
- package/dist/election/index.js.map +1 -0
- package/dist/election/params.d.ts +13 -0
- package/dist/election/params.d.ts.map +1 -0
- package/dist/election/params.js +93 -0
- package/dist/election/params.js.map +1 -0
- package/dist/election/participants.d.ts +6 -0
- package/dist/election/participants.d.ts.map +1 -0
- package/dist/election/participants.js +104 -0
- package/dist/election/participants.js.map +1 -0
- package/dist/election/prepare.d.ts +10 -0
- package/dist/election/prepare.d.ts.map +1 -0
- package/dist/election/prepare.js +52 -0
- package/dist/election/prepare.js.map +1 -0
- package/dist/election/proposal-ids.d.ts +18 -0
- package/dist/election/proposal-ids.d.ts.map +1 -0
- package/dist/election/proposal-ids.js +77 -0
- package/dist/election/proposal-ids.js.map +1 -0
- package/dist/election/status.d.ts +15 -0
- package/dist/election/status.d.ts.map +1 -0
- package/dist/election/status.js +105 -0
- package/dist/election/status.js.map +1 -0
- package/dist/election/tracking.d.ts +28 -0
- package/dist/election/tracking.d.ts.map +1 -0
- package/dist/election/tracking.js +412 -0
- package/dist/election/tracking.js.map +1 -0
- package/dist/index.d.ts +31 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +98 -9
- package/dist/index.js.map +1 -1
- package/dist/stages/builder.d.ts +4 -0
- package/dist/stages/builder.d.ts.map +1 -1
- package/dist/stages/builder.js +7 -0
- package/dist/stages/builder.js.map +1 -1
- package/dist/stages/l2-to-l1-message.d.ts +8 -1
- package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
- package/dist/stages/l2-to-l1-message.js +79 -13
- package/dist/stages/l2-to-l1-message.js.map +1 -1
- package/dist/stages/proposal-created.d.ts +1 -0
- package/dist/stages/proposal-created.d.ts.map +1 -1
- package/dist/stages/proposal-created.js +1 -0
- package/dist/stages/proposal-created.js.map +1 -1
- package/dist/stages/proposal-queued.d.ts +1 -0
- package/dist/stages/proposal-queued.d.ts.map +1 -1
- package/dist/stages/proposal-queued.js +3 -1
- package/dist/stages/proposal-queued.js.map +1 -1
- package/dist/stages/retryables.js +2 -2
- package/dist/stages/retryables.js.map +1 -1
- package/dist/stages/timelock.d.ts +3 -1
- package/dist/stages/timelock.d.ts.map +1 -1
- package/dist/stages/timelock.js +10 -4
- package/dist/stages/timelock.js.map +1 -1
- package/dist/stages/utils.d.ts +7 -8
- package/dist/stages/utils.d.ts.map +1 -1
- package/dist/stages/utils.js +40 -27
- package/dist/stages/utils.js.map +1 -1
- package/dist/stages/voting.d.ts.map +1 -1
- package/dist/stages/voting.js +5 -4
- package/dist/stages/voting.js.map +1 -1
- package/dist/tracker/cache.d.ts +10 -6
- package/dist/tracker/cache.d.ts.map +1 -1
- package/dist/tracker/cache.js +39 -15
- package/dist/tracker/cache.js.map +1 -1
- package/dist/tracker/checkpoint-helpers.d.ts +80 -0
- package/dist/tracker/checkpoint-helpers.d.ts.map +1 -0
- package/dist/tracker/checkpoint-helpers.js +200 -0
- package/dist/tracker/checkpoint-helpers.js.map +1 -0
- package/dist/tracker/discovery.d.ts +40 -9
- package/dist/tracker/discovery.d.ts.map +1 -1
- package/dist/tracker/discovery.js +152 -15
- package/dist/tracker/discovery.js.map +1 -1
- package/dist/tracker/pipeline.d.ts.map +1 -1
- package/dist/tracker/pipeline.js +26 -11
- 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 +14 -61
- package/dist/tracker/query.js.map +1 -1
- package/dist/tracker/state.d.ts +0 -10
- package/dist/tracker/state.d.ts.map +1 -1
- package/dist/tracker/state.js +1 -28
- package/dist/tracker/state.js.map +1 -1
- package/dist/tracker.d.ts +100 -8
- package/dist/tracker.d.ts.map +1 -1
- package/dist/tracker.js +405 -42
- package/dist/tracker.js.map +1 -1
- package/dist/types/config.d.ts +49 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/core.d.ts +4 -2
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/election.d.ts +144 -1
- package/dist/types/election.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -3
- package/dist/types/index.js.map +1 -1
- package/dist/types/stages.d.ts +79 -1
- package/dist/types/stages.d.ts.map +1 -1
- package/dist/types/stages.js.map +1 -1
- package/dist/types/tracking.d.ts +34 -4
- package/dist/types/tracking.d.ts.map +1 -1
- package/dist/utils/block-cache.d.ts +50 -0
- package/dist/utils/block-cache.d.ts.map +1 -0
- package/dist/utils/block-cache.js +80 -0
- package/dist/utils/block-cache.js.map +1 -0
- package/dist/utils/formatters.d.ts +91 -0
- package/dist/utils/formatters.d.ts.map +1 -0
- package/dist/utils/formatters.js +327 -0
- package/dist/utils/formatters.js.map +1 -0
- package/dist/utils/multicall.d.ts +52 -0
- package/dist/utils/multicall.d.ts.map +1 -0
- package/dist/utils/multicall.js +75 -0
- package/dist/utils/multicall.js.map +1 -0
- package/dist/utils/rpc-utils.d.ts +7 -1
- package/dist/utils/rpc-utils.d.ts.map +1 -1
- package/dist/utils/rpc-utils.js +43 -29
- package/dist/utils/rpc-utils.js.map +1 -1
- package/dist/utils/salt-computation.d.ts.map +1 -1
- package/dist/utils/salt-computation.js +33 -7
- package/dist/utils/salt-computation.js.map +1 -1
- package/dist/utils/sanitize.d.ts +28 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sanitize.js +55 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/dist/utils/stage-metadata.d.ts +0 -20
- package/dist/utils/stage-metadata.d.ts.map +1 -1
- package/dist/utils/stage-metadata.js +29 -44
- package/dist/utils/stage-metadata.js.map +1 -1
- package/dist/utils/timing.d.ts +13 -0
- package/dist/utils/timing.d.ts.map +1 -1
- package/dist/utils/timing.js +37 -1
- package/dist/utils/timing.js.map +1 -1
- package/package.json +29 -16
- package/dist/cli/monitor.d.ts +0 -3
- package/dist/cli/monitor.d.ts.map +0 -1
- package/dist/cli/monitor.js.map +0 -1
- package/dist/election.d.ts +0 -172
- package/dist/election.d.ts.map +0 -1
- package/dist/election.js +0 -467
- package/dist/election.js.map +0 -1
- package/dist/types/cross-chain.d.ts +0 -24
- package/dist/types/cross-chain.d.ts.map +0 -1
- package/dist/types/cross-chain.js +0 -6
- package/dist/types/cross-chain.js.map +0 -1
package/README.md
CHANGED
|
@@ -4,35 +4,45 @@
|
|
|
4
4
|
[](https://codecov.io/gh/gzeoneth/gov-tracker)
|
|
5
5
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
6
6
|
|
|
7
|
-
Track and execute Arbitrum DAO governance proposal lifecycle stages.
|
|
7
|
+
Track and execute Arbitrum DAO governance proposal lifecycle stages and Security Council elections.
|
|
8
8
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
yarn add @gzeoneth/gov-tracker
|
|
12
|
+
yarn add @gzeoneth/gov-tracker ethers@^5.8.0
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## Quick Start
|
|
16
16
|
|
|
17
17
|
```typescript
|
|
18
|
-
import {
|
|
18
|
+
import { ethers } from "ethers";
|
|
19
|
+
import { createTracker, findExecutableStage, ADDRESSES } from "@gzeoneth/gov-tracker";
|
|
19
20
|
|
|
20
21
|
// Use StaticJsonRpcProvider for better performance
|
|
21
22
|
const tracker = createTracker({
|
|
22
|
-
l2Provider: new ethers.providers.StaticJsonRpcProvider(
|
|
23
|
-
l1Provider: new ethers.providers.StaticJsonRpcProvider(
|
|
24
|
-
novaProvider: new ethers.providers.StaticJsonRpcProvider(NOVA_RPC),
|
|
23
|
+
l2Provider: new ethers.providers.StaticJsonRpcProvider(process.env.ARB1_RPC),
|
|
24
|
+
l1Provider: new ethers.providers.StaticJsonRpcProvider(process.env.ETH_RPC),
|
|
25
|
+
novaProvider: new ethers.providers.StaticJsonRpcProvider(process.env.NOVA_RPC),
|
|
26
|
+
cachePath: "./gov-tracker-cache.json",
|
|
25
27
|
});
|
|
26
28
|
|
|
27
|
-
// Track from
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
for (const stage of result.stages) {
|
|
29
|
+
// Track from transaction hash
|
|
30
|
+
const results = await tracker.trackByTxHash("0x...");
|
|
31
|
+
for (const stage of results[0].stages) {
|
|
31
32
|
console.log(`${stage.type}: ${stage.status}`);
|
|
32
33
|
}
|
|
33
34
|
|
|
34
|
-
//
|
|
35
|
-
const
|
|
35
|
+
// Or track from governor
|
|
36
|
+
const result = await tracker.trackFromGovernor(ADDRESSES.CONSTITUTIONAL_GOVERNOR, proposalId);
|
|
37
|
+
|
|
38
|
+
// Execute ready stages
|
|
39
|
+
const readyStage = findExecutableStage(results[0].stages);
|
|
40
|
+
if (readyStage) {
|
|
41
|
+
const prep = await tracker.prepareTransaction(readyStage);
|
|
42
|
+
if (prep.success) {
|
|
43
|
+
await signer.sendTransaction(prep.prepared);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
36
46
|
```
|
|
37
47
|
|
|
38
48
|
## Stages
|
|
@@ -49,78 +59,112 @@ const results = await tracker.trackByTxHash("0x...");
|
|
|
49
59
|
|
|
50
60
|
Statuses: `NOT_STARTED`, `PENDING`, `READY`, `COMPLETED`, `FAILED`, `SKIPPED`
|
|
51
61
|
|
|
52
|
-
## Execution
|
|
53
|
-
|
|
54
|
-
```typescript
|
|
55
|
-
import { findExecutableStage } from "@gzeoneth/gov-tracker";
|
|
56
|
-
|
|
57
|
-
const readyStage = findExecutableStage(result.stages);
|
|
58
|
-
if (readyStage) {
|
|
59
|
-
const prepResult = await tracker.prepareTransaction(readyStage);
|
|
60
|
-
if (prepResult.success) {
|
|
61
|
-
const { to, data, value, chain } = prepResult.prepared;
|
|
62
|
-
const tx = await signer.sendTransaction({ to, data, value });
|
|
63
|
-
await tx.wait();
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## Calldata Decoding & Simulation
|
|
69
|
-
|
|
70
|
-
Decode proposal calldata and prepare simulation data for Tenderly, Foundry, or other tools.
|
|
71
|
-
|
|
72
|
-
```typescript
|
|
73
|
-
import {
|
|
74
|
-
decodeCalldata,
|
|
75
|
-
extractAllSimulationsFromDecoded,
|
|
76
|
-
getAddressLabel
|
|
77
|
-
} from "@gzeoneth/gov-tracker";
|
|
78
|
-
|
|
79
|
-
// Decode proposal actions
|
|
80
|
-
const stage = result.stages[0]; // PROPOSAL_CREATED
|
|
81
|
-
const { calldatas, targets } = stage.data;
|
|
82
|
-
|
|
83
|
-
for (let i = 0; i < calldatas.length; i++) {
|
|
84
|
-
const decoded = await decodeCalldata(calldatas[i], targets[i], 0, "arb1");
|
|
85
|
-
|
|
86
|
-
console.log(`${decoded.signature}`);
|
|
87
|
-
console.log(`Target: ${getAddressLabel(targets[i], "arb1")}`);
|
|
88
|
-
|
|
89
|
-
// Extract simulation data
|
|
90
|
-
const sims = extractAllSimulationsFromDecoded(decoded, "arb1");
|
|
91
|
-
for (const sim of sims) {
|
|
92
|
-
console.log(`Network: ${sim.simulation.networkId}`);
|
|
93
|
-
console.log(`From: ${sim.simulation.from}`);
|
|
94
|
-
console.log(`To: ${sim.simulation.to}`);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
See [Examples](./docs/EXAMPLES.md#calldata-decoding--simulation) for Tenderly and Foundry integration.
|
|
100
|
-
|
|
101
62
|
## CLI
|
|
102
63
|
|
|
103
64
|
```bash
|
|
104
|
-
# Track a proposal
|
|
65
|
+
# Track a proposal
|
|
105
66
|
npx @gzeoneth/gov-tracker track 0x...
|
|
106
67
|
|
|
107
|
-
#
|
|
68
|
+
# Track AND decode calldata
|
|
69
|
+
npx @gzeoneth/gov-tracker track 0x... -i
|
|
70
|
+
|
|
71
|
+
# Decode calldata only (no tracking)
|
|
108
72
|
npx @gzeoneth/gov-tracker track 0x... --inspect-only
|
|
109
73
|
|
|
110
|
-
# Show simulation data
|
|
74
|
+
# Show simulation data
|
|
111
75
|
npx @gzeoneth/gov-tracker track 0x... --show-simulation
|
|
112
76
|
|
|
113
77
|
# Execute ready stages
|
|
114
|
-
npx @gzeoneth/gov-tracker track 0x...
|
|
78
|
+
npx @gzeoneth/gov-tracker track 0x... -w --private-key $PRIVATE_KEY
|
|
115
79
|
|
|
116
80
|
# Discover and track all proposals
|
|
117
81
|
npx @gzeoneth/gov-tracker run
|
|
118
82
|
|
|
119
|
-
#
|
|
83
|
+
# Selective tracking (only track specific types)
|
|
84
|
+
npx @gzeoneth/gov-tracker run --track-core # Constitutional proposals only
|
|
85
|
+
npx @gzeoneth/gov-tracker run --track-treasury # Non-constitutional proposals only
|
|
86
|
+
npx @gzeoneth/gov-tracker run --track-elections # Election governors only
|
|
87
|
+
npx @gzeoneth/gov-tracker run --track-timelocks # Direct timelock operations only
|
|
88
|
+
|
|
89
|
+
# Track with elections enabled in run loop
|
|
90
|
+
npx @gzeoneth/gov-tracker run --loop --election
|
|
91
|
+
|
|
92
|
+
# Disable caching
|
|
120
93
|
npx @gzeoneth/gov-tracker track 0x... --no-cache
|
|
94
|
+
|
|
95
|
+
# Interactive TUI (requires ink)
|
|
96
|
+
npx @gzeoneth/gov-tracker ui
|
|
97
|
+
|
|
98
|
+
# Track election creation tx (auto-switches to election view)
|
|
99
|
+
npx @gzeoneth/gov-tracker track 0x82a0baf3...
|
|
121
100
|
```
|
|
122
101
|
|
|
123
|
-
**
|
|
102
|
+
**Shorthands:** `-v` (verbose), `-p` (prepare), `-w` (write), `-i` (inspect)
|
|
103
|
+
|
|
104
|
+
### Interactive TUI
|
|
105
|
+
|
|
106
|
+
The `ui` command launches a cache-only terminal interface for browsing proposals:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Browse proposals (uses bundled cache, no RPC required)
|
|
110
|
+
npx @gzeoneth/gov-tracker ui
|
|
111
|
+
|
|
112
|
+
# Use custom cache file
|
|
113
|
+
npx @gzeoneth/gov-tracker ui --cache ./my-cache.json
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Features:**
|
|
117
|
+
- Browse proposals with filter tabs (All, Active, Complete, Timelocks, Elections)
|
|
118
|
+
- View proposal details, voting statistics, and stage progress
|
|
119
|
+
- Inspect decoded calldata with nested parameter display
|
|
120
|
+
- View simulation data for Tenderly/Foundry fork testing
|
|
121
|
+
- View Security Council election status from cached data
|
|
122
|
+
- Search proposals with `/`, sort by date/progress/status
|
|
123
|
+
|
|
124
|
+
**Navigation:**
|
|
125
|
+
| Key | Action |
|
|
126
|
+
|-----|--------|
|
|
127
|
+
| `j/k` or `↑↓` | Navigate |
|
|
128
|
+
| `Ctrl+d/u` | Page down/up |
|
|
129
|
+
| `g/G` | Jump to top/bottom |
|
|
130
|
+
| `Enter/l` | View details |
|
|
131
|
+
| `Tab` | Cycle filter |
|
|
132
|
+
| `o` | Cycle sort |
|
|
133
|
+
| `/` | Search |
|
|
134
|
+
| `c` | View calldata |
|
|
135
|
+
| `s` | View simulation |
|
|
136
|
+
| `e` | Election status |
|
|
137
|
+
| `y` | Copy to clipboard |
|
|
138
|
+
| `b/Esc` | Go back |
|
|
139
|
+
| `q` | Quit |
|
|
140
|
+
|
|
141
|
+
**Note:** The TUI requires `ink` and `react` packages (installed as optional dependencies). Use `run` command with `--loop` for live tracking.
|
|
142
|
+
|
|
143
|
+
### Elections
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
# Check election status (next election, can create)
|
|
147
|
+
npx @gzeoneth/gov-tracker election
|
|
148
|
+
|
|
149
|
+
# List all elections with statuses
|
|
150
|
+
npx @gzeoneth/gov-tracker election --list
|
|
151
|
+
|
|
152
|
+
# Track specific election by index
|
|
153
|
+
npx @gzeoneth/gov-tracker election --track 0
|
|
154
|
+
|
|
155
|
+
# Track with detailed nominee/member info
|
|
156
|
+
npx @gzeoneth/gov-tracker election --track 0 --details -v
|
|
157
|
+
|
|
158
|
+
# Create election or execute phase transition
|
|
159
|
+
npx @gzeoneth/gov-tracker election --track 0 -w --private-key $PRIVATE_KEY
|
|
160
|
+
|
|
161
|
+
# Monitor elections in loop mode
|
|
162
|
+
npx @gzeoneth/gov-tracker election --loop --interval 300
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Election Phases:** `NOT_STARTED` → `CONTENDER_SUBMISSION` → `NOMINEE_SELECTION` → `VETTING_PERIOD` → `MEMBER_ELECTION` → `PENDING_EXECUTION` → `COMPLETED`
|
|
166
|
+
|
|
167
|
+
**Bundled Cache**: The CLI includes a pre-built cache of completed proposals. On first run, this eliminates initial discovery RPC calls. SDK users can access via `getBundledCachePath()` or direct JSON import - see [Examples](./docs/EXAMPLES.md#bundled-cache-bootstrap).
|
|
124
168
|
|
|
125
169
|
## Environment
|
|
126
170
|
|
|
@@ -131,9 +175,23 @@ NOVA_RPC=https://nova.arbitrum.io/rpc
|
|
|
131
175
|
PRIVATE_KEY=0x... # For execution
|
|
132
176
|
```
|
|
133
177
|
|
|
178
|
+
The CLI warns when using default public RPCs. For production, set these environment variables.
|
|
179
|
+
|
|
180
|
+
## Security & Privacy
|
|
181
|
+
|
|
182
|
+
**External API Lookups**: When decoding calldata, unknown function selectors are looked up via [4byte.directory](https://www.4byte.directory/). To disable:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
DISABLE_4BYTE_LOOKUP=1 npx @gzeoneth/gov-tracker track 0x...
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
```typescript
|
|
189
|
+
import { lookupSignature } from "@gzeoneth/gov-tracker";
|
|
190
|
+
const result = await lookupSignature("0x12345678", { disableApiLookup: true });
|
|
191
|
+
```
|
|
192
|
+
|
|
134
193
|
## Documentation
|
|
135
194
|
|
|
136
|
-
- [Getting Started](./docs/GETTING_STARTED.md) - Installation and basic usage
|
|
137
195
|
- [API Reference](./docs/API.md) - Complete API documentation
|
|
138
196
|
- [Examples](./docs/EXAMPLES.md) - Common patterns and use cases
|
|
139
197
|
- [Architecture](./docs/ARCHITECTURE.md) - SDK internals and design
|
|
@@ -144,12 +202,10 @@ PRIVATE_KEY=0x... # For execution
|
|
|
144
202
|
yarn build # Compile TypeScript
|
|
145
203
|
yarn test # Run fast tests (no RPC)
|
|
146
204
|
yarn test:coverage # Run tests with coverage
|
|
147
|
-
yarn test:coverage:fork # Run fork tests with coverage (requires archive RPC)
|
|
148
|
-
yarn test:coverage:all # Merge all coverage reports
|
|
149
205
|
yarn lint # Run ESLint
|
|
150
206
|
```
|
|
151
207
|
|
|
152
|
-
See [CONTRIBUTING.md](./CONTRIBUTING.md) for development workflow
|
|
208
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for development workflow.
|
|
153
209
|
|
|
154
210
|
## Terminology
|
|
155
211
|
|
|
@@ -157,7 +213,8 @@ See [CONTRIBUTING.md](./CONTRIBUTING.md) for development workflow and publishing
|
|
|
157
213
|
|----------|-------------|
|
|
158
214
|
| Constitutional | Core proposals requiring L1 round-trip (8-day L2 timelock) |
|
|
159
215
|
| Non-Constitutional | Treasury proposals, L2-only execution (3-day L2 timelock) |
|
|
160
|
-
| Election | Security Council election
|
|
216
|
+
| Election | Security Council election with 6-phase lifecycle |
|
|
217
|
+
| Cohort | Security Council has two cohorts (0 and 1) that alternate elections |
|
|
161
218
|
|
|
162
219
|
See [Arbitrum governance docs](https://docs.arbitrum.foundation/concepts/lifecycle-anatomy-aip-proposal) for more details.
|
|
163
220
|
|
package/dist/abis.d.ts
CHANGED
|
@@ -44,4 +44,7 @@ export declare const upgradeExecutorInterface: ethers.utils.Interface;
|
|
|
44
44
|
export declare const memberSyncActionInterface: ethers.utils.Interface;
|
|
45
45
|
export declare const proposalCreatedInterface: ethers.utils.Interface;
|
|
46
46
|
export declare const proposalQueuedInterface: ethers.utils.Interface;
|
|
47
|
+
export declare const proposalExecutedInterface: ethers.utils.Interface;
|
|
48
|
+
export declare const nomineeElectionGovernorInterface: ethers.utils.Interface;
|
|
49
|
+
export declare const memberElectionGovernorInterface: ethers.utils.Interface;
|
|
47
50
|
//# sourceMappingURL=abis.d.ts.map
|
package/dist/abis.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../src/abis.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,YAAY,UAmBxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,UAIpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,UAiBxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,UAOxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,UAErB,CAAC;AA0CF;;GAEG;AACH,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../src/abis.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;GAEG;AACH,eAAO,MAAM,YAAY,UAmBxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,UAIpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,UAiBxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,UAOxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,UAErB,CAAC;AA0CF;;GAEG;AACH,eAAO,MAAM,6BAA6B,UAwBzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,UAcxC,CAAC;AAoBF,eAAO,MAAM,iBAAiB,wBAA2C,CAAC;AAC1E,eAAO,MAAM,iBAAiB,wBAA2C,CAAC;AAC1E,eAAO,MAAM,eAAe,wBAA0C,CAAC;AACvE,eAAO,MAAM,eAAe,wBAAyC,CAAC;AACtE,eAAO,MAAM,sBAAsB,wBAAiD,CAAC;AACrF,eAAO,MAAM,qBAAqB,wBAAmD,CAAC;AACtF,eAAO,MAAM,wBAAwB,wBAAmD,CAAC;AACzF,eAAO,MAAM,yBAAyB,wBAAqD,CAAC;AAC5F,eAAO,MAAM,wBAAwB,wBAAuD,CAAC;AAC7F,eAAO,MAAM,uBAAuB,wBAAsD,CAAC;AAC3F,eAAO,MAAM,yBAAyB,wBAAwD,CAAC;AAC/F,eAAO,MAAM,gCAAgC,wBAE5C,CAAC;AACF,eAAO,MAAM,+BAA+B,wBAE3C,CAAC"}
|
package/dist/abis.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* repeated interface creation throughout the codebase.
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.proposalQueuedInterface = exports.proposalCreatedInterface = exports.memberSyncActionInterface = exports.upgradeExecutorInterface = exports.arbRetryableInterface = exports.outboxExecuteInterface = exports.outboxInterface = exports.arbSysInterface = exports.timelockInterface = exports.governorInterface = exports.MEMBER_ELECTION_GOVERNOR_ABI = exports.NOMINEE_ELECTION_GOVERNOR_ABI = exports.INBOX_ABI = exports.SECURITY_COUNCIL_MANAGER_ABI = exports.TIMELOCK_ABI = exports.GOVERNOR_WITH_VETTER_ABI = exports.GOVERNOR_ABI = void 0;
|
|
10
|
+
exports.memberElectionGovernorInterface = exports.nomineeElectionGovernorInterface = exports.proposalExecutedInterface = exports.proposalQueuedInterface = exports.proposalCreatedInterface = exports.memberSyncActionInterface = exports.upgradeExecutorInterface = exports.arbRetryableInterface = exports.outboxExecuteInterface = exports.outboxInterface = exports.arbSysInterface = exports.timelockInterface = exports.governorInterface = exports.MEMBER_ELECTION_GOVERNOR_ABI = exports.NOMINEE_ELECTION_GOVERNOR_ABI = exports.INBOX_ABI = exports.SECURITY_COUNCIL_MANAGER_ABI = exports.TIMELOCK_ABI = exports.GOVERNOR_WITH_VETTER_ABI = exports.GOVERNOR_ABI = void 0;
|
|
11
11
|
const ethers_1 = require("ethers");
|
|
12
12
|
/**
|
|
13
13
|
* Governor contract ABI (minimal required interface)
|
|
@@ -128,6 +128,17 @@ exports.NOMINEE_ELECTION_GOVERNOR_ABI = [
|
|
|
128
128
|
"function state(uint256 proposalId) view returns (uint8)",
|
|
129
129
|
"function getProposeArgs(uint256 electionIndex) view returns (address[], uint256[], bytes[], string)",
|
|
130
130
|
"function hashProposal(address[] targets, uint256[] values, bytes[] calldatas, bytes32 descriptionHash) view returns (bytes32)",
|
|
131
|
+
// Detailed nominee tracking
|
|
132
|
+
"function nominees(uint256 proposalId) view returns (address[])",
|
|
133
|
+
"function compliantNominees(uint256 proposalId) view returns (address[])",
|
|
134
|
+
"function votesReceived(uint256 proposalId, address contender) view returns (uint256)",
|
|
135
|
+
"function isExcluded(uint256 proposalId, address nominee) view returns (bool)",
|
|
136
|
+
"function quorum(uint256 blockNumber) view returns (uint256)",
|
|
137
|
+
// Events
|
|
138
|
+
"event ContenderAdded(uint256 indexed proposalId, address indexed contender)",
|
|
139
|
+
"event NewNominee(uint256 indexed proposalId, address indexed nominee)",
|
|
140
|
+
"event NomineeExcluded(uint256 indexed proposalId, address indexed nominee)",
|
|
141
|
+
"event VoteCastForContender(uint256 indexed proposalId, address indexed voter, address indexed contender, uint256 votes, uint256 totalUsedVotes, uint256 usableVotes)",
|
|
131
142
|
];
|
|
132
143
|
/**
|
|
133
144
|
* SecurityCouncilMemberElectionGovernor ABI
|
|
@@ -135,7 +146,17 @@ exports.NOMINEE_ELECTION_GOVERNOR_ABI = [
|
|
|
135
146
|
exports.MEMBER_ELECTION_GOVERNOR_ABI = [
|
|
136
147
|
"function state(uint256 proposalId) view returns (uint8)",
|
|
137
148
|
"function proposalDeadline(uint256 proposalId) view returns (uint256)",
|
|
138
|
-
"function
|
|
149
|
+
"function proposalSnapshot(uint256 proposalId) view returns (uint256)",
|
|
150
|
+
// From ElectionGovernor base - used to compute proposal ID
|
|
151
|
+
"function getProposeArgs(uint256 electionIndex) view returns (address[], uint256[], bytes[], string)",
|
|
152
|
+
"function hashProposal(address[] targets, uint256[] values, bytes[] calldatas, bytes32 descriptionHash) view returns (bytes32)",
|
|
153
|
+
// Detailed member election tracking
|
|
154
|
+
"function weightReceived(uint256 proposalId, address nominee) view returns (uint256)",
|
|
155
|
+
"function topNominees(uint256 proposalId) view returns (address[])",
|
|
156
|
+
"function fullWeightVotingDeadline(uint256 proposalId) view returns (uint256)",
|
|
157
|
+
"function fullWeightDuration() view returns (uint256)",
|
|
158
|
+
// Events
|
|
159
|
+
"event VoteCastForNominee(address indexed voter, uint256 indexed proposalId, address indexed nominee, uint256 votes, uint256 weight, uint256 totalUsedVotes, uint256 usableVotes, uint256 weightReceived)",
|
|
139
160
|
];
|
|
140
161
|
/**
|
|
141
162
|
* ProposalCreated event signature for parsing
|
|
@@ -145,6 +166,10 @@ const PROPOSAL_CREATED_EVENT = "event ProposalCreated(uint256 proposalId, addres
|
|
|
145
166
|
* ProposalQueued event signature for parsing
|
|
146
167
|
*/
|
|
147
168
|
const PROPOSAL_QUEUED_EVENT = "event ProposalQueued(uint256 proposalId, uint256 eta)";
|
|
169
|
+
/**
|
|
170
|
+
* ProposalExecuted event signature for parsing
|
|
171
|
+
*/
|
|
172
|
+
const PROPOSAL_EXECUTED_EVENT = "event ProposalExecuted(uint256 proposalId)";
|
|
148
173
|
// Pre-created Interface instances
|
|
149
174
|
exports.governorInterface = new ethers_1.ethers.utils.Interface(exports.GOVERNOR_ABI);
|
|
150
175
|
exports.timelockInterface = new ethers_1.ethers.utils.Interface(exports.TIMELOCK_ABI);
|
|
@@ -156,4 +181,7 @@ exports.upgradeExecutorInterface = new ethers_1.ethers.utils.Interface(UPGRADE_E
|
|
|
156
181
|
exports.memberSyncActionInterface = new ethers_1.ethers.utils.Interface(MEMBER_SYNC_ACTION_ABI);
|
|
157
182
|
exports.proposalCreatedInterface = new ethers_1.ethers.utils.Interface([PROPOSAL_CREATED_EVENT]);
|
|
158
183
|
exports.proposalQueuedInterface = new ethers_1.ethers.utils.Interface([PROPOSAL_QUEUED_EVENT]);
|
|
184
|
+
exports.proposalExecutedInterface = new ethers_1.ethers.utils.Interface([PROPOSAL_EXECUTED_EVENT]);
|
|
185
|
+
exports.nomineeElectionGovernorInterface = new ethers_1.ethers.utils.Interface(exports.NOMINEE_ELECTION_GOVERNOR_ABI);
|
|
186
|
+
exports.memberElectionGovernorInterface = new ethers_1.ethers.utils.Interface(exports.MEMBER_ELECTION_GOVERNOR_ABI);
|
|
159
187
|
//# sourceMappingURL=abis.js.map
|
package/dist/abis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abis.js","sourceRoot":"","sources":["../src/abis.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,mCAAgC;AAEhC;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,yDAAyD;IACzD,sEAAsE;IACtE,sEAAsE;IACtE,wHAAwH;IACxH,6DAA6D;IAC7D,iEAAiE;IACjE,gDAAgD;IAChD,+CAA+C;IAC/C,gDAAgD;IAChD,4CAA4C;IAC5C,qEAAqE;IACrE,iDAAiD;IACjD,6EAA6E;IAC7E,oCAAoC;IACpC,6EAA6E;IAC7E,8BAA8B;IAC9B,mHAAmH;IACnH,6HAA6H;CAC9H,CAAC;AAEF;;GAEG;AACU,QAAA,wBAAwB,GAAG;IACtC,6EAA6E;IAC7E,0CAA0C;IAC1C,2EAA2E;CAC5E,CAAC;AAEF;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,sDAAsD;IACtD,6DAA6D;IAC7D,2DAA2D;IAC3D,0DAA0D;IAC1D,0DAA0D;IAC1D,+CAA+C;IAC/C,sIAAsI;IACtI,yKAAyK;IACzK,oHAAoH;IACpH,oJAAoJ;IACpJ,gHAAgH;IAChH,iIAAiI;IACjI,0DAA0D;IAC1D,yBAAyB;IACzB,+IAA+I;IAC/I,0GAA0G;CAC3G,CAAC;AAEF;;GAEG;AACU,QAAA,4BAA4B,GAAG;IAC1C,8CAA8C;IAC9C,6DAA6D;IAC7D,8DAA8D;IAC9D,+CAA+C;IAC/C,oFAAoF;IACpF,mFAAmF;CACpF,CAAC;AAEF;;GAEG;AACU,QAAA,SAAS,GAAG;IACvB,sGAAsG;CACvG,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,GAAG;IAClB,kDAAkD;IAClD,gFAAgF;IAChF,yMAAyM;CAC1M,CAAC;AAEF;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,+CAA+C,CAAC,CAAC;AAE/E;;GAEG;AACH,MAAM,sBAAsB,GAAG;IAC7B,4FAA4F;CAC7F,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,GAAG;IACjB,+HAA+H;CAChI,CAAC;AAEF;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,4CAA4C,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAM,kBAAkB,GAAG;IACzB,wMAAwM;CACzM,CAAC;AAEF;;GAEG;AACU,QAAA,6BAA6B,GAAG;IAC3C,iDAAiD;IACjD,4EAA4E;IAC5E,4EAA4E;IAC5E,sDAAsD;IACtD,iDAAiD;IACjD,6EAA6E;IAC7E,2EAA2E;IAC3E,sEAAsE;IACtE,sEAAsE;IACtE,yDAAyD;IACzD,qGAAqG;IACrG,+HAA+H;
|
|
1
|
+
{"version":3,"file":"abis.js","sourceRoot":"","sources":["../src/abis.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,mCAAgC;AAEhC;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,yDAAyD;IACzD,sEAAsE;IACtE,sEAAsE;IACtE,wHAAwH;IACxH,6DAA6D;IAC7D,iEAAiE;IACjE,gDAAgD;IAChD,+CAA+C;IAC/C,gDAAgD;IAChD,4CAA4C;IAC5C,qEAAqE;IACrE,iDAAiD;IACjD,6EAA6E;IAC7E,oCAAoC;IACpC,6EAA6E;IAC7E,8BAA8B;IAC9B,mHAAmH;IACnH,6HAA6H;CAC9H,CAAC;AAEF;;GAEG;AACU,QAAA,wBAAwB,GAAG;IACtC,6EAA6E;IAC7E,0CAA0C;IAC1C,2EAA2E;CAC5E,CAAC;AAEF;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,sDAAsD;IACtD,6DAA6D;IAC7D,2DAA2D;IAC3D,0DAA0D;IAC1D,0DAA0D;IAC1D,+CAA+C;IAC/C,sIAAsI;IACtI,yKAAyK;IACzK,oHAAoH;IACpH,oJAAoJ;IACpJ,gHAAgH;IAChH,iIAAiI;IACjI,0DAA0D;IAC1D,yBAAyB;IACzB,+IAA+I;IAC/I,0GAA0G;CAC3G,CAAC;AAEF;;GAEG;AACU,QAAA,4BAA4B,GAAG;IAC1C,8CAA8C;IAC9C,6DAA6D;IAC7D,8DAA8D;IAC9D,+CAA+C;IAC/C,oFAAoF;IACpF,mFAAmF;CACpF,CAAC;AAEF;;GAEG;AACU,QAAA,SAAS,GAAG;IACvB,sGAAsG;CACvG,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,GAAG;IAClB,kDAAkD;IAClD,gFAAgF;IAChF,yMAAyM;CAC1M,CAAC;AAEF;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,+CAA+C,CAAC,CAAC;AAE/E;;GAEG;AACH,MAAM,sBAAsB,GAAG;IAC7B,4FAA4F;CAC7F,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,GAAG;IACjB,+HAA+H;CAChI,CAAC;AAEF;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,4CAA4C,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAM,kBAAkB,GAAG;IACzB,wMAAwM;CACzM,CAAC;AAEF;;GAEG;AACU,QAAA,6BAA6B,GAAG;IAC3C,iDAAiD;IACjD,4EAA4E;IAC5E,4EAA4E;IAC5E,sDAAsD;IACtD,iDAAiD;IACjD,6EAA6E;IAC7E,2EAA2E;IAC3E,sEAAsE;IACtE,sEAAsE;IACtE,yDAAyD;IACzD,qGAAqG;IACrG,+HAA+H;IAC/H,4BAA4B;IAC5B,gEAAgE;IAChE,yEAAyE;IACzE,sFAAsF;IACtF,8EAA8E;IAC9E,6DAA6D;IAC7D,SAAS;IACT,6EAA6E;IAC7E,uEAAuE;IACvE,4EAA4E;IAC5E,sKAAsK;CACvK,CAAC;AAEF;;GAEG;AACU,QAAA,4BAA4B,GAAG;IAC1C,yDAAyD;IACzD,sEAAsE;IACtE,sEAAsE;IACtE,2DAA2D;IAC3D,qGAAqG;IACrG,+HAA+H;IAC/H,oCAAoC;IACpC,qFAAqF;IACrF,mEAAmE;IACnE,8EAA8E;IAC9E,sDAAsD;IACtD,SAAS;IACT,0MAA0M;CAC3M,CAAC;AAEF;;GAEG;AACH,MAAM,sBAAsB,GAC1B,oMAAoM,CAAC;AAEvM;;GAEG;AACH,MAAM,qBAAqB,GAAG,uDAAuD,CAAC;AAEtF;;GAEG;AACH,MAAM,uBAAuB,GAAG,4CAA4C,CAAC;AAE7E,kCAAkC;AAErB,QAAA,iBAAiB,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAY,CAAC,CAAC;AAC7D,QAAA,iBAAiB,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAY,CAAC,CAAC;AAC7D,QAAA,eAAe,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC1D,QAAA,eAAe,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACzD,QAAA,sBAAsB,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;AACxE,QAAA,qBAAqB,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;AACzE,QAAA,wBAAwB,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;AAC5E,QAAA,yBAAyB,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;AAC/E,QAAA,wBAAwB,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAChF,QAAA,uBAAuB,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC9E,QAAA,yBAAyB,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAClF,QAAA,gCAAgC,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CACxE,qCAA6B,CAC9B,CAAC;AACW,QAAA,+BAA+B,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CACvE,oCAA4B,CAC7B,CAAC"}
|
package/dist/calldata/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* and address utilities.
|
|
6
6
|
*/
|
|
7
7
|
export { decodeCalldata, decodeCalldataArray, extractCalldataFromStage } from "./decoder";
|
|
8
|
-
export { lookupSignature, lookupLocalSignature } from "./signature-lookup";
|
|
8
|
+
export { lookupSignature, lookupLocalSignature, LookupSignatureOptions } from "./signature-lookup";
|
|
9
9
|
export { parseParamTypes, isLikelyCalldata, formatDecodedValue, getAddressLabel, } from "./parameter-decoder";
|
|
10
10
|
export { RETRYABLE_TICKET_MAGIC, isRetryableTicketMagic, decodeRetryableTicket, getRetryableChainName, } from "./retryable-ticket";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/calldata/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAG1F,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/calldata/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAG1F,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGnG,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/calldata/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,8BAA8B;AAC9B,qCAA0F;AAAjF,yGAAA,cAAc,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAAE,mHAAA,wBAAwB,OAAA;AAEtE,mBAAmB;AACnB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/calldata/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,8BAA8B;AAC9B,qCAA0F;AAAjF,yGAAA,cAAc,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAAE,mHAAA,wBAAwB,OAAA;AAEtE,mBAAmB;AACnB,uDAAmG;AAA1F,mHAAA,eAAe,OAAA;AAAE,wHAAA,oBAAoB,OAAA;AAE9C,0CAA0C;AAC1C,yDAK6B;AAJ3B,oHAAA,eAAe,OAAA;AACf,qHAAA,gBAAgB,OAAA;AAChB,uHAAA,kBAAkB,OAAA;AAClB,oHAAA,eAAe,OAAA;AAGjB,mBAAmB;AACnB,uDAK4B;AAJ1B,0HAAA,sBAAsB,OAAA;AACtB,0HAAA,sBAAsB,OAAA;AACtB,yHAAA,qBAAqB,OAAA;AACrB,yHAAA,qBAAqB,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-decoder.d.ts","sourceRoot":"","sources":["../../src/calldata/parameter-decoder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAgEtC;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG7F;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAI1D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAUvD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAmCvE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,KAAK,GAClB;IAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAA;CAAE,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"parameter-decoder.d.ts","sourceRoot":"","sources":["../../src/calldata/parameter-decoder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAgEtC;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG7F;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAI1D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAUvD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAmCvE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,KAAK,GAClB;IAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAA;CAAE,GAAG,IAAI,CAuDrE"}
|
|
@@ -153,7 +153,14 @@ function decodeParameters(calldata, signature, chainContext) {
|
|
|
153
153
|
const fragment = iface.getFunction(signature);
|
|
154
154
|
const inputs = fragment.inputs;
|
|
155
155
|
// Decode using Interface - handles selector automatically
|
|
156
|
-
|
|
156
|
+
// Wrapped in try/catch to handle malformed calldata gracefully
|
|
157
|
+
let decoded;
|
|
158
|
+
try {
|
|
159
|
+
decoded = iface.decodeFunctionData(fragment, calldata);
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
157
164
|
// Format into DecodedParameter array
|
|
158
165
|
const params = inputs.map((paramType, index) => {
|
|
159
166
|
const rawValue = decoded[index];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-decoder.js","sourceRoot":"","sources":["../../src/calldata/parameter-decoder.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA2EH,0CAGC;AASD,0CAIC;AAQD,4CAUC;AASD,gDAmCC;AAUD,
|
|
1
|
+
{"version":3,"file":"parameter-decoder.js","sourceRoot":"","sources":["../../src/calldata/parameter-decoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Resolves 4-byte function selectors to full function signatures.
|
|
5
5
|
* Uses local registry first, then falls back to 4byte.directory API.
|
|
6
|
+
*
|
|
7
|
+
* Privacy note: Set DISABLE_4BYTE_LOOKUP=1 to prevent external API calls.
|
|
8
|
+
* When enabled, only local signatures will be used.
|
|
6
9
|
*/
|
|
7
10
|
/**
|
|
8
11
|
* Look up function signature in local registry
|
|
@@ -11,17 +14,29 @@
|
|
|
11
14
|
* @returns The function signature if found, null otherwise
|
|
12
15
|
*/
|
|
13
16
|
export declare function lookupLocalSignature(selector: string): string | null;
|
|
17
|
+
/**
|
|
18
|
+
* Options for signature lookup
|
|
19
|
+
*/
|
|
20
|
+
export interface LookupSignatureOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Disable external 4byte.directory API lookup.
|
|
23
|
+
* When true, only local signatures will be used.
|
|
24
|
+
* Can also be disabled globally via DISABLE_4BYTE_LOOKUP=1 env var.
|
|
25
|
+
*/
|
|
26
|
+
disableApiLookup?: boolean;
|
|
27
|
+
}
|
|
14
28
|
/**
|
|
15
29
|
* Look up function signature from all sources
|
|
16
30
|
*
|
|
17
31
|
* Priority:
|
|
18
32
|
* 1. Local registry (instant)
|
|
19
|
-
* 2. 4byte.directory API (with caching)
|
|
33
|
+
* 2. 4byte.directory API (with caching) - unless disabled
|
|
20
34
|
*
|
|
21
35
|
* @param selector - The 4-byte function selector (e.g., "0x8f2a0bb0")
|
|
36
|
+
* @param options - Optional configuration for the lookup
|
|
22
37
|
* @returns Object with signature and source, or null signature if not found
|
|
23
38
|
*/
|
|
24
|
-
export declare function lookupSignature(selector: string): Promise<{
|
|
39
|
+
export declare function lookupSignature(selector: string, options?: LookupSignatureOptions): Promise<{
|
|
25
40
|
signature: string | null;
|
|
26
41
|
source: "local" | "api" | "failed";
|
|
27
42
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-lookup.d.ts","sourceRoot":"","sources":["../../src/calldata/signature-lookup.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"signature-lookup.d.ts","sourceRoot":"","sources":["../../src/calldata/signature-lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA4EH;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGpE;AAmDD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAA;CAAE,CAAC,CAsB3E"}
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Resolves 4-byte function selectors to full function signatures.
|
|
6
6
|
* Uses local registry first, then falls back to 4byte.directory API.
|
|
7
|
+
*
|
|
8
|
+
* Privacy note: Set DISABLE_4BYTE_LOOKUP=1 to prevent external API calls.
|
|
9
|
+
* When enabled, only local signatures will be used.
|
|
7
10
|
*/
|
|
8
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -13,6 +16,13 @@ exports.lookupLocalSignature = lookupLocalSignature;
|
|
|
13
16
|
exports.lookupSignature = lookupSignature;
|
|
14
17
|
const debug_1 = __importDefault(require("debug"));
|
|
15
18
|
const debug = (0, debug_1.default)("gov-tracker:calldata");
|
|
19
|
+
/**
|
|
20
|
+
* Check if 4byte.directory API lookups are disabled via environment variable.
|
|
21
|
+
* When disabled, only local signatures will be used (no external API calls).
|
|
22
|
+
*/
|
|
23
|
+
function is4byteLookupDisabled() {
|
|
24
|
+
return process.env.DISABLE_4BYTE_LOOKUP === "1";
|
|
25
|
+
}
|
|
16
26
|
/**
|
|
17
27
|
* Local registry of common governance function signatures
|
|
18
28
|
* Priority 1: Checked before API lookup
|
|
@@ -120,18 +130,26 @@ async function lookup4byteDirectory(selector) {
|
|
|
120
130
|
*
|
|
121
131
|
* Priority:
|
|
122
132
|
* 1. Local registry (instant)
|
|
123
|
-
* 2. 4byte.directory API (with caching)
|
|
133
|
+
* 2. 4byte.directory API (with caching) - unless disabled
|
|
124
134
|
*
|
|
125
135
|
* @param selector - The 4-byte function selector (e.g., "0x8f2a0bb0")
|
|
136
|
+
* @param options - Optional configuration for the lookup
|
|
126
137
|
* @returns Object with signature and source, or null signature if not found
|
|
127
138
|
*/
|
|
128
|
-
async function lookupSignature(selector) {
|
|
139
|
+
async function lookupSignature(selector, options) {
|
|
129
140
|
// Try local registry first
|
|
130
141
|
const localResult = lookupLocalSignature(selector);
|
|
131
142
|
if (localResult) {
|
|
132
143
|
return { signature: localResult, source: "local" };
|
|
133
144
|
}
|
|
145
|
+
// Check if external API lookups are disabled (via option or env var)
|
|
146
|
+
if (options?.disableApiLookup || is4byteLookupDisabled()) {
|
|
147
|
+
const reason = options?.disableApiLookup ? "option" : "DISABLE_4BYTE_LOOKUP env var";
|
|
148
|
+
debug("4byte.directory lookup disabled via %s for selector: %s", reason, selector);
|
|
149
|
+
return { signature: null, source: "failed" };
|
|
150
|
+
}
|
|
134
151
|
// Fall back to 4byte.directory API
|
|
152
|
+
debug("Looking up selector via 4byte.directory API: %s", selector);
|
|
135
153
|
const apiResult = await lookup4byteDirectory(selector);
|
|
136
154
|
if (apiResult) {
|
|
137
155
|
return { signature: apiResult, source: "api" };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-lookup.js","sourceRoot":"","sources":["../../src/calldata/signature-lookup.ts"],"names":[],"mappings":";AAAA;;;;;
|
|
1
|
+
{"version":3,"file":"signature-lookup.js","sourceRoot":"","sources":["../../src/calldata/signature-lookup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Monitor CLI - Example SDK Usage
|
|
4
|
+
*
|
|
5
|
+
* NOTE: This is a CLI application that demonstrates SDK usage, not library code.
|
|
6
|
+
* It serves as both a reference implementation and a production-ready tool.
|
|
7
|
+
* Developers should treat this as an application of the SDK, not as part of the SDK API.
|
|
8
|
+
*
|
|
9
|
+
* Demonstrates how to use the governance tracking SDK for:
|
|
10
|
+
* - Discovering proposals and timelock operations
|
|
11
|
+
* - Tracking lifecycle stages
|
|
12
|
+
* - Preparing and executing transactions
|
|
13
|
+
*
|
|
14
|
+
* Usage: npx @gzeoneth/gov-tracker [run|track <tx-hash>|election|status] [options]
|
|
15
|
+
*
|
|
16
|
+
* Dependencies:
|
|
17
|
+
* - commander is an optional dependency required for CLI usage
|
|
18
|
+
* - dotenv is a dev dependency; .env files are loaded if available
|
|
19
|
+
*/
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG"}
|