/// /// /// /// /// import { TenderlySimulationResult } from "@uma/common"; import { ModuleProxyCreationEvent } from "@uma/contracts-node/typechain/core/ethers/ModuleProxyFactory"; import { TransactionsProposedEvent } from "@uma/contracts-node/typechain/core/ethers/OptimisticGovernor"; import { Options as RetryOptions } from "async-retry"; import { BigNumber, Contract, Event, EventFilter, Signer } from "ethers"; import { OptimisticGovernorEthers, OptimisticOracleV3Ethers } from "./common"; import { SnapshotProposalExpanded } from "./oSnapAutomation"; import type { Provider } from "@ethersproject/abstract-provider"; export { OptimisticGovernorEthers, OptimisticOracleV3Ethers } from "@uma/contracts-node"; export { Logger } from "@uma/financial-templates-lib"; export { getContractInstanceWithProvider } from "../utils/contracts"; export { generateOOv3UILink } from "../utils/logger"; export interface BotModes { transactionsProposedEnabled: boolean; transactionsExecutedEnabled: boolean; proposalExecutedEnabled: boolean; proposalDeletedEnabled: boolean; setCollateralAndBondEnabled: boolean; setRulesEnabled: boolean; setLivenessEnabled: boolean; setIdentifierEnabled: boolean; setEscalationManagerEnabled: boolean; proxyDeployedEnabled: boolean; automaticProposalsEnabled: boolean; automaticDisputesEnabled: boolean; automaticExecutionsEnabled: boolean; } export interface BlockRange { start: number; end: number; } export interface SupportedBonds { [key: string]: string; } export interface MonitoringParams { ogAddresses: string[]; ogBlacklist?: string[]; moduleProxyFactoryAddresses: string[]; ogMasterCopyAddresses: string[]; provider: Provider; signer?: Signer; chainId: number; blockRange: BlockRange; pollingDelay: number; snapshotEndpoint: string; graphqlEndpoint: string; ipfsEndpoint: string; approvalChoices: string[]; supportedBonds?: SupportedBonds; submitAutomation: boolean; automaticExecutionGasLimit: BigNumber; disputeIpfsServerErrors: boolean; assertionBlacklist: string[]; useTenderly: boolean; botModes: BotModes; retryOptions: RetryOptions; reproposeDisputed: boolean; storage: "datastore" | "file"; } export interface ForkedTenderlyResult { forkUrl: string; lastSimulation: TenderlySimulationResult; } export declare const isDictionary: (arg: unknown) => arg is Record; export declare const initMonitoringParams: (env: NodeJS.ProcessEnv, _provider?: Provider) => Promise; export declare const waitNextBlockRange: (params: MonitoringParams) => Promise; export declare const startupLogLevel: (params: MonitoringParams) => "debug" | "info"; export declare const tryHexToUtf8String: (ancillaryData: string) => string; export declare const getCurrencyDecimals: (provider: Provider, currencyAddress: string) => Promise; export declare const getCurrencySymbol: (provider: Provider, currencyAddress: string) => Promise; export declare const runQueryFilter: (contract: Contract, filter: EventFilter, blockRange: BlockRange) => Promise; export declare const getOgByAddress: (params: MonitoringParams, address: string) => Promise; export declare const getOo: (params: MonitoringParams) => Promise; export declare const getProxyDeploymentTxs: (params: MonitoringParams) => Promise>; export declare const getOgAddresses: (params: MonitoringParams) => Promise>; export declare const getBlockTimestamp: (provider: Provider, blockNumber: number) => Promise; export declare const generateTenderlySimulation: (proposedEvent: TransactionsProposedEvent, params: MonitoringParams) => Promise; export declare const generateForkedSimulation: (proposal: SnapshotProposalExpanded, retryOptions: RetryOptions) => Promise;