@gzeoneth/gov-tracker 0.1.2-0 → 0.2.0-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/dist/abis.d.ts +0 -32
- package/dist/abis.d.ts.map +1 -1
- package/dist/abis.js +17 -17
- package/dist/abis.js.map +1 -1
- package/dist/calldata/decoder.d.ts +12 -3
- package/dist/calldata/decoder.d.ts.map +1 -1
- package/dist/calldata/decoder.js +50 -9
- package/dist/calldata/decoder.js.map +1 -1
- package/dist/calldata/index.d.ts +4 -7
- package/dist/calldata/index.d.ts.map +1 -1
- package/dist/calldata/index.js +5 -19
- package/dist/calldata/index.js.map +1 -1
- package/dist/calldata/parameter-decoder.d.ts +11 -2
- package/dist/calldata/parameter-decoder.d.ts.map +1 -1
- package/dist/calldata/parameter-decoder.js +61 -2
- package/dist/calldata/parameter-decoder.js.map +1 -1
- package/dist/calldata/retryable-ticket.d.ts +1 -17
- package/dist/calldata/retryable-ticket.d.ts.map +1 -1
- package/dist/calldata/retryable-ticket.js +10 -17
- package/dist/calldata/retryable-ticket.js.map +1 -1
- package/dist/calldata/signature-lookup.d.ts +0 -11
- package/dist/calldata/signature-lookup.d.ts.map +1 -1
- package/dist/calldata/signature-lookup.js +0 -8
- package/dist/calldata/signature-lookup.js.map +1 -1
- package/dist/cli/lib/cli.d.ts +1 -3
- package/dist/cli/lib/cli.d.ts.map +1 -1
- package/dist/cli/lib/cli.js +7 -21
- package/dist/cli/lib/cli.js.map +1 -1
- package/dist/cli/lib/election-check.d.ts +2 -2
- package/dist/cli/lib/election-check.d.ts.map +1 -1
- package/dist/cli/lib/election-check.js.map +1 -1
- package/dist/cli/lib/json-state.d.ts +2 -29
- package/dist/cli/lib/json-state.d.ts.map +1 -1
- package/dist/cli/lib/json-state.js +0 -45
- package/dist/cli/lib/json-state.js.map +1 -1
- package/dist/cli/monitor.js +1 -2
- package/dist/cli/monitor.js.map +1 -1
- package/dist/constants.d.ts +41 -7
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +64 -4
- package/dist/constants.js.map +1 -1
- package/dist/discovery/timelock-discovery.js +1 -1
- package/dist/discovery/timelock-discovery.js.map +1 -1
- package/dist/election.d.ts.map +1 -1
- package/dist/election.js +7 -4
- package/dist/election.js.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -13
- package/dist/index.js.map +1 -1
- package/dist/simulation/index.d.ts +3 -4
- package/dist/simulation/index.d.ts.map +1 -1
- package/dist/simulation/index.js +3 -9
- package/dist/simulation/index.js.map +1 -1
- package/dist/simulation/simulation-data.d.ts +6 -31
- package/dist/simulation/simulation-data.d.ts.map +1 -1
- package/dist/simulation/simulation-data.js +25 -58
- package/dist/simulation/simulation-data.js.map +1 -1
- package/dist/stages/base.d.ts.map +1 -1
- package/dist/stages/base.js +4 -1
- package/dist/stages/base.js.map +1 -1
- package/dist/stages/l2-to-l1-message.d.ts.map +1 -1
- package/dist/stages/l2-to-l1-message.js +7 -6
- package/dist/stages/l2-to-l1-message.js.map +1 -1
- package/dist/stages/proposal-created.js +2 -2
- package/dist/stages/proposal-created.js.map +1 -1
- package/dist/stages/proposal-queued.d.ts.map +1 -1
- package/dist/stages/proposal-queued.js +11 -10
- package/dist/stages/proposal-queued.js.map +1 -1
- package/dist/stages/retryables.d.ts +5 -5
- package/dist/stages/retryables.d.ts.map +1 -1
- package/dist/stages/retryables.js +68 -53
- package/dist/stages/retryables.js.map +1 -1
- package/dist/stages/stage-builder.d.ts +5 -4
- package/dist/stages/stage-builder.d.ts.map +1 -1
- package/dist/stages/stage-builder.js +7 -2
- package/dist/stages/stage-builder.js.map +1 -1
- package/dist/stages/timelock.d.ts +1 -22
- package/dist/stages/timelock.d.ts.map +1 -1
- package/dist/stages/timelock.js +18 -10
- package/dist/stages/timelock.js.map +1 -1
- package/dist/stages/voting.js +1 -1
- package/dist/stages/voting.js.map +1 -1
- package/dist/tracker/context.js +1 -1
- package/dist/tracker/context.js.map +1 -1
- package/dist/tracker/execute.js +1 -1
- package/dist/tracker/pipeline.d.ts +0 -29
- package/dist/tracker/pipeline.d.ts.map +1 -1
- package/dist/tracker/pipeline.js +2 -8
- package/dist/tracker/pipeline.js.map +1 -1
- package/dist/tracker/query.js +1 -1
- package/dist/tracker/query.js.map +1 -1
- package/dist/tracker.js +2 -2
- package/dist/tracker.js.map +1 -1
- package/dist/types/calldata.d.ts +4 -6
- package/dist/types/calldata.d.ts.map +1 -1
- package/dist/types/core.d.ts +36 -34
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js +33 -0
- package/dist/types/core.js.map +1 -1
- package/dist/types/cross-chain.d.ts +5 -61
- package/dist/types/cross-chain.d.ts.map +1 -1
- package/dist/types/election.d.ts +3 -6
- package/dist/types/election.d.ts.map +1 -1
- package/dist/types/index.d.ts +7 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +6 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/simulation.d.ts +5 -7
- package/dist/types/simulation.d.ts.map +1 -1
- package/dist/types/stages.d.ts +19 -16
- package/dist/types/stages.d.ts.map +1 -1
- package/dist/types/stages.js +8 -1
- package/dist/types/stages.js.map +1 -1
- package/dist/types/tracking.d.ts +3 -30
- package/dist/types/tracking.d.ts.map +1 -1
- package/dist/utils/chain.d.ts +7 -3
- package/dist/utils/chain.d.ts.map +1 -1
- package/dist/utils/chain.js +13 -9
- package/dist/utils/chain.js.map +1 -1
- package/dist/utils/logger.d.ts +9 -3
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +53 -19
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/rpc-utils.d.ts +7 -8
- package/dist/utils/rpc-utils.d.ts.map +1 -1
- package/dist/utils/rpc-utils.js +20 -2
- 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 +2 -3
- package/dist/utils/salt-computation.js.map +1 -1
- package/dist/utils/stage-helpers.d.ts +5 -6
- package/dist/utils/stage-helpers.d.ts.map +1 -1
- package/dist/utils/stage-helpers.js +2 -10
- package/dist/utils/stage-helpers.js.map +1 -1
- package/dist/utils/stage-metadata.d.ts +2 -2
- package/dist/utils/stage-metadata.d.ts.map +1 -1
- package/dist/utils/stage-metadata.js +5 -5
- package/dist/utils/stage-metadata.js.map +1 -1
- package/package.json +7 -4
- package/dist/calldata/address-utils.d.ts +0 -23
- package/dist/calldata/address-utils.d.ts.map +0 -1
- package/dist/calldata/address-utils.js +0 -84
- package/dist/calldata/address-utils.js.map +0 -1
- package/dist/calldata/extraction.d.ts +0 -17
- package/dist/calldata/extraction.d.ts.map +0 -1
- package/dist/calldata/extraction.js +0 -56
- package/dist/calldata/extraction.js.map +0 -1
- package/dist/tracker/index.d.ts +0 -18
- package/dist/tracker/index.d.ts.map +0 -1
- package/dist/tracker/index.js +0 -70
- package/dist/tracker/index.js.map +0 -1
- package/dist/types.d.ts +0 -6
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -22
- package/dist/types.js.map +0 -1
- package/dist/utils/error-classification.d.ts +0 -13
- package/dist/utils/error-classification.d.ts.map +0 -1
- package/dist/utils/error-classification.js +0 -28
- package/dist/utils/error-classification.js.map +0 -1
- package/dist/utils/scoped-logger.d.ts +0 -43
- package/dist/utils/scoped-logger.d.ts.map +0 -1
- package/dist/utils/scoped-logger.js +0 -72
- package/dist/utils/scoped-logger.js.map +0 -1
- package/dist/utils/urls.d.ts +0 -28
- package/dist/utils/urls.d.ts.map +0 -1
- package/dist/utils/urls.js +0 -71
- package/dist/utils/urls.js.map +0 -1
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;
|
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;
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
92
|
+
const UPGRADE_EXECUTOR_ABI = ["function execute(address upgrade, bytes data)"];
|
|
93
93
|
/**
|
|
94
94
|
* Security Council Member Sync Action ABI
|
|
95
95
|
*/
|
|
96
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
152
|
-
exports.outboxInterface = new ethers_1.ethers.utils.Interface(
|
|
153
|
-
exports.outboxExecuteInterface = new ethers_1.ethers.utils.Interface(
|
|
154
|
-
exports.arbRetryableInterface = new ethers_1.ethers.utils.Interface(
|
|
155
|
-
exports.upgradeExecutorInterface = new ethers_1.ethers.utils.Interface(
|
|
156
|
-
exports.memberSyncActionInterface = new ethers_1.ethers.utils.Interface(
|
|
157
|
-
exports.proposalCreatedInterface = new ethers_1.ethers.utils.Interface([
|
|
158
|
-
exports.proposalQueuedInterface = new ethers_1.ethers.utils.Interface([
|
|
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":";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;
|
|
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 {
|
|
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?:
|
|
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?:
|
|
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;
|
|
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,EAAoB,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAiBpF;;;;;;;;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;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,CA4C/E"}
|
package/dist/calldata/decoder.js
CHANGED
|
@@ -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,
|
|
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,
|
|
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,
|
|
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,50 @@ 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
|
+
const data = stage.data;
|
|
243
|
+
const result = { calldatas: [], targets: [], values: [] };
|
|
244
|
+
// 1. Check for explicit calldatas array (Proposals)
|
|
245
|
+
// ProposalCreatedData and ProposalQueuedData use plural 'calldatas', 'targets', 'values'
|
|
246
|
+
if (data.calldatas && data.calldatas.length > 0) {
|
|
247
|
+
const count = data.calldatas.length;
|
|
248
|
+
const targets = data.targets || [];
|
|
249
|
+
const values = data.values || [];
|
|
250
|
+
// Strict length checks - these are part of the logic to ensure data integrity
|
|
251
|
+
if (targets.length !== count) {
|
|
252
|
+
throw new Error(`Mismatch in targets length: expected ${count}, got ${targets.length}`);
|
|
253
|
+
}
|
|
254
|
+
if (values.length !== count) {
|
|
255
|
+
throw new Error(`Mismatch in values length: expected ${count}, got ${values.length}`);
|
|
256
|
+
}
|
|
257
|
+
for (let i = 0; i < count; i++) {
|
|
258
|
+
result.calldatas.push(data.calldatas[i]);
|
|
259
|
+
result.targets.push(targets[i]);
|
|
260
|
+
result.values.push(values[i]);
|
|
261
|
+
}
|
|
262
|
+
return result;
|
|
263
|
+
}
|
|
264
|
+
// 2. Check for Timelock scheduled data (L1/L2 Timelock)
|
|
265
|
+
// Timelock stages usually have `callScheduledData` array containing the operations
|
|
266
|
+
if (data.callScheduledData) {
|
|
267
|
+
for (const scheduled of data.callScheduledData) {
|
|
268
|
+
// scheduled.data and scheduled.target are strictly typed in CallScheduledData
|
|
269
|
+
result.calldatas.push(scheduled.data);
|
|
270
|
+
result.targets.push(scheduled.target);
|
|
271
|
+
result.values.push(scheduled.value || "0");
|
|
272
|
+
}
|
|
273
|
+
if (result.calldatas.length > 0) {
|
|
274
|
+
return result;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return result;
|
|
278
|
+
}
|
|
238
279
|
//# sourceMappingURL=decoder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/calldata/decoder.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;
|
|
1
|
+
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/calldata/decoder.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AA8BH,wCA2EC;AAwJD,kDAaC;AAUD,4DA4CC;AAlUD,kDAA0B;AAG1B,yDAAqD;AACrD,2DAA0F;AAC1F,yDAAmF;AAEnF,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,sBAAsB,CAAC,CAAC;AAE5C;;GAEG;AACH,MAAM,SAAS,GAAG,CAAC,CAAC;AAEpB;;GAEG;AACH,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAE5C;;;;;;;;GAQG;AACI,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,aAAsB,EACtB,KAAK,GAAG,CAAC,EACT,eAAsB,MAAM;IAE5B,mCAAmC;IACnC,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC3D,OAAO;YACL,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;YAChB,GAAG,EAAE,QAAQ,IAAI,IAAI;YACrB,cAAc,EAAE,QAAQ;SACzB,CAAC;IACJ,CAAC;IAED,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAErD,mBAAmB;IACnB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,kCAAe,EAAC,QAAQ,CAAC,CAAC;IAE9D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,CAAC,oCAAoC,EAAE,QAAQ,CAAC,CAAC;QACtD,OAAO;YACL,QAAQ;YACR,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;YAChB,GAAG,EAAE,QAAQ;YACb,cAAc,EAAE,QAAQ;SACzB,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,2CAA2C;IAC3C,MAAM,YAAY,GAAG,QAAQ,KAAK,sBAAsB,CAAC;IACzD,MAAM,aAAa,GAAU,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;IAEtE,oBAAoB;IACpB,MAAM,OAAO,GAAG,IAAA,oCAAgB,EAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAEpE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,KAAK,CAAC,qCAAqC,EAAE,SAAS,CAAC,CAAC;QACxD,OAAO;YACL,QAAQ;YACR,SAAS;YACT,UAAU,EAAE,IAAI;YAChB,GAAG,EAAE,QAAQ;YACb,cAAc,EAAE,MAAM;SACvB,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAEhD,qEAAqE;IACrE,IAAI,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,IAAA,mCAAe,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAChD,IAAI,KAAK;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5C,CAAC;IAED,6CAA6C;IAC7C,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;QACtB,MAAM,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IAClF,CAAC;IAED,OAAO;QACL,QAAQ;QACR,SAAS;QACT,UAAU,EAAE,MAAM;QAClB,GAAG,EAAE,QAAQ;QACb,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,aAAa;KAC9B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,MAA0B,EAC1B,UAAqB,EACrB,YAAmB,EACnB,KAAa;IAEb,oEAAoE;IACpE,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACrE,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,2FAA2F;IAC3F,kCAAkC;IAClC,IAAI,gBAAoC,CAAC;IAEzC,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEtC,qEAAqE;QACrE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAED,uDAAuD;QACvD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACrD,MAAM,WAAW,GAAsB,EAAE,CAAC;YAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAiC;gBAE5D,mCAAmC;gBACnC,IAAI,MAAM,IAAI,IAAA,yCAAsB,EAAC,MAAM,CAAC,EAAE,CAAC;oBAC7C,MAAM,SAAS,GAAG,IAAA,wCAAqB,EAAC,SAAS,CAAC,CAAC;oBACnD,sEAAsE;oBACtE,MAAM,cAAc,GAClB,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;oBAExF,iEAAiE;oBACjE,IAAI,YAAyC,CAAC;oBAC9C,IAAI,cAAc,IAAI,IAAA,oCAAgB,EAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC7D,YAAY,GAAG,MAAM,cAAc,CACjC,SAAS,CAAC,UAAU,EACpB,SAAS,CAAC,QAAQ,EAClB,KAAK,GAAG,CAAC,EACT,cAAc,CACf,CAAC;oBACJ,CAAC;oBAED,kDAAkD;oBAClD,MAAM,gBAAgB,GAAoB;wBACxC,QAAQ,EAAE,EAAE;wBACZ,SAAS,EAAE,IAAI;wBACf,WAAW,EAAE,IAAI;wBACjB,UAAU,EAAE;4BACV;gCACE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,SAAS;gCACf,KAAK,EAAE,SAAS,CAAC,WAAW;gCAC5B,QAAQ,EAAE,SAAS,CAAC,WAAW;gCAC/B,QAAQ,EAAE,KAAK;gCACf,YAAY,EAAE,IAAA,mCAAe,EAAC,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC;6BACjE;4BACD;gCACE,IAAI,EAAE,UAAU;gCAChB,IAAI,EAAE,SAAS;gCACf,KAAK,EAAE,SAAS,CAAC,QAAQ;gCACzB,QAAQ,EAAE,SAAS,CAAC,QAAQ;gCAC5B,QAAQ,EAAE,KAAK;gCACf,YAAY,EAAE,IAAA,mCAAe,EAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC;6BAClE;4BACD;gCACE,IAAI,EAAE,SAAS;gCACf,IAAI,EAAE,SAAS;gCACf,KAAK,EAAE,SAAS,CAAC,OAAO;gCACxB,QAAQ,EAAE,SAAS,CAAC,OAAO;gCAC3B,QAAQ,EAAE,KAAK;6BAChB;4BACD;gCACE,IAAI,EAAE,UAAU;gCAChB,IAAI,EAAE,SAAS;gCACf,KAAK,EAAE,SAAS,CAAC,QAAQ;gCACzB,QAAQ,EAAE,SAAS,CAAC,QAAQ;gCAC5B,QAAQ,EAAE,KAAK;6BAChB;4BACD;gCACE,IAAI,EAAE,cAAc;gCACpB,IAAI,EAAE,SAAS;gCACf,KAAK,EAAE,SAAS,CAAC,YAAY;gCAC7B,QAAQ,EAAE,SAAS,CAAC,YAAY;gCAChC,QAAQ,EAAE,KAAK;6BAChB;4BACD;gCACE,IAAI,EAAE,YAAY;gCAClB,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,SAAS,CAAC,UAAU;gCAC3B,QAAQ,EAAE,SAAS,CAAC,UAAU;gCAC9B,QAAQ,EAAE,CAAC,CAAC,YAAY;gCACxB,MAAM,EAAE,YAAY;6BACrB;yBACF;wBACD,GAAG,EAAE,SAAS;wBACd,cAAc,EAAE,OAAO;wBACvB,WAAW,EAAE,SAAS,CAAC,KAAK,EAAE,iCAAiC;qBAChE,CAAC;oBAEF,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBACnC,SAAS;gBACX,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,IAAA,oCAAgB,EAAC,SAAS,CAAC,EAAE,CAAC;oBAChC,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;oBACrF,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;YAClC,CAAC;QACH,CAAC;QAED,gCAAgC;aAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,IAAA,oCAAgB,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,8CAA8C;gBAC9C,KAAK,CAAC,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,mBAAmB,CACvC,SAAmB,EACnB,OAAiB,EACjB,eAAsB,MAAM;IAE5B,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,wBAAwB,CAAC,KAAmB;IAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAwB,CAAC;IAC5C,MAAM,MAAM,GAAsB,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAE7E,oDAAoD;IACpD,yFAAyF;IACzF,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAEpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAEjC,8EAA8E;QAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,wCAAwC,KAAK,SAAS,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wDAAwD;IACxD,mFAAmF;IACnF,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/C,8EAA8E;YAC9E,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/calldata/index.d.ts
CHANGED
|
@@ -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 {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
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,
|
|
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"}
|
package/dist/calldata/index.js
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
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
|
-
|
|
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, "
|
|
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,
|
|
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 {
|
|
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:
|
|
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
|
|
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
|
-
|
|
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
|
|
@@ -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 =
|
|
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":";AAAA
|
|
1
|
+
{"version":3,"file":"parameter-decoder.js","sourceRoot":"","sources":["../../src/calldata/parameter-decoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,16 +4,7 @@
|
|
|
4
4
|
* Extracts and parses Arbitrum L1→L2 retryable ticket data from calldata.
|
|
5
5
|
*/
|
|
6
6
|
import type { RetryableTicketData } from "../types/calldata";
|
|
7
|
-
|
|
8
|
-
* Magic address that indicates a retryable ticket in timelock operations
|
|
9
|
-
* When a timelock target is this address, the calldata contains a retryable tuple
|
|
10
|
-
*/
|
|
11
|
-
export declare const RETRYABLE_TICKET_MAGIC = "0xa723c008e76e379c55599d2e4d93879beafda79c";
|
|
12
|
-
/**
|
|
13
|
-
* Delayed inbox addresses for chain detection
|
|
14
|
-
*/
|
|
15
|
-
export declare const ARB1_DELAYED_INBOX = "0x4dbd4fc535ac27206064b68ffcf827b0a60bab3f";
|
|
16
|
-
export declare const NOVA_DELAYED_INBOX = "0xc4448b71118c9071bcb9734a0eac55d18a153949";
|
|
7
|
+
export declare const RETRYABLE_TICKET_MAGIC: string;
|
|
17
8
|
/**
|
|
18
9
|
* Check if an address is the retryable ticket magic address
|
|
19
10
|
*
|
|
@@ -21,13 +12,6 @@ export declare const NOVA_DELAYED_INBOX = "0xc4448b71118c9071bcb9734a0eac55d18a1
|
|
|
21
12
|
* @returns True if this is the retryable ticket magic address
|
|
22
13
|
*/
|
|
23
14
|
export declare function isRetryableTicketMagic(target: string): boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Detect L2 chain from inbox address
|
|
26
|
-
*
|
|
27
|
-
* @param inboxAddress - Delayed inbox address on L1
|
|
28
|
-
* @returns Target L2 chain
|
|
29
|
-
*/
|
|
30
|
-
export declare function detectChainFromInbox(inboxAddress: string): "arb1" | "nova" | "unknown";
|
|
31
15
|
/**
|
|
32
16
|
* Get human-readable chain name for display
|
|
33
17
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retryable-ticket.d.ts","sourceRoot":"","sources":["../../src/calldata/retryable-ticket.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"retryable-ticket.d.ts","sourceRoot":"","sources":["../../src/calldata/retryable-ticket.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,eAAO,MAAM,sBAAsB,QAAiD,CAAC;AAIrF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE9D;AAgBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAShF;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAiBxE"}
|