@gzeoneth/gov-tracker 0.1.1-1 → 0.1.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.
- package/LICENSE +13 -14
- package/README.md +5 -5
- package/dist/calldata/address-utils.d.ts +4 -3
- package/dist/calldata/address-utils.d.ts.map +1 -1
- package/dist/calldata/address-utils.js +3 -3
- package/dist/calldata/address-utils.js.map +1 -1
- package/dist/calldata/decoder.d.ts +2 -1
- package/dist/calldata/decoder.d.ts.map +1 -1
- package/dist/calldata/decoder.js +65 -72
- package/dist/calldata/decoder.js.map +1 -1
- package/dist/calldata/extraction.d.ts +17 -0
- package/dist/calldata/extraction.d.ts.map +1 -0
- package/dist/calldata/extraction.js +56 -0
- package/dist/calldata/extraction.js.map +1 -0
- package/dist/calldata/index.d.ts +4 -3
- package/dist/calldata/index.d.ts.map +1 -1
- package/dist/calldata/index.js +4 -5
- package/dist/calldata/index.js.map +1 -1
- package/dist/calldata/parameter-decoder.d.ts +2 -1
- package/dist/calldata/parameter-decoder.d.ts.map +1 -1
- package/dist/calldata/parameter-decoder.js +47 -77
- package/dist/calldata/parameter-decoder.js.map +1 -1
- package/dist/calldata/retryable-ticket.d.ts +3 -10
- package/dist/calldata/retryable-ticket.d.ts.map +1 -1
- package/dist/calldata/retryable-ticket.js +13 -31
- package/dist/calldata/retryable-ticket.js.map +1 -1
- package/dist/calldata/signature-lookup.d.ts +0 -7
- package/dist/calldata/signature-lookup.d.ts.map +1 -1
- package/dist/calldata/signature-lookup.js +0 -11
- package/dist/calldata/signature-lookup.js.map +1 -1
- package/dist/cli/monitor.js +20 -21
- package/dist/cli/monitor.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -10
- package/dist/index.js.map +1 -1
- package/dist/simulation/index.d.ts +0 -1
- package/dist/simulation/index.d.ts.map +1 -1
- package/dist/simulation/index.js +1 -7
- package/dist/simulation/index.js.map +1 -1
- package/dist/simulation/simulation-data.d.ts +2 -1
- package/dist/simulation/simulation-data.d.ts.map +1 -1
- package/dist/simulation/simulation-data.js +61 -59
- package/dist/simulation/simulation-data.js.map +1 -1
- package/dist/stages/timelock.d.ts.map +1 -1
- package/dist/stages/timelock.js +18 -6
- package/dist/stages/timelock.js.map +1 -1
- package/dist/tracker/query.js +1 -1
- package/dist/tracker/query.js.map +1 -1
- package/dist/tracker/state.js +1 -1
- package/dist/tracker/state.js.map +1 -1
- package/dist/types/calldata.d.ts +45 -10
- package/dist/types/calldata.d.ts.map +1 -1
- package/dist/types/core.d.ts +11 -0
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/simulation.d.ts +1 -1
- package/dist/types/simulation.d.ts.map +1 -1
- package/dist/utils/operation-id.d.ts +12 -23
- package/dist/utils/operation-id.d.ts.map +1 -1
- package/dist/utils/operation-id.js +29 -52
- package/dist/utils/operation-id.js.map +1 -1
- package/dist/utils/urls.d.ts +0 -15
- package/dist/utils/urls.d.ts.map +1 -1
- package/dist/utils/urls.js +0 -30
- package/dist/utils/urls.js.map +1 -1
- package/package.json +2 -2
- package/dist/simulation/address-alias.d.ts +0 -35
- package/dist/simulation/address-alias.d.ts.map +0 -1
- package/dist/simulation/address-alias.js +0 -46
- package/dist/simulation/address-alias.js.map +0 -1
- package/dist/utils/salt-resolver.d.ts +0 -63
- package/dist/utils/salt-resolver.d.ts.map +0 -1
- package/dist/utils/salt-resolver.js +0 -144
- package/dist/utils/salt-resolver.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calldata.d.ts","sourceRoot":"","sources":["../../src/types/calldata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"calldata.d.ts","sourceRoot":"","sources":["../../src/types/calldata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAExD;;GAEG;AACH,UAAU,mBAAmB;IAC3B,mDAAmD;IACnD,UAAU,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAEtC,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IAEZ,4DAA4D;IAC5D,cAAc,EAAE,cAAc,CAAC;IAE/B,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,kEAAkE;IAClE,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;GAEG;AACH,UAAU,eAAgB,SAAQ,mBAAmB;IACnD,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IAEjB,gDAAgD;IAChD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,uDAAuD;IACvD,WAAW,CAAC,EAAE,KAAK,CAAC;IAEpB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;GAEG;AACH,UAAU,iBAAkB,SAAQ,mBAAmB;IACrD,wCAAwC;IACxC,QAAQ,EAAE,EAAE,CAAC;IAEb,yCAAyC;IACzC,SAAS,EAAE,IAAI,CAAC;IAEhB,iCAAiC;IACjC,WAAW,EAAE,IAAI,CAAC;IAElB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IAEb,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IAEb,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IAEd,wEAAwE;IACxE,QAAQ,EAAE,OAAO,CAAC;IAElB,sDAAsD;IACtD,QAAQ,EAAE,OAAO,CAAC;IAElB,mDAAmD;IACnD,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAEhC,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IAEpB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IAEjB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAEhB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IAEjB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IAErB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IAEnB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB"}
|
package/dist/types/core.d.ts
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core primitive types for Arbitrum Governance Stage Tracking SDK
|
|
3
3
|
*/
|
|
4
|
+
/**
|
|
5
|
+
* Standard chain context type to be used across the application.
|
|
6
|
+
* Unifies previous ChainType, TargetChainType, and SimulationChainType.
|
|
7
|
+
*
|
|
8
|
+
* - ethereum: L1
|
|
9
|
+
* - arb1: L2 (Arbitrum One)
|
|
10
|
+
* - nova: L2 (Arbitrum Nova)
|
|
11
|
+
*/
|
|
12
|
+
export type ChainContext = "ethereum" | "arb1" | "nova";
|
|
4
13
|
export type StageType = "PROPOSAL_CREATED" | "VOTING_ACTIVE" | "PROPOSAL_QUEUED" | "L2_TIMELOCK" | "L2_TO_L1_MESSAGE" | "L1_TIMELOCK" | "RETRYABLE_EXECUTED";
|
|
5
14
|
export type StageStatus = "NOT_STARTED" | "PENDING" | "READY" | "COMPLETED" | "FAILED" | "SKIPPED";
|
|
15
|
+
/** @deprecated Use ChainContext instead */
|
|
6
16
|
export type ChainType = "L1" | "L2" | "NOVA";
|
|
17
|
+
/** @deprecated Use ChainContext instead */
|
|
7
18
|
export type TargetChainType = "Arb1" | "Nova";
|
|
8
19
|
export interface StageTransaction {
|
|
9
20
|
hash: string;
|
package/dist/types/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAIxD,MAAM,MAAM,SAAS,GACjB,kBAAkB,GAClB,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,aAAa,GACb,oBAAoB,CAAC;AAEzB,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnG,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAC7C,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACpC;AAID,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,IAAI,CAAC;IACtB,gBAAgB,EAAE,IAAI,CAAC;IACvB,gBAAgB,EAAE,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IACnD,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* - config: TrackerOptions, ChunkingConfig
|
|
12
12
|
* - election: Security Council election types
|
|
13
13
|
*/
|
|
14
|
-
export { StageType, StageStatus, ChainType, TargetChainType, StageTransaction, StageTiming, SearchHint, EstimatedTimeRange, VotingTimeRange, BlockBasedTiming, StageMetadata, EstimatedTimesResult, } from "./core";
|
|
14
|
+
export { StageType, StageStatus, ChainContext, ChainType, TargetChainType, StageTransaction, StageTiming, SearchHint, EstimatedTimeRange, VotingTimeRange, BlockBasedTiming, StageMetadata, EstimatedTimesResult, } from "./core";
|
|
15
15
|
export { ProposalType, GovernorCapability, ProposalState, ProposalData, VotingData, ProposalCreatedEventArgs, } from "./governor";
|
|
16
16
|
export { TimelockOperationState, SerializedCallScheduledData, CallScheduledData, CallExecutedData, TimelockParams, TimelockBatchParams, TimelockState, OperationState, TimelockLink, } from "./timelock";
|
|
17
17
|
export { L2ToL1MessageStatus, L2ToL1MessageData, RetryableStatus, RetryableData, RetryableTicketInfo, RetryableRedemptionInfo, RetryableCreationDetail, RetryableRedemptionDetail, } from "./cross-chain";
|
|
@@ -19,6 +19,6 @@ export { BaseStageData, ProposalCreatedData, VotingActiveData, ProposalQueuedDat
|
|
|
19
19
|
export { PrepareOptions, PrepareResult, PreparedTransaction, ExecutionResult, GovernorTrackingInput, TimelockTrackingInput, DiscoveryTrackingInput, TrackingInput, StageTrackingContext, NextStageHints, StageTrackResult, StageTrackResultWith, DiscoveryWatermarks, DiscoveryTargets, TrackingCheckpoint, TrackerStats, TrackingResult, } from "./tracking";
|
|
20
20
|
export { ChunkingConfig, RetryConfig, TrackingProgress, OnProgressCallback, TrackerOptions, CacheAdapter, } from "./config";
|
|
21
21
|
export { CohortType, ElectionPhase, GovernorProposalState, ElectionProposalStatus, ElectionStatus, ElectionCheckResult, } from "./election";
|
|
22
|
-
export {
|
|
22
|
+
export { DecodingSource, DecodedCalldata, DecodedParameter, RetryableTicketData, KnownAddress, SignatureEntry, ExtractedCalldata, } from "./calldata";
|
|
23
23
|
export { SimulationType, SimulationChainType, BaseSimulationData, RetryableSimulationData, TimelockSimulationData, CallSimulationData, SimulationData, ExtractedSimulation, } from "./simulation";
|
|
24
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,SAAS,EACT,WAAW,EACX,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,UAAU,EACV,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,cAAc,CAAC"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAsDH,mBAAmB;AACnB,mCAiBkB;AAFhB,qGAAA,WAAW,OAAA;AACX,sGAAA,YAAY,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulation.d.ts","sourceRoot":"","sources":["../../src/types/simulation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"simulation.d.ts","sourceRoot":"","sources":["../../src/types/simulation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,yBAAyB;IACzB,IAAI,EAAE,cAAc,CAAC;IAErB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAElB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IAEb,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IAEX,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IAEd,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,IAAI,EAAE,WAAW,CAAC;IAElB,sBAAsB;IACtB,OAAO,EAAE,YAAY,CAAC;IAEtB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IAEjB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IAEnB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,IAAI,EAAE,UAAU,CAAC;IAEjB,gCAAgC;IAChC,eAAe,EAAE,MAAM,CAAC;IAExB,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IAExB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IAEpB,+BAA+B;IAC/B,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,oCAAoC;IACpC,eAAe,EAAE;QACf,yDAAyD;QACzD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAElC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,IAAI,EAAE,MAAM,CAAC;IAEb,mBAAmB;IACnB,KAAK,EAAE,mBAAmB,CAAC;IAE3B,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,kBAAkB,CAAC;AAEnG;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,UAAU,EAAE,cAAc,CAAC;IAE3B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IAEd,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -1,48 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Operation ID utilities
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Computes operation IDs locally using ethers.js to avoid unnecessary RPC calls.
|
|
5
|
+
* This ensures consistency with the contract's pure functions:
|
|
6
|
+
* keccak256(abi.encode(target, value, data, predecessor, salt))
|
|
6
7
|
*/
|
|
7
|
-
import { ethers } from "ethers";
|
|
8
8
|
import { TimelockBatchParams, TimelockParams } from "../types";
|
|
9
9
|
/**
|
|
10
|
-
* Compute operation ID
|
|
10
|
+
* Compute operation ID locally
|
|
11
11
|
*/
|
|
12
|
-
export declare function hashOperation(
|
|
12
|
+
export declare function hashOperation(params: TimelockParams): string;
|
|
13
13
|
/**
|
|
14
|
-
* Compute batch operation ID
|
|
14
|
+
* Compute batch operation ID locally
|
|
15
15
|
*/
|
|
16
|
-
export declare function hashOperationBatch(
|
|
16
|
+
export declare function hashOperationBatch(params: TimelockBatchParams): string;
|
|
17
17
|
/**
|
|
18
18
|
* Validate that a salt produces the expected operation ID
|
|
19
19
|
*/
|
|
20
|
-
export declare function validateSalt(
|
|
20
|
+
export declare function validateSalt(expectedOperationId: string, params: TimelockParams): boolean;
|
|
21
21
|
/**
|
|
22
22
|
* Validate that a salt produces the expected operation ID for a batch
|
|
23
23
|
*/
|
|
24
|
-
export declare function validateSaltBatch(
|
|
24
|
+
export declare function validateSaltBatch(expectedOperationId: string, params: TimelockBatchParams): boolean;
|
|
25
25
|
/**
|
|
26
26
|
* Try salt candidates to find matching salt for an operation
|
|
27
|
-
*
|
|
28
|
-
* Supports both single and batch operations.
|
|
29
27
|
*/
|
|
30
|
-
export declare function tryFindSalt(
|
|
28
|
+
export declare function tryFindSalt(expectedOperationId: string, baseParams: Omit<TimelockParams, "salt"> | Omit<TimelockBatchParams, "salt">, candidates: string[]): string | null;
|
|
31
29
|
/**
|
|
32
30
|
* Validate operation parameters and return computed hash with validation status.
|
|
33
|
-
*
|
|
34
|
-
* This is useful for debugging when you want to see the computed hash
|
|
35
|
-
* and whether it matches the expected operation ID.
|
|
36
|
-
*
|
|
37
|
-
* @param timelockAddress - Address of the timelock contract
|
|
38
|
-
* @param expectedOperationId - Expected operation ID to validate against
|
|
39
|
-
* @param params - Operation parameters (single or batch)
|
|
40
|
-
* @param provider - Provider for RPC calls
|
|
41
|
-
* @returns Computed hash and whether it matches expected
|
|
42
31
|
*/
|
|
43
|
-
export declare function computeAndValidateOperationHash(
|
|
32
|
+
export declare function computeAndValidateOperationHash(expectedOperationId: string, params: TimelockParams | TimelockBatchParams): {
|
|
44
33
|
computedHash: string;
|
|
45
34
|
isValid: boolean;
|
|
46
35
|
error?: string;
|
|
47
|
-
}
|
|
36
|
+
};
|
|
48
37
|
//# sourceMappingURL=operation-id.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-id.d.ts","sourceRoot":"","sources":["../../src/utils/operation-id.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"operation-id.d.ts","sourceRoot":"","sources":["../../src/utils/operation-id.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/D;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAS5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAStE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAGzF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAGT;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,mBAAmB,EAAE,MAAM,EAC3B,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,EAC5E,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,GAAG,IAAI,CAcf;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,cAAc,GAAG,mBAAmB,GAC3C;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAe5D"}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Operation ID utilities
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Computes operation IDs locally using ethers.js to avoid unnecessary RPC calls.
|
|
6
|
+
* This ensures consistency with the contract's pure functions:
|
|
7
|
+
* keccak256(abi.encode(target, value, data, predecessor, salt))
|
|
7
8
|
*/
|
|
8
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
10
|
exports.hashOperation = hashOperation;
|
|
@@ -13,51 +14,45 @@ exports.validateSaltBatch = validateSaltBatch;
|
|
|
13
14
|
exports.tryFindSalt = tryFindSalt;
|
|
14
15
|
exports.computeAndValidateOperationHash = computeAndValidateOperationHash;
|
|
15
16
|
const ethers_1 = require("ethers");
|
|
16
|
-
const rpc_utils_1 = require("./rpc-utils");
|
|
17
|
-
const abis_1 = require("../abis");
|
|
18
17
|
const chain_1 = require("./chain");
|
|
19
18
|
/**
|
|
20
|
-
* Compute operation ID
|
|
19
|
+
* Compute operation ID locally
|
|
21
20
|
*/
|
|
22
|
-
|
|
23
|
-
const timelock = new ethers_1.ethers.Contract(timelockAddress, abis_1.TIMELOCK_ABI, provider);
|
|
21
|
+
function hashOperation(params) {
|
|
24
22
|
const { target, value, data, predecessor, salt } = params;
|
|
25
|
-
return (
|
|
23
|
+
return ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.defaultAbiCoder.encode(["address", "uint256", "bytes", "bytes32", "bytes32"], [target, value, data, predecessor, salt]));
|
|
26
24
|
}
|
|
27
25
|
/**
|
|
28
|
-
* Compute batch operation ID
|
|
26
|
+
* Compute batch operation ID locally
|
|
29
27
|
*/
|
|
30
|
-
|
|
31
|
-
const timelock = new ethers_1.ethers.Contract(timelockAddress, abis_1.TIMELOCK_ABI, provider);
|
|
28
|
+
function hashOperationBatch(params) {
|
|
32
29
|
const { targets, values, payloads, predecessor, salt } = params;
|
|
33
|
-
return (
|
|
30
|
+
return ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.defaultAbiCoder.encode(["address[]", "uint256[]", "bytes[]", "bytes32", "bytes32"], [targets, values, payloads, predecessor, salt]));
|
|
34
31
|
}
|
|
35
32
|
/**
|
|
36
33
|
* Validate that a salt produces the expected operation ID
|
|
37
34
|
*/
|
|
38
|
-
|
|
39
|
-
const computed =
|
|
35
|
+
function validateSalt(expectedOperationId, params) {
|
|
36
|
+
const computed = hashOperation(params);
|
|
40
37
|
return (0, chain_1.addressEquals)(computed, expectedOperationId);
|
|
41
38
|
}
|
|
42
39
|
/**
|
|
43
40
|
* Validate that a salt produces the expected operation ID for a batch
|
|
44
41
|
*/
|
|
45
|
-
|
|
46
|
-
const computed =
|
|
42
|
+
function validateSaltBatch(expectedOperationId, params) {
|
|
43
|
+
const computed = hashOperationBatch(params);
|
|
47
44
|
return (0, chain_1.addressEquals)(computed, expectedOperationId);
|
|
48
45
|
}
|
|
49
46
|
/**
|
|
50
47
|
* Try salt candidates to find matching salt for an operation
|
|
51
|
-
*
|
|
52
|
-
* Supports both single and batch operations.
|
|
53
48
|
*/
|
|
54
|
-
|
|
49
|
+
function tryFindSalt(expectedOperationId, baseParams, candidates) {
|
|
55
50
|
const isBatch = "targets" in baseParams;
|
|
56
51
|
for (const salt of candidates) {
|
|
57
52
|
const fullParams = { ...baseParams, salt };
|
|
58
53
|
const isValid = isBatch
|
|
59
|
-
?
|
|
60
|
-
:
|
|
54
|
+
? validateSaltBatch(expectedOperationId, fullParams)
|
|
55
|
+
: validateSalt(expectedOperationId, fullParams);
|
|
61
56
|
if (isValid) {
|
|
62
57
|
return salt;
|
|
63
58
|
}
|
|
@@ -66,37 +61,19 @@ async function tryFindSalt(timelockAddress, expectedOperationId, baseParams, can
|
|
|
66
61
|
}
|
|
67
62
|
/**
|
|
68
63
|
* Validate operation parameters and return computed hash with validation status.
|
|
69
|
-
*
|
|
70
|
-
* This is useful for debugging when you want to see the computed hash
|
|
71
|
-
* and whether it matches the expected operation ID.
|
|
72
|
-
*
|
|
73
|
-
* @param timelockAddress - Address of the timelock contract
|
|
74
|
-
* @param expectedOperationId - Expected operation ID to validate against
|
|
75
|
-
* @param params - Operation parameters (single or batch)
|
|
76
|
-
* @param provider - Provider for RPC calls
|
|
77
|
-
* @returns Computed hash and whether it matches expected
|
|
78
64
|
*/
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
catch (err) {
|
|
95
|
-
return {
|
|
96
|
-
computedHash: "",
|
|
97
|
-
isValid: false,
|
|
98
|
-
error: `Failed to compute operation hash: ${err instanceof Error ? err.message : String(err)}`,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
65
|
+
function computeAndValidateOperationHash(expectedOperationId, params) {
|
|
66
|
+
const isBatch = "targets" in params;
|
|
67
|
+
const computed = isBatch
|
|
68
|
+
? hashOperationBatch(params)
|
|
69
|
+
: hashOperation(params);
|
|
70
|
+
const isValid = (0, chain_1.addressEquals)(computed, expectedOperationId);
|
|
71
|
+
return {
|
|
72
|
+
computedHash: computed,
|
|
73
|
+
isValid,
|
|
74
|
+
error: isValid
|
|
75
|
+
? undefined
|
|
76
|
+
: `Operation hash mismatch: computed ${computed} but expected ${expectedOperationId}. This may indicate incorrect salt or operation parameters.`,
|
|
77
|
+
};
|
|
101
78
|
}
|
|
102
79
|
//# sourceMappingURL=operation-id.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-id.js","sourceRoot":"","sources":["../../src/utils/operation-id.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"operation-id.js","sourceRoot":"","sources":["../../src/utils/operation-id.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AASH,sCASC;AAKD,gDASC;AAKD,oCAGC;AAKD,8CAMC;AAKD,kCAkBC;AAKD,0EAkBC;AA/FD,mCAAgC;AAEhC,mCAAwC;AAExC;;GAEG;AACH,SAAgB,aAAa,CAAC,MAAsB;IAClD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAE1D,OAAO,eAAM,CAAC,KAAK,CAAC,SAAS,CAC3B,eAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CACjC,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EACrD,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CACzC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,MAA2B;IAC5D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAEhE,OAAO,eAAM,CAAC,KAAK,CAAC,SAAS,CAC3B,eAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CACjC,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAC3D,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAC/C,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,mBAA2B,EAAE,MAAsB;IAC9E,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,IAAA,qBAAa,EAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,mBAA2B,EAC3B,MAA2B;IAE3B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,IAAA,qBAAa,EAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CACzB,mBAA2B,EAC3B,UAA4E,EAC5E,UAAoB;IAEpB,MAAM,OAAO,GAAG,SAAS,IAAI,UAAU,CAAC;IAExC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,OAAO;YACrB,CAAC,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,UAAiC,CAAC;YAC3E,CAAC,CAAC,YAAY,CAAC,mBAAmB,EAAE,UAA4B,CAAC,CAAC;QAEpE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,+BAA+B,CAC7C,mBAA2B,EAC3B,MAA4C;IAE5C,MAAM,OAAO,GAAG,SAAS,IAAI,MAAM,CAAC;IACpC,MAAM,QAAQ,GAAG,OAAO;QACtB,CAAC,CAAC,kBAAkB,CAAC,MAA6B,CAAC;QACnD,CAAC,CAAC,aAAa,CAAC,MAAwB,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,IAAA,qBAAa,EAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAE7D,OAAO;QACL,YAAY,EAAE,QAAQ;QACtB,OAAO;QACP,KAAK,EAAE,OAAO;YACZ,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,qCAAqC,QAAQ,iBAAiB,mBAAmB,6DAA6D;KACnJ,CAAC;AACJ,CAAC"}
|
package/dist/utils/urls.d.ts
CHANGED
|
@@ -17,21 +17,6 @@ export declare function getTxUrl(chainId: number, txHash: string): string;
|
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
19
|
export declare function getStageTransactionUrl(tx: StageTransaction): string;
|
|
20
|
-
/**
|
|
21
|
-
* Get human-readable chain label
|
|
22
|
-
*
|
|
23
|
-
* @param chain - Chain context
|
|
24
|
-
* @returns Chain label (e.g., "Arb1", "Nova", "L1")
|
|
25
|
-
*/
|
|
26
|
-
export declare function getChainLabel(chain: ChainContext): string;
|
|
27
|
-
/**
|
|
28
|
-
* Get block explorer URL for an address
|
|
29
|
-
*
|
|
30
|
-
* @param address - Contract address
|
|
31
|
-
* @param chain - Chain context
|
|
32
|
-
* @returns Full explorer URL
|
|
33
|
-
*/
|
|
34
|
-
export declare function getAddressExplorerUrl(address: string, chain: ChainContext): string;
|
|
35
20
|
/**
|
|
36
21
|
* Get block explorer URL for a transaction
|
|
37
22
|
*
|
package/dist/utils/urls.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../../src/utils/urls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE1E;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAStD;
|
|
1
|
+
{"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../../src/utils/urls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE1E;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAStD;AAWD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAW5F;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAGnE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAG5E"}
|
package/dist/utils/urls.js
CHANGED
|
@@ -4,8 +4,6 @@ exports.chainTypeToId = chainTypeToId;
|
|
|
4
4
|
exports.getExplorerUrl = getExplorerUrl;
|
|
5
5
|
exports.getTxUrl = getTxUrl;
|
|
6
6
|
exports.getStageTransactionUrl = getStageTransactionUrl;
|
|
7
|
-
exports.getChainLabel = getChainLabel;
|
|
8
|
-
exports.getAddressExplorerUrl = getAddressExplorerUrl;
|
|
9
7
|
exports.getTxExplorerUrl = getTxExplorerUrl;
|
|
10
8
|
const constants_1 = require("../constants");
|
|
11
9
|
/**
|
|
@@ -29,14 +27,6 @@ const EXPLORER_URLS = {
|
|
|
29
27
|
nova: "https://nova.arbiscan.io",
|
|
30
28
|
ethereum: "https://etherscan.io",
|
|
31
29
|
};
|
|
32
|
-
/**
|
|
33
|
-
* Human-readable chain labels
|
|
34
|
-
*/
|
|
35
|
-
const CHAIN_LABELS = {
|
|
36
|
-
arb1: "Arb1",
|
|
37
|
-
nova: "Nova",
|
|
38
|
-
ethereum: "L1",
|
|
39
|
-
};
|
|
40
30
|
function getExplorerUrl(chainId, type, hash) {
|
|
41
31
|
switch (chainId) {
|
|
42
32
|
case 1: // Ethereum
|
|
@@ -67,26 +57,6 @@ function getStageTransactionUrl(tx) {
|
|
|
67
57
|
const chainId = chainTypeToId(tx.chain);
|
|
68
58
|
return getTxUrl(chainId, tx.hash);
|
|
69
59
|
}
|
|
70
|
-
/**
|
|
71
|
-
* Get human-readable chain label
|
|
72
|
-
*
|
|
73
|
-
* @param chain - Chain context
|
|
74
|
-
* @returns Chain label (e.g., "Arb1", "Nova", "L1")
|
|
75
|
-
*/
|
|
76
|
-
function getChainLabel(chain) {
|
|
77
|
-
return CHAIN_LABELS[chain] ?? chain;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Get block explorer URL for an address
|
|
81
|
-
*
|
|
82
|
-
* @param address - Contract address
|
|
83
|
-
* @param chain - Chain context
|
|
84
|
-
* @returns Full explorer URL
|
|
85
|
-
*/
|
|
86
|
-
function getAddressExplorerUrl(address, chain) {
|
|
87
|
-
const baseUrl = EXPLORER_URLS[chain] ?? EXPLORER_URLS.ethereum;
|
|
88
|
-
return `${baseUrl}/address/${address}`;
|
|
89
|
-
}
|
|
90
60
|
/**
|
|
91
61
|
* Get block explorer URL for a transaction
|
|
92
62
|
*
|
package/dist/utils/urls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urls.js","sourceRoot":"","sources":["../../src/utils/urls.ts"],"names":[],"mappings":";;AAMA,sCASC;
|
|
1
|
+
{"version":3,"file":"urls.js","sourceRoot":"","sources":["../../src/utils/urls.ts"],"names":[],"mappings":";;AAMA,sCASC;AAWD,wCAWC;AAED,4BAEC;AAaD,wDAGC;AASD,4CAGC;AArED,4CAAyC;AAGzC;;GAEG;AACH,SAAgB,aAAa,CAAC,KAAgB;IAC5C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,IAAI;YACP,OAAO,qBAAS,CAAC,QAAQ,CAAC;QAC5B,KAAK,IAAI;YACP,OAAO,qBAAS,CAAC,OAAO,CAAC;QAC3B,KAAK,MAAM;YACT,OAAO,qBAAS,CAAC,IAAI,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,aAAa,GAAiC;IAClD,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,0BAA0B;IAChC,QAAQ,EAAE,sBAAsB;CACjC,CAAC;AAEF,SAAgB,cAAc,CAAC,OAAe,EAAE,IAAsB,EAAE,IAAY;IAClF,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,EAAE,WAAW;YACjB,OAAO,wBAAwB,IAAI,IAAI,IAAI,EAAE,CAAC;QAChD,KAAK,qBAAS,CAAC,OAAO;YACpB,OAAO,uBAAuB,IAAI,IAAI,IAAI,EAAE,CAAC;QAC/C,KAAK,qBAAS,CAAC,IAAI;YACjB,OAAO,4BAA4B,IAAI,IAAI,IAAI,EAAE,CAAC;QACpD;YACE,OAAO,wBAAwB,IAAI,IAAI,IAAI,EAAE,CAAC;IAClD,CAAC;AACH,CAAC;AAED,SAAgB,QAAQ,CAAC,OAAe,EAAE,MAAc;IACtD,OAAO,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,sBAAsB,CAAC,EAAoB;IACzD,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,MAAc,EAAE,KAAmB;IAClE,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC;IAC/D,OAAO,GAAG,OAAO,OAAO,MAAM,EAAE,CAAC;AACnC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gzeoneth/gov-tracker",
|
|
3
|
-
"version": "0.1.1
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Lightweight, high-performance library for tracking Arbitrum DAO governance proposal lifecycle stages",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "gzeoneth",
|
|
@@ -72,4 +72,4 @@
|
|
|
72
72
|
"engines": {
|
|
73
73
|
"node": ">=18.0.0"
|
|
74
74
|
}
|
|
75
|
-
}
|
|
75
|
+
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Address Aliasing
|
|
3
|
-
*
|
|
4
|
-
* Calculates aliased addresses for L1→L2 message sender context.
|
|
5
|
-
* When an L1 contract sends a message to L2, Arbitrum applies an address offset.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Address alias offset applied by Arbitrum for L1→L2 messages
|
|
9
|
-
* Formula: aliased = (address + offset) % 2^160
|
|
10
|
-
*/
|
|
11
|
-
export declare const ADDRESS_ALIAS_OFFSET: bigint;
|
|
12
|
-
/**
|
|
13
|
-
* L1 Timelock address
|
|
14
|
-
*/
|
|
15
|
-
export declare const L1_TIMELOCK_ADDRESS = "0xE6841D92B0C345144506576eC13ECf5103aC7f49";
|
|
16
|
-
/**
|
|
17
|
-
* Calculate the aliased address for L1→L2 messaging
|
|
18
|
-
*
|
|
19
|
-
* When an L1 contract sends a message to L2, its address is aliased
|
|
20
|
-
* to prevent it from impersonating existing L2 contracts.
|
|
21
|
-
*
|
|
22
|
-
* @param l1Address - L1 contract address
|
|
23
|
-
* @returns Aliased address on L2
|
|
24
|
-
*/
|
|
25
|
-
export declare function calculateAddressAlias(l1Address: string): string;
|
|
26
|
-
/**
|
|
27
|
-
* Get the aliased address for the L1 Timelock
|
|
28
|
-
*
|
|
29
|
-
* This is the "from" address to use when simulating retryable
|
|
30
|
-
* ticket redemptions on L2.
|
|
31
|
-
*
|
|
32
|
-
* @returns Aliased L1 Timelock address
|
|
33
|
-
*/
|
|
34
|
-
export declare function getL1TimelockAlias(): string;
|
|
35
|
-
//# sourceMappingURL=address-alias.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"address-alias.d.ts","sourceRoot":"","sources":["../../src/simulation/address-alias.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAuD,CAAC;AAEzF;;GAEG;AACH,eAAO,MAAM,mBAAmB,+CAA+C,CAAC;AAEhF;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAI/D;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Address Aliasing
|
|
4
|
-
*
|
|
5
|
-
* Calculates aliased addresses for L1→L2 message sender context.
|
|
6
|
-
* When an L1 contract sends a message to L2, Arbitrum applies an address offset.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.L1_TIMELOCK_ADDRESS = exports.ADDRESS_ALIAS_OFFSET = void 0;
|
|
10
|
-
exports.calculateAddressAlias = calculateAddressAlias;
|
|
11
|
-
exports.getL1TimelockAlias = getL1TimelockAlias;
|
|
12
|
-
/**
|
|
13
|
-
* Address alias offset applied by Arbitrum for L1→L2 messages
|
|
14
|
-
* Formula: aliased = (address + offset) % 2^160
|
|
15
|
-
*/
|
|
16
|
-
exports.ADDRESS_ALIAS_OFFSET = BigInt("0x1111000000000000000000000000000000001111");
|
|
17
|
-
/**
|
|
18
|
-
* L1 Timelock address
|
|
19
|
-
*/
|
|
20
|
-
exports.L1_TIMELOCK_ADDRESS = "0xE6841D92B0C345144506576eC13ECf5103aC7f49";
|
|
21
|
-
/**
|
|
22
|
-
* Calculate the aliased address for L1→L2 messaging
|
|
23
|
-
*
|
|
24
|
-
* When an L1 contract sends a message to L2, its address is aliased
|
|
25
|
-
* to prevent it from impersonating existing L2 contracts.
|
|
26
|
-
*
|
|
27
|
-
* @param l1Address - L1 contract address
|
|
28
|
-
* @returns Aliased address on L2
|
|
29
|
-
*/
|
|
30
|
-
function calculateAddressAlias(l1Address) {
|
|
31
|
-
const address = BigInt(l1Address);
|
|
32
|
-
const alias = (address + exports.ADDRESS_ALIAS_OFFSET) % BigInt(2 ** 160);
|
|
33
|
-
return "0x" + alias.toString(16).padStart(40, "0");
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Get the aliased address for the L1 Timelock
|
|
37
|
-
*
|
|
38
|
-
* This is the "from" address to use when simulating retryable
|
|
39
|
-
* ticket redemptions on L2.
|
|
40
|
-
*
|
|
41
|
-
* @returns Aliased L1 Timelock address
|
|
42
|
-
*/
|
|
43
|
-
function getL1TimelockAlias() {
|
|
44
|
-
return calculateAddressAlias(exports.L1_TIMELOCK_ADDRESS);
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=address-alias.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"address-alias.js","sourceRoot":"","sources":["../../src/simulation/address-alias.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAsBH,sDAIC;AAUD,gDAEC;AApCD;;;GAGG;AACU,QAAA,oBAAoB,GAAG,MAAM,CAAC,4CAA4C,CAAC,CAAC;AAEzF;;GAEG;AACU,QAAA,mBAAmB,GAAG,4CAA4C,CAAC;AAEhF;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CAAC,SAAiB;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,OAAO,GAAG,4BAAoB,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAClE,OAAO,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB;IAChC,OAAO,qBAAqB,CAAC,2BAAmB,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Salt Resolution for Timelock Execution
|
|
3
|
-
*
|
|
4
|
-
* Salt resolution hierarchy:
|
|
5
|
-
* 1. options.salt (explicit override)
|
|
6
|
-
* 2. stage.data.salt (cached from tracking)
|
|
7
|
-
* 3. Security Council: generateSalt(members, nonce)
|
|
8
|
-
* 4. Governor: keccak256(description)
|
|
9
|
-
* 5. HashZero (0x00...00) - last resort for operations that use default salt
|
|
10
|
-
* 6. FAIL - throw error if no salt matches the operation ID
|
|
11
|
-
*
|
|
12
|
-
* Each resolved salt is validated against the expected operation ID before use.
|
|
13
|
-
* If validation fails, the next option in the hierarchy is tried.
|
|
14
|
-
*/
|
|
15
|
-
import { ethers } from "ethers";
|
|
16
|
-
import { PrepareOptions, TrackedStage } from "../types";
|
|
17
|
-
import { saltFromDescription, saltForSecurityCouncil } from "../utils/operation-id";
|
|
18
|
-
export { saltFromDescription, saltForSecurityCouncil };
|
|
19
|
-
/**
|
|
20
|
-
* Resolved prepare options with required salt and predecessor
|
|
21
|
-
*/
|
|
22
|
-
export type ResolvedExecuteOptions = Required<Pick<PrepareOptions, "salt" | "predecessor">> & Omit<PrepareOptions, "salt" | "predecessor">;
|
|
23
|
-
/**
|
|
24
|
-
* Candidate salts in priority order for validation
|
|
25
|
-
*/
|
|
26
|
-
export interface SaltCandidate {
|
|
27
|
-
salt: string;
|
|
28
|
-
source: "explicit" | "cached" | "security-council" | "description" | "hash-zero";
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Get all candidate salts from a TrackedStage in priority order.
|
|
32
|
-
*
|
|
33
|
-
* Returns an array of salt candidates to try, in order of priority.
|
|
34
|
-
* The caller is responsible for validating each salt against the operation ID.
|
|
35
|
-
*
|
|
36
|
-
* @param stage - The stage being prepared (L2_TIMELOCK or L1_TIMELOCK)
|
|
37
|
-
* @param options - Preparation options (can include explicit salt override)
|
|
38
|
-
* @param provider - Provider for on-chain salt generation
|
|
39
|
-
* @param allStages - All tracked stages (used to extract context from other stages)
|
|
40
|
-
*/
|
|
41
|
-
export declare function getSaltCandidates(stage: TrackedStage, options?: PrepareOptions, provider?: ethers.providers.Provider, allStages?: TrackedStage[]): Promise<SaltCandidate[]>;
|
|
42
|
-
/**
|
|
43
|
-
* Error thrown when salt cannot be resolved from available sources.
|
|
44
|
-
* This prevents silent failures that would cause mysterious on-chain errors.
|
|
45
|
-
*/
|
|
46
|
-
export declare class SaltResolutionError extends Error {
|
|
47
|
-
readonly attemptedSources: SaltCandidate["source"][];
|
|
48
|
-
readonly stageType: string;
|
|
49
|
-
constructor(message: string, attemptedSources: SaltCandidate["source"][], stageType: string);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Get prepare options with resolved salt for a stage.
|
|
53
|
-
*
|
|
54
|
-
* IMPORTANT: Throws SaltResolutionError if salt cannot be resolved from any source.
|
|
55
|
-
*
|
|
56
|
-
* @param stage - The stage being prepared
|
|
57
|
-
* @param options - Preparation options
|
|
58
|
-
* @param provider - Provider for on-chain operations
|
|
59
|
-
* @param allStages - All tracked stages (used to extract context)
|
|
60
|
-
* @throws {SaltResolutionError} if no salt can be resolved
|
|
61
|
-
*/
|
|
62
|
-
export declare function resolveExecuteOptionsForStage(stage: TrackedStage, options?: PrepareOptions, provider?: ethers.providers.Provider, allStages?: TrackedStage[]): Promise<ResolvedExecuteOptions>;
|
|
63
|
-
//# sourceMappingURL=salt-resolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"salt-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/salt-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAgB,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAIpF,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,GACzF,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,kBAAkB,GAAG,aAAa,GAAG,WAAW,CAAC;CAClF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,cAAmB,EAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACpC,SAAS,CAAC,EAAE,YAAY,EAAE,GACzB,OAAO,CAAC,aAAa,EAAE,CAAC,CAsE1B;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAG1B,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE;aAC3C,SAAS,EAAE,MAAM;gBAFjC,OAAO,EAAE,MAAM,EACC,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,EAC3C,SAAS,EAAE,MAAM;CAKpC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,cAAmB,EAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACpC,SAAS,CAAC,EAAE,YAAY,EAAE,GACzB,OAAO,CAAC,sBAAsB,CAAC,CA4BjC"}
|