@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.
Files changed (77) hide show
  1. package/LICENSE +13 -14
  2. package/README.md +5 -5
  3. package/dist/calldata/address-utils.d.ts +4 -3
  4. package/dist/calldata/address-utils.d.ts.map +1 -1
  5. package/dist/calldata/address-utils.js +3 -3
  6. package/dist/calldata/address-utils.js.map +1 -1
  7. package/dist/calldata/decoder.d.ts +2 -1
  8. package/dist/calldata/decoder.d.ts.map +1 -1
  9. package/dist/calldata/decoder.js +65 -72
  10. package/dist/calldata/decoder.js.map +1 -1
  11. package/dist/calldata/extraction.d.ts +17 -0
  12. package/dist/calldata/extraction.d.ts.map +1 -0
  13. package/dist/calldata/extraction.js +56 -0
  14. package/dist/calldata/extraction.js.map +1 -0
  15. package/dist/calldata/index.d.ts +4 -3
  16. package/dist/calldata/index.d.ts.map +1 -1
  17. package/dist/calldata/index.js +4 -5
  18. package/dist/calldata/index.js.map +1 -1
  19. package/dist/calldata/parameter-decoder.d.ts +2 -1
  20. package/dist/calldata/parameter-decoder.d.ts.map +1 -1
  21. package/dist/calldata/parameter-decoder.js +47 -77
  22. package/dist/calldata/parameter-decoder.js.map +1 -1
  23. package/dist/calldata/retryable-ticket.d.ts +3 -10
  24. package/dist/calldata/retryable-ticket.d.ts.map +1 -1
  25. package/dist/calldata/retryable-ticket.js +13 -31
  26. package/dist/calldata/retryable-ticket.js.map +1 -1
  27. package/dist/calldata/signature-lookup.d.ts +0 -7
  28. package/dist/calldata/signature-lookup.d.ts.map +1 -1
  29. package/dist/calldata/signature-lookup.js +0 -11
  30. package/dist/calldata/signature-lookup.js.map +1 -1
  31. package/dist/cli/monitor.js +20 -21
  32. package/dist/cli/monitor.js.map +1 -1
  33. package/dist/index.d.ts +2 -2
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -10
  36. package/dist/index.js.map +1 -1
  37. package/dist/simulation/index.d.ts +0 -1
  38. package/dist/simulation/index.d.ts.map +1 -1
  39. package/dist/simulation/index.js +1 -7
  40. package/dist/simulation/index.js.map +1 -1
  41. package/dist/simulation/simulation-data.d.ts +2 -1
  42. package/dist/simulation/simulation-data.d.ts.map +1 -1
  43. package/dist/simulation/simulation-data.js +61 -59
  44. package/dist/simulation/simulation-data.js.map +1 -1
  45. package/dist/stages/timelock.d.ts.map +1 -1
  46. package/dist/stages/timelock.js +18 -6
  47. package/dist/stages/timelock.js.map +1 -1
  48. package/dist/tracker/query.js +1 -1
  49. package/dist/tracker/query.js.map +1 -1
  50. package/dist/tracker/state.js +1 -1
  51. package/dist/tracker/state.js.map +1 -1
  52. package/dist/types/calldata.d.ts +45 -10
  53. package/dist/types/calldata.d.ts.map +1 -1
  54. package/dist/types/core.d.ts +11 -0
  55. package/dist/types/core.d.ts.map +1 -1
  56. package/dist/types/index.d.ts +2 -2
  57. package/dist/types/index.d.ts.map +1 -1
  58. package/dist/types/index.js.map +1 -1
  59. package/dist/types/simulation.d.ts +1 -1
  60. package/dist/types/simulation.d.ts.map +1 -1
  61. package/dist/utils/operation-id.d.ts +12 -23
  62. package/dist/utils/operation-id.d.ts.map +1 -1
  63. package/dist/utils/operation-id.js +29 -52
  64. package/dist/utils/operation-id.js.map +1 -1
  65. package/dist/utils/urls.d.ts +0 -15
  66. package/dist/utils/urls.d.ts.map +1 -1
  67. package/dist/utils/urls.js +0 -30
  68. package/dist/utils/urls.js.map +1 -1
  69. package/package.json +2 -2
  70. package/dist/simulation/address-alias.d.ts +0 -35
  71. package/dist/simulation/address-alias.d.ts.map +0 -1
  72. package/dist/simulation/address-alias.js +0 -46
  73. package/dist/simulation/address-alias.js.map +0 -1
  74. package/dist/utils/salt-resolver.d.ts +0 -63
  75. package/dist/utils/salt-resolver.d.ts.map +0 -1
  76. package/dist/utils/salt-resolver.js +0 -144
  77. 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,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IAEjB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,gDAAgD;IAChD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,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;IAE5B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC3C;AAED;;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"}
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"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,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;AACnG,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAC7C,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;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,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"}
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"}
@@ -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 { ChainContext, DecodingSource, DecodedCalldata, DecodedParameter, RetryableTicketData, KnownAddress, SignatureEntry, } from "./calldata";
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,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,cAAc,GACf,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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAqDH,mBAAmB;AACnB,mCAiBkB;AAFhB,qGAAA,WAAW,OAAA;AACX,sGAAA,YAAY,OAAA"}
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"}
@@ -4,7 +4,7 @@
4
4
  * Types for simulation data preparation that clients can use
