import { DeepReadonly } from 'ts-essentials'; import { PartialEventSubscriber } from '../../composed-event-subscriber'; import { Address, BlockHeader, Log, Logger, MultiCallInput, MultiCallOutput } from '../../types'; import { Lens } from '../../lens'; import { Interface } from '@ethersproject/abi'; import { DecodedOracleConfig, Chainlink, OracleFeed, OracleReadType, Pyth, TransmuterState, Oracle, MorphoOracle } from './types'; import { ethers } from 'ethers'; export declare class TransmuterSubscriber extends PartialEventSubscriber { private EURA; private transmuter; private collaterals; protected network: number; static readonly transmuterCrosschainInterface: Interface; readonly interface: Interface; constructor(EURA: Address, transmuter: Address, collaterals: Address[], network: number, lens: Lens, DeepReadonly>, logger: Logger); processLog(state: DeepReadonly, log: Readonly, blockHeader: Readonly): DeepReadonly | null; getGenerateStateMultiCallInputs(): MultiCallInput[]; generateState(multicallOutputs: MultiCallOutput[], blockNumber?: number | 'latest'): DeepReadonly; /** * Update Mint and Burn fees parameters */ _handleFeesSet(event: ethers.utils.LogDescription, state: TransmuterState): Readonly | null; /** * Update redemption curve parameters */ _handleRedemptionCurveSet(event: ethers.utils.LogDescription, state: TransmuterState): Readonly | null; /** * Adapt collateral exposure after a swap event */ _handleSwap(event: ethers.utils.LogDescription, state: TransmuterState): Readonly | null; /** * Adapt collateral balances after a redeem event */ _handleRedeem(event: ethers.utils.LogDescription, state: TransmuterState): Readonly | null; _handleAddCollateral(event: ethers.utils.LogDescription, state: TransmuterState): Readonly | null; _handleRevokeCollateral(event: ethers.utils.LogDescription, state: TransmuterState): Readonly | null; _handleAdjustStablecoins(event: ethers.utils.LogDescription, state: TransmuterState): Readonly | null; _handleSetWhitelistedStatus(event: ethers.utils.LogDescription, state: TransmuterState): Readonly | null; _handleIsWhitelistedForType(event: ethers.utils.LogDescription, state: TransmuterState): Readonly | null; _handleStablecoinCapSet(event: ethers.utils.LogDescription, state: TransmuterState): Readonly | null; /** * Keep track of used oracles for each collaterals */ _handleOracleSet(event: ethers.utils.LogDescription, state: TransmuterState, blockNumber: number): Readonly | null; /** * Keep track of used oracles for each collaterals */ _setOracleConfig(oracleConfig: string): Oracle; static _decodeOracleConfig(oracleConfig: string): DecodedOracleConfig; static _decodeOracleFeed(readType: OracleReadType, oracleData: string): OracleFeed; static _decodeChainlinkOracle(oracleData: string): Chainlink; static _decodePythOracle(oracleData: string): Pyth; static _decodeMaxOracle(oracleData: string): number; static _decodeMorphoOracle(oracleData: string): MorphoOracle; }