///
///
///
///
///
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;