@gzeoneth/gov-tracker 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +191 -0
- package/README.md +201 -0
- package/dist/abis.d.ts +79 -0
- package/dist/abis.d.ts.map +1 -0
- package/dist/abis.js +159 -0
- package/dist/abis.js.map +1 -0
- package/dist/cli/lib/cli.d.ts +92 -0
- package/dist/cli/lib/cli.d.ts.map +1 -0
- package/dist/cli/lib/cli.js +562 -0
- package/dist/cli/lib/cli.js.map +1 -0
- package/dist/cli/lib/election-check.d.ts +46 -0
- package/dist/cli/lib/election-check.d.ts.map +1 -0
- package/dist/cli/lib/election-check.js +136 -0
- package/dist/cli/lib/election-check.js.map +1 -0
- package/dist/cli/lib/json-state.d.ts +100 -0
- package/dist/cli/lib/json-state.d.ts.map +1 -0
- package/dist/cli/lib/json-state.js +225 -0
- package/dist/cli/lib/json-state.js.map +1 -0
- package/dist/cli/monitor.d.ts +3 -0
- package/dist/cli/monitor.d.ts.map +1 -0
- package/dist/cli/monitor.js +442 -0
- package/dist/cli/monitor.js.map +1 -0
- package/dist/constants.d.ts +235 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +293 -0
- package/dist/constants.js.map +1 -0
- package/dist/discovery/governor-discovery.d.ts +84 -0
- package/dist/discovery/governor-discovery.d.ts.map +1 -0
- package/dist/discovery/governor-discovery.js +310 -0
- package/dist/discovery/governor-discovery.js.map +1 -0
- package/dist/discovery/security-council.d.ts +68 -0
- package/dist/discovery/security-council.d.ts.map +1 -0
- package/dist/discovery/security-council.js +181 -0
- package/dist/discovery/security-council.js.map +1 -0
- package/dist/discovery/timelock-discovery.d.ts +99 -0
- package/dist/discovery/timelock-discovery.d.ts.map +1 -0
- package/dist/discovery/timelock-discovery.js +322 -0
- package/dist/discovery/timelock-discovery.js.map +1 -0
- package/dist/election.d.ts +172 -0
- package/dist/election.d.ts.map +1 -0
- package/dist/election.js +464 -0
- package/dist/election.js.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +164 -0
- package/dist/index.js.map +1 -0
- package/dist/stages/base.d.ts +127 -0
- package/dist/stages/base.d.ts.map +1 -0
- package/dist/stages/base.js +280 -0
- package/dist/stages/base.js.map +1 -0
- package/dist/stages/l2-to-l1-message.d.ts +108 -0
- package/dist/stages/l2-to-l1-message.d.ts.map +1 -0
- package/dist/stages/l2-to-l1-message.js +422 -0
- package/dist/stages/l2-to-l1-message.js.map +1 -0
- package/dist/stages/proposal-created.d.ts +20 -0
- package/dist/stages/proposal-created.d.ts.map +1 -0
- package/dist/stages/proposal-created.js +62 -0
- package/dist/stages/proposal-created.js.map +1 -0
- package/dist/stages/proposal-queued.d.ts +39 -0
- package/dist/stages/proposal-queued.d.ts.map +1 -0
- package/dist/stages/proposal-queued.js +131 -0
- package/dist/stages/proposal-queued.js.map +1 -0
- package/dist/stages/retryables.d.ts +79 -0
- package/dist/stages/retryables.d.ts.map +1 -0
- package/dist/stages/retryables.js +307 -0
- package/dist/stages/retryables.js.map +1 -0
- package/dist/stages/stage-builder.d.ts +46 -0
- package/dist/stages/stage-builder.d.ts.map +1 -0
- package/dist/stages/stage-builder.js +87 -0
- package/dist/stages/stage-builder.js.map +1 -0
- package/dist/stages/timelock.d.ts +100 -0
- package/dist/stages/timelock.d.ts.map +1 -0
- package/dist/stages/timelock.js +552 -0
- package/dist/stages/timelock.js.map +1 -0
- package/dist/stages/voting.d.ts +18 -0
- package/dist/stages/voting.d.ts.map +1 -0
- package/dist/stages/voting.js +109 -0
- package/dist/stages/voting.js.map +1 -0
- package/dist/tracker/context.d.ts +111 -0
- package/dist/tracker/context.d.ts.map +1 -0
- package/dist/tracker/context.js +264 -0
- package/dist/tracker/context.js.map +1 -0
- package/dist/tracker/discovery.d.ts +89 -0
- package/dist/tracker/discovery.d.ts.map +1 -0
- package/dist/tracker/discovery.js +228 -0
- package/dist/tracker/discovery.js.map +1 -0
- package/dist/tracker/execute.d.ts +44 -0
- package/dist/tracker/execute.d.ts.map +1 -0
- package/dist/tracker/execute.js +126 -0
- package/dist/tracker/execute.js.map +1 -0
- package/dist/tracker/index.d.ts +18 -0
- package/dist/tracker/index.d.ts.map +1 -0
- package/dist/tracker/index.js +70 -0
- package/dist/tracker/index.js.map +1 -0
- package/dist/tracker/pipeline.d.ts +47 -0
- package/dist/tracker/pipeline.d.ts.map +1 -0
- package/dist/tracker/pipeline.js +299 -0
- package/dist/tracker/pipeline.js.map +1 -0
- package/dist/tracker/query.d.ts +45 -0
- package/dist/tracker/query.d.ts.map +1 -0
- package/dist/tracker/query.js +159 -0
- package/dist/tracker/query.js.map +1 -0
- package/dist/tracker/state.d.ts +104 -0
- package/dist/tracker/state.d.ts.map +1 -0
- package/dist/tracker/state.js +287 -0
- package/dist/tracker/state.js.map +1 -0
- package/dist/tracker.d.ts +261 -0
- package/dist/tracker.d.ts.map +1 -0
- package/dist/tracker.js +556 -0
- package/dist/tracker.js.map +1 -0
- package/dist/types/config.d.ts +81 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +6 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/core.d.ts +51 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +6 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/cross-chain.d.ts +80 -0
- package/dist/types/cross-chain.d.ts.map +1 -0
- package/dist/types/cross-chain.js +6 -0
- package/dist/types/cross-chain.js.map +1 -0
- package/dist/types/election.d.ts +59 -0
- package/dist/types/election.d.ts.map +1 -0
- package/dist/types/election.js +6 -0
- package/dist/types/election.js.map +1 -0
- package/dist/types/governor.d.ts +71 -0
- package/dist/types/governor.d.ts.map +1 -0
- package/dist/types/governor.js +6 -0
- package/dist/types/governor.js.map +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/stages.d.ts +189 -0
- package/dist/types/stages.d.ts.map +1 -0
- package/dist/types/stages.js +23 -0
- package/dist/types/stages.js.map +1 -0
- package/dist/types/timelock.d.ts +108 -0
- package/dist/types/timelock.d.ts.map +1 -0
- package/dist/types/timelock.js +6 -0
- package/dist/types/timelock.js.map +1 -0
- package/dist/types/tracking.d.ts +180 -0
- package/dist/types/tracking.d.ts.map +1 -0
- package/dist/types/tracking.js +6 -0
- package/dist/types/tracking.js.map +1 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +22 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/chain.d.ts +18 -0
- package/dist/utils/chain.d.ts.map +1 -0
- package/dist/utils/chain.js +34 -0
- package/dist/utils/chain.js.map +1 -0
- package/dist/utils/log-filters.d.ts +67 -0
- package/dist/utils/log-filters.d.ts.map +1 -0
- package/dist/utils/log-filters.js +116 -0
- package/dist/utils/log-filters.js.map +1 -0
- package/dist/utils/log-search.d.ts +76 -0
- package/dist/utils/log-search.d.ts.map +1 -0
- package/dist/utils/log-search.js +142 -0
- package/dist/utils/log-search.js.map +1 -0
- package/dist/utils/logger.d.ts +41 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +50 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/operation-id.d.ts +48 -0
- package/dist/utils/operation-id.d.ts.map +1 -0
- package/dist/utils/operation-id.js +102 -0
- package/dist/utils/operation-id.js.map +1 -0
- package/dist/utils/rpc-utils.d.ts +30 -0
- package/dist/utils/rpc-utils.d.ts.map +1 -0
- package/dist/utils/rpc-utils.js +99 -0
- package/dist/utils/rpc-utils.js.map +1 -0
- package/dist/utils/salt-computation.d.ts +78 -0
- package/dist/utils/salt-computation.d.ts.map +1 -0
- package/dist/utils/salt-computation.js +132 -0
- package/dist/utils/salt-computation.js.map +1 -0
- package/dist/utils/salt-resolver.d.ts +63 -0
- package/dist/utils/salt-resolver.d.ts.map +1 -0
- package/dist/utils/salt-resolver.js +144 -0
- package/dist/utils/salt-resolver.js.map +1 -0
- package/dist/utils/scoped-logger.d.ts +43 -0
- package/dist/utils/scoped-logger.d.ts.map +1 -0
- package/dist/utils/scoped-logger.js +72 -0
- package/dist/utils/scoped-logger.js.map +1 -0
- package/dist/utils/stage-helpers.d.ts +51 -0
- package/dist/utils/stage-helpers.d.ts.map +1 -0
- package/dist/utils/stage-helpers.js +143 -0
- package/dist/utils/stage-helpers.js.map +1 -0
- package/dist/utils/stage-metadata.d.ts +62 -0
- package/dist/utils/stage-metadata.d.ts.map +1 -0
- package/dist/utils/stage-metadata.js +140 -0
- package/dist/utils/stage-metadata.js.map +1 -0
- package/dist/utils/timing.d.ts +115 -0
- package/dist/utils/timing.d.ts.map +1 -0
- package/dist/utils/timing.js +303 -0
- package/dist/utils/timing.js.map +1 -0
- package/dist/utils/urls.d.ts +20 -0
- package/dist/utils/urls.d.ts.map +1 -0
- package/dist/utils/urls.js +51 -0
- package/dist/utils/urls.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core primitive types for Arbitrum Governance Stage Tracking SDK
|
|
3
|
+
*/
|
|
4
|
+
export type StageType = "PROPOSAL_CREATED" | "VOTING_ACTIVE" | "PROPOSAL_QUEUED" | "L2_TIMELOCK" | "L2_TO_L1_MESSAGE" | "L1_TIMELOCK" | "RETRYABLE_EXECUTED";
|
|
5
|
+
export type StageStatus = "NOT_STARTED" | "PENDING" | "READY" | "COMPLETED" | "FAILED" | "SKIPPED";
|
|
6
|
+
export type ChainType = "L1" | "L2" | "NOVA";
|
|
7
|
+
export type TargetChainType = "Arb1" | "Nova";
|
|
8
|
+
export interface StageTransaction {
|
|
9
|
+
hash: string;
|
|
10
|
+
blockNumber: number;
|
|
11
|
+
timestamp?: number;
|
|
12
|
+
chain: ChainType;
|
|
13
|
+
logIndex?: number;
|
|
14
|
+
targetChain?: TargetChainType;
|
|
15
|
+
/** Human-readable description for display (e.g., "queued", "executed") */
|
|
16
|
+
description?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface StageTiming {
|
|
19
|
+
startedAt?: number;
|
|
20
|
+
eta?: number;
|
|
21
|
+
delaySeconds?: number;
|
|
22
|
+
expiresAt?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface SearchHint {
|
|
25
|
+
startBlock: number;
|
|
26
|
+
endBlock?: number;
|
|
27
|
+
direction?: "forward" | "backward";
|
|
28
|
+
}
|
|
29
|
+
export interface EstimatedTimeRange {
|
|
30
|
+
minDate: Date;
|
|
31
|
+
maxDate: Date;
|
|
32
|
+
}
|
|
33
|
+
export interface VotingTimeRange {
|
|
34
|
+
votingStartDate: Date;
|
|
35
|
+
votingEndMinDate: Date;
|
|
36
|
+
votingEndMaxDate: Date;
|
|
37
|
+
}
|
|
38
|
+
export interface BlockBasedTiming {
|
|
39
|
+
startBlock: number;
|
|
40
|
+
endBlock: number;
|
|
41
|
+
currentL1Block: number;
|
|
42
|
+
}
|
|
43
|
+
export interface StageMetadata {
|
|
44
|
+
type: StageType;
|
|
45
|
+
estimatedDuration?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface EstimatedTimesResult {
|
|
48
|
+
estimatedTimes: Map<StageType, EstimatedTimeRange>;
|
|
49
|
+
votingTimeRange: VotingTimeRange | null;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-chain types: L2→L1 messages and retryables
|
|
3
|
+
*/
|
|
4
|
+
import { BigNumber } from "ethers";
|
|
5
|
+
import { TargetChainType } from "./core";
|
|
6
|
+
/**
|
|
7
|
+
* L2 to L1 message status
|
|
8
|
+
*/
|
|
9
|
+
export type L2ToL1MessageStatus = "UNCONFIRMED" | "CONFIRMED" | "EXECUTED";
|
|
10
|
+
/**
|
|
11
|
+
* L2 to L1 message data
|
|
12
|
+
*/
|
|
13
|
+
export interface L2ToL1MessageData {
|
|
14
|
+
messageId: string;
|
|
15
|
+
sender: string;
|
|
16
|
+
destination: string;
|
|
17
|
+
arbBlockNum: BigNumber;
|
|
18
|
+
ethBlockNum: BigNumber;
|
|
19
|
+
timestamp: BigNumber;
|
|
20
|
+
callvalue: BigNumber;
|
|
21
|
+
data: string;
|
|
22
|
+
status: L2ToL1MessageStatus;
|
|
23
|
+
l2TxHash: string;
|
|
24
|
+
l1TxHash?: string;
|
|
25
|
+
firstExecutableBlock?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Retryable ticket status
|
|
29
|
+
*/
|
|
30
|
+
export type RetryableStatus = "CREATED" | "REDEEMED" | "EXPIRED" | "FAILED";
|
|
31
|
+
/**
|
|
32
|
+
* Retryable ticket data
|
|
33
|
+
*/
|
|
34
|
+
export interface RetryableData {
|
|
35
|
+
ticketId: string;
|
|
36
|
+
l1TxHash: string;
|
|
37
|
+
l2TxHash?: string;
|
|
38
|
+
from: string;
|
|
39
|
+
to: string;
|
|
40
|
+
value: BigNumber;
|
|
41
|
+
data: string;
|
|
42
|
+
status: RetryableStatus;
|
|
43
|
+
createdAtBlock: number;
|
|
44
|
+
redeemedAtBlock?: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Retryable ticket info for stage data
|
|
48
|
+
*/
|
|
49
|
+
export interface RetryableTicketInfo {
|
|
50
|
+
l2TxHash: string;
|
|
51
|
+
targetChain: TargetChainType;
|
|
52
|
+
status: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Retryable redemption info for stage data
|
|
56
|
+
*/
|
|
57
|
+
export interface RetryableRedemptionInfo {
|
|
58
|
+
l2TxHash: string;
|
|
59
|
+
targetChain: TargetChainType;
|
|
60
|
+
txHash: string;
|
|
61
|
+
blockNumber: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Retryable creation detail
|
|
65
|
+
*/
|
|
66
|
+
export interface RetryableCreationDetail {
|
|
67
|
+
index: number;
|
|
68
|
+
targetChain: TargetChainType;
|
|
69
|
+
l2TxHash: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Retryable redemption detail
|
|
73
|
+
*/
|
|
74
|
+
export interface RetryableRedemptionDetail {
|
|
75
|
+
index: number;
|
|
76
|
+
targetChain: TargetChainType;
|
|
77
|
+
status: string;
|
|
78
|
+
l2TxHash: string | null;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=cross-chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-chain.d.ts","sourceRoot":"","sources":["../../src/types/cross-chain.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,SAAS,CAAC;IACvB,WAAW,EAAE,SAAS,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,eAAe,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,eAAe,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,eAAe,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,eAAe,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-chain.js","sourceRoot":"","sources":["../../src/types/cross-chain.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Election-related types for Security Council elections
|
|
3
|
+
*/
|
|
4
|
+
import { PreparedTransaction } from "./tracking";
|
|
5
|
+
/**
|
|
6
|
+
* Cohort identifier for Security Council elections
|
|
7
|
+
*/
|
|
8
|
+
export type CohortType = 0 | 1;
|
|
9
|
+
/**
|
|
10
|
+
* Election phase in the Security Council election lifecycle
|
|
11
|
+
*/
|
|
12
|
+
export type ElectionPhase = "NOT_STARTED" | "NOMINEE_SELECTION" | "VETTING_PERIOD" | "MEMBER_ELECTION" | "PENDING_EXECUTION" | "COMPLETED";
|
|
13
|
+
/**
|
|
14
|
+
* Governor proposal state (matches OpenZeppelin GovernorCountingSimple)
|
|
15
|
+
*/
|
|
16
|
+
export type GovernorProposalState = "Pending" | "Active" | "Canceled" | "Defeated" | "Succeeded" | "Queued" | "Expired" | "Executed";
|
|
17
|
+
/**
|
|
18
|
+
* Status of an election proposal
|
|
19
|
+
*/
|
|
20
|
+
export interface ElectionProposalStatus {
|
|
21
|
+
electionIndex: number;
|
|
22
|
+
phase: ElectionPhase;
|
|
23
|
+
cohort: CohortType;
|
|
24
|
+
nomineeProposalId: string | null;
|
|
25
|
+
memberProposalId: string | null;
|
|
26
|
+
nomineeProposalState: GovernorProposalState | null;
|
|
27
|
+
memberProposalState: GovernorProposalState | null;
|
|
28
|
+
compliantNomineeCount: number;
|
|
29
|
+
targetNomineeCount: number;
|
|
30
|
+
vettingDeadline: number | null;
|
|
31
|
+
isInVettingPeriod: boolean;
|
|
32
|
+
canProceedToMemberPhase: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Election status information
|
|
36
|
+
*/
|
|
37
|
+
export interface ElectionStatus {
|
|
38
|
+
electionCount: number;
|
|
39
|
+
cohort: CohortType;
|
|
40
|
+
nextElectionTimestamp: number;
|
|
41
|
+
currentL1Timestamp: number;
|
|
42
|
+
canCreateElection: boolean;
|
|
43
|
+
secondsUntilElection: number;
|
|
44
|
+
timeUntilElection: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Result of checking Security Council election status
|
|
48
|
+
*/
|
|
49
|
+
export interface ElectionCheckResult {
|
|
50
|
+
status: ElectionStatus;
|
|
51
|
+
canCreate: boolean;
|
|
52
|
+
canTriggerMember: boolean;
|
|
53
|
+
currentElection?: ElectionProposalStatus;
|
|
54
|
+
prepared: {
|
|
55
|
+
createElection?: PreparedTransaction;
|
|
56
|
+
triggerMember?: PreparedTransaction;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=election.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"election.d.ts","sourceRoot":"","sources":["../../src/types/election.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,aAAa,GACb,mBAAmB,GACnB,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAAW,GACX,QAAQ,GACR,SAAS,GACT,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,oBAAoB,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACnD,mBAAmB,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAClD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,QAAQ,EAAE;QACR,cAAc,CAAC,EAAE,mBAAmB,CAAC;QACrC,aAAa,CAAC,EAAE,mBAAmB,CAAC;KACrC,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"election.js","sourceRoot":"","sources":["../../src/types/election.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Governor-related types for Arbitrum Governance
|
|
3
|
+
*/
|
|
4
|
+
import { BigNumber } from "ethers";
|
|
5
|
+
/**
|
|
6
|
+
* Proposal types in Arbitrum governance
|
|
7
|
+
*
|
|
8
|
+
* Naming aligned with governance documentation:
|
|
9
|
+
* - CONSTITUTIONAL: Core Governor proposals (require L1 round-trip)
|
|
10
|
+
* - NON_CONSTITUTIONAL: Treasury Governor proposals (L2 only)
|
|
11
|
+
* - ELECTION_*: Security Council election governors
|
|
12
|
+
*
|
|
13
|
+
* @see https://docs.arbitrum.foundation/concepts/lifecycle-anatomy-aip-proposal
|
|
14
|
+
*/
|
|
15
|
+
export type ProposalType = "CONSTITUTIONAL" | "NON_CONSTITUTIONAL" | "ELECTION_NOMINEE" | "ELECTION_MEMBER" | "UNKNOWN";
|
|
16
|
+
/**
|
|
17
|
+
* Governor capability determines the proposal execution path
|
|
18
|
+
*/
|
|
19
|
+
export type GovernorCapability = "WITH_TIMELOCK" | "WITH_VETTING" | "NO_TIMELOCK";
|
|
20
|
+
/**
|
|
21
|
+
* Proposal state from the governor contract
|
|
22
|
+
*/
|
|
23
|
+
export type ProposalState = "Pending" | "Active" | "Canceled" | "Defeated" | "Succeeded" | "Queued" | "Expired" | "Executed";
|
|
24
|
+
/**
|
|
25
|
+
* Parsed proposal data from ProposalCreated event
|
|
26
|
+
*/
|
|
27
|
+
export interface ProposalData {
|
|
28
|
+
proposalId: string;
|
|
29
|
+
proposer: string;
|
|
30
|
+
targets: string[];
|
|
31
|
+
values: BigNumber[];
|
|
32
|
+
signatures: string[];
|
|
33
|
+
calldatas: string[];
|
|
34
|
+
startBlock: BigNumber;
|
|
35
|
+
endBlock: BigNumber;
|
|
36
|
+
description: string;
|
|
37
|
+
creationBlock: number;
|
|
38
|
+
creationTxHash: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Voting information for a proposal
|
|
42
|
+
*/
|
|
43
|
+
export interface VotingData {
|
|
44
|
+
startBlock: BigNumber;
|
|
45
|
+
endBlock: BigNumber;
|
|
46
|
+
deadline: BigNumber;
|
|
47
|
+
forVotes: BigNumber;
|
|
48
|
+
againstVotes: BigNumber;
|
|
49
|
+
abstainVotes: BigNumber;
|
|
50
|
+
quorum: BigNumber;
|
|
51
|
+
hasReachedQuorum: boolean;
|
|
52
|
+
isVotingPeriodOver: boolean;
|
|
53
|
+
extendedDeadline?: BigNumber;
|
|
54
|
+
vettingDeadline?: BigNumber;
|
|
55
|
+
isVettingPeriod?: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Parsed arguments from ProposalCreated event
|
|
59
|
+
*/
|
|
60
|
+
export interface ProposalCreatedEventArgs {
|
|
61
|
+
proposalId: BigNumber;
|
|
62
|
+
proposer: string;
|
|
63
|
+
targets: string[];
|
|
64
|
+
values: BigNumber[];
|
|
65
|
+
signatures: string[];
|
|
66
|
+
calldatas: string[];
|
|
67
|
+
startBlock: BigNumber;
|
|
68
|
+
endBlock: BigNumber;
|
|
69
|
+
description: string;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=governor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governor.d.ts","sourceRoot":"","sources":["../../src/types/governor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,oBAAoB,GACpB,kBAAkB,GAClB,iBAAiB,GACjB,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG,cAAc,GAAG,aAAa,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,QAAQ,GACR,UAAU,GACV,UAAU,GACV,WAAW,GACX,QAAQ,GACR,SAAS,GACT,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,EAAE,SAAS,CAAC;IACxB,YAAY,EAAE,SAAS,CAAC;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governor.js","sourceRoot":"","sources":["../../src/types/governor.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Arbitrum Governance Stage Tracking SDK
|
|
3
|
+
*
|
|
4
|
+
* Organized by domain:
|
|
5
|
+
* - core: Primitives (StageType, ChainType, timing/ETA types)
|
|
6
|
+
* - governor: Governor, proposal, voting types
|
|
7
|
+
* - timelock: Timelock operations and state
|
|
8
|
+
* - cross-chain: L2→L1 messages and retryables
|
|
9
|
+
* - stages: Stage data types and TrackedStage
|
|
10
|
+
* - tracking: Context, results, checkpoints, execution
|
|
11
|
+
* - config: TrackerOptions, ChunkingConfig
|
|
12
|
+
* - election: Security Council election types
|
|
13
|
+
*/
|
|
14
|
+
export { StageType, StageStatus, ChainType, TargetChainType, StageTransaction, StageTiming, SearchHint, EstimatedTimeRange, VotingTimeRange, BlockBasedTiming, StageMetadata, EstimatedTimesResult, } from "./core";
|
|
15
|
+
export { ProposalType, GovernorCapability, ProposalState, ProposalData, VotingData, ProposalCreatedEventArgs, } from "./governor";
|
|
16
|
+
export { TimelockOperationState, SerializedCallScheduledData, CallScheduledData, CallExecutedData, TimelockParams, TimelockBatchParams, TimelockState, OperationState, TimelockLink, } from "./timelock";
|
|
17
|
+
export { L2ToL1MessageStatus, L2ToL1MessageData, RetryableStatus, RetryableData, RetryableTicketInfo, RetryableRedemptionInfo, RetryableCreationDetail, RetryableRedemptionDetail, } from "./cross-chain";
|
|
18
|
+
export { BaseStageData, ProposalCreatedData, VotingActiveData, ProposalQueuedData, BaseTimelockData, TimelockStageData, L2TimelockData, L1TimelockData, L2ToL1MessageStageData, RetryableStageData, StageDataMap, TrackedStageData, TrackedStage, TypedTrackedStage, isStageType, getStageData, } from "./stages";
|
|
19
|
+
export { PrepareOptions, PrepareResult, PreparedTransaction, ExecutionResult, GovernorTrackingInput, TimelockTrackingInput, DiscoveryTrackingInput, TrackingInput, StageTrackingContext, NextStageHints, StageTrackResult, StageTrackResultWith, DiscoveryWatermarks, DiscoveryTargets, TrackingCheckpoint, TrackerStats, TrackingResult, } from "./tracking";
|
|
20
|
+
export { ChunkingConfig, RetryConfig, TrackingProgress, OnProgressCallback, TrackerOptions, CacheAdapter, } from "./config";
|
|
21
|
+
export { CohortType, ElectionPhase, GovernorProposalState, ElectionProposalStatus, ElectionStatus, ElectionCheckResult, } from "./election";
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Type definitions for Arbitrum Governance Stage Tracking SDK
|
|
4
|
+
*
|
|
5
|
+
* Organized by domain:
|
|
6
|
+
* - core: Primitives (StageType, ChainType, timing/ETA types)
|
|
7
|
+
* - governor: Governor, proposal, voting types
|
|
8
|
+
* - timelock: Timelock operations and state
|
|
9
|
+
* - cross-chain: L2→L1 messages and retryables
|
|
10
|
+
* - stages: Stage data types and TrackedStage
|
|
11
|
+
* - tracking: Context, results, checkpoints, execution
|
|
12
|
+
* - config: TrackerOptions, ChunkingConfig
|
|
13
|
+
* - election: Security Council election types
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.getStageData = exports.isStageType = void 0;
|
|
17
|
+
// Stage data types
|
|
18
|
+
var stages_1 = require("./stages");
|
|
19
|
+
Object.defineProperty(exports, "isStageType", { enumerable: true, get: function () { return stages_1.isStageType; } });
|
|
20
|
+
Object.defineProperty(exports, "getStageData", { enumerable: true, get: function () { return stages_1.getStageData; } });
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stage data types and TrackedStage definitions
|
|
3
|
+
*/
|
|
4
|
+
import { ChainType, StageType, StageStatus, StageTransaction, StageTiming, TargetChainType } from "./core";
|
|
5
|
+
import { SerializedCallScheduledData } from "./timelock";
|
|
6
|
+
import { RetryableTicketInfo, RetryableRedemptionInfo, RetryableCreationDetail, RetryableRedemptionDetail } from "./cross-chain";
|
|
7
|
+
/**
|
|
8
|
+
* Base stage data with common fields
|
|
9
|
+
*/
|
|
10
|
+
export interface BaseStageData {
|
|
11
|
+
reason?: string;
|
|
12
|
+
skipReason?: string;
|
|
13
|
+
note?: string;
|
|
14
|
+
message?: string;
|
|
15
|
+
fastPath?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Data for PROPOSAL_CREATED stage
|
|
19
|
+
*/
|
|
20
|
+
export interface ProposalCreatedData extends BaseStageData {
|
|
21
|
+
proposalId?: string;
|
|
22
|
+
proposer: string;
|
|
23
|
+
description: string;
|
|
24
|
+
startBlock: string;
|
|
25
|
+
endBlock: string;
|
|
26
|
+
targetCount?: number;
|
|
27
|
+
targets?: string[];
|
|
28
|
+
values?: string[];
|
|
29
|
+
signatures?: string[];
|
|
30
|
+
calldatas?: string[];
|
|
31
|
+
proposalType?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Data for VOTING_ACTIVE stage
|
|
35
|
+
*/
|
|
36
|
+
export interface VotingActiveData extends BaseStageData {
|
|
37
|
+
forVotes: string;
|
|
38
|
+
againstVotes: string;
|
|
39
|
+
abstainVotes: string;
|
|
40
|
+
quorum: string;
|
|
41
|
+
quorumReached: boolean;
|
|
42
|
+
deadline: string;
|
|
43
|
+
extendedDeadline?: string;
|
|
44
|
+
wasExtended?: boolean;
|
|
45
|
+
extensionPossible?: boolean;
|
|
46
|
+
hasVettingPeriod?: boolean;
|
|
47
|
+
vettingDeadline?: string;
|
|
48
|
+
isVettingActive?: boolean;
|
|
49
|
+
proposalState?: string;
|
|
50
|
+
startBlock?: string;
|
|
51
|
+
currentBlock?: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Data for PROPOSAL_QUEUED stage
|
|
55
|
+
*/
|
|
56
|
+
export interface ProposalQueuedData extends BaseStageData {
|
|
57
|
+
proposalState: string;
|
|
58
|
+
timelockAddress?: string;
|
|
59
|
+
operationId?: string;
|
|
60
|
+
eta?: number;
|
|
61
|
+
callCount?: number;
|
|
62
|
+
canQueue?: boolean;
|
|
63
|
+
governorAddress?: string;
|
|
64
|
+
proposalId?: string;
|
|
65
|
+
targets?: string[];
|
|
66
|
+
values?: string[];
|
|
67
|
+
calldatas?: string[];
|
|
68
|
+
description?: string;
|
|
69
|
+
callScheduledData?: SerializedCallScheduledData[];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Base for all timelock stages
|
|
73
|
+
*/
|
|
74
|
+
export interface BaseTimelockData extends BaseStageData {
|
|
75
|
+
operationId: string;
|
|
76
|
+
timelockAddress: string;
|
|
77
|
+
callScheduledData: SerializedCallScheduledData[];
|
|
78
|
+
eta?: number;
|
|
79
|
+
state?: string;
|
|
80
|
+
waitingForDelay?: boolean;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Common data for all timelock stages (L2 and L1)
|
|
84
|
+
*/
|
|
85
|
+
export interface TimelockStageData extends BaseTimelockData {
|
|
86
|
+
isSecurityCouncilOperation?: boolean;
|
|
87
|
+
securityCouncilMembers?: string[];
|
|
88
|
+
securityCouncilNonce?: string;
|
|
89
|
+
salt?: string;
|
|
90
|
+
predecessor?: string;
|
|
91
|
+
description?: string;
|
|
92
|
+
/** Whether operation uses scheduleBatch (true) or schedule (false) */
|
|
93
|
+
isBatchOperation?: boolean;
|
|
94
|
+
}
|
|
95
|
+
/** Data for L2 timelock stages */
|
|
96
|
+
export type L2TimelockData = TimelockStageData;
|
|
97
|
+
/** Data for L1 timelock stages */
|
|
98
|
+
export type L1TimelockData = TimelockStageData;
|
|
99
|
+
/**
|
|
100
|
+
* Data for L2_TO_L1_MESSAGE stage
|
|
101
|
+
*/
|
|
102
|
+
export interface L2ToL1MessageStageData extends BaseStageData {
|
|
103
|
+
messageCount: number;
|
|
104
|
+
l2Block: number;
|
|
105
|
+
l2TxHash: string;
|
|
106
|
+
messagePositions: string[];
|
|
107
|
+
firstExecutableBlock?: number;
|
|
108
|
+
currentL1Block?: number;
|
|
109
|
+
status?: string;
|
|
110
|
+
messageDetails?: Array<{
|
|
111
|
+
index: number;
|
|
112
|
+
status: string;
|
|
113
|
+
}>;
|
|
114
|
+
hasMultipleMessages?: boolean;
|
|
115
|
+
/** L2ToL1Tx event from Arbitrum SDK (contains message data for salt decoding) */
|
|
116
|
+
l2ToL1TxEvent?: any;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Data for RETRYABLE stages (CREATED and REDEEMED)
|
|
120
|
+
*/
|
|
121
|
+
export interface RetryableStageData extends BaseStageData {
|
|
122
|
+
ticketCount?: number;
|
|
123
|
+
/** All target chains for retryables (can be both Arb1 and Nova) */
|
|
124
|
+
targetChains?: TargetChainType[];
|
|
125
|
+
l2TxHash?: string;
|
|
126
|
+
l1Block?: number;
|
|
127
|
+
tickets?: RetryableTicketInfo[];
|
|
128
|
+
redemptions?: RetryableRedemptionInfo[];
|
|
129
|
+
creationDetails?: RetryableCreationDetail[];
|
|
130
|
+
redemptionDetails?: RetryableRedemptionDetail[];
|
|
131
|
+
statuses?: string[];
|
|
132
|
+
redeemedCount?: number;
|
|
133
|
+
pendingCount?: number;
|
|
134
|
+
txNotIndexedYet?: boolean;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Maps each StageType to its corresponding data interface.
|
|
138
|
+
*
|
|
139
|
+
* Note: The consolidated stages (L2_TIMELOCK, L2_TO_L1_MESSAGE, L1_TIMELOCK)
|
|
140
|
+
* use unified data types that contain all fields needed across their
|
|
141
|
+
* sub-states (PENDING, READY, COMPLETED).
|
|
142
|
+
*/
|
|
143
|
+
export interface StageDataMap {
|
|
144
|
+
PROPOSAL_CREATED: ProposalCreatedData;
|
|
145
|
+
VOTING_ACTIVE: VotingActiveData;
|
|
146
|
+
PROPOSAL_QUEUED: ProposalQueuedData;
|
|
147
|
+
L2_TIMELOCK: L2TimelockData;
|
|
148
|
+
L2_TO_L1_MESSAGE: L2ToL1MessageStageData;
|
|
149
|
+
L1_TIMELOCK: L1TimelockData;
|
|
150
|
+
RETRYABLE_EXECUTED: RetryableStageData;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Union of all stage data types
|
|
154
|
+
*/
|
|
155
|
+
export type TrackedStageData = Partial<ProposalCreatedData & VotingActiveData & ProposalQueuedData & L2TimelockData & L2ToL1MessageStageData & RetryableStageData> & BaseStageData & {
|
|
156
|
+
isElection?: boolean;
|
|
157
|
+
waitingForVetting?: boolean;
|
|
158
|
+
proposalState?: string;
|
|
159
|
+
currentL1Block?: number;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* A tracked stage in the lifecycle
|
|
163
|
+
*/
|
|
164
|
+
export interface TrackedStage {
|
|
165
|
+
type: StageType;
|
|
166
|
+
status: StageStatus;
|
|
167
|
+
chain: ChainType;
|
|
168
|
+
transactions: StageTransaction[];
|
|
169
|
+
data: TrackedStageData;
|
|
170
|
+
timing?: StageTiming;
|
|
171
|
+
executable?: boolean;
|
|
172
|
+
error?: string;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Type-safe tracked stage with properly typed data field
|
|
176
|
+
*/
|
|
177
|
+
export type TypedTrackedStage<T extends StageType> = Omit<TrackedStage, "type" | "data"> & {
|
|
178
|
+
type: T;
|
|
179
|
+
data: StageDataMap[T];
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* Type guard to check if a stage is of a specific type
|
|
183
|
+
*/
|
|
184
|
+
export declare function isStageType<T extends StageType>(stage: TrackedStage, type: T): boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Safely get typed stage data, returning null if types don't match
|
|
187
|
+
*/
|
|
188
|
+
export declare function getStageData<T extends StageType>(stage: TrackedStage, expectedType: T): StageDataMap[T] | null;
|
|
189
|
+
//# sourceMappingURL=stages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stages.d.ts","sourceRoot":"","sources":["../../src/types/stages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Stage data types and TrackedStage definitions
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isStageType = isStageType;
|
|
7
|
+
exports.getStageData = getStageData;
|
|
8
|
+
/**
|
|
9
|
+
* Type guard to check if a stage is of a specific type
|
|
10
|
+
*/
|
|
11
|
+
function isStageType(stage, type) {
|
|
12
|
+
return stage.type === type;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Safely get typed stage data, returning null if types don't match
|
|
16
|
+
*/
|
|
17
|
+
function getStageData(stage, expectedType) {
|
|
18
|
+
if (stage.type !== expectedType) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return stage.data;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=stages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stages.js","sourceRoot":"","sources":["../../src/types/stages.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAsNH,kCAEC;AAKD,oCAQC;AAlBD;;GAEG;AACH,SAAgB,WAAW,CAAsB,KAAmB,EAAE,IAAO;IAC3E,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAC1B,KAAmB,EACnB,YAAe;IAEf,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,IAAkC,CAAC;AAClD,CAAC"}
|