@gzeoneth/gov-tracker 0.1.2 → 0.2.0-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/README.md +3 -0
  2. package/dist/abis.d.ts +0 -32
  3. package/dist/abis.d.ts.map +1 -1
  4. package/dist/abis.js +17 -17
  5. package/dist/abis.js.map +1 -1
  6. package/dist/calldata/decoder.d.ts +12 -3
  7. package/dist/calldata/decoder.d.ts.map +1 -1
  8. package/dist/calldata/decoder.js +56 -9
  9. package/dist/calldata/decoder.js.map +1 -1
  10. package/dist/calldata/index.d.ts +4 -7
  11. package/dist/calldata/index.d.ts.map +1 -1
  12. package/dist/calldata/index.js +5 -19
  13. package/dist/calldata/index.js.map +1 -1
  14. package/dist/calldata/parameter-decoder.d.ts +11 -2
  15. package/dist/calldata/parameter-decoder.d.ts.map +1 -1
  16. package/dist/calldata/parameter-decoder.js +67 -8
  17. package/dist/calldata/parameter-decoder.js.map +1 -1
  18. package/dist/calldata/retryable-ticket.d.ts +1 -17
  19. package/dist/calldata/retryable-ticket.d.ts.map +1 -1
  20. package/dist/calldata/retryable-ticket.js +10 -17
  21. package/dist/calldata/retryable-ticket.js.map +1 -1
  22. package/dist/calldata/signature-lookup.d.ts +0 -11
  23. package/dist/calldata/signature-lookup.d.ts.map +1 -1
  24. package/dist/calldata/signature-lookup.js +0 -8
  25. package/dist/calldata/signature-lookup.js.map +1 -1
  26. package/dist/cli/lib/cli.d.ts +1 -3
  27. package/dist/cli/lib/cli.d.ts.map +1 -1
  28. package/dist/cli/lib/cli.js +12 -27
  29. package/dist/cli/lib/cli.js.map +1 -1
  30. package/dist/cli/lib/election-check.d.ts +2 -2
  31. package/dist/cli/lib/election-check.d.ts.map +1 -1
  32. package/dist/cli/lib/election-check.js.map +1 -1
  33. package/dist/cli/lib/json-state.d.ts +2 -29
  34. package/dist/cli/lib/json-state.d.ts.map +1 -1
  35. package/dist/cli/lib/json-state.js +12 -56
  36. package/dist/cli/lib/json-state.js.map +1 -1
  37. package/dist/cli/monitor.js +1 -2
  38. package/dist/cli/monitor.js.map +1 -1
  39. package/dist/constants.d.ts +41 -7
  40. package/dist/constants.d.ts.map +1 -1
  41. package/dist/constants.js +64 -4
  42. package/dist/constants.js.map +1 -1
  43. package/dist/discovery/timelock-discovery.js +1 -1
  44. package/dist/discovery/timelock-discovery.js.map +1 -1
  45. package/dist/election.d.ts.map +1 -1
  46. package/dist/election.js +7 -4
  47. package/dist/election.js.map +1 -1
  48. package/dist/index.d.ts +10 -8
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +35 -26
  51. package/dist/index.js.map +1 -1
  52. package/dist/simulation/index.d.ts +3 -4
  53. package/dist/simulation/index.d.ts.map +1 -1
  54. package/dist/simulation/index.js +3 -9
  55. package/dist/simulation/index.js.map +1 -1
  56. package/dist/simulation/simulation-data.d.ts +6 -31
  57. package/dist/simulation/simulation-data.d.ts.map +1 -1
  58. package/dist/simulation/simulation-data.js +25 -58
  59. package/dist/simulation/simulation-data.js.map +1 -1
  60. package/dist/stages/{stage-builder.d.ts → builder.d.ts} +14 -9
  61. package/dist/stages/builder.d.ts.map +1 -0
  62. package/dist/stages/{stage-builder.js → builder.js} +19 -5
  63. package/dist/stages/builder.js.map +1 -0
  64. package/dist/stages/l2-to-l1-message.d.ts +3 -3
  65. package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
  66. package/dist/stages/l2-to-l1-message.js +17 -17
  67. package/dist/stages/l2-to-l1-message.js.map +1 -1
  68. package/dist/stages/proposal-created.d.ts +2 -2
  69. package/dist/stages/proposal-created.d.ts.map +1 -1
  70. package/dist/stages/proposal-created.js +5 -5
  71. package/dist/stages/proposal-created.js.map +1 -1
  72. package/dist/stages/proposal-queued.d.ts +2 -2
  73. package/dist/stages/proposal-queued.d.ts.map +1 -1
  74. package/dist/stages/proposal-queued.js +11 -11
  75. package/dist/stages/proposal-queued.js.map +1 -1
  76. package/dist/stages/retryables.d.ts +7 -7
  77. package/dist/stages/retryables.d.ts.map +1 -1
  78. package/dist/stages/retryables.js +75 -61
  79. package/dist/stages/retryables.js.map +1 -1
  80. package/dist/stages/timelock.d.ts +3 -24
  81. package/dist/stages/timelock.d.ts.map +1 -1
  82. package/dist/stages/timelock.js +47 -39
  83. package/dist/stages/timelock.js.map +1 -1
  84. package/dist/stages/{base.d.ts → utils.d.ts} +78 -35
  85. package/dist/stages/utils.d.ts.map +1 -0
  86. package/dist/stages/{base.js → utils.js} +211 -63
  87. package/dist/stages/utils.js.map +1 -0
  88. package/dist/stages/voting.d.ts +2 -2
  89. package/dist/stages/voting.d.ts.map +1 -1
  90. package/dist/stages/voting.js +2 -2
  91. package/dist/stages/voting.js.map +1 -1
  92. package/dist/tracker/cache.d.ts +104 -0
  93. package/dist/tracker/cache.d.ts.map +1 -0
  94. package/dist/tracker/cache.js +287 -0
  95. package/dist/tracker/cache.js.map +1 -0
  96. package/dist/tracker/execute.js +9 -9
  97. package/dist/tracker/execute.js.map +1 -1
  98. package/dist/tracker/pipeline.d.ts +3 -32
  99. package/dist/tracker/pipeline.d.ts.map +1 -1
  100. package/dist/tracker/pipeline.js +40 -43
  101. package/dist/tracker/pipeline.js.map +1 -1
  102. package/dist/tracker/query.js +4 -4
  103. package/dist/tracker/query.js.map +1 -1
  104. package/dist/tracker/state.d.ts +88 -81
  105. package/dist/tracker/state.d.ts.map +1 -1
  106. package/dist/tracker/state.js +241 -264
  107. package/dist/tracker/state.js.map +1 -1
  108. package/dist/tracker.d.ts +4 -4
  109. package/dist/tracker.d.ts.map +1 -1
  110. package/dist/tracker.js +24 -22
  111. package/dist/tracker.js.map +1 -1
  112. package/dist/types/calldata.d.ts +4 -6
  113. package/dist/types/calldata.d.ts.map +1 -1
  114. package/dist/types/core.d.ts +36 -34
  115. package/dist/types/core.d.ts.map +1 -1
  116. package/dist/types/core.js +33 -0
  117. package/dist/types/core.js.map +1 -1
  118. package/dist/types/cross-chain.d.ts +5 -61
  119. package/dist/types/cross-chain.d.ts.map +1 -1
  120. package/dist/types/election.d.ts +3 -6
  121. package/dist/types/election.d.ts.map +1 -1
  122. package/dist/types/index.d.ts +7 -7
  123. package/dist/types/index.d.ts.map +1 -1
  124. package/dist/types/index.js +6 -2
  125. package/dist/types/index.js.map +1 -1
  126. package/dist/types/simulation.d.ts +5 -7
  127. package/dist/types/simulation.d.ts.map +1 -1
  128. package/dist/types/stages.d.ts +50 -32
  129. package/dist/types/stages.d.ts.map +1 -1
  130. package/dist/types/stages.js +10 -1
  131. package/dist/types/stages.js.map +1 -1
  132. package/dist/types/tracking.d.ts +3 -30
  133. package/dist/types/tracking.d.ts.map +1 -1
  134. package/dist/utils/chain.d.ts +7 -3
  135. package/dist/utils/chain.d.ts.map +1 -1
  136. package/dist/utils/chain.js +13 -9
  137. package/dist/utils/chain.js.map +1 -1
  138. package/dist/utils/logger.d.ts +9 -3
  139. package/dist/utils/logger.d.ts.map +1 -1
  140. package/dist/utils/logger.js +53 -19
  141. package/dist/utils/logger.js.map +1 -1
  142. package/dist/utils/rpc-utils.d.ts +7 -8
  143. package/dist/utils/rpc-utils.d.ts.map +1 -1
  144. package/dist/utils/rpc-utils.js +20 -2
  145. package/dist/utils/rpc-utils.js.map +1 -1
  146. package/dist/utils/salt-computation.d.ts.map +1 -1
  147. package/dist/utils/salt-computation.js +2 -3
  148. package/dist/utils/salt-computation.js.map +1 -1
  149. package/dist/utils/stage-metadata.d.ts +2 -2
  150. package/dist/utils/stage-metadata.d.ts.map +1 -1
  151. package/dist/utils/stage-metadata.js +5 -5
  152. package/dist/utils/stage-metadata.js.map +1 -1
  153. package/package.json +9 -5
  154. package/dist/calldata/address-utils.d.ts +0 -23
  155. package/dist/calldata/address-utils.d.ts.map +0 -1
  156. package/dist/calldata/address-utils.js +0 -84
  157. package/dist/calldata/address-utils.js.map +0 -1
  158. package/dist/calldata/extraction.d.ts +0 -17
  159. package/dist/calldata/extraction.d.ts.map +0 -1
  160. package/dist/calldata/extraction.js +0 -56
  161. package/dist/calldata/extraction.js.map +0 -1
  162. package/dist/stages/base.d.ts.map +0 -1
  163. package/dist/stages/base.js.map +0 -1
  164. package/dist/stages/stage-builder.d.ts.map +0 -1
  165. package/dist/stages/stage-builder.js.map +0 -1
  166. package/dist/tracker/context.d.ts +0 -111
  167. package/dist/tracker/context.d.ts.map +0 -1
  168. package/dist/tracker/context.js +0 -264
  169. package/dist/tracker/context.js.map +0 -1
  170. package/dist/tracker/index.d.ts +0 -18
  171. package/dist/tracker/index.d.ts.map +0 -1
  172. package/dist/tracker/index.js +0 -70
  173. package/dist/tracker/index.js.map +0 -1
  174. package/dist/types.d.ts +0 -6
  175. package/dist/types.d.ts.map +0 -1
  176. package/dist/types.js +0 -22
  177. package/dist/types.js.map +0 -1
  178. package/dist/utils/error-classification.d.ts +0 -13
  179. package/dist/utils/error-classification.d.ts.map +0 -1
  180. package/dist/utils/error-classification.js +0 -28
  181. package/dist/utils/error-classification.js.map +0 -1
  182. package/dist/utils/scoped-logger.d.ts +0 -43
  183. package/dist/utils/scoped-logger.d.ts.map +0 -1
  184. package/dist/utils/scoped-logger.js +0 -72
  185. package/dist/utils/scoped-logger.js.map +0 -1
  186. package/dist/utils/stage-helpers.d.ts +0 -51
  187. package/dist/utils/stage-helpers.d.ts.map +0 -1
  188. package/dist/utils/stage-helpers.js +0 -143
  189. package/dist/utils/stage-helpers.js.map +0 -1
  190. package/dist/utils/urls.d.ts +0 -28
  191. package/dist/utils/urls.d.ts.map +0 -1
  192. package/dist/utils/urls.js +0 -71
  193. package/dist/utils/urls.js.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # @gzeoneth/gov-tracker
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@gzeoneth/gov-tracker.svg)](https://www.npmjs.com/package/@gzeoneth/gov-tracker)
4
+ [![codecov](https://codecov.io/gh/gzeoneth/gov-tracker/graph/badge.svg?token=2WVH8Z82TE)](https://codecov.io/gh/gzeoneth/gov-tracker)
4
5
  [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
5
6
 
6
7
  Track and execute Arbitrum DAO governance proposal lifecycle stages.
@@ -137,6 +138,8 @@ PRIVATE_KEY=0x... # For execution
137
138
  yarn build # Compile TypeScript
138
139
  yarn test # Run fast tests (no RPC)
139
140
  yarn test:coverage # Run tests with coverage
141
+ yarn test:coverage:fork # Run fork tests with coverage (requires archive RPC)
142
+ yarn test:coverage:all # Merge all coverage reports
140
143
  yarn lint # Run ESLint
141
144
  ```
142
145
 
package/dist/abis.d.ts CHANGED
@@ -26,30 +26,6 @@ export declare const SECURITY_COUNCIL_MANAGER_ABI: string[];
26
26
  * Inbox contract ABI for retryable submission fee calculation
27
27
  */
28
28
  export declare const INBOX_ABI: string[];
29
- /**
30
- * ArbSys precompile ABI (includes L2ToL1Tx event for message tracking)
31
- */
32
- export declare const ARB_SYS_ABI: string[];
33
- /**
34
- * Upgrade Executor ABI
35
- */
36
- export declare const UPGRADE_EXECUTOR_ABI: string[];
37
- /**
38
- * Security Council Member Sync Action ABI
39
- */
40
- export declare const MEMBER_SYNC_ACTION_ABI: string[];
41
- /**
42
- * Outbox ABI for L2→L1 message execution tracking
43
- */
44
- export declare const OUTBOX_ABI: string[];
45
- /**
46
- * ArbRetryableTx precompile ABI for retryable ticket redemption
47
- */
48
- export declare const ARB_RETRYABLE_TX_ABI: string[];
49
- /**
50
- * Outbox ABI for encoding executeTransaction (separate from isSpent/events)
51
- */
52
- export declare const OUTBOX_EXECUTE_ABI: string[];
53
29
  /**
54
30
  * SecurityCouncilNomineeElectionGovernor ABI
55
31
  */
@@ -58,14 +34,6 @@ export declare const NOMINEE_ELECTION_GOVERNOR_ABI: string[];
58
34
  * SecurityCouncilMemberElectionGovernor ABI
59
35
  */
60
36
  export declare const MEMBER_ELECTION_GOVERNOR_ABI: string[];
61
- /**
62
- * ProposalCreated event signature for parsing
63
- */
64
- export declare const PROPOSAL_CREATED_EVENT = "event ProposalCreated(uint256 proposalId, address proposer, address[] targets, uint256[] values, string[] signatures, bytes[] calldatas, uint256 startBlock, uint256 endBlock, string description)";
65
- /**
66
- * ProposalQueued event signature for parsing
67
- */
68
- export declare const PROPOSAL_QUEUED_EVENT = "event ProposalQueued(uint256 proposalId, uint256 eta)";
69
37
  export declare const governorInterface: ethers.utils.Interface;
70
38
  export declare const timelockInterface: ethers.utils.Interface;
71
39
  export declare const arbSysInterface: ethers.utils.Interface;
@@ -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;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,UAIvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,UAAoD,CAAC;AAEtF;;GAEG;AACH,eAAO,MAAM,sBAAsB,UAElC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,UAEtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,UAAiD,CAAC;AAEnF;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAE9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,UAazC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,UAIxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,uMACmK,CAAC;AAEvM;;GAEG;AACH,eAAO,MAAM,qBAAqB,0DAA0D,CAAC;AAI7F,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"}
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,UAazC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,UAIxC,CAAC;AAeF,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"}
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.PROPOSAL_QUEUED_EVENT = exports.PROPOSAL_CREATED_EVENT = exports.MEMBER_ELECTION_GOVERNOR_ABI = exports.NOMINEE_ELECTION_GOVERNOR_ABI = exports.OUTBOX_EXECUTE_ABI = exports.ARB_RETRYABLE_TX_ABI = exports.OUTBOX_ABI = exports.MEMBER_SYNC_ACTION_ABI = exports.UPGRADE_EXECUTOR_ABI = exports.ARB_SYS_ABI = exports.INBOX_ABI = exports.SECURITY_COUNCIL_MANAGER_ABI = exports.TIMELOCK_ABI = exports.GOVERNOR_WITH_VETTER_ABI = exports.GOVERNOR_ABI = void 0;
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;
11
11
  const ethers_1 = require("ethers");
12
12
  /**
13
13
  * Governor contract ABI (minimal required interface)
@@ -81,7 +81,7 @@ exports.INBOX_ABI = [
81
81
  /**
82
82
  * ArbSys precompile ABI (includes L2ToL1Tx event for message tracking)
83
83
  */
84
- exports.ARB_SYS_ABI = [
84
+ const ARB_SYS_ABI = [
85
85
  "function arbBlockNumber() view returns (uint256)",
86
86
  "function sendTxToL1(address destination, bytes data) payable returns (uint256)",
87
87
  "event L2ToL1Tx(address caller, address indexed destination, uint256 indexed hash, uint256 indexed position, uint256 arbBlockNum, uint256 ethBlockNum, uint256 timestamp, uint256 callvalue, bytes data)",
@@ -89,27 +89,27 @@ exports.ARB_SYS_ABI = [
89
89
  /**
90
90
  * Upgrade Executor ABI
91
91
  */
92
- exports.UPGRADE_EXECUTOR_ABI = ["function execute(address upgrade, bytes data)"];
92
+ const UPGRADE_EXECUTOR_ABI = ["function execute(address upgrade, bytes data)"];
93
93
  /**
94
94
  * Security Council Member Sync Action ABI
95
95
  */
96
- exports.MEMBER_SYNC_ACTION_ABI = [
96
+ const MEMBER_SYNC_ACTION_ABI = [
97
97
  "function perform(address securityCouncil, address[] members, uint256 nonce) returns (bool)",
98
98
  ];
99
99
  /**
100
100
  * Outbox ABI for L2→L1 message execution tracking
101
101
  */
102
- exports.OUTBOX_ABI = [
102
+ const OUTBOX_ABI = [
103
103
  "event OutBoxTransactionExecuted(address indexed to, address indexed l2Sender, uint256 indexed zero, uint256 transactionIndex)",
104
104
  ];
105
105
  /**
106
106
  * ArbRetryableTx precompile ABI for retryable ticket redemption
107
107
  */
108
- exports.ARB_RETRYABLE_TX_ABI = ["function redeem(bytes32 ticketId) external"];
108
+ const ARB_RETRYABLE_TX_ABI = ["function redeem(bytes32 ticketId) external"];
109
109
  /**
110
110
  * Outbox ABI for encoding executeTransaction (separate from isSpent/events)
111
111
  */
112
- exports.OUTBOX_EXECUTE_ABI = [
112
+ const OUTBOX_EXECUTE_ABI = [
113
113
  "function executeTransaction(bytes32[] calldata proof, uint256 index, address l2Sender, address to, uint256 l2Block, uint256 l1Block, uint256 l2Timestamp, uint256 value, bytes calldata data) external",
114
114
  ];
115
115
  /**
@@ -140,20 +140,20 @@ exports.MEMBER_ELECTION_GOVERNOR_ABI = [
140
140
  /**
141
141
  * ProposalCreated event signature for parsing
142
142
  */
143
- exports.PROPOSAL_CREATED_EVENT = "event ProposalCreated(uint256 proposalId, address proposer, address[] targets, uint256[] values, string[] signatures, bytes[] calldatas, uint256 startBlock, uint256 endBlock, string description)";
143
+ const PROPOSAL_CREATED_EVENT = "event ProposalCreated(uint256 proposalId, address proposer, address[] targets, uint256[] values, string[] signatures, bytes[] calldatas, uint256 startBlock, uint256 endBlock, string description)";
144
144
  /**
145
145
  * ProposalQueued event signature for parsing
146
146
  */
147
- exports.PROPOSAL_QUEUED_EVENT = "event ProposalQueued(uint256 proposalId, uint256 eta)";
147
+ const PROPOSAL_QUEUED_EVENT = "event ProposalQueued(uint256 proposalId, uint256 eta)";
148
148
  // Pre-created Interface instances
149
149
  exports.governorInterface = new ethers_1.ethers.utils.Interface(exports.GOVERNOR_ABI);
150
150
  exports.timelockInterface = new ethers_1.ethers.utils.Interface(exports.TIMELOCK_ABI);
151
- exports.arbSysInterface = new ethers_1.ethers.utils.Interface(exports.ARB_SYS_ABI);
152
- exports.outboxInterface = new ethers_1.ethers.utils.Interface(exports.OUTBOX_ABI);
153
- exports.outboxExecuteInterface = new ethers_1.ethers.utils.Interface(exports.OUTBOX_EXECUTE_ABI);
154
- exports.arbRetryableInterface = new ethers_1.ethers.utils.Interface(exports.ARB_RETRYABLE_TX_ABI);
155
- exports.upgradeExecutorInterface = new ethers_1.ethers.utils.Interface(exports.UPGRADE_EXECUTOR_ABI);
156
- exports.memberSyncActionInterface = new ethers_1.ethers.utils.Interface(exports.MEMBER_SYNC_ACTION_ABI);
157
- exports.proposalCreatedInterface = new ethers_1.ethers.utils.Interface([exports.PROPOSAL_CREATED_EVENT]);
158
- exports.proposalQueuedInterface = new ethers_1.ethers.utils.Interface([exports.PROPOSAL_QUEUED_EVENT]);
151
+ exports.arbSysInterface = new ethers_1.ethers.utils.Interface(ARB_SYS_ABI);
152
+ exports.outboxInterface = new ethers_1.ethers.utils.Interface(OUTBOX_ABI);
153
+ exports.outboxExecuteInterface = new ethers_1.ethers.utils.Interface(OUTBOX_EXECUTE_ABI);
154
+ exports.arbRetryableInterface = new ethers_1.ethers.utils.Interface(ARB_RETRYABLE_TX_ABI);
155
+ exports.upgradeExecutorInterface = new ethers_1.ethers.utils.Interface(UPGRADE_EXECUTOR_ABI);
156
+ exports.memberSyncActionInterface = new ethers_1.ethers.utils.Interface(MEMBER_SYNC_ACTION_ABI);
157
+ exports.proposalCreatedInterface = new ethers_1.ethers.utils.Interface([PROPOSAL_CREATED_EVENT]);
158
+ exports.proposalQueuedInterface = new ethers_1.ethers.utils.Interface([PROPOSAL_QUEUED_EVENT]);
159
159
  //# 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":"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"}
1
+ {"version":3,"file":"abis.js","sourceRoot":"","sources":["../src/abis.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * nested call handling and retryable ticket detection.
6
6
  */
7
7
  import type { DecodedCalldata } from "../types/calldata";
8
- import { ChainContext } from "../types";
8
+ import { Chain, TrackedStage, ExtractedCalldata } from "../types";
9
9
  /**
10
10
  * Decode calldata with recursive nested decoding support
11
11
  *
@@ -15,7 +15,7 @@ import { ChainContext } from "../types";
15
15
  * @param chainContext - Chain for address resolution (default: "arb1")
16
16
  * @returns Decoded calldata with nested calls
17
17
  */
18
- export declare function decodeCalldata(calldata: string, targetAddress?: string, depth?: number, chainContext?: ChainContext): Promise<DecodedCalldata>;
18
+ export declare function decodeCalldata(calldata: string, targetAddress?: string, depth?: number, chainContext?: Chain): Promise<DecodedCalldata>;
19
19
  /**
20
20
  * Decode multiple calldatas with their targets
21
21
  *
@@ -24,5 +24,14 @@ export declare function decodeCalldata(calldata: string, targetAddress?: string,
24
24
  * @param chainContext - Chain for address resolution
25
25
  * @returns Array of decoded calldata results
26
26
  */
27
- export declare function decodeCalldataArray(calldatas: string[], targets: string[], chainContext?: ChainContext): Promise<DecodedCalldata[]>;
27
+ export declare function decodeCalldataArray(calldatas: string[], targets: string[], chainContext?: Chain): Promise<DecodedCalldata[]>;
28
+ /**
29
+ * Extract calldata, targets, and values from a tracked stage.
30
+ * Handles different data structures for Proposals vs Timelock operations.
31
+ * Ensures all returned arrays have the same length.
32
+ *
33
+ * @param stage The tracked stage to inspect
34
+ * @returns Object containing aligned arrays of calldatas, targets, and values
35
+ */
36
+ export declare function extractCalldataFromStage(stage: TrackedStage): ExtractedCalldata;
28
37
  //# sourceMappingURL=decoder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/calldata/decoder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAkBxC;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,EACtB,KAAK,SAAI,EACT,YAAY,GAAE,YAAqB,GAClC,OAAO,CAAC,eAAe,CAAC,CA0E1B;AAiJD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,GAAE,YAAqB,GAClC,OAAO,CAAC,eAAe,EAAE,CAAC,CAS5B"}
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/calldata/decoder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAiBlE;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,EACtB,KAAK,SAAI,EACT,YAAY,GAAE,KAAc,GAC3B,OAAO,CAAC,eAAe,CAAC,CAsE1B;AAgJD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,GAAE,KAAc,GAC3B,OAAO,CAAC,eAAe,EAAE,CAAC,CAS5B;AAiBD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAmD/E"}
@@ -11,11 +11,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.decodeCalldata = decodeCalldata;
13
13
  exports.decodeCalldataArray = decodeCalldataArray;
14
+ exports.extractCalldataFromStage = extractCalldataFromStage;
14
15
  const debug_1 = __importDefault(require("debug"));
15
16
  const signature_lookup_1 = require("./signature-lookup");
16
17
  const parameter_decoder_1 = require("./parameter-decoder");
17
18
  const retryable_ticket_1 = require("./retryable-ticket");
18
- const address_utils_1 = require("./address-utils");
19
19
  const debug = (0, debug_1.default)("gov-tracker:calldata");
20
20
  /**
21
21
  * Maximum recursion depth for nested calldata decoding
@@ -43,7 +43,6 @@ async function decodeCalldata(calldata, targetAddress, depth = 0, chainContext =
43
43
  parameters: null,
44
44
  raw: calldata || "0x",
45
45
  decodingSource: "failed",
46
- chainContext,
47
46
  };
48
47
  }
49
48
  // Extract selector (first 4 bytes = 10 chars including 0x)
@@ -58,7 +57,6 @@ async function decodeCalldata(calldata, targetAddress, depth = 0, chainContext =
58
57
  parameters: null,
59
58
  raw: calldata,
60
59
  decodingSource: "failed",
61
- chainContext,
62
60
  };
63
61
  }
64
62
  // Determine chain context for nested content
@@ -75,14 +73,13 @@ async function decodeCalldata(calldata, targetAddress, depth = 0, chainContext =
75
73
  parameters: null,
76
74
  raw: calldata,
77
75
  decodingSource: source,
78
- chainContext,
79
76
  };
80
77
  }
81
78
  const { params, decoded: rawDecoded } = decoded;
82
79
  // For sendTxToL1, fix first param (target address) to use L1 context
83
80
  if (isSendTxToL1 && params[0]?.type === "address") {
84
81
  const addr = String(rawDecoded[0]);
85
- const label = (0, address_utils_1.getAddressLabel)(addr, "ethereum");
82
+ const label = (0, parameter_decoder_1.getAddressLabel)(addr, "ethereum");
86
83
  if (label)
87
84
  params[0].addressLabel = label;
88
85
  }
@@ -97,7 +94,6 @@ async function decodeCalldata(calldata, targetAddress, depth = 0, chainContext =
97
94
  raw: calldata,
98
95
  decodingSource: source,
99
96
  decodingTarget: targetAddress,
100
- chainContext,
101
97
  };
102
98
  }
103
99
  /**
@@ -151,7 +147,7 @@ async function processNestedParams(params, rawDecoded, chainContext, depth) {
151
147
  value: retryable.targetInbox,
152
148
  rawValue: retryable.targetInbox,
153
149
  isNested: false,
154
- addressLabel: (0, address_utils_1.getAddressLabel)(retryable.targetInbox, "ethereum"),
150
+ addressLabel: (0, parameter_decoder_1.getAddressLabel)(retryable.targetInbox, "ethereum"),
155
151
  },
156
152
  {
157
153
  name: "l2Target",
@@ -159,7 +155,7 @@ async function processNestedParams(params, rawDecoded, chainContext, depth) {
159
155
  value: retryable.l2Target,
160
156
  rawValue: retryable.l2Target,
161
157
  isNested: false,
162
- addressLabel: (0, address_utils_1.getAddressLabel)(retryable.l2Target, l2ChainContext),
158
+ addressLabel: (0, parameter_decoder_1.getAddressLabel)(retryable.l2Target, l2ChainContext),
163
159
  },
164
160
  {
165
161
  name: "l2Value",
@@ -193,7 +189,6 @@ async function processNestedParams(params, rawDecoded, chainContext, depth) {
193
189
  ],
194
190
  raw: bytesItem,
195
191
  decodingSource: "local",
196
- chainContext: "ethereum", // Retryable tickets are created on L1
197
192
  targetChain: retryable.chain, // Explicit target L2 chain field
198
193
  };
199
194
  nestedArray.push(retryableDecoded);
@@ -235,4 +230,56 @@ async function decodeCalldataArray(calldatas, targets, chainContext = "arb1") {
235
230
  }
236
231
  return results;
237
232
  }
233
+ /**
234
+ * Extract calldata, targets, and values from a tracked stage.
235
+ * Handles different data structures for Proposals vs Timelock operations.
236
+ * Ensures all returned arrays have the same length.
237
+ *
238
+ * @param stage The tracked stage to inspect
239
+ * @returns Object containing aligned arrays of calldatas, targets, and values
240
+ */
241
+ function extractCalldataFromStage(stage) {
242
+ // Cast to loose type for field extraction - fields may not exist on all stage types
243
+ const data = stage.data;
244
+ const result = { calldatas: [], targets: [], values: [] };
245
+ // 1. Check for explicit calldatas array (Proposals)
246
+ // ProposalCreatedData and ProposalQueuedData use plural 'calldatas', 'targets', 'values'
247
+ if (data.calldatas && data.calldatas.length > 0) {
248
+ const count = data.calldatas.length;
249
+ const targets = data.targets || [];
250
+ const values = data.values || [];
251
+ // Strict length checks - these are part of the logic to ensure data integrity
252
+ if (targets.length !== count) {
253
+ throw new Error(`Mismatch in targets length: expected ${count}, got ${targets.length}`);
254
+ }
255
+ if (values.length !== count) {
256
+ throw new Error(`Mismatch in values length: expected ${count}, got ${values.length}`);
257
+ }
258
+ for (let i = 0; i < count; i++) {
259
+ result.calldatas.push(data.calldatas[i]);
260
+ result.targets.push(targets[i]);
261
+ result.values.push(values[i]);
262
+ }
263
+ return result;
264
+ }
265
+ // 2. Check for Timelock scheduled data (L1/L2 Timelock)
266
+ // Timelock stages usually have `callScheduledData` array containing the operations
267
+ if (data.callScheduledData) {
268
+ for (let i = 0; i < data.callScheduledData.length; i++) {
269
+ const scheduled = data.callScheduledData[i];
270
+ // scheduled.data and scheduled.target are strictly typed in CallScheduledData
271
+ result.calldatas.push(scheduled.data);
272
+ result.targets.push(scheduled.target);
273
+ const valueStr = typeof scheduled.value === "string" ? scheduled.value : scheduled.value?.toString();
274
+ if (valueStr === undefined) {
275
+ throw new Error(`Missing value in callScheduledData at index ${i}`);
276
+ }
277
+ result.values.push(valueStr);
278
+ }
279
+ if (result.calldatas.length > 0) {
280
+ return result;
281
+ }
282
+ }
283
+ return result;
284
+ }
238
285
  //# sourceMappingURL=decoder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/calldata/decoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/calldata/decoder.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,8 @@
4
4
  * Exports for recursive calldata decoding, signature lookup,
5
5
  * and address utilities.
6
6
  */
7
- export { decodeCalldata, decodeCalldataArray } from "./decoder";
8
- export { extractCalldataFromStage } from "./extraction";
9
- export { lookupSignature, lookupLocalSignature, lookup4byteDirectory, clearSignatureCache, } from "./signature-lookup";
10
- export { parseParamTypes, isLikelyCalldata, formatDecodedValue, decodeParameters, } from "./parameter-decoder";
11
- export { getAddressLabel, getKnownAddresses } from "./address-utils";
12
- export { getTxExplorerUrl } from "../utils/urls";
13
- export { RETRYABLE_TICKET_MAGIC, ARB1_DELAYED_INBOX, NOVA_DELAYED_INBOX, isRetryableTicketMagic, detectChainFromInbox, decodeRetryableTicket, getRetryableChainName, } from "./retryable-ticket";
7
+ export { decodeCalldata, decodeCalldataArray, extractCalldataFromStage } from "./decoder";
8
+ export { lookupSignature, lookupLocalSignature } from "./signature-lookup";
9
+ export { parseParamTypes, isLikelyCalldata, formatDecodedValue, getAddressLabel, } from "./parameter-decoder";
10
+ export { RETRYABLE_TICKET_MAGIC, isRetryableTicketMagic, decodeRetryableTicket, getRetryableChainName, } from "./retryable-ticket";
14
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,MAAM,WAAW,CAAC;AAGhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,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,MAAM,oBAAoB,CAAC;AAG3E,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"}
@@ -6,40 +6,26 @@
6
6
  * and address utilities.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.getRetryableChainName = exports.decodeRetryableTicket = exports.detectChainFromInbox = exports.isRetryableTicketMagic = exports.NOVA_DELAYED_INBOX = exports.ARB1_DELAYED_INBOX = exports.RETRYABLE_TICKET_MAGIC = exports.getTxExplorerUrl = exports.getKnownAddresses = exports.getAddressLabel = exports.decodeParameters = exports.formatDecodedValue = exports.isLikelyCalldata = exports.parseParamTypes = exports.clearSignatureCache = exports.lookup4byteDirectory = exports.lookupLocalSignature = exports.lookupSignature = exports.extractCalldataFromStage = exports.decodeCalldataArray = exports.decodeCalldata = void 0;
10
- // Main decoder
9
+ exports.getRetryableChainName = exports.decodeRetryableTicket = exports.isRetryableTicketMagic = exports.RETRYABLE_TICKET_MAGIC = exports.getAddressLabel = exports.formatDecodedValue = exports.isLikelyCalldata = exports.parseParamTypes = exports.lookupLocalSignature = exports.lookupSignature = exports.extractCalldataFromStage = exports.decodeCalldataArray = exports.decodeCalldata = void 0;
10
+ // Main decoder and extraction
11
11
  var decoder_1 = require("./decoder");
12
12
  Object.defineProperty(exports, "decodeCalldata", { enumerable: true, get: function () { return decoder_1.decodeCalldata; } });
13
13
  Object.defineProperty(exports, "decodeCalldataArray", { enumerable: true, get: function () { return decoder_1.decodeCalldataArray; } });
14
- // Extraction
15
- var extraction_1 = require("./extraction");
16
- Object.defineProperty(exports, "extractCalldataFromStage", { enumerable: true, get: function () { return extraction_1.extractCalldataFromStage; } });
14
+ Object.defineProperty(exports, "extractCalldataFromStage", { enumerable: true, get: function () { return decoder_1.extractCalldataFromStage; } });
17
15
  // Signature lookup
18
16
  var signature_lookup_1 = require("./signature-lookup");
19
17
  Object.defineProperty(exports, "lookupSignature", { enumerable: true, get: function () { return signature_lookup_1.lookupSignature; } });
20
18
  Object.defineProperty(exports, "lookupLocalSignature", { enumerable: true, get: function () { return signature_lookup_1.lookupLocalSignature; } });
21
- Object.defineProperty(exports, "lookup4byteDirectory", { enumerable: true, get: function () { return signature_lookup_1.lookup4byteDirectory; } });
22
- Object.defineProperty(exports, "clearSignatureCache", { enumerable: true, get: function () { return signature_lookup_1.clearSignatureCache; } });
23
- // Parameter decoder
19
+ // Parameter decoder and address utilities
24
20
  var parameter_decoder_1 = require("./parameter-decoder");
25
21
  Object.defineProperty(exports, "parseParamTypes", { enumerable: true, get: function () { return parameter_decoder_1.parseParamTypes; } });
26
22
  Object.defineProperty(exports, "isLikelyCalldata", { enumerable: true, get: function () { return parameter_decoder_1.isLikelyCalldata; } });
27
23
  Object.defineProperty(exports, "formatDecodedValue", { enumerable: true, get: function () { return parameter_decoder_1.formatDecodedValue; } });
28
- Object.defineProperty(exports, "decodeParameters", { enumerable: true, get: function () { return parameter_decoder_1.decodeParameters; } });
29
- // Address utilities
30
- var address_utils_1 = require("./address-utils");
31
- Object.defineProperty(exports, "getAddressLabel", { enumerable: true, get: function () { return address_utils_1.getAddressLabel; } });
32
- Object.defineProperty(exports, "getKnownAddresses", { enumerable: true, get: function () { return address_utils_1.getKnownAddresses; } });
33
- // URL utilities
34
- var urls_1 = require("../utils/urls");
35
- Object.defineProperty(exports, "getTxExplorerUrl", { enumerable: true, get: function () { return urls_1.getTxExplorerUrl; } });
24
+ Object.defineProperty(exports, "getAddressLabel", { enumerable: true, get: function () { return parameter_decoder_1.getAddressLabel; } });
36
25
  // Retryable ticket
37
26
  var retryable_ticket_1 = require("./retryable-ticket");
38
27
  Object.defineProperty(exports, "RETRYABLE_TICKET_MAGIC", { enumerable: true, get: function () { return retryable_ticket_1.RETRYABLE_TICKET_MAGIC; } });
39
- Object.defineProperty(exports, "ARB1_DELAYED_INBOX", { enumerable: true, get: function () { return retryable_ticket_1.ARB1_DELAYED_INBOX; } });
40
- Object.defineProperty(exports, "NOVA_DELAYED_INBOX", { enumerable: true, get: function () { return retryable_ticket_1.NOVA_DELAYED_INBOX; } });
41
28
  Object.defineProperty(exports, "isRetryableTicketMagic", { enumerable: true, get: function () { return retryable_ticket_1.isRetryableTicketMagic; } });
42
- Object.defineProperty(exports, "detectChainFromInbox", { enumerable: true, get: function () { return retryable_ticket_1.detectChainFromInbox; } });
43
29
  Object.defineProperty(exports, "decodeRetryableTicket", { enumerable: true, get: function () { return retryable_ticket_1.decodeRetryableTicket; } });
44
30
  Object.defineProperty(exports, "getRetryableChainName", { enumerable: true, get: function () { return retryable_ticket_1.getRetryableChainName; } });
45
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/calldata/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,eAAe;AACf,qCAAgE;AAAvD,yGAAA,cAAc,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAE5C,aAAa;AACb,2CAAwD;AAA/C,sHAAA,wBAAwB,OAAA;AAEjC,mBAAmB;AACnB,uDAK4B;AAJ1B,mHAAA,eAAe,OAAA;AACf,wHAAA,oBAAoB,OAAA;AACpB,wHAAA,oBAAoB,OAAA;AACpB,uHAAA,mBAAmB,OAAA;AAGrB,oBAAoB;AACpB,yDAK6B;AAJ3B,oHAAA,eAAe,OAAA;AACf,qHAAA,gBAAgB,OAAA;AAChB,uHAAA,kBAAkB,OAAA;AAClB,qHAAA,gBAAgB,OAAA;AAGlB,oBAAoB;AACpB,iDAAqE;AAA5D,gHAAA,eAAe,OAAA;AAAE,kHAAA,iBAAiB,OAAA;AAE3C,gBAAgB;AAChB,sCAAiD;AAAxC,wGAAA,gBAAgB,OAAA;AAEzB,mBAAmB;AACnB,uDAQ4B;AAP1B,0HAAA,sBAAsB,OAAA;AACtB,sHAAA,kBAAkB,OAAA;AAClB,sHAAA,kBAAkB,OAAA;AAClB,0HAAA,sBAAsB,OAAA;AACtB,wHAAA,oBAAoB,OAAA;AACpB,yHAAA,qBAAqB,OAAA;AACrB,yHAAA,qBAAqB,OAAA"}
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,uDAA2E;AAAlE,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"}
@@ -3,10 +3,19 @@
3
3
  *
4
4
  * Decodes ABI-encoded parameters from calldata into typed values.
5
5
  * Handles complex types like tuples, arrays, and provides formatting.
6
+ * Also includes chain-aware address labeling for known governance contracts.
6
7
  */
7
8
  import { ethers } from "ethers";
8
9
  import type { DecodedParameter } from "../types/calldata";
9
- import type { ChainContext } from "../types";
10
+ import type { Chain } from "../types";
11
+ /**
12
+ * Get known address label
13
+ *
14
+ * @param address - Contract address
15
+ * @param chain - Chain context (or undefined for unknown chains)
16
+ * @returns Label if known, undefined otherwise
17
+ */
18
+ export declare function getAddressLabel(address: string, chain: Chain | undefined): string | undefined;
10
19
  /**
11
20
  * Parse parameter types from function signature
12
21
  * Handles nested types like tuples and arrays
@@ -38,7 +47,7 @@ export declare function formatDecodedValue(value: unknown, type: string): string
38
47
  * @param chainContext - Chain for address resolution
39
48
  * @returns Array of decoded parameters, or null if decoding fails
40
49
  */
41
- export declare function decodeParameters(calldata: string, signature: string, chainContext: ChainContext): {
50
+ export declare function decodeParameters(calldata: string, signature: string, chainContext: Chain): {
42
51
  params: DecodedParameter[];
43
52
  decoded: ethers.utils.Result;
44
53
  } | null;
@@ -1 +1 @@
1
- {"version":3,"file":"parameter-decoder.d.ts","sourceRoot":"","sources":["../../src/calldata/parameter-decoder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C;;;;;;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,YAAY,GACzB;IAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAA;CAAE,GAAG,IAAI,CAiDrE"}
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;AAiDtC;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAa7F;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,CAiDrE"}
@@ -4,14 +4,73 @@
4
4
  *
5
5
  * Decodes ABI-encoded parameters from calldata into typed values.
6
6
  * Handles complex types like tuples, arrays, and provides formatting.
7
+ * Also includes chain-aware address labeling for known governance contracts.
7
8
  */
8
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.getAddressLabel = getAddressLabel;
9
11
  exports.parseParamTypes = parseParamTypes;
10
12
  exports.isLikelyCalldata = isLikelyCalldata;
11
13
  exports.formatDecodedValue = formatDecodedValue;
12
14
  exports.decodeParameters = decodeParameters;
13
15
  const ethers_1 = require("ethers");
14
- const address_utils_1 = require("./address-utils");
16
+ /**
17
+ * Known addresses registry organized by chain
18
+ */
19
+ const KNOWN_ADDRESSES = {
20
+ arb1: {
21
+ // Governors
22
+ "0xf07DeD9dC292157749B6Fd268E37DF6EA38395B9": "Core Governor",
23
+ "0x789fC99093B09aD01C34DC7251D0C89ce743e5a4": "Treasury Governor",
24
+ "0x8a1cDA8dee421cD06023470608605934c16A05a0": "Nominee Election Governor",
25
+ "0x467923B9AE90BDB36BA88eCA11604D45F13b712C": "Member Election Governor",
26
+ // Timelocks
27
+ "0x34d45e99f7D8c45ed05B5cA72D54bbD1fb3F98f0": "L2 Core Timelock",
28
+ "0xbFc1FECa8B09A5c5D3EFfE7429eBE24b9c09EF58": "L2 Treasury Timelock",
29
+ // Other contracts
30
+ "0x912CE59144191C1204E64559FE8253a0e49E6548": "ARB Token",
31
+ "0xCF57572261c7c2BCF21ffD220ea7d1a27D40A827": "Arb1 UpgradeExecutor",
32
+ "0xD509E5f5aEe2A205F554f36E8a7d56094494eDFC": "Security Council Manager",
33
+ // Precompiles
34
+ "0x0000000000000000000000000000000000000064": "ArbSys",
35
+ "0x000000000000000000000000000000000000006E": "ArbRetryableTx",
36
+ },
37
+ nova: {
38
+ "0x86a02dD71363c440b21F4c0E5B2Ad01Ffe1A7482": "Nova UpgradeExecutor",
39
+ },
40
+ ethereum: {
41
+ // Timelock
42
+ "0xE6841D92B0C345144506576eC13ECf5103aC7f49": "L1 Timelock",
43
+ // UpgradeExecutor
44
+ "0x3ffFbAdAF827559da092217e474760E2b2c3CeDd": "L1 UpgradeExecutor",
45
+ // Delayed Inboxes
46
+ "0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f": "Arb1 Delayed Inbox",
47
+ "0xc4448b71118c9071Bcb9734A0EAc55D18A153949": "Nova Delayed Inbox",
48
+ // Special addresses
49
+ "0xa723C008e76E379c55599D2E4d93879BeaFDa79C": "Retryable Ticket Magic",
50
+ // Outboxes
51
+ "0x0B9857ae2D4A3DBe74ffE1d7DF045bb7F96E4840": "Arb1 Outbox",
52
+ "0xD4B80C3D7240325D18E645B49e6535A3Bf95cc58": "Nova Outbox",
53
+ },
54
+ };
55
+ /**
56
+ * Get known address label
57
+ *
58
+ * @param address - Contract address
59
+ * @param chain - Chain context (or undefined for unknown chains)
60
+ * @returns Label if known, undefined otherwise
61
+ */
62
+ function getAddressLabel(address, chain) {
63
+ if (!chain || chain === "unknown")
64
+ return undefined;
65
+ const chainAddresses = KNOWN_ADDRESSES[chain];
66
+ const normalized = address.toLowerCase();
67
+ for (const [addr, label] of Object.entries(chainAddresses)) {
68
+ if (addr.toLowerCase() === normalized) {
69
+ return label;
70
+ }
71
+ }
72
+ return undefined;
73
+ }
15
74
  /**
16
75
  * Parse parameter types from function signature
17
76
  * Handles nested types like tuples and arrays
@@ -71,14 +130,14 @@ function formatDecodedValue(value, type) {
71
130
  const formatted = value.map((v) => formatDecodedValue(v, elementType));
72
131
  return `[${formatted.join(", ")}]`;
73
132
  }
74
- // Handle bytes - truncate middle for readability
75
- if (typeof value === "string" && value.startsWith("0x") && value.length > 34) {
76
- const prefix = value.slice(0, 18);
77
- const suffix = value.slice(-16);
133
+ // Handle very long strings - only truncate if > 1000 chars to preserve data integrity
134
+ const strValue = String(value);
135
+ if (strValue.length > 1000) {
136
+ const prefix = strValue.slice(0, 500);
137
+ const suffix = strValue.slice(-500);
78
138
  return `${prefix}...${suffix}`;
79
139
  }
80
- // Default: convert to string
81
- return String(value);
140
+ return strValue;
82
141
  }
83
142
  /**
84
143
  * Decode parameters from calldata using signature
@@ -110,7 +169,7 @@ function decodeParameters(calldata, signature, chainContext) {
110
169
  // Handle address type - add label
111
170
  if (type === "address") {
112
171
  const addr = String(rawValue);
113
- const label = (0, address_utils_1.getAddressLabel)(addr, chainContext);
172
+ const label = getAddressLabel(addr, chainContext);
114
173
  if (label)
115
174
  param.addressLabel = label;
116
175
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parameter-decoder.js","sourceRoot":"","sources":["../../src/calldata/parameter-decoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parameter-decoder.js","sourceRoot":"","sources":["../../src/calldata/parameter-decoder.ts"],"names":[],"mappings":"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"}