import { LogDescription } from "@ethersproject/abi"; import { BigNumber } from "@ethersproject/bignumber"; import { Log } from "@ethersproject/abstract-provider"; import { Contract, ContractInterface, Overrides, CallOverrides, PopulatedTransaction, ContractTransaction } from "@ethersproject/contracts"; import { ActivePool, BorrowerOperations, TroveManager, ARTHValuecoin, CollSurplusPool, CommunityIssuance, MockERC20, DefaultPool, HintHelpers, MultiTroveGetter, PriceFeed, PriceFeedTestnet, SortedTroves, StabilityPool, GasPool, Governance } from "../types"; import { EthersProvider, EthersSigner } from "./types"; export interface _TypedLogDescription extends Omit { args: T; } declare type BucketOfFunctions = Record never>; export declare type _TypeSafeContract = Pick; declare type EstimatedContractFunction = (overrides: O, adjustGas: (gas: BigNumber) => BigNumber, ...args: A) => Promise; declare type CallOverridesArg = [overrides?: CallOverrides]; declare type TypedContract = _TypeSafeContract & U & { [P in keyof V]: V[P] extends (...args: infer A) => unknown ? (...args: A) => Promise : never; } & { readonly callStatic: { [P in keyof V]: V[P] extends (...args: [...infer A, never]) => infer R ? (...args: [...A, ...CallOverridesArg]) => R : never; }; readonly estimateGas: { [P in keyof V]: V[P] extends (...args: infer A) => unknown ? (...args: A) => Promise : never; }; readonly populateTransaction: { [P in keyof V]: V[P] extends (...args: infer A) => unknown ? (...args: A) => Promise : never; }; readonly estimateAndPopulate: { [P in keyof V]: V[P] extends (...args: [...infer A, infer O | undefined]) => unknown ? EstimatedContractFunction : never; }; }; export declare class _ARTHContract extends Contract { readonly estimateAndPopulate: Record>; constructor(addressOrName: string, contractInterface: ContractInterface, signerOrProvider?: EthersSigner | EthersProvider); extractEvents(logs: Log[], name: string): _TypedLogDescription[]; } /** @internal */ export declare type _TypedARTHContract = TypedContract<_ARTHContract, T, U>; /** @internal */ export interface _ARTHContracts { activePool: ActivePool; borrowerOperations: BorrowerOperations; troveManager: TroveManager; arthToken: ARTHValuecoin; mahaToken: MockERC20; collSurplusPool: CollSurplusPool; communityIssuance: CommunityIssuance; defaultPool: DefaultPool; hintHelpers: HintHelpers; multiTroveGetter: MultiTroveGetter; priceFeed: PriceFeed | PriceFeedTestnet; sortedTroves: SortedTroves; stabilityPool: StabilityPool; gasPool: GasPool; governance: Governance; } /** @internal */ export declare const _priceFeedIsTestnet: (priceFeed: PriceFeed | PriceFeedTestnet) => priceFeed is PriceFeedTestnet; declare type ARTHContractsKey = keyof _ARTHContracts; /** @internal */ export declare type _ARTHContractAddresses = Record; /** @internal */ export interface _ARTHDeploymentJSON { readonly chainId: number; readonly addresses: _ARTHContractAddresses; readonly version: string; readonly deploymentDate: number; readonly startBlock: number; readonly bootstrapPeriod: number; readonly totalStabilityPoolMAHAReward: string; readonly _priceFeedIsTestnet: boolean; readonly _isDev: boolean; } /** @internal */ export declare const _connectToContracts: (signerOrProvider: EthersSigner | EthersProvider, { addresses, _priceFeedIsTestnet }: _ARTHDeploymentJSON) => _ARTHContracts; export {}; //# sourceMappingURL=contracts.d.ts.map