5
5
  * to call Tenderly API themselves.
6
6
  */
7
- import type { ChainContext } from "./calldata";
7
+ import type { ChainContext } from "./core";
8
8
  /**
9
9
  * Type of simulation
10
10
  */
@@ -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,YAAY,CAAC;AAE/C;;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
+ {"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
- * Uses on-chain timelock contract calls for operation ID computation
5
- * to ensure consistency with the actual contract behavior.
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 using on-chain timelock contract
10
+ * Compute operation ID locally
11
11
  */
12
- export declare function hashOperation(timelockAddress: string, params: TimelockParams, provider: ethers.providers.Provider): Promise<string>;
12
+ export declare function hashOperation(params: TimelockParams): string;
13
13
  /**
14
- * Compute batch operation ID using on-chain timelock contract
14
+ * Compute batch operation ID locally
15
15
  */
16
- export declare function hashOperationBatch(timelockAddress: string, params: TimelockBatchParams, provider: ethers.providers.Provider): Promise<string>;
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(timelockAddress: string, expectedOperationId: string, params: TimelockParams, provider: ethers.providers.Provider): Promise<boolean>;
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(timelockAddress: string, expectedOperationId: string, params: TimelockBatchParams, provider: ethers.providers.Provider): Promise<boolean>;
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(timelockAddress: string, expectedOperationId: string, baseParams: Omit<TimelockParams, "salt"> | Omit<TimelockBatchParams, "salt">, candidates: string[], provider: ethers.providers.Provider): Promise<string | null>;
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(timelockAddress: string, expectedOperationId: string, params: TimelockParams | TimelockBatchParams, provider: ethers.providers.Provider): Promise<{
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;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK/D;;GAEG;AACH,wBAAsB,aAAa,CACjC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,eAAe,EAAE,MAAM,EACvB,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,eAAe,EAAE,MAAM,EACvB,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,eAAe,EAAE,MAAM,EACvB,mBAAmB,EAAE,MAAM,EAC3B,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,EAC5E,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuBxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,+BAA+B,CACnD,eAAe,EAAE,MAAM,EACvB,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,cAAc,GAAG,mBAAmB,EAC5C,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,GAClC,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBrE"}
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
- * Uses on-chain timelock contract calls for operation ID computation
6
- * to ensure consistency with the actual contract behavior.
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 using on-chain timelock contract
19
+ * Compute operation ID locally
21
20
  */
22
- async function hashOperation(timelockAddress, params, provider) {
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 (0, rpc_utils_1.queryWithRetry)(() => timelock.hashOperation(target, value, data, predecessor, salt));
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 using on-chain timelock contract
26
+ * Compute batch operation ID locally
29
27
  */
30
- async function hashOperationBatch(timelockAddress, params, provider) {
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 (0, rpc_utils_1.queryWithRetry)(() => timelock.hashOperationBatch(targets, values, payloads, predecessor, salt));
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
- async function validateSalt(timelockAddress, expectedOperationId, params, provider) {
39
- const computed = await hashOperation(timelockAddress, params, provider);
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
- async function validateSaltBatch(timelockAddress, expectedOperationId, params, provider) {
46
- const computed = await hashOperationBatch(timelockAddress, params, provider);
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
- async function tryFindSalt(timelockAddress, expectedOperationId, baseParams, candidates, provider) {
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
- ? await validateSaltBatch(timelockAddress, expectedOperationId, fullParams, provider)
60
- : await validateSalt(timelockAddress, expectedOperationId, fullParams, provider);
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
- async function computeAndValidateOperationHash(timelockAddress, expectedOperationId, params, provider) {
80
- try {
81
- const isBatch = "targets" in params;
82
- const computed = isBatch
83
- ? await hashOperationBatch(timelockAddress, params, provider)
84
- : await hashOperation(timelockAddress, params, provider);
85
- const isValid = (0, chain_1.addressEquals)(computed, expectedOperationId);
86
- return {
87
- computedHash: computed,
88
- isValid,
89
- error: isValid
90
- ? undefined
91
- : `Operation hash mismatch: computed ${computed} but expected ${expectedOperationId}. This may indicate incorrect salt or operation parameters.`,
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":"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"}
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"}
@@ -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
  *
@@ -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;AAoBD,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;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAEzD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAGlF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAG5E"}
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"}
@@ -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
  *
@@ -1 +1 @@
1
- {"version":3,"file":"urls.js","sourceRoot":"","sources":["../../src/utils/urls.ts"],"names":[],"mappings":";;AAMA,sCASC;AAoBD,wCAWC;AAED,4BAEC;AAaD,wDAGC;AAQD,sCAEC;AASD,sDAGC;AASD,4CAGC;AApGD,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;;GAEG;AACH,MAAM,YAAY,GAAiC;IACjD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,IAAI;CACf,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;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,KAAmB;IAC/C,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,OAAe,EAAE,KAAmB;IACxE,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC;IAC/D,OAAO,GAAG,OAAO,YAAY,OAAO,EAAE,CAAC;AACzC,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"}
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-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"}