diff --git a/src/apps/lyra-newport/arbitrum/lyra-newport.options.contract-position-fetcher.ts b/src/apps/lyra-newport/arbitrum/lyra-newport.options.contract-position-fetcher.ts new file mode 100644 index 000000000..b1e89ebe9 --- /dev/null +++ b/src/apps/lyra-newport/arbitrum/lyra-newport.options.contract-position-fetcher.ts @@ -0,0 +1,251 @@ +import { Inject } from '@nestjs/common'; +import { BigNumberish } from 'ethers'; +import { gql } from 'graphql-request'; +import _, { flattenDeep, omit } from 'lodash'; + +import { IAppToolkit, APP_TOOLKIT } from '~app-toolkit/app-toolkit.interface'; +import { PositionTemplate } from '~app-toolkit/decorators/position-template.decorator'; +import { gqlFetch } from '~app-toolkit/helpers/the-graph.helper'; +import { DefaultDataProps } from '~position/display.interface'; +import { MetaType } from '~position/position.interface'; +import { ContractPositionTemplatePositionFetcher } from '~position/template/contract-position.template.position-fetcher'; +import { + GetTokenDefinitionsParams, + GetDisplayPropsParams, + GetTokenBalancesParams, + GetDataPropsParams, +} from '~position/template/contract-position.template.types'; + +import { LyraNewportContractFactory, LyraOptionToken } from '../contracts'; +import { BigNumber } from 'ethers'; + +const OPTION_TYPES = { + 0: 'Long Call', + 1: 'Long Put', + 2: 'Short Call Base', + 3: 'Short Call Quote', + 4: 'Short Put Quote', +}; + +type OptionsResponse = { + markets: { + id: string; + optionToken: { + id: string; + }; + baseAddress: string; + quoteAddress: string; + boards: { + strikes: { + strikeId: string; + strikePriceReadable: string; + putOption: { + latestOptionPriceAndGreeks: { + optionPrice: string; + }; + }; + callOption: { + latestOptionPriceAndGreeks: { + optionPrice: string; + }; + }; + }[]; + }[]; + }[]; +}; +const OPTIONS_QUERY = gql` + { + markets(where: { isRemoved: false }) { + id + baseAddress + quoteAddress + optionToken { + id + } + boards(where: { isExpired: false }) { + boardId + strikes { + strikeId + strikePriceReadable + putOption { + latestOptionPriceAndGreeks { + optionPrice + } + } + callOption { + latestOptionPriceAndGreeks { + optionPrice + } + } + } + } + } + } +`; + +export interface LyraNewportOptionContractPositionDataProps extends DefaultDataProps { + optionType: number; + strikeId: number; + marketAddress: string; + baseAddress: string; + quoteAddress: string; + tokenAddress: string; + callPrice: number; + putPrice: number; + strikePriceReadable: string; + positionKey: string; +} + +export type LyraNewportOptionTokenDefinition = { + address: string; + optionType: number; + strikeId: number; + marketAddress: string; + baseAddress: string; + quoteAddress: string; + tokenAddress: string; + callPrice: number; + putPrice: number; + strikePriceReadable: string; +}; + +@PositionTemplate() +export class ArbitrumLyraNewportOptionsContractPositionFetcher extends ContractPositionTemplatePositionFetcher< + LyraOptionToken, + LyraNewportOptionContractPositionDataProps, + LyraNewportOptionTokenDefinition +> { + groupLabel = 'Options'; + + constructor( + @Inject(APP_TOOLKIT) protected readonly appToolkit: IAppToolkit, + @Inject(LyraNewportContractFactory) protected readonly contractFactory: LyraNewportContractFactory, + ) { + super(appToolkit); + } + + getContract(address: string): LyraOptionToken { + return this.contractFactory.lyraOptionToken({ address, network: this.network }); + } + + async getDefinitions(): Promise { + const response = await gqlFetch({ + endpoint: 'https://api.lyra.finance/subgraph/arbitrum/v2/api', + query: OPTIONS_QUERY, + }); + + const definitions = response.markets.map(market => { + return market.boards.map(board => { + return board.strikes.map(strike => { + return _.keys(OPTION_TYPES).map(key => ({ + address: market.optionToken.id, + strikeId: Number(strike.strikeId), + optionType: Number(key), + marketAddress: market.id, + baseAddress: market.baseAddress, + quoteAddress: market.quoteAddress, + tokenAddress: market.optionToken.id, + callPrice: Number(strike.callOption.latestOptionPriceAndGreeks.optionPrice)/1e18, + putPrice: Number(strike.putOption.latestOptionPriceAndGreeks.optionPrice)/1e18, + strikePriceReadable: strike.strikePriceReadable, + })); + }); + }); + }); + + return flattenDeep(definitions); + } + + async getTokenDefinitions({ + definition, + }: GetTokenDefinitionsParams) { + // 0: [supplied(quote)] + // 1: [supplied(quote)] + // 2: [borrowed(quote)), collateral(base)] + // 3: [borrowed(quote)), collateral(quote)] + // 4: [borrowed(quote)), collateral(quote)] + + if (definition.optionType === 0 || definition.optionType === 1) { + // Long Call/Long Put + const quoteTokenDefinition = { + metaType: MetaType.SUPPLIED, + address: definition.quoteAddress, + network: this.network, + }; + return [quoteTokenDefinition]; + } else if (definition.optionType === 2) { + // Short Call Base + const quoteTokenDefinition = { + metaType: MetaType.BORROWED, + address: definition.quoteAddress, + network: this.network, + }; + const collateralTokenDefinition = { + metaType: MetaType.SUPPLIED, + address: definition.baseAddress, + network: this.network, + }; + return [quoteTokenDefinition, collateralTokenDefinition]; + } else { + // Short Call Quote/Short Put Quote + const quoteTokenDefinition = { + metaType: MetaType.BORROWED, + address: definition.quoteAddress, + network: this.network, + }; + const collateralTokenDefinition = { + metaType: MetaType.SUPPLIED, + address: definition.quoteAddress, + network: this.network, + }; + return [quoteTokenDefinition, collateralTokenDefinition]; + } + } + + async getDataProps({ + definition, + }: GetDataPropsParams) { + return { ...omit(definition, 'address'), positionKey: `${definition.optionType}:${definition.strikeId}` }; + } + + async getLabel({ + definition, + multicall, + }: GetDisplayPropsParams< + LyraOptionToken, + LyraNewportOptionContractPositionDataProps, + LyraNewportOptionTokenDefinition + >) { + const baseContract = this.contractFactory.erc20({ address: definition.baseAddress, network: this.network }); + const baseSymbol = await multicall.wrap(baseContract).symbol(); + const optionLabel = OPTION_TYPES[definition.optionType]; + return `${optionLabel} ${baseSymbol} @ $${definition.strikePriceReadable}`; + } + + async getTokenBalancesPerPosition({ + address, + contractPosition, + contract, + }: GetTokenBalancesParams): Promise { + // Extract information from contract position + const { strikeId, optionType, callPrice, putPrice } = contractPosition.dataProps; + + // Find matching user position for contract position + const ownerPositions = await contract.getOwnerPositions(address); + const userPosition = ownerPositions + .filter(p => Number(p.strikeId) === strikeId) + .find(p => p.optionType === optionType); + if (!userPosition) return []; + + // Find amount of position + const quoteToken = contractPosition.tokens[0]; + const price = OPTION_TYPES[optionType].includes('Call') ? callPrice : putPrice; + const amountRaw = ((Number(price) * Number(userPosition.amount)/ (10 ** (18 - contractPosition.tokens[0].decimals))) ).toString(); + + if (optionType === 0 || optionType === 1) return [amountRaw]; + + const decimals = optionType == 2 ? 10 ** (18 - contractPosition.tokens[1].decimals) : 10 ** (18 - contractPosition.tokens[0].decimals) + const positionCollateral = userPosition.collateral.div(decimals) + return [amountRaw, positionCollateral]; + } +} diff --git a/src/apps/lyra-newport/arbitrum/lyra-newport.pool.token-fetcher.ts b/src/apps/lyra-newport/arbitrum/lyra-newport.pool.token-fetcher.ts new file mode 100644 index 000000000..7f37b06ee --- /dev/null +++ b/src/apps/lyra-newport/arbitrum/lyra-newport.pool.token-fetcher.ts @@ -0,0 +1,101 @@ +import { Inject } from '@nestjs/common'; +import Axios from 'axios'; +import { gql } from 'graphql-request'; + +import { IAppToolkit, APP_TOOLKIT } from '~app-toolkit/app-toolkit.interface'; +import { PositionTemplate } from '~app-toolkit/decorators/position-template.decorator'; +import { gqlFetch } from '~app-toolkit/helpers/the-graph.helper'; +import { AppTokenTemplatePositionFetcher } from '~position/template/app-token.template.position-fetcher'; +import { + DefaultAppTokenDefinition, + DefaultAppTokenDataProps, + GetAddressesParams, + GetPricePerShareParams, +} from '~position/template/app-token.template.types'; + +import { LyraNewportContractFactory, LyraLiquidityToken } from '../contracts'; + +type LyraMainnetAddresses = Record< + string, + { + contractName: string; + source: string; + address: string; + txn: string; + blockNumber: number; + } +>; + +// TODO: find better way to determine available markets +type QueryResponse = { + markets: { + id: string; + baseAddress: string; + quoteAddress: string; + liquidityPool: { + id: string; + }; + }[]; +}; +const QUERY = gql` + { + markets(where: { isRemoved: false }) { + id + baseAddress + quoteAddress + liquidityPool { + id + } + } + } +`; + +@PositionTemplate() +export class ArbitrumLyraNewportPoolTokenFetcher extends AppTokenTemplatePositionFetcher { + groupLabel = 'Pools'; + + constructor( + @Inject(APP_TOOLKIT) protected readonly appToolkit: IAppToolkit, + @Inject(LyraNewportContractFactory) protected readonly contractFactory: LyraNewportContractFactory, + ) { + super(appToolkit); + } + + getContract(address: string): LyraLiquidityToken { + return this.contractFactory.lyraLiquidityToken({ address, network: this.network }); + } + + async getAddresses({ multicall }: GetAddressesParams) { + const registryContract = this.contractFactory.lyraRegistry({ + address: "0x6c87e4364Fd44B0D425ADfD0328e56b89b201329", + network: this.network, + }); + + const marketsResponse = await gqlFetch({ + endpoint: 'https://api.lyra.finance/subgraph/arbitrum/v2/api', + query: QUERY, + }); + + const markets = await Promise.all( + marketsResponse.markets.map(market => multicall.wrap(registryContract).marketAddresses(market.id)), + ); + + return markets.map(market => market.liquidityToken); + } + + async getUnderlyingTokenDefinitions() { + return [{ address: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8', network: this.network }]; + } + + async getPricePerShare({ + appToken, + contract, + multicall, + }: GetPricePerShareParams) { + const pool = await contract.liquidityPool(); + const poolContract = this.contractFactory.lyraLiquidityPool({ address: pool, network: this.network }); + const ratioRaw = await multicall.wrap(poolContract).getTokenPrice(); + const ratio = Number(ratioRaw) / 10 ** 18; + return [ratio]; + } +} diff --git a/src/apps/lyra-newport/assets/logo.png b/src/apps/lyra-newport/assets/logo.png new file mode 100644 index 000000000..0a5ff7f12 Binary files /dev/null and b/src/apps/lyra-newport/assets/logo.png differ diff --git a/src/apps/lyra-newport/contracts/abis/lyra-liquidity-pool.json b/src/apps/lyra-newport/contracts/abis/lyra-liquidity-pool.json new file mode 100644 index 000000000..d78ea938a --- /dev/null +++ b/src/apps/lyra-newport/contracts/abis/lyra-liquidity-pool.json @@ -0,0 +1,2533 @@ +[ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + } + ], + "name": "AlreadyInitialised", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "approvee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "BaseApprovalFailure", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "realAmount", + "type": "uint256" + } + ], + "name": "BaseTransferFailed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + } + ], + "name": "CannotRecoverQuoteBase", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + } + ], + "name": "InvalidBeneficiaryAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "liquidityCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidityCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "ivVarianceCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewVarianceCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "ivVarianceCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewVarianceCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "boardSettlementCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "contractAdjustmentCBTimeout", + "type": "uint256" + } + ], + "internalType": "struct LiquidityPool.CircuitBreakerParameters", + "name": "cbParams", + "type": "tuple" + } + ], + "name": "InvalidCircuitBreakerParameters", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "minDepositWithdraw", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "depositDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "withdrawalDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "withdrawalFee", + "type": "uint256" + }, + { + "internalType": "address", + "name": "guardianMultisig", + "type": "address" + }, + { + "internalType": "uint256", + "name": "guardianDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "adjustmentNetScalingFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "callCollatScalingFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "putCollatScalingFactor", + "type": "uint256" + } + ], + "internalType": "struct LiquidityPool.LiquidityPoolParameters", + "name": "lpParams", + "type": "tuple" + } + ], + "name": "InvalidLiquidityPoolParameters", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "quoteToLock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "freeLiquidity", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "quote", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "base", + "type": "uint256" + } + ], + "internalType": "struct LiquidityPool.Collateral", + "name": "lockedCollateral", + "type": "tuple" + } + ], + "name": "LockingMoreQuoteThanIsFree", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountQuote", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minDeposit", + "type": "uint256" + } + ], + "name": "MinimumDepositNotMet", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountQuote", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minWithdraw", + "type": "uint256" + } + ], + "name": "MinimumWithdrawNotMet", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "int256", + "name": "totalAssetValue", + "type": "int256" + } + ], + "name": "NegativeTotalAssetValue", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountQuote", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "freeLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "burnableLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reservedCollatLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "pendingDeltaLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "usedDeltaLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "NAV", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "longScaleFactor", + "type": "uint256" + } + ], + "internalType": "struct LiquidityPool.Liquidity", + "name": "liquidity", + "type": "tuple" + } + ], + "name": "NotEnoughFreeToReclaimInsolvency", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "nominatedOwner", + "type": "address" + } + ], + "name": "OnlyNominatedOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "optionMarket", + "type": "address" + } + ], + "name": "OnlyOptionMarket", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OnlyOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "poolHedger", + "type": "address" + } + ], + "name": "OnlyPoolHedger", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "poolHedger", + "type": "address" + } + ], + "name": "OnlyShortCollateral", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "int256", + "name": "totalAssetValue", + "type": "int256" + }, + { + "internalType": "int256", + "name": "optionValueDebt", + "type": "int256" + } + ], + "name": "OptionValueDebtExceedsTotalAssets", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "approvee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "QuoteApprovalFailure", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "realAmount", + "type": "uint256" + } + ], + "name": "QuoteTransferFailed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reservedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "freeLiquidity", + "type": "uint256" + } + ], + "name": "SendPremiumNotEnoughCollateral", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountOptions", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "increasesDelta", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + } + ], + "name": "UnableToHedgeDelta", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "quoteSpent", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "baseReceived", + "type": "uint256" + } + ], + "name": "BasePurchased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amountBase", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "quoteReceived", + "type": "uint256" + } + ], + "name": "BaseSold", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "insolventSettlementAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountQuoteReserved", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalOutstandingSettlements", + "type": "uint256" + } + ], + "name": "BoardSettlement", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "newTimestamp", + "type": "uint256" + } + ], + "name": "BoardSettlementCircuitBreakerUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "baseFreed", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "lockedCollateralBase", + "type": "uint256" + } + ], + "name": "CallCollateralFreed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "baseLocked", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "lockedCollateralBase", + "type": "uint256" + } + ], + "name": "CallCollateralLocked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "entryId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "boardNotStale", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bool", + "name": "validEntry", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bool", + "name": "guardianBypass", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bool", + "name": "delaysExpired", + "type": "bool" + } + ], + "name": "CheckingCanProcess", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "liquidityCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidityCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "ivVarianceCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewVarianceCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "ivVarianceCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewVarianceCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "boardSettlementCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "contractAdjustmentCBTimeout", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct LiquidityPool.CircuitBreakerParameters", + "name": "cbParams", + "type": "tuple" + } + ], + "name": "CircuitBreakerParametersUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "newTimestamp", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "ivVarianceThresholdCrossed", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bool", + "name": "skewVarianceThresholdCrossed", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bool", + "name": "liquidityThresholdCrossed", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bool", + "name": "contractAdjustmentEvent", + "type": "bool" + } + ], + "name": "CircuitBreakerUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "depositQueueId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountDeposited", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenPrice", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensReceived", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "DepositProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "depositor", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "depositQueueId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountDeposited", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalQueuedDeposits", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "DepositQueued", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amountQuoteAdded", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalInsolventSettlementAmount", + "type": "uint256" + } + ], + "name": "InsolventSettlementAmountUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "minDepositWithdraw", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "depositDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "withdrawalDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "withdrawalFee", + "type": "uint256" + }, + { + "internalType": "address", + "name": "guardianMultisig", + "type": "address" + }, + { + "internalType": "uint256", + "name": "guardianDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "adjustmentNetScalingFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "callCollatScalingFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "putCollatScalingFactor", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct LiquidityPool.LiquidityPoolParameters", + "name": "lpParams", + "type": "tuple" + } + ], + "name": "LiquidityPoolParametersUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalOutstandingSettlements", + "type": "uint256" + } + ], + "name": "OutstandingSettlementSent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerNominated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "contract PoolHedger", + "name": "poolHedger", + "type": "address" + } + ], + "name": "PoolHedgerUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "recipientPortion", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "optionMarketPortion", + "type": "uint256" + } + ], + "name": "PremiumTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "quoteFreed", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "lockedCollateralQuote", + "type": "uint256" + } + ], + "name": "PutCollateralFreed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "quoteLocked", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "lockedCollateralQuote", + "type": "uint256" + } + ], + "name": "PutCollateralLocked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amountQuote", + "type": "uint256" + } + ], + "name": "QuoteTransferredToPoolHedger", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "withdrawalQueueId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountWithdrawn", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenPrice", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "quoteReceived", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalQueuedWithdrawals", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "WithdrawPartiallyProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "withdrawalQueueId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountWithdrawn", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenPrice", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "quoteReceived", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalQueuedWithdrawals", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "WithdrawProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "withdrawer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "withdrawalQueueId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amountWithdrawn", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalQueuedWithdrawals", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "WithdrawQueued", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "withdrawalQueueId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenPrice", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalQueuedWithdrawals", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokensReturned", + "type": "uint256" + } + ], + "name": "WithdrawReverted", + "type": "event" + }, + { + "inputs": [], + "name": "CBTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "insolventSettlements", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountQuoteFreed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountQuoteReserved", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountBaseFreed", + "type": "uint256" + } + ], + "name": "boardSettlement", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cbParams", + "outputs": [ + { + "internalType": "uint256", + "name": "liquidityCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidityCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "ivVarianceCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewVarianceCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "ivVarianceCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewVarianceCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "boardSettlementCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "contractAdjustmentCBTimeout", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "exchangeBase", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountBase", + "type": "uint256" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "totalCost", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reservedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "longScaleFactor", + "type": "uint256" + } + ], + "name": "freeCallCollateralAndSendPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountQuoteFreed", + "type": "uint256" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "totalCost", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reservedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "longScaleFactor", + "type": "uint256" + } + ], + "name": "freePutCollateralAndSendPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getCBParams", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "liquidityCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidityCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "ivVarianceCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewVarianceCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "ivVarianceCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewVarianceCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "boardSettlementCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "contractAdjustmentCBTimeout", + "type": "uint256" + } + ], + "internalType": "struct LiquidityPool.CircuitBreakerParameters", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLiquidity", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "freeLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "burnableLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reservedCollatLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "pendingDeltaLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "usedDeltaLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "NAV", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "longScaleFactor", + "type": "uint256" + } + ], + "internalType": "struct LiquidityPool.Liquidity", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLpParams", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "minDepositWithdraw", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "depositDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "withdrawalDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "withdrawalFee", + "type": "uint256" + }, + { + "internalType": "address", + "name": "guardianMultisig", + "type": "address" + }, + { + "internalType": "uint256", + "name": "guardianDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "adjustmentNetScalingFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "callCollatScalingFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "putCollatScalingFactor", + "type": "uint256" + } + ], + "internalType": "struct LiquidityPool.LiquidityPoolParameters", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTokenPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTokenPriceWithCheck", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenPrice", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isStale", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "circuitBreakerExpiry", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalPoolValueQuote", + "outputs": [ + { + "internalType": "uint256", + "name": "totalPoolValue", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalTokenSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract BaseExchangeAdapter", + "name": "_exchangeAdapter", + "type": "address" + }, + { + "internalType": "contract OptionMarket", + "name": "_optionMarket", + "type": "address" + }, + { + "internalType": "contract LiquidityToken", + "name": "_liquidityToken", + "type": "address" + }, + { + "internalType": "contract OptionGreekCache", + "name": "_greekCache", + "type": "address" + }, + { + "internalType": "contract PoolHedger", + "name": "_poolHedger", + "type": "address" + }, + { + "internalType": "contract ShortCollateral", + "name": "_shortCollateral", + "type": "address" + }, + { + "internalType": "contract IERC20Decimals", + "name": "_quoteAsset", + "type": "address" + }, + { + "internalType": "contract IERC20Decimals", + "name": "_baseAsset", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountQuote", + "type": "uint256" + } + ], + "name": "initiateDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountLiquidityToken", + "type": "uint256" + } + ], + "name": "initiateWithdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "insolventSettlementAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "liquidationInsolventAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "spotPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "freeLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + } + ], + "name": "lockCallCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "freeLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + } + ], + "name": "lockPutCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "lockedCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "quote", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "base", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lpParams", + "outputs": [ + { + "internalType": "uint256", + "name": "minDepositWithdraw", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "depositDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "withdrawalDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "withdrawalFee", + "type": "uint256" + }, + { + "internalType": "address", + "name": "guardianMultisig", + "type": "address" + }, + { + "internalType": "uint256", + "name": "guardianDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "adjustmentNetScalingFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "callCollatScalingFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "putCollatScalingFactor", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nextQueuedDepositId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nextQueuedWithdrawalId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "nominateNewOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "nominatedOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "poolHedger", + "outputs": [ + { + "internalType": "contract PoolHedger", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "limit", + "type": "uint256" + } + ], + "name": "processDepositQueue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "limit", + "type": "uint256" + } + ], + "name": "processWithdrawalQueue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "protectedQuote", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "queuedDepositHead", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "queuedDeposits", + "outputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "mintedTokens", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "depositInitiatedTime", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "queuedWithdrawalHead", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "queuedWithdrawals", + "outputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountTokens", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "quoteSent", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "withdrawInitiatedTime", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "quoteAsset", + "outputs": [ + { + "internalType": "contract IERC20Decimals", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountBase", + "type": "uint256" + } + ], + "name": "reclaimInsolventBase", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amountQuote", + "type": "uint256" + } + ], + "name": "reclaimInsolventQuote", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20Decimals", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + } + ], + "name": "recoverFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "sendSettlementValue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountContracts", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "freeLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reservedFee", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isCall", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + } + ], + "name": "sendShortPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "liquidityCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidityCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "ivVarianceCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewVarianceCBThreshold", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "ivVarianceCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewVarianceCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "boardSettlementCBTimeout", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "contractAdjustmentCBTimeout", + "type": "uint256" + } + ], + "internalType": "struct LiquidityPool.CircuitBreakerParameters", + "name": "_cbParams", + "type": "tuple" + } + ], + "name": "setCircuitBreakerParameters", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "minDepositWithdraw", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "depositDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "withdrawalDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "withdrawalFee", + "type": "uint256" + }, + { + "internalType": "address", + "name": "guardianMultisig", + "type": "address" + }, + { + "internalType": "uint256", + "name": "guardianDelay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "adjustmentNetScalingFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "callCollatScalingFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "putCollatScalingFactor", + "type": "uint256" + } + ], + "internalType": "struct LiquidityPool.LiquidityPoolParameters", + "name": "_lpParams", + "type": "tuple" + } + ], + "name": "setLiquidityPoolParameters", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract PoolHedger", + "name": "newPoolHedger", + "type": "address" + } + ], + "name": "setPoolHedger", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalOutstandingSettlements", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalQueuedDeposits", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalQueuedWithdrawals", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferQuoteToHedge", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "updateCBs", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "insolvencyAmountInQuote", + "type": "uint256" + } + ], + "name": "updateLiquidationInsolvency", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/src/apps/lyra-newport/contracts/abis/lyra-liquidity-token.json b/src/apps/lyra-newport/contracts/abis/lyra-liquidity-token.json new file mode 100644 index 000000000..345cef8df --- /dev/null +++ b/src/apps/lyra-newport/contracts/abis/lyra-liquidity-token.json @@ -0,0 +1,541 @@ +[ + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + } + ], + "name": "AlreadyInitialised", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "liquidityPool", + "type": "address" + } + ], + "name": "OnlyLiquidityPool", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "nominatedOwner", + "type": "address" + } + ], + "name": "OnlyNominatedOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OnlyOwner", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "contract ILiquidityTracker", + "name": "liquidityTracker", + "type": "address" + } + ], + "name": "LiquidityTrackerSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerNominated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenAmount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_liquidityPool", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "liquidityPool", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "liquidityTracker", + "outputs": [ + { + "internalType": "contract ILiquidityTracker", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenAmount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "nominateNewOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "nominatedOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ILiquidityTracker", + "name": "_liquidityTracker", + "type": "address" + } + ], + "name": "setLiquidityTracker", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/src/apps/lyra-newport/contracts/abis/lyra-lp-staking.json b/src/apps/lyra-newport/contracts/abis/lyra-lp-staking.json new file mode 100644 index 000000000..2526a9765 --- /dev/null +++ b/src/apps/lyra-newport/contracts/abis/lyra-lp-staking.json @@ -0,0 +1,652 @@ +[ + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardsDistribution", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardsToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_stakingToken", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerNominated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "isPaused", + "type": "bool" + } + ], + "name": "PauseChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Recovered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "RewardPaid", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "newDuration", + "type": "uint256" + } + ], + "name": "RewardsDurationUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Staked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdrawn", + "type": "event" + }, + { + "constant": false, + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "earned", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "exit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "getReward", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getRewardForDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lastPauseTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lastTimeRewardApplicable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lastUpdateTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "nominateNewOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "nominatedOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "reward", + "type": "uint256" + } + ], + "name": "notifyRewardAmount", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "periodFinish", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenAmount", + "type": "uint256" + } + ], + "name": "recoverERC20", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "rewardPerToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "rewardPerTokenStored", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "rewardRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "rewards", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "rewardsDistribution", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "rewardsDuration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "rewardsToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bool", + "name": "_paused", + "type": "bool" + } + ], + "name": "setPaused", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_rewardsDistribution", + "type": "address" + } + ], + "name": "setRewardsDistribution", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_rewardsDuration", + "type": "uint256" + } + ], + "name": "setRewardsDuration", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "stake", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "stakingToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userRewardPerTokenPaid", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/src/apps/lyra-newport/contracts/abis/lyra-option-market.json b/src/apps/lyra-newport/contracts/abis/lyra-option-market.json new file mode 100644 index 000000000..bdee4a376 --- /dev/null +++ b/src/apps/lyra-newport/contracts/abis/lyra-option-market.json @@ -0,0 +1,2081 @@ +[ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + } + ], + "name": "AlreadyInitialised", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "BaseTransferFailed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "name": "BoardAlreadySettled", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "boardExpiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "currentTime", + "type": "uint256" + } + ], + "name": "BoardExpired", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "name": "BoardIsFrozen", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "name": "BoardNotExpired", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "name": "BoardNotFrozen", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + } + ], + "name": "CannotRecoverQuote", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "enum OptionMarket.NonZeroValues", + "name": "valueType", + "type": "uint8" + } + ], + "name": "ExpectedNonZeroValue", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "name": "InvalidBoardId", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "currentTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxBoardExpiry", + "type": "uint256" + } + ], + "name": "InvalidExpiryTimestamp", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxBoardExpiry", + "type": "uint256" + }, + { + "internalType": "address", + "name": "securityModule", + "type": "address" + }, + { + "internalType": "uint256", + "name": "feePortionReserved", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "staticBaseSettlementFee", + "type": "uint256" + } + ], + "internalType": "struct OptionMarket.OptionMarketParameters", + "name": "optionMarketParams", + "type": "tuple" + } + ], + "name": "InvalidOptionMarketParams", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + } + ], + "name": "InvalidStrikeId", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "nominatedOwner", + "type": "address" + } + ], + "name": "OnlyNominatedOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OnlyOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "securityModule", + "type": "address" + } + ], + "name": "OnlySecurityModule", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "QuoteTransferFailed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "strikesLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewsLength", + "type": "uint256" + } + ], + "name": "StrikeSkewLengthMismatch", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "totalCost", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minCost", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxCost", + "type": "uint256" + } + ], + "name": "TotalCostOutsideOfSpecifiedBounds", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "iterations", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expectedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tradeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalAmount", + "type": "uint256" + } + ], + "name": "TradeIterationsHasRemainder", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "baseIv", + "type": "uint256" + } + ], + "name": "BoardBaseIvSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "baseIv", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "frozen", + "type": "bool" + } + ], + "name": "BoardCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "frozen", + "type": "bool" + } + ], + "name": "BoardFrozen", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "spotPriceAtExpiry", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalUserLongProfitQuote", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalBoardLongCallCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalBoardLongPutCollateral", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalAMMShortCallProfitBase", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalAMMShortCallProfitQuote", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalAMMShortPutProfitQuote", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "longScaleFactor", + "type": "uint256" + } + ], + "name": "BoardSettled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "maxBoardExpiry", + "type": "uint256" + }, + { + "internalType": "address", + "name": "securityModule", + "type": "address" + }, + { + "internalType": "uint256", + "name": "feePortionReserved", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "staticBaseSettlementFee", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct OptionMarket.OptionMarketParameters", + "name": "optionMarketParams", + "type": "tuple" + } + ], + "name": "OptionMarketParamsSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerNominated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "securityModule", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "quoteAmount", + "type": "uint256" + } + ], + "name": "SMClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "skew", + "type": "uint256" + } + ], + "name": "StrikeAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "skew", + "type": "uint256" + } + ], + "name": "StrikeSkewSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "trader", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "referrer", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "enum OptionMarket.TradeDirection", + "name": "tradeDirection", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "setCollateralTo", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isForceClose", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "spotPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reservedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalCost", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct OptionMarket.TradeEventData", + "name": "trade", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "optionPriceFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "spotPriceFee", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "int256", + "name": "preTradeAmmNetStdVega", + "type": "int256" + }, + { + "internalType": "int256", + "name": "postTradeAmmNetStdVega", + "type": "int256" + }, + { + "internalType": "uint256", + "name": "vegaUtil", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volTraded", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "NAV", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "vegaUtilFee", + "type": "uint256" + } + ], + "internalType": "struct OptionMarketPricer.VegaUtilFeeComponents", + "name": "vegaUtilFee", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "varianceFeeCoefficient", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "vega", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "vegaCoefficient", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skew", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skewCoefficient", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "ivVariance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "ivVarianceCoefficient", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "varianceFee", + "type": "uint256" + } + ], + "internalType": "struct OptionMarketPricer.VarianceFeeComponents", + "name": "varianceFee", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "totalFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalCost", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volTraded", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "newBaseIv", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "newSkew", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct OptionMarketPricer.TradeResult[]", + "name": "tradeResults", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "address", + "name": "rewardBeneficiary", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "uint256", + "name": "returnCollateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lpPremiums", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lpFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidatorFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "smFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "insolventAmount", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct OptionMarket.LiquidationEventData", + "name": "liquidation", + "type": "tuple" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "longScaleFactor", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "Trade", + "type": "event" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountCollateral", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skew", + "type": "uint256" + } + ], + "name": "addStrikeToBoard", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "baseAsset", + "outputs": [ + { + "internalType": "contract IERC20Decimals", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "boardToPriceAtExpiry", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "iterations", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "setCollateralTo", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTotalCost", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTotalCost", + "type": "uint256" + }, + { + "internalType": "address", + "name": "referrer", + "type": "address" + } + ], + "internalType": "struct OptionMarket.TradeInputParameters", + "name": "params", + "type": "tuple" + } + ], + "name": "closePosition", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalCost", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalFee", + "type": "uint256" + } + ], + "internalType": "struct OptionMarket.Result", + "name": "result", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseIV", + "type": "uint256" + }, + { + "internalType": "uint256[]", + "name": "strikePrices", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "skews", + "type": "uint256[]" + }, + { + "internalType": "bool", + "name": "frozen", + "type": "bool" + } + ], + "name": "createOptionBoard", + "outputs": [ + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "iterations", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "setCollateralTo", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTotalCost", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTotalCost", + "type": "uint256" + }, + { + "internalType": "address", + "name": "referrer", + "type": "address" + } + ], + "internalType": "struct OptionMarket.TradeInputParameters", + "name": "params", + "type": "tuple" + } + ], + "name": "forceClosePosition", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalCost", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalFee", + "type": "uint256" + } + ], + "internalType": "struct OptionMarket.Result", + "name": "result", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "name": "forceSettleBoard", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "name": "getBoardAndStrikeDetails", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "iv", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "frozen", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "strikeIds", + "type": "uint256[]" + } + ], + "internalType": "struct OptionMarket.OptionBoard", + "name": "", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skew", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "longCall", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "shortCallBase", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "shortCallQuote", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "longPut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "shortPut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "internalType": "struct OptionMarket.Strike[]", + "name": "", + "type": "tuple[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "name": "getBoardStrikes", + "outputs": [ + { + "internalType": "uint256[]", + "name": "strikeIds", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLiveBoards", + "outputs": [ + { + "internalType": "uint256[]", + "name": "_liveBoards", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNumLiveBoards", + "outputs": [ + { + "internalType": "uint256", + "name": "numLiveBoards", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "name": "getOptionBoard", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "iv", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "frozen", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "strikeIds", + "type": "uint256[]" + } + ], + "internalType": "struct OptionMarket.OptionBoard", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOptionMarketParams", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "maxBoardExpiry", + "type": "uint256" + }, + { + "internalType": "address", + "name": "securityModule", + "type": "address" + }, + { + "internalType": "uint256", + "name": "feePortionReserved", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "staticBaseSettlementFee", + "type": "uint256" + } + ], + "internalType": "struct OptionMarket.OptionMarketParameters", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + } + ], + "name": "getSettlementParameters", + "outputs": [ + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "priceAtExpiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeToBaseReturned", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "longScaleFactor", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + } + ], + "name": "getStrike", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skew", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "longCall", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "shortCallBase", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "shortCallQuote", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "longPut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "shortPut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "internalType": "struct OptionMarket.Strike", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + } + ], + "name": "getStrikeAndBoard", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skew", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "longCall", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "shortCallBase", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "shortCallQuote", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "longPut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "shortPut", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "internalType": "struct OptionMarket.Strike", + "name": "", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "iv", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "frozen", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "strikeIds", + "type": "uint256[]" + } + ], + "internalType": "struct OptionMarket.OptionBoard", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + } + ], + "name": "getStrikeAndExpiry", + "outputs": [ + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract BaseExchangeAdapter", + "name": "_exchangeAdapter", + "type": "address" + }, + { + "internalType": "contract LiquidityPool", + "name": "_liquidityPool", + "type": "address" + }, + { + "internalType": "contract OptionMarketPricer", + "name": "_optionPricer", + "type": "address" + }, + { + "internalType": "contract OptionGreekCache", + "name": "_greekCache", + "type": "address" + }, + { + "internalType": "contract ShortCollateral", + "name": "_shortCollateral", + "type": "address" + }, + { + "internalType": "contract OptionToken", + "name": "_optionToken", + "type": "address" + }, + { + "internalType": "contract IERC20Decimals", + "name": "_quoteAsset", + "type": "address" + }, + { + "internalType": "contract IERC20Decimals", + "name": "_baseAsset", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "rewardBeneficiary", + "type": "address" + } + ], + "name": "liquidatePosition", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "nominateNewOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "nominatedOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "iterations", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "setCollateralTo", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minTotalCost", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxTotalCost", + "type": "uint256" + }, + { + "internalType": "address", + "name": "referrer", + "type": "address" + } + ], + "internalType": "struct OptionMarket.TradeInputParameters", + "name": "params", + "type": "tuple" + } + ], + "name": "openPosition", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalCost", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalFee", + "type": "uint256" + } + ], + "internalType": "struct OptionMarket.Result", + "name": "result", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "quoteAsset", + "outputs": [ + { + "internalType": "contract IERC20Decimals", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20Decimals", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + } + ], + "name": "recoverFunds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "scaledLongsForBoard", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseIv", + "type": "uint256" + } + ], + "name": "setBoardBaseIv", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "frozen", + "type": "bool" + } + ], + "name": "setBoardFrozen", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "maxBoardExpiry", + "type": "uint256" + }, + { + "internalType": "address", + "name": "securityModule", + "type": "address" + }, + { + "internalType": "uint256", + "name": "feePortionReserved", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "staticBaseSettlementFee", + "type": "uint256" + } + ], + "internalType": "struct OptionMarket.OptionMarketParameters", + "name": "_optionMarketParams", + "type": "tuple" + } + ], + "name": "setOptionMarketParams", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "skew", + "type": "uint256" + } + ], + "name": "setStrikeSkew", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "boardId", + "type": "uint256" + } + ], + "name": "settleExpiredBoard", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "smClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/src/apps/lyra-newport/contracts/abis/lyra-option-token.json b/src/apps/lyra-newport/contracts/abis/lyra-option-token.json new file mode 100644 index 000000000..df3983330 --- /dev/null +++ b/src/apps/lyra-newport/contracts/abis/lyra-option-token.json @@ -0,0 +1,2267 @@ +[ + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "invalidPositionId", + "type": "bool" + }, + { + "internalType": "bool", + "name": "positionInactive", + "type": "bool" + }, + { + "internalType": "bool", + "name": "isShort", + "type": "bool" + } + ], + "name": "AddingCollateralToInvalidPosition", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + } + ], + "internalType": "struct OptionToken.OptionPosition", + "name": "position", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "spotPrice", + "type": "uint256" + } + ], + "name": "AdjustmentResultsInMinimumCollateralNotBeingMet", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + } + ], + "name": "AlreadyInitialised", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "invalidPositionId", + "type": "bool" + }, + { + "internalType": "bool", + "name": "positionInactive", + "type": "bool" + }, + { + "internalType": "bool", + "name": "strikeMismatch", + "type": "bool" + }, + { + "internalType": "bool", + "name": "optionTypeMismatch", + "type": "bool" + } + ], + "name": "CannotAdjustInvalidPosition", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + } + ], + "name": "CannotClosePositionZero", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + } + ], + "name": "CannotOpenZeroAmount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "setCollateralTo", + "type": "uint256" + } + ], + "name": "FullyClosingWithNonZeroSetCollateral", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "penaltyRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidatorFeeRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "smFeeRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minLiquidationFee", + "type": "uint256" + } + ], + "internalType": "struct OptionToken.PartialCollateralParameters", + "name": "partialCollatParams", + "type": "tuple" + } + ], + "name": "InvalidPartialCollateralParameters", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "originalPositionAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "splitAmount", + "type": "uint256" + } + ], + "name": "InvalidSplitAmount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + } + ], + "name": "MergingUnapprovedPosition", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + } + ], + "name": "MustMergeTwoOrMorePositions", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "nominatedOwner", + "type": "address" + } + ], + "name": "OnlyNominatedOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "optionMarket", + "type": "address" + } + ], + "name": "OnlyOptionMarket", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OnlyOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "trader", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OnlyOwnerCanAdjustPosition", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "shortCollateral", + "type": "address" + } + ], + "name": "OnlyShortCollateral", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + } + ], + "internalType": "struct OptionToken.OptionPosition", + "name": "firstPosition", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + } + ], + "internalType": "struct OptionToken.OptionPosition", + "name": "nextPosition", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "ownerMismatch", + "type": "bool" + }, + { + "internalType": "bool", + "name": "strikeMismatch", + "type": "bool" + }, + { + "internalType": "bool", + "name": "optionTypeMismatch", + "type": "bool" + }, + { + "internalType": "bool", + "name": "duplicatePositionId", + "type": "bool" + } + ], + "name": "PositionMismatchWhenMerging", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + } + ], + "internalType": "struct OptionToken.OptionPosition", + "name": "position", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "spotPrice", + "type": "uint256" + } + ], + "name": "PositionNotLiquidatable", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + } + ], + "internalType": "struct OptionToken.OptionPosition", + "name": "position", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "spotPrice", + "type": "uint256" + } + ], + "name": "ResultingNewPositionLiquidatable", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + } + ], + "internalType": "struct OptionToken.OptionPosition", + "name": "position", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "spotPrice", + "type": "uint256" + } + ], + "name": "ResultingOriginalPositionLiquidatable", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + } + ], + "name": "SplittingUnapprovedPosition", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + } + ], + "name": "StrikeIsSettled", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerNominated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "penaltyRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidatorFeeRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "smFeeRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minLiquidationFee", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct OptionToken.PartialCollateralParameters", + "name": "partialCollateralParams", + "type": "tuple" + } + ], + "name": "PartialCollateralParamsSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "enum OptionToken.PositionUpdatedType", + "name": "updatedType", + "type": "uint8" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + } + ], + "indexed": false, + "internalType": "struct OptionToken.OptionPosition", + "name": "position", + "type": "tuple" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "PositionUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "URI", + "type": "string" + } + ], + "name": "URISet", + "type": "event" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountCollateral", + "type": "uint256" + } + ], + "name": "addCollateral", + "outputs": [ + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "isBuy", + "type": "bool" + }, + { + "internalType": "bool", + "name": "isForceClose", + "type": "bool" + }, + { + "internalType": "enum OptionMarket.TradeDirection", + "name": "tradeDirection", + "type": "uint8" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "spotPrice", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "freeLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "burnableLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reservedCollatLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "pendingDeltaLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "usedDeltaLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "NAV", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "longScaleFactor", + "type": "uint256" + } + ], + "internalType": "struct LiquidityPool.Liquidity", + "name": "liquidity", + "type": "tuple" + } + ], + "internalType": "struct OptionMarket.TradeParameters", + "name": "trade", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "trader", + "type": "address" + }, + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "optionCost", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "setCollateralTo", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isOpen", + "type": "bool" + } + ], + "name": "adjustPosition", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "int256", + "name": "pendingCollateral", + "type": "int256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + } + ], + "internalType": "struct OptionToken.OptionPosition", + "name": "position", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "spotPrice", + "type": "uint256" + } + ], + "name": "canLiquidate", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "gwavPremium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "userPositionCollateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "convertedMinLiquidationFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "insolvencyMultiplier", + "type": "uint256" + } + ], + "name": "getLiquidationFees", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "returnCollateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lpPremiums", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lpFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidatorFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "smFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "insolventAmount", + "type": "uint256" + } + ], + "internalType": "struct OptionToken.LiquidationFees", + "name": "liquidationFees", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + } + ], + "name": "getOptionPosition", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + } + ], + "internalType": "struct OptionToken.OptionPosition", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "positionIds", + "type": "uint256[]" + } + ], + "name": "getOptionPositions", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + } + ], + "internalType": "struct OptionToken.OptionPosition[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "getOwnerPositions", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + } + ], + "internalType": "struct OptionToken.OptionPosition[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPartialCollatParams", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "penaltyRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidatorFeeRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "smFeeRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minLiquidationFee", + "type": "uint256" + } + ], + "internalType": "struct OptionToken.PartialCollateralParameters", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + } + ], + "name": "getPositionState", + "outputs": [ + { + "internalType": "enum OptionToken.PositionState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + } + ], + "name": "getPositionWithOwner", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "internalType": "struct OptionToken.PositionWithOwner", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "positionIds", + "type": "uint256[]" + } + ], + "name": "getPositionsWithOwner", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "internalType": "struct OptionToken.PositionWithOwner[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract OptionMarket", + "name": "_optionMarket", + "type": "address" + }, + { + "internalType": "contract OptionGreekCache", + "name": "_greekCache", + "type": "address" + }, + { + "internalType": "address", + "name": "_shortCollateral", + "type": "address" + }, + { + "internalType": "contract BaseExchangeAdapter", + "name": "_exchangeAdapter", + "type": "address" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "bool", + "name": "isBuy", + "type": "bool" + }, + { + "internalType": "bool", + "name": "isForceClose", + "type": "bool" + }, + { + "internalType": "enum OptionMarket.TradeDirection", + "name": "tradeDirection", + "type": "uint8" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikePrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "spotPrice", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "freeLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "burnableLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "reservedCollatLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "pendingDeltaLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "usedDeltaLiquidity", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "NAV", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "longScaleFactor", + "type": "uint256" + } + ], + "internalType": "struct LiquidityPool.Liquidity", + "name": "liquidity", + "type": "tuple" + } + ], + "internalType": "struct OptionMarket.TradeParameters", + "name": "trade", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "totalCost", + "type": "uint256" + } + ], + "name": "liquidate", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "returnCollateral", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lpPremiums", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lpFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidatorFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "smFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "insolventAmount", + "type": "uint256" + } + ], + "internalType": "struct OptionToken.LiquidationFees", + "name": "liquidationFees", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "positionIds", + "type": "uint256[]" + } + ], + "name": "merge", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nextId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "nominateNewOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "nominatedOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "partialCollatParams", + "outputs": [ + { + "internalType": "uint256", + "name": "penaltyRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidatorFeeRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "smFeeRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minLiquidationFee", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "positions", + "outputs": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "strikeId", + "type": "uint256" + }, + { + "internalType": "enum OptionMarket.OptionType", + "name": "optionType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + }, + { + "internalType": "enum OptionToken.PositionState", + "name": "state", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "penaltyRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidatorFeeRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "smFeeRatio", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minLiquidationFee", + "type": "uint256" + } + ], + "internalType": "struct OptionToken.PartialCollateralParameters", + "name": "_partialCollatParams", + "type": "tuple" + } + ], + "name": "setPartialCollateralParams", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "setURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "positionIds", + "type": "uint256[]" + } + ], + "name": "settlePositions", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "positionId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "newAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "newCollateral", + "type": "uint256" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + } + ], + "name": "split", + "outputs": [ + { + "internalType": "uint256", + "name": "newPositionId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/src/apps/lyra-newport/contracts/abis/lyra-registry.json b/src/apps/lyra-newport/contracts/abis/lyra-registry.json new file mode 100644 index 000000000..75ace1c01 --- /dev/null +++ b/src/apps/lyra-newport/contracts/abis/lyra-registry.json @@ -0,0 +1,576 @@ +[ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "contractName", + "type": "bytes32" + } + ], + "name": "NonExistentGlobalContract", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "optionMarket", + "type": "address" + } + ], + "name": "NonExistentMarket", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "nominatedOwner", + "type": "address" + } + ], + "name": "OnlyNominatedOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OnlyOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "thrower", + "type": "address" + }, + { + "internalType": "address", + "name": "market", + "type": "address" + } + ], + "name": "RemovingInvalidMarket", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "name", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "addr", + "type": "address" + } + ], + "name": "GlobalAddressUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract OptionMarket", + "name": "market", + "type": "address" + } + ], + "name": "MarketRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract OptionMarket", + "name": "optionMarket", + "type": "address" + }, + { + "components": [ + { + "internalType": "contract LiquidityPool", + "name": "liquidityPool", + "type": "address" + }, + { + "internalType": "contract LiquidityToken", + "name": "liquidityToken", + "type": "address" + }, + { + "internalType": "contract OptionGreekCache", + "name": "greekCache", + "type": "address" + }, + { + "internalType": "contract OptionMarket", + "name": "optionMarket", + "type": "address" + }, + { + "internalType": "contract OptionMarketPricer", + "name": "optionMarketPricer", + "type": "address" + }, + { + "internalType": "contract OptionToken", + "name": "optionToken", + "type": "address" + }, + { + "internalType": "contract PoolHedger", + "name": "poolHedger", + "type": "address" + }, + { + "internalType": "contract ShortCollateral", + "name": "shortCollateral", + "type": "address" + }, + { + "internalType": "contract GWAVOracle", + "name": "gwavOracle", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "quoteAsset", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "baseAsset", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct LyraRegistry.OptionMarketAddresses", + "name": "market", + "type": "tuple" + } + ], + "name": "MarketUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnerNominated", + "type": "event" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "contract LiquidityPool", + "name": "liquidityPool", + "type": "address" + }, + { + "internalType": "contract LiquidityToken", + "name": "liquidityToken", + "type": "address" + }, + { + "internalType": "contract OptionGreekCache", + "name": "greekCache", + "type": "address" + }, + { + "internalType": "contract OptionMarket", + "name": "optionMarket", + "type": "address" + }, + { + "internalType": "contract OptionMarketPricer", + "name": "optionMarketPricer", + "type": "address" + }, + { + "internalType": "contract OptionToken", + "name": "optionToken", + "type": "address" + }, + { + "internalType": "contract PoolHedger", + "name": "poolHedger", + "type": "address" + }, + { + "internalType": "contract ShortCollateral", + "name": "shortCollateral", + "type": "address" + }, + { + "internalType": "contract GWAVOracle", + "name": "gwavOracle", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "quoteAsset", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "baseAsset", + "type": "address" + } + ], + "internalType": "struct LyraRegistry.OptionMarketAddresses", + "name": "newMarketAddresses", + "type": "tuple" + } + ], + "name": "addMarket", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "contractName", + "type": "bytes32" + } + ], + "name": "getGlobalAddress", + "outputs": [ + { + "internalType": "address", + "name": "globalContract", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract OptionMarket", + "name": "optionMarket", + "type": "address" + } + ], + "name": "getMarketAddresses", + "outputs": [ + { + "components": [ + { + "internalType": "contract LiquidityPool", + "name": "liquidityPool", + "type": "address" + }, + { + "internalType": "contract LiquidityToken", + "name": "liquidityToken", + "type": "address" + }, + { + "internalType": "contract OptionGreekCache", + "name": "greekCache", + "type": "address" + }, + { + "internalType": "contract OptionMarket", + "name": "optionMarket", + "type": "address" + }, + { + "internalType": "contract OptionMarketPricer", + "name": "optionMarketPricer", + "type": "address" + }, + { + "internalType": "contract OptionToken", + "name": "optionToken", + "type": "address" + }, + { + "internalType": "contract PoolHedger", + "name": "poolHedger", + "type": "address" + }, + { + "internalType": "contract ShortCollateral", + "name": "shortCollateral", + "type": "address" + }, + { + "internalType": "contract GWAVOracle", + "name": "gwavOracle", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "quoteAsset", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "baseAsset", + "type": "address" + } + ], + "internalType": "struct LyraRegistry.OptionMarketAddresses", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "globalAddresses", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract OptionMarket", + "name": "", + "type": "address" + } + ], + "name": "marketAddresses", + "outputs": [ + { + "internalType": "contract LiquidityPool", + "name": "liquidityPool", + "type": "address" + }, + { + "internalType": "contract LiquidityToken", + "name": "liquidityToken", + "type": "address" + }, + { + "internalType": "contract OptionGreekCache", + "name": "greekCache", + "type": "address" + }, + { + "internalType": "contract OptionMarket", + "name": "optionMarket", + "type": "address" + }, + { + "internalType": "contract OptionMarketPricer", + "name": "optionMarketPricer", + "type": "address" + }, + { + "internalType": "contract OptionToken", + "name": "optionToken", + "type": "address" + }, + { + "internalType": "contract PoolHedger", + "name": "poolHedger", + "type": "address" + }, + { + "internalType": "contract ShortCollateral", + "name": "shortCollateral", + "type": "address" + }, + { + "internalType": "contract GWAVOracle", + "name": "gwavOracle", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "quoteAsset", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "baseAsset", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "nominateNewOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "nominatedOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "optionMarkets", + "outputs": [ + { + "internalType": "contract OptionMarket", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract OptionMarket", + "name": "market", + "type": "address" + } + ], + "name": "removeMarket", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "names", + "type": "bytes32[]" + }, + { + "internalType": "address[]", + "name": "addresses", + "type": "address[]" + } + ], + "name": "updateGlobalAddresses", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/src/apps/lyra-newport/contracts/abis/lyra-stk-lyra.json b/src/apps/lyra-newport/contracts/abis/lyra-stk-lyra.json new file mode 100644 index 000000000..312885fea --- /dev/null +++ b/src/apps/lyra-newport/contracts/abis/lyra-stk-lyra.json @@ -0,0 +1,1329 @@ +[ + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "stakedToken", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "rewardToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "cooldownSeconds", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "unstakeWindow", + "type": "uint256" + }, + { + "internalType": "address", + "name": "rewardsVault", + "type": "address" + }, + { + "internalType": "address", + "name": "emissionManager", + "type": "address" + }, + { + "internalType": "uint128", + "name": "distributionDuration", + "type": "uint128" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "asset", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "emission", + "type": "uint256" + } + ], + "name": "AssetConfigUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "asset", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "AssetIndexUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "Cooldown", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cooldownTimestamp", + "type": "uint256" + } + ], + "name": "CooldownUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "indexed": false, + "internalType": "enum IGovernancePowerDelegationToken.DelegationType", + "name": "delegationType", + "type": "uint8" + } + ], + "name": "DelegateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IGovernancePowerDelegationToken.DelegationType", + "name": "delegationType", + "type": "uint8" + } + ], + "name": "DelegatedPowerChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Redeem", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "RewardsAccrued", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "RewardsClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "onBehalfOf", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Staked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "asset", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "UserIndexUpdated", + "type": "event" + }, + { + "inputs": [], + "name": "COOLDOWN_SECONDS", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DELEGATE_BY_TYPE_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DELEGATE_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DISTRIBUTION_END", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "EIP712_REVISION", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "EMISSION_MANAGER", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PERMIT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REVISION", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REWARDS_VAULT", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REWARD_TOKEN", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "STAKED_TOKEN", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "UNSTAKE_WINDOW", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_aaveGovernance", + "outputs": [ + { + "internalType": "contract ITransferHook", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "_nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "_votingSnapshots", + "outputs": [ + { + "internalType": "uint128", + "name": "blockNumber", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "value", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "_votingSnapshotsCounts", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "assets", + "outputs": [ + { + "internalType": "uint128", + "name": "emissionPerSecond", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "lastUpdateTimestamp", + "type": "uint128" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "claimRewards", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint128", + "name": "emissionPerSecond", + "type": "uint128" + }, + { + "internalType": "uint256", + "name": "totalStaked", + "type": "uint256" + }, + { + "internalType": "address", + "name": "underlyingAsset", + "type": "address" + } + ], + "internalType": "struct DistributionTypes.AssetConfigInput[]", + "name": "assetsConfigInput", + "type": "tuple[]" + } + ], + "name": "configureAssets", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "cooldown", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + } + ], + "name": "delegate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "delegateBySig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "internalType": "enum IGovernancePowerDelegationToken.DelegationType", + "name": "delegationType", + "type": "uint8" + } + ], + "name": "delegateByType", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegatee", + "type": "address" + }, + { + "internalType": "enum IGovernancePowerDelegationToken.DelegationType", + "name": "delegationType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiry", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "delegateByTypeBySig", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "delegator", + "type": "address" + }, + { + "internalType": "enum IGovernancePowerDelegationToken.DelegationType", + "name": "delegationType", + "type": "uint8" + } + ], + "name": "getDelegateeByType", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "fromCooldownTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountToReceive", + "type": "uint256" + }, + { + "internalType": "address", + "name": "toAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "toBalance", + "type": "uint256" + } + ], + "name": "getNextCooldownTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "enum IGovernancePowerDelegationToken.DelegationType", + "name": "delegationType", + "type": "uint8" + } + ], + "name": "getPowerAtBlock", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "enum IGovernancePowerDelegationToken.DelegationType", + "name": "delegationType", + "type": "uint8" + } + ], + "name": "getPowerCurrent", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "staker", + "type": "address" + } + ], + "name": "getTotalRewardsBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "address", + "name": "asset", + "type": "address" + } + ], + "name": "getUserAssetData", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "redeem", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "onBehalfOf", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "stake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "stakerRewardsToClaim", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "stakersCooldowns", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "name": "totalSupplyAt", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/src/apps/lyra-newport/contracts/ethers/LyraLiquidityPool.ts b/src/apps/lyra-newport/contracts/ethers/LyraLiquidityPool.ts new file mode 100644 index 000000000..85a425169 --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/LyraLiquidityPool.ts @@ -0,0 +1,2123 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; + +export declare namespace LiquidityPool { + export type CircuitBreakerParametersStruct = { + liquidityCBThreshold: PromiseOrValue; + liquidityCBTimeout: PromiseOrValue; + ivVarianceCBThreshold: PromiseOrValue; + skewVarianceCBThreshold: PromiseOrValue; + ivVarianceCBTimeout: PromiseOrValue; + skewVarianceCBTimeout: PromiseOrValue; + boardSettlementCBTimeout: PromiseOrValue; + contractAdjustmentCBTimeout: PromiseOrValue; + }; + + export type CircuitBreakerParametersStructOutput = [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + ] & { + liquidityCBThreshold: BigNumber; + liquidityCBTimeout: BigNumber; + ivVarianceCBThreshold: BigNumber; + skewVarianceCBThreshold: BigNumber; + ivVarianceCBTimeout: BigNumber; + skewVarianceCBTimeout: BigNumber; + boardSettlementCBTimeout: BigNumber; + contractAdjustmentCBTimeout: BigNumber; + }; + + export type LiquidityPoolParametersStruct = { + minDepositWithdraw: PromiseOrValue; + depositDelay: PromiseOrValue; + withdrawalDelay: PromiseOrValue; + withdrawalFee: PromiseOrValue; + guardianMultisig: PromiseOrValue; + guardianDelay: PromiseOrValue; + adjustmentNetScalingFactor: PromiseOrValue; + callCollatScalingFactor: PromiseOrValue; + putCollatScalingFactor: PromiseOrValue; + }; + + export type LiquidityPoolParametersStructOutput = [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + string, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + ] & { + minDepositWithdraw: BigNumber; + depositDelay: BigNumber; + withdrawalDelay: BigNumber; + withdrawalFee: BigNumber; + guardianMultisig: string; + guardianDelay: BigNumber; + adjustmentNetScalingFactor: BigNumber; + callCollatScalingFactor: BigNumber; + putCollatScalingFactor: BigNumber; + }; + + export type LiquidityStruct = { + freeLiquidity: PromiseOrValue; + burnableLiquidity: PromiseOrValue; + reservedCollatLiquidity: PromiseOrValue; + pendingDeltaLiquidity: PromiseOrValue; + usedDeltaLiquidity: PromiseOrValue; + NAV: PromiseOrValue; + longScaleFactor: PromiseOrValue; + }; + + export type LiquidityStructOutput = [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + freeLiquidity: BigNumber; + burnableLiquidity: BigNumber; + reservedCollatLiquidity: BigNumber; + pendingDeltaLiquidity: BigNumber; + usedDeltaLiquidity: BigNumber; + NAV: BigNumber; + longScaleFactor: BigNumber; + }; +} + +export interface LyraLiquidityPoolInterface extends utils.Interface { + functions: { + 'CBTimestamp()': FunctionFragment; + 'acceptOwnership()': FunctionFragment; + 'boardSettlement(uint256,uint256,uint256,uint256)': FunctionFragment; + 'cbParams()': FunctionFragment; + 'exchangeBase()': FunctionFragment; + 'freeCallCollateralAndSendPremium(uint256,address,uint256,uint256,uint256)': FunctionFragment; + 'freePutCollateralAndSendPremium(uint256,address,uint256,uint256,uint256)': FunctionFragment; + 'getCBParams()': FunctionFragment; + 'getLiquidity()': FunctionFragment; + 'getLpParams()': FunctionFragment; + 'getTokenPrice()': FunctionFragment; + 'getTokenPriceWithCheck()': FunctionFragment; + 'getTotalPoolValueQuote()': FunctionFragment; + 'getTotalTokenSupply()': FunctionFragment; + 'init(address,address,address,address,address,address,address,address)': FunctionFragment; + 'initiateDeposit(address,uint256)': FunctionFragment; + 'initiateWithdraw(address,uint256)': FunctionFragment; + 'insolventSettlementAmount()': FunctionFragment; + 'liquidationInsolventAmount()': FunctionFragment; + 'lockCallCollateral(uint256,uint256,uint256,uint256)': FunctionFragment; + 'lockPutCollateral(uint256,uint256,uint256)': FunctionFragment; + 'lockedCollateral()': FunctionFragment; + 'lpParams()': FunctionFragment; + 'nextQueuedDepositId()': FunctionFragment; + 'nextQueuedWithdrawalId()': FunctionFragment; + 'nominateNewOwner(address)': FunctionFragment; + 'nominatedOwner()': FunctionFragment; + 'owner()': FunctionFragment; + 'poolHedger()': FunctionFragment; + 'processDepositQueue(uint256)': FunctionFragment; + 'processWithdrawalQueue(uint256)': FunctionFragment; + 'protectedQuote()': FunctionFragment; + 'queuedDepositHead()': FunctionFragment; + 'queuedDeposits(uint256)': FunctionFragment; + 'queuedWithdrawalHead()': FunctionFragment; + 'queuedWithdrawals(uint256)': FunctionFragment; + 'quoteAsset()': FunctionFragment; + 'reclaimInsolventBase(uint256)': FunctionFragment; + 'reclaimInsolventQuote(uint256)': FunctionFragment; + 'recoverFunds(address,address)': FunctionFragment; + 'sendSettlementValue(address,uint256)': FunctionFragment; + 'sendShortPremium(address,uint256,uint256,uint256,uint256,bool,uint256)': FunctionFragment; + 'setCircuitBreakerParameters((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256))': FunctionFragment; + 'setLiquidityPoolParameters((uint256,uint256,uint256,uint256,address,uint256,uint256,uint256,uint256))': FunctionFragment; + 'setPoolHedger(address)': FunctionFragment; + 'totalOutstandingSettlements()': FunctionFragment; + 'totalQueuedDeposits()': FunctionFragment; + 'totalQueuedWithdrawals()': FunctionFragment; + 'transferQuoteToHedge(uint256)': FunctionFragment; + 'updateCBs()': FunctionFragment; + 'updateLiquidationInsolvency(uint256)': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'CBTimestamp' + | 'acceptOwnership' + | 'boardSettlement' + | 'cbParams' + | 'exchangeBase' + | 'freeCallCollateralAndSendPremium' + | 'freePutCollateralAndSendPremium' + | 'getCBParams' + | 'getLiquidity' + | 'getLpParams' + | 'getTokenPrice' + | 'getTokenPriceWithCheck' + | 'getTotalPoolValueQuote' + | 'getTotalTokenSupply' + | 'init' + | 'initiateDeposit' + | 'initiateWithdraw' + | 'insolventSettlementAmount' + | 'liquidationInsolventAmount' + | 'lockCallCollateral' + | 'lockPutCollateral' + | 'lockedCollateral' + | 'lpParams' + | 'nextQueuedDepositId' + | 'nextQueuedWithdrawalId' + | 'nominateNewOwner' + | 'nominatedOwner' + | 'owner' + | 'poolHedger' + | 'processDepositQueue' + | 'processWithdrawalQueue' + | 'protectedQuote' + | 'queuedDepositHead' + | 'queuedDeposits' + | 'queuedWithdrawalHead' + | 'queuedWithdrawals' + | 'quoteAsset' + | 'reclaimInsolventBase' + | 'reclaimInsolventQuote' + | 'recoverFunds' + | 'sendSettlementValue' + | 'sendShortPremium' + | 'setCircuitBreakerParameters' + | 'setLiquidityPoolParameters' + | 'setPoolHedger' + | 'totalOutstandingSettlements' + | 'totalQueuedDeposits' + | 'totalQueuedWithdrawals' + | 'transferQuoteToHedge' + | 'updateCBs' + | 'updateLiquidationInsolvency', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'CBTimestamp', values?: undefined): string; + encodeFunctionData(functionFragment: 'acceptOwnership', values?: undefined): string; + encodeFunctionData( + functionFragment: 'boardSettlement', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData(functionFragment: 'cbParams', values?: undefined): string; + encodeFunctionData(functionFragment: 'exchangeBase', values?: undefined): string; + encodeFunctionData( + functionFragment: 'freeCallCollateralAndSendPremium', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'freePutCollateralAndSendPremium', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData(functionFragment: 'getCBParams', values?: undefined): string; + encodeFunctionData(functionFragment: 'getLiquidity', values?: undefined): string; + encodeFunctionData(functionFragment: 'getLpParams', values?: undefined): string; + encodeFunctionData(functionFragment: 'getTokenPrice', values?: undefined): string; + encodeFunctionData(functionFragment: 'getTokenPriceWithCheck', values?: undefined): string; + encodeFunctionData(functionFragment: 'getTotalPoolValueQuote', values?: undefined): string; + encodeFunctionData(functionFragment: 'getTotalTokenSupply', values?: undefined): string; + encodeFunctionData( + functionFragment: 'init', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'initiateDeposit', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'initiateWithdraw', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'insolventSettlementAmount', values?: undefined): string; + encodeFunctionData(functionFragment: 'liquidationInsolventAmount', values?: undefined): string; + encodeFunctionData( + functionFragment: 'lockCallCollateral', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'lockPutCollateral', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'lockedCollateral', values?: undefined): string; + encodeFunctionData(functionFragment: 'lpParams', values?: undefined): string; + encodeFunctionData(functionFragment: 'nextQueuedDepositId', values?: undefined): string; + encodeFunctionData(functionFragment: 'nextQueuedWithdrawalId', values?: undefined): string; + encodeFunctionData(functionFragment: 'nominateNewOwner', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'nominatedOwner', values?: undefined): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; + encodeFunctionData(functionFragment: 'poolHedger', values?: undefined): string; + encodeFunctionData(functionFragment: 'processDepositQueue', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'processWithdrawalQueue', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'protectedQuote', values?: undefined): string; + encodeFunctionData(functionFragment: 'queuedDepositHead', values?: undefined): string; + encodeFunctionData(functionFragment: 'queuedDeposits', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'queuedWithdrawalHead', values?: undefined): string; + encodeFunctionData(functionFragment: 'queuedWithdrawals', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'quoteAsset', values?: undefined): string; + encodeFunctionData(functionFragment: 'reclaimInsolventBase', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'reclaimInsolventQuote', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'recoverFunds', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'sendSettlementValue', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'sendShortPremium', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'setCircuitBreakerParameters', + values: [LiquidityPool.CircuitBreakerParametersStruct], + ): string; + encodeFunctionData( + functionFragment: 'setLiquidityPoolParameters', + values: [LiquidityPool.LiquidityPoolParametersStruct], + ): string; + encodeFunctionData(functionFragment: 'setPoolHedger', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'totalOutstandingSettlements', values?: undefined): string; + encodeFunctionData(functionFragment: 'totalQueuedDeposits', values?: undefined): string; + encodeFunctionData(functionFragment: 'totalQueuedWithdrawals', values?: undefined): string; + encodeFunctionData(functionFragment: 'transferQuoteToHedge', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'updateCBs', values?: undefined): string; + encodeFunctionData(functionFragment: 'updateLiquidationInsolvency', values: [PromiseOrValue]): string; + + decodeFunctionResult(functionFragment: 'CBTimestamp', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'acceptOwnership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'boardSettlement', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'cbParams', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'exchangeBase', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'freeCallCollateralAndSendPremium', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'freePutCollateralAndSendPremium', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getCBParams', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getLiquidity', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getLpParams', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getTokenPrice', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getTokenPriceWithCheck', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getTotalPoolValueQuote', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getTotalTokenSupply', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'init', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'initiateDeposit', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'initiateWithdraw', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'insolventSettlementAmount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'liquidationInsolventAmount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'lockCallCollateral', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'lockPutCollateral', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'lockedCollateral', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'lpParams', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nextQueuedDepositId', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nextQueuedWithdrawalId', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nominateNewOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nominatedOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'poolHedger', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'processDepositQueue', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'processWithdrawalQueue', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'protectedQuote', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'queuedDepositHead', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'queuedDeposits', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'queuedWithdrawalHead', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'queuedWithdrawals', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'quoteAsset', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'reclaimInsolventBase', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'reclaimInsolventQuote', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'recoverFunds', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'sendSettlementValue', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'sendShortPremium', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setCircuitBreakerParameters', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setLiquidityPoolParameters', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setPoolHedger', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'totalOutstandingSettlements', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'totalQueuedDeposits', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'totalQueuedWithdrawals', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'transferQuoteToHedge', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'updateCBs', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'updateLiquidationInsolvency', data: BytesLike): Result; + + events: { + 'BasePurchased(uint256,uint256)': EventFragment; + 'BaseSold(uint256,uint256)': EventFragment; + 'BoardSettlement(uint256,uint256,uint256)': EventFragment; + 'BoardSettlementCircuitBreakerUpdated(uint256)': EventFragment; + 'CallCollateralFreed(uint256,uint256)': EventFragment; + 'CallCollateralLocked(uint256,uint256)': EventFragment; + 'CheckingCanProcess(uint256,bool,bool,bool,bool)': EventFragment; + 'CircuitBreakerParametersUpdated(tuple)': EventFragment; + 'CircuitBreakerUpdated(uint256,bool,bool,bool,bool)': EventFragment; + 'DepositProcessed(address,address,uint256,uint256,uint256,uint256,uint256)': EventFragment; + 'DepositQueued(address,address,uint256,uint256,uint256,uint256)': EventFragment; + 'InsolventSettlementAmountUpdated(uint256,uint256)': EventFragment; + 'LiquidityPoolParametersUpdated(tuple)': EventFragment; + 'OutstandingSettlementSent(address,uint256,uint256)': EventFragment; + 'OwnerChanged(address,address)': EventFragment; + 'OwnerNominated(address)': EventFragment; + 'PoolHedgerUpdated(address)': EventFragment; + 'PremiumTransferred(address,uint256,uint256)': EventFragment; + 'PutCollateralFreed(uint256,uint256)': EventFragment; + 'PutCollateralLocked(uint256,uint256)': EventFragment; + 'QuoteTransferredToPoolHedger(uint256)': EventFragment; + 'WithdrawPartiallyProcessed(address,address,uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment; + 'WithdrawProcessed(address,address,uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment; + 'WithdrawQueued(address,address,uint256,uint256,uint256,uint256)': EventFragment; + 'WithdrawReverted(address,address,uint256,uint256,uint256,uint256,uint256)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'BasePurchased'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'BaseSold'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'BoardSettlement'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'BoardSettlementCircuitBreakerUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'CallCollateralFreed'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'CallCollateralLocked'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'CheckingCanProcess'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'CircuitBreakerParametersUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'CircuitBreakerUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'DepositProcessed'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'DepositQueued'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'InsolventSettlementAmountUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'LiquidityPoolParametersUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OutstandingSettlementSent'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnerChanged'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnerNominated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'PoolHedgerUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'PremiumTransferred'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'PutCollateralFreed'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'PutCollateralLocked'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'QuoteTransferredToPoolHedger'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'WithdrawPartiallyProcessed'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'WithdrawProcessed'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'WithdrawQueued'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'WithdrawReverted'): EventFragment; +} + +export interface BasePurchasedEventObject { + quoteSpent: BigNumber; + baseReceived: BigNumber; +} +export type BasePurchasedEvent = TypedEvent<[BigNumber, BigNumber], BasePurchasedEventObject>; + +export type BasePurchasedEventFilter = TypedEventFilter; + +export interface BaseSoldEventObject { + amountBase: BigNumber; + quoteReceived: BigNumber; +} +export type BaseSoldEvent = TypedEvent<[BigNumber, BigNumber], BaseSoldEventObject>; + +export type BaseSoldEventFilter = TypedEventFilter; + +export interface BoardSettlementEventObject { + insolventSettlementAmount: BigNumber; + amountQuoteReserved: BigNumber; + totalOutstandingSettlements: BigNumber; +} +export type BoardSettlementEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], BoardSettlementEventObject>; + +export type BoardSettlementEventFilter = TypedEventFilter; + +export interface BoardSettlementCircuitBreakerUpdatedEventObject { + newTimestamp: BigNumber; +} +export type BoardSettlementCircuitBreakerUpdatedEvent = TypedEvent< + [BigNumber], + BoardSettlementCircuitBreakerUpdatedEventObject +>; + +export type BoardSettlementCircuitBreakerUpdatedEventFilter = + TypedEventFilter; + +export interface CallCollateralFreedEventObject { + baseFreed: BigNumber; + lockedCollateralBase: BigNumber; +} +export type CallCollateralFreedEvent = TypedEvent<[BigNumber, BigNumber], CallCollateralFreedEventObject>; + +export type CallCollateralFreedEventFilter = TypedEventFilter; + +export interface CallCollateralLockedEventObject { + baseLocked: BigNumber; + lockedCollateralBase: BigNumber; +} +export type CallCollateralLockedEvent = TypedEvent<[BigNumber, BigNumber], CallCollateralLockedEventObject>; + +export type CallCollateralLockedEventFilter = TypedEventFilter; + +export interface CheckingCanProcessEventObject { + entryId: BigNumber; + boardNotStale: boolean; + validEntry: boolean; + guardianBypass: boolean; + delaysExpired: boolean; +} +export type CheckingCanProcessEvent = TypedEvent< + [BigNumber, boolean, boolean, boolean, boolean], + CheckingCanProcessEventObject +>; + +export type CheckingCanProcessEventFilter = TypedEventFilter; + +export interface CircuitBreakerParametersUpdatedEventObject { + cbParams: LiquidityPool.CircuitBreakerParametersStructOutput; +} +export type CircuitBreakerParametersUpdatedEvent = TypedEvent< + [LiquidityPool.CircuitBreakerParametersStructOutput], + CircuitBreakerParametersUpdatedEventObject +>; + +export type CircuitBreakerParametersUpdatedEventFilter = TypedEventFilter; + +export interface CircuitBreakerUpdatedEventObject { + newTimestamp: BigNumber; + ivVarianceThresholdCrossed: boolean; + skewVarianceThresholdCrossed: boolean; + liquidityThresholdCrossed: boolean; + contractAdjustmentEvent: boolean; +} +export type CircuitBreakerUpdatedEvent = TypedEvent< + [BigNumber, boolean, boolean, boolean, boolean], + CircuitBreakerUpdatedEventObject +>; + +export type CircuitBreakerUpdatedEventFilter = TypedEventFilter; + +export interface DepositProcessedEventObject { + caller: string; + beneficiary: string; + depositQueueId: BigNumber; + amountDeposited: BigNumber; + tokenPrice: BigNumber; + tokensReceived: BigNumber; + timestamp: BigNumber; +} +export type DepositProcessedEvent = TypedEvent< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber], + DepositProcessedEventObject +>; + +export type DepositProcessedEventFilter = TypedEventFilter; + +export interface DepositQueuedEventObject { + depositor: string; + beneficiary: string; + depositQueueId: BigNumber; + amountDeposited: BigNumber; + totalQueuedDeposits: BigNumber; + timestamp: BigNumber; +} +export type DepositQueuedEvent = TypedEvent< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber], + DepositQueuedEventObject +>; + +export type DepositQueuedEventFilter = TypedEventFilter; + +export interface InsolventSettlementAmountUpdatedEventObject { + amountQuoteAdded: BigNumber; + totalInsolventSettlementAmount: BigNumber; +} +export type InsolventSettlementAmountUpdatedEvent = TypedEvent< + [BigNumber, BigNumber], + InsolventSettlementAmountUpdatedEventObject +>; + +export type InsolventSettlementAmountUpdatedEventFilter = TypedEventFilter; + +export interface LiquidityPoolParametersUpdatedEventObject { + lpParams: LiquidityPool.LiquidityPoolParametersStructOutput; +} +export type LiquidityPoolParametersUpdatedEvent = TypedEvent< + [LiquidityPool.LiquidityPoolParametersStructOutput], + LiquidityPoolParametersUpdatedEventObject +>; + +export type LiquidityPoolParametersUpdatedEventFilter = TypedEventFilter; + +export interface OutstandingSettlementSentEventObject { + user: string; + amount: BigNumber; + totalOutstandingSettlements: BigNumber; +} +export type OutstandingSettlementSentEvent = TypedEvent< + [string, BigNumber, BigNumber], + OutstandingSettlementSentEventObject +>; + +export type OutstandingSettlementSentEventFilter = TypedEventFilter; + +export interface OwnerChangedEventObject { + oldOwner: string; + newOwner: string; +} +export type OwnerChangedEvent = TypedEvent<[string, string], OwnerChangedEventObject>; + +export type OwnerChangedEventFilter = TypedEventFilter; + +export interface OwnerNominatedEventObject { + newOwner: string; +} +export type OwnerNominatedEvent = TypedEvent<[string], OwnerNominatedEventObject>; + +export type OwnerNominatedEventFilter = TypedEventFilter; + +export interface PoolHedgerUpdatedEventObject { + poolHedger: string; +} +export type PoolHedgerUpdatedEvent = TypedEvent<[string], PoolHedgerUpdatedEventObject>; + +export type PoolHedgerUpdatedEventFilter = TypedEventFilter; + +export interface PremiumTransferredEventObject { + recipient: string; + recipientPortion: BigNumber; + optionMarketPortion: BigNumber; +} +export type PremiumTransferredEvent = TypedEvent<[string, BigNumber, BigNumber], PremiumTransferredEventObject>; + +export type PremiumTransferredEventFilter = TypedEventFilter; + +export interface PutCollateralFreedEventObject { + quoteFreed: BigNumber; + lockedCollateralQuote: BigNumber; +} +export type PutCollateralFreedEvent = TypedEvent<[BigNumber, BigNumber], PutCollateralFreedEventObject>; + +export type PutCollateralFreedEventFilter = TypedEventFilter; + +export interface PutCollateralLockedEventObject { + quoteLocked: BigNumber; + lockedCollateralQuote: BigNumber; +} +export type PutCollateralLockedEvent = TypedEvent<[BigNumber, BigNumber], PutCollateralLockedEventObject>; + +export type PutCollateralLockedEventFilter = TypedEventFilter; + +export interface QuoteTransferredToPoolHedgerEventObject { + amountQuote: BigNumber; +} +export type QuoteTransferredToPoolHedgerEvent = TypedEvent<[BigNumber], QuoteTransferredToPoolHedgerEventObject>; + +export type QuoteTransferredToPoolHedgerEventFilter = TypedEventFilter; + +export interface WithdrawPartiallyProcessedEventObject { + caller: string; + beneficiary: string; + withdrawalQueueId: BigNumber; + amountWithdrawn: BigNumber; + tokenPrice: BigNumber; + quoteReceived: BigNumber; + totalQueuedWithdrawals: BigNumber; + timestamp: BigNumber; +} +export type WithdrawPartiallyProcessedEvent = TypedEvent< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber], + WithdrawPartiallyProcessedEventObject +>; + +export type WithdrawPartiallyProcessedEventFilter = TypedEventFilter; + +export interface WithdrawProcessedEventObject { + caller: string; + beneficiary: string; + withdrawalQueueId: BigNumber; + amountWithdrawn: BigNumber; + tokenPrice: BigNumber; + quoteReceived: BigNumber; + totalQueuedWithdrawals: BigNumber; + timestamp: BigNumber; +} +export type WithdrawProcessedEvent = TypedEvent< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber], + WithdrawProcessedEventObject +>; + +export type WithdrawProcessedEventFilter = TypedEventFilter; + +export interface WithdrawQueuedEventObject { + withdrawer: string; + beneficiary: string; + withdrawalQueueId: BigNumber; + amountWithdrawn: BigNumber; + totalQueuedWithdrawals: BigNumber; + timestamp: BigNumber; +} +export type WithdrawQueuedEvent = TypedEvent< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber], + WithdrawQueuedEventObject +>; + +export type WithdrawQueuedEventFilter = TypedEventFilter; + +export interface WithdrawRevertedEventObject { + caller: string; + beneficiary: string; + withdrawalQueueId: BigNumber; + tokenPrice: BigNumber; + totalQueuedWithdrawals: BigNumber; + timestamp: BigNumber; + tokensReturned: BigNumber; +} +export type WithdrawRevertedEvent = TypedEvent< + [string, string, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber], + WithdrawRevertedEventObject +>; + +export type WithdrawRevertedEventFilter = TypedEventFilter; + +export interface LyraLiquidityPool extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: LyraLiquidityPoolInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners(eventFilter?: TypedEventFilter): Array>; + listeners(eventName?: string): Array; + removeAllListeners(eventFilter: TypedEventFilter): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + CBTimestamp(overrides?: CallOverrides): Promise<[BigNumber]>; + + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + boardSettlement( + insolventSettlements: PromiseOrValue, + amountQuoteFreed: PromiseOrValue, + amountQuoteReserved: PromiseOrValue, + amountBaseFreed: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + cbParams(overrides?: CallOverrides): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + liquidityCBThreshold: BigNumber; + liquidityCBTimeout: BigNumber; + ivVarianceCBThreshold: BigNumber; + skewVarianceCBThreshold: BigNumber; + ivVarianceCBTimeout: BigNumber; + skewVarianceCBTimeout: BigNumber; + boardSettlementCBTimeout: BigNumber; + contractAdjustmentCBTimeout: BigNumber; + } + >; + + exchangeBase(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + freeCallCollateralAndSendPremium( + amountBase: PromiseOrValue, + recipient: PromiseOrValue, + totalCost: PromiseOrValue, + reservedFee: PromiseOrValue, + longScaleFactor: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + freePutCollateralAndSendPremium( + amountQuoteFreed: PromiseOrValue, + recipient: PromiseOrValue, + totalCost: PromiseOrValue, + reservedFee: PromiseOrValue, + longScaleFactor: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getCBParams(overrides?: CallOverrides): Promise<[LiquidityPool.CircuitBreakerParametersStructOutput]>; + + getLiquidity(overrides?: CallOverrides): Promise<[LiquidityPool.LiquidityStructOutput]>; + + getLpParams(overrides?: CallOverrides): Promise<[LiquidityPool.LiquidityPoolParametersStructOutput]>; + + getTokenPrice(overrides?: CallOverrides): Promise<[BigNumber]>; + + getTokenPriceWithCheck(overrides?: CallOverrides): Promise< + [BigNumber, boolean, BigNumber] & { + tokenPrice: BigNumber; + isStale: boolean; + circuitBreakerExpiry: BigNumber; + } + >; + + getTotalPoolValueQuote(overrides?: CallOverrides): Promise<[BigNumber] & { totalPoolValue: BigNumber }>; + + getTotalTokenSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + init( + _exchangeAdapter: PromiseOrValue, + _optionMarket: PromiseOrValue, + _liquidityToken: PromiseOrValue, + _greekCache: PromiseOrValue, + _poolHedger: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _quoteAsset: PromiseOrValue, + _baseAsset: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + initiateDeposit( + beneficiary: PromiseOrValue, + amountQuote: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + initiateWithdraw( + beneficiary: PromiseOrValue, + amountLiquidityToken: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + insolventSettlementAmount(overrides?: CallOverrides): Promise<[BigNumber]>; + + liquidationInsolventAmount(overrides?: CallOverrides): Promise<[BigNumber]>; + + lockCallCollateral( + amount: PromiseOrValue, + spotPrice: PromiseOrValue, + freeLiquidity: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + lockPutCollateral( + amount: PromiseOrValue, + freeLiquidity: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + lockedCollateral( + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber] & { quote: BigNumber; base: BigNumber }>; + + lpParams(overrides?: CallOverrides): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, string, BigNumber, BigNumber, BigNumber, BigNumber] & { + minDepositWithdraw: BigNumber; + depositDelay: BigNumber; + withdrawalDelay: BigNumber; + withdrawalFee: BigNumber; + guardianMultisig: string; + guardianDelay: BigNumber; + adjustmentNetScalingFactor: BigNumber; + callCollatScalingFactor: BigNumber; + putCollatScalingFactor: BigNumber; + } + >; + + nextQueuedDepositId(overrides?: CallOverrides): Promise<[BigNumber]>; + + nextQueuedWithdrawalId(overrides?: CallOverrides): Promise<[BigNumber]>; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise<[string]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + poolHedger(overrides?: CallOverrides): Promise<[string]>; + + processDepositQueue( + limit: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + processWithdrawalQueue( + limit: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + protectedQuote(overrides?: CallOverrides): Promise<[BigNumber]>; + + queuedDepositHead(overrides?: CallOverrides): Promise<[BigNumber]>; + + queuedDeposits( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, string, BigNumber, BigNumber, BigNumber] & { + id: BigNumber; + beneficiary: string; + amountLiquidity: BigNumber; + mintedTokens: BigNumber; + depositInitiatedTime: BigNumber; + } + >; + + queuedWithdrawalHead(overrides?: CallOverrides): Promise<[BigNumber]>; + + queuedWithdrawals( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, string, BigNumber, BigNumber, BigNumber] & { + id: BigNumber; + beneficiary: string; + amountTokens: BigNumber; + quoteSent: BigNumber; + withdrawInitiatedTime: BigNumber; + } + >; + + quoteAsset(overrides?: CallOverrides): Promise<[string]>; + + reclaimInsolventBase( + amountBase: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + reclaimInsolventQuote( + amountQuote: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + recoverFunds( + token: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + sendSettlementValue( + user: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + sendShortPremium( + recipient: PromiseOrValue, + amountContracts: PromiseOrValue, + premium: PromiseOrValue, + freeLiquidity: PromiseOrValue, + reservedFee: PromiseOrValue, + isCall: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setCircuitBreakerParameters( + _cbParams: LiquidityPool.CircuitBreakerParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setLiquidityPoolParameters( + _lpParams: LiquidityPool.LiquidityPoolParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPoolHedger( + newPoolHedger: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + totalOutstandingSettlements(overrides?: CallOverrides): Promise<[BigNumber]>; + + totalQueuedDeposits(overrides?: CallOverrides): Promise<[BigNumber]>; + + totalQueuedWithdrawals(overrides?: CallOverrides): Promise<[BigNumber]>; + + transferQuoteToHedge( + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + updateCBs(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + updateLiquidationInsolvency( + insolvencyAmountInQuote: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + CBTimestamp(overrides?: CallOverrides): Promise; + + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + boardSettlement( + insolventSettlements: PromiseOrValue, + amountQuoteFreed: PromiseOrValue, + amountQuoteReserved: PromiseOrValue, + amountBaseFreed: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + cbParams(overrides?: CallOverrides): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + liquidityCBThreshold: BigNumber; + liquidityCBTimeout: BigNumber; + ivVarianceCBThreshold: BigNumber; + skewVarianceCBThreshold: BigNumber; + ivVarianceCBTimeout: BigNumber; + skewVarianceCBTimeout: BigNumber; + boardSettlementCBTimeout: BigNumber; + contractAdjustmentCBTimeout: BigNumber; + } + >; + + exchangeBase(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + freeCallCollateralAndSendPremium( + amountBase: PromiseOrValue, + recipient: PromiseOrValue, + totalCost: PromiseOrValue, + reservedFee: PromiseOrValue, + longScaleFactor: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + freePutCollateralAndSendPremium( + amountQuoteFreed: PromiseOrValue, + recipient: PromiseOrValue, + totalCost: PromiseOrValue, + reservedFee: PromiseOrValue, + longScaleFactor: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getCBParams(overrides?: CallOverrides): Promise; + + getLiquidity(overrides?: CallOverrides): Promise; + + getLpParams(overrides?: CallOverrides): Promise; + + getTokenPrice(overrides?: CallOverrides): Promise; + + getTokenPriceWithCheck(overrides?: CallOverrides): Promise< + [BigNumber, boolean, BigNumber] & { + tokenPrice: BigNumber; + isStale: boolean; + circuitBreakerExpiry: BigNumber; + } + >; + + getTotalPoolValueQuote(overrides?: CallOverrides): Promise; + + getTotalTokenSupply(overrides?: CallOverrides): Promise; + + init( + _exchangeAdapter: PromiseOrValue, + _optionMarket: PromiseOrValue, + _liquidityToken: PromiseOrValue, + _greekCache: PromiseOrValue, + _poolHedger: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _quoteAsset: PromiseOrValue, + _baseAsset: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + initiateDeposit( + beneficiary: PromiseOrValue, + amountQuote: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + initiateWithdraw( + beneficiary: PromiseOrValue, + amountLiquidityToken: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + insolventSettlementAmount(overrides?: CallOverrides): Promise; + + liquidationInsolventAmount(overrides?: CallOverrides): Promise; + + lockCallCollateral( + amount: PromiseOrValue, + spotPrice: PromiseOrValue, + freeLiquidity: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + lockPutCollateral( + amount: PromiseOrValue, + freeLiquidity: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + lockedCollateral(overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & { quote: BigNumber; base: BigNumber }>; + + lpParams(overrides?: CallOverrides): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, string, BigNumber, BigNumber, BigNumber, BigNumber] & { + minDepositWithdraw: BigNumber; + depositDelay: BigNumber; + withdrawalDelay: BigNumber; + withdrawalFee: BigNumber; + guardianMultisig: string; + guardianDelay: BigNumber; + adjustmentNetScalingFactor: BigNumber; + callCollatScalingFactor: BigNumber; + putCollatScalingFactor: BigNumber; + } + >; + + nextQueuedDepositId(overrides?: CallOverrides): Promise; + + nextQueuedWithdrawalId(overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + poolHedger(overrides?: CallOverrides): Promise; + + processDepositQueue( + limit: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + processWithdrawalQueue( + limit: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + protectedQuote(overrides?: CallOverrides): Promise; + + queuedDepositHead(overrides?: CallOverrides): Promise; + + queuedDeposits( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, string, BigNumber, BigNumber, BigNumber] & { + id: BigNumber; + beneficiary: string; + amountLiquidity: BigNumber; + mintedTokens: BigNumber; + depositInitiatedTime: BigNumber; + } + >; + + queuedWithdrawalHead(overrides?: CallOverrides): Promise; + + queuedWithdrawals( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, string, BigNumber, BigNumber, BigNumber] & { + id: BigNumber; + beneficiary: string; + amountTokens: BigNumber; + quoteSent: BigNumber; + withdrawInitiatedTime: BigNumber; + } + >; + + quoteAsset(overrides?: CallOverrides): Promise; + + reclaimInsolventBase( + amountBase: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + reclaimInsolventQuote( + amountQuote: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + recoverFunds( + token: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + sendSettlementValue( + user: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + sendShortPremium( + recipient: PromiseOrValue, + amountContracts: PromiseOrValue, + premium: PromiseOrValue, + freeLiquidity: PromiseOrValue, + reservedFee: PromiseOrValue, + isCall: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setCircuitBreakerParameters( + _cbParams: LiquidityPool.CircuitBreakerParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setLiquidityPoolParameters( + _lpParams: LiquidityPool.LiquidityPoolParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPoolHedger( + newPoolHedger: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + totalOutstandingSettlements(overrides?: CallOverrides): Promise; + + totalQueuedDeposits(overrides?: CallOverrides): Promise; + + totalQueuedWithdrawals(overrides?: CallOverrides): Promise; + + transferQuoteToHedge( + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + updateCBs(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + updateLiquidationInsolvency( + insolvencyAmountInQuote: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + callStatic: { + CBTimestamp(overrides?: CallOverrides): Promise; + + acceptOwnership(overrides?: CallOverrides): Promise; + + boardSettlement( + insolventSettlements: PromiseOrValue, + amountQuoteFreed: PromiseOrValue, + amountQuoteReserved: PromiseOrValue, + amountBaseFreed: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + cbParams(overrides?: CallOverrides): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + liquidityCBThreshold: BigNumber; + liquidityCBTimeout: BigNumber; + ivVarianceCBThreshold: BigNumber; + skewVarianceCBThreshold: BigNumber; + ivVarianceCBTimeout: BigNumber; + skewVarianceCBTimeout: BigNumber; + boardSettlementCBTimeout: BigNumber; + contractAdjustmentCBTimeout: BigNumber; + } + >; + + exchangeBase(overrides?: CallOverrides): Promise; + + freeCallCollateralAndSendPremium( + amountBase: PromiseOrValue, + recipient: PromiseOrValue, + totalCost: PromiseOrValue, + reservedFee: PromiseOrValue, + longScaleFactor: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + freePutCollateralAndSendPremium( + amountQuoteFreed: PromiseOrValue, + recipient: PromiseOrValue, + totalCost: PromiseOrValue, + reservedFee: PromiseOrValue, + longScaleFactor: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getCBParams(overrides?: CallOverrides): Promise; + + getLiquidity(overrides?: CallOverrides): Promise; + + getLpParams(overrides?: CallOverrides): Promise; + + getTokenPrice(overrides?: CallOverrides): Promise; + + getTokenPriceWithCheck(overrides?: CallOverrides): Promise< + [BigNumber, boolean, BigNumber] & { + tokenPrice: BigNumber; + isStale: boolean; + circuitBreakerExpiry: BigNumber; + } + >; + + getTotalPoolValueQuote(overrides?: CallOverrides): Promise; + + getTotalTokenSupply(overrides?: CallOverrides): Promise; + + init( + _exchangeAdapter: PromiseOrValue, + _optionMarket: PromiseOrValue, + _liquidityToken: PromiseOrValue, + _greekCache: PromiseOrValue, + _poolHedger: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _quoteAsset: PromiseOrValue, + _baseAsset: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + initiateDeposit( + beneficiary: PromiseOrValue, + amountQuote: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + initiateWithdraw( + beneficiary: PromiseOrValue, + amountLiquidityToken: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + insolventSettlementAmount(overrides?: CallOverrides): Promise; + + liquidationInsolventAmount(overrides?: CallOverrides): Promise; + + lockCallCollateral( + amount: PromiseOrValue, + spotPrice: PromiseOrValue, + freeLiquidity: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + lockPutCollateral( + amount: PromiseOrValue, + freeLiquidity: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + lockedCollateral( + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber] & { quote: BigNumber; base: BigNumber }>; + + lpParams(overrides?: CallOverrides): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber, string, BigNumber, BigNumber, BigNumber, BigNumber] & { + minDepositWithdraw: BigNumber; + depositDelay: BigNumber; + withdrawalDelay: BigNumber; + withdrawalFee: BigNumber; + guardianMultisig: string; + guardianDelay: BigNumber; + adjustmentNetScalingFactor: BigNumber; + callCollatScalingFactor: BigNumber; + putCollatScalingFactor: BigNumber; + } + >; + + nextQueuedDepositId(overrides?: CallOverrides): Promise; + + nextQueuedWithdrawalId(overrides?: CallOverrides): Promise; + + nominateNewOwner(_owner: PromiseOrValue, overrides?: CallOverrides): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + poolHedger(overrides?: CallOverrides): Promise; + + processDepositQueue(limit: PromiseOrValue, overrides?: CallOverrides): Promise; + + processWithdrawalQueue(limit: PromiseOrValue, overrides?: CallOverrides): Promise; + + protectedQuote(overrides?: CallOverrides): Promise; + + queuedDepositHead(overrides?: CallOverrides): Promise; + + queuedDeposits( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, string, BigNumber, BigNumber, BigNumber] & { + id: BigNumber; + beneficiary: string; + amountLiquidity: BigNumber; + mintedTokens: BigNumber; + depositInitiatedTime: BigNumber; + } + >; + + queuedWithdrawalHead(overrides?: CallOverrides): Promise; + + queuedWithdrawals( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, string, BigNumber, BigNumber, BigNumber] & { + id: BigNumber; + beneficiary: string; + amountTokens: BigNumber; + quoteSent: BigNumber; + withdrawInitiatedTime: BigNumber; + } + >; + + quoteAsset(overrides?: CallOverrides): Promise; + + reclaimInsolventBase(amountBase: PromiseOrValue, overrides?: CallOverrides): Promise; + + reclaimInsolventQuote(amountQuote: PromiseOrValue, overrides?: CallOverrides): Promise; + + recoverFunds( + token: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + sendSettlementValue( + user: PromiseOrValue, + amount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + sendShortPremium( + recipient: PromiseOrValue, + amountContracts: PromiseOrValue, + premium: PromiseOrValue, + freeLiquidity: PromiseOrValue, + reservedFee: PromiseOrValue, + isCall: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + setCircuitBreakerParameters( + _cbParams: LiquidityPool.CircuitBreakerParametersStruct, + overrides?: CallOverrides, + ): Promise; + + setLiquidityPoolParameters( + _lpParams: LiquidityPool.LiquidityPoolParametersStruct, + overrides?: CallOverrides, + ): Promise; + + setPoolHedger(newPoolHedger: PromiseOrValue, overrides?: CallOverrides): Promise; + + totalOutstandingSettlements(overrides?: CallOverrides): Promise; + + totalQueuedDeposits(overrides?: CallOverrides): Promise; + + totalQueuedWithdrawals(overrides?: CallOverrides): Promise; + + transferQuoteToHedge(amount: PromiseOrValue, overrides?: CallOverrides): Promise; + + updateCBs(overrides?: CallOverrides): Promise; + + updateLiquidationInsolvency( + insolvencyAmountInQuote: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + }; + + filters: { + 'BasePurchased(uint256,uint256)'(quoteSpent?: null, baseReceived?: null): BasePurchasedEventFilter; + BasePurchased(quoteSpent?: null, baseReceived?: null): BasePurchasedEventFilter; + + 'BaseSold(uint256,uint256)'(amountBase?: null, quoteReceived?: null): BaseSoldEventFilter; + BaseSold(amountBase?: null, quoteReceived?: null): BaseSoldEventFilter; + + 'BoardSettlement(uint256,uint256,uint256)'( + insolventSettlementAmount?: null, + amountQuoteReserved?: null, + totalOutstandingSettlements?: null, + ): BoardSettlementEventFilter; + BoardSettlement( + insolventSettlementAmount?: null, + amountQuoteReserved?: null, + totalOutstandingSettlements?: null, + ): BoardSettlementEventFilter; + + 'BoardSettlementCircuitBreakerUpdated(uint256)'( + newTimestamp?: null, + ): BoardSettlementCircuitBreakerUpdatedEventFilter; + BoardSettlementCircuitBreakerUpdated(newTimestamp?: null): BoardSettlementCircuitBreakerUpdatedEventFilter; + + 'CallCollateralFreed(uint256,uint256)'( + baseFreed?: null, + lockedCollateralBase?: null, + ): CallCollateralFreedEventFilter; + CallCollateralFreed(baseFreed?: null, lockedCollateralBase?: null): CallCollateralFreedEventFilter; + + 'CallCollateralLocked(uint256,uint256)'( + baseLocked?: null, + lockedCollateralBase?: null, + ): CallCollateralLockedEventFilter; + CallCollateralLocked(baseLocked?: null, lockedCollateralBase?: null): CallCollateralLockedEventFilter; + + 'CheckingCanProcess(uint256,bool,bool,bool,bool)'( + entryId?: null, + boardNotStale?: null, + validEntry?: null, + guardianBypass?: null, + delaysExpired?: null, + ): CheckingCanProcessEventFilter; + CheckingCanProcess( + entryId?: null, + boardNotStale?: null, + validEntry?: null, + guardianBypass?: null, + delaysExpired?: null, + ): CheckingCanProcessEventFilter; + + 'CircuitBreakerParametersUpdated(tuple)'(cbParams?: null): CircuitBreakerParametersUpdatedEventFilter; + CircuitBreakerParametersUpdated(cbParams?: null): CircuitBreakerParametersUpdatedEventFilter; + + 'CircuitBreakerUpdated(uint256,bool,bool,bool,bool)'( + newTimestamp?: null, + ivVarianceThresholdCrossed?: null, + skewVarianceThresholdCrossed?: null, + liquidityThresholdCrossed?: null, + contractAdjustmentEvent?: null, + ): CircuitBreakerUpdatedEventFilter; + CircuitBreakerUpdated( + newTimestamp?: null, + ivVarianceThresholdCrossed?: null, + skewVarianceThresholdCrossed?: null, + liquidityThresholdCrossed?: null, + contractAdjustmentEvent?: null, + ): CircuitBreakerUpdatedEventFilter; + + 'DepositProcessed(address,address,uint256,uint256,uint256,uint256,uint256)'( + caller?: PromiseOrValue | null, + beneficiary?: PromiseOrValue | null, + depositQueueId?: PromiseOrValue | null, + amountDeposited?: null, + tokenPrice?: null, + tokensReceived?: null, + timestamp?: null, + ): DepositProcessedEventFilter; + DepositProcessed( + caller?: PromiseOrValue | null, + beneficiary?: PromiseOrValue | null, + depositQueueId?: PromiseOrValue | null, + amountDeposited?: null, + tokenPrice?: null, + tokensReceived?: null, + timestamp?: null, + ): DepositProcessedEventFilter; + + 'DepositQueued(address,address,uint256,uint256,uint256,uint256)'( + depositor?: PromiseOrValue | null, + beneficiary?: PromiseOrValue | null, + depositQueueId?: PromiseOrValue | null, + amountDeposited?: null, + totalQueuedDeposits?: null, + timestamp?: null, + ): DepositQueuedEventFilter; + DepositQueued( + depositor?: PromiseOrValue | null, + beneficiary?: PromiseOrValue | null, + depositQueueId?: PromiseOrValue | null, + amountDeposited?: null, + totalQueuedDeposits?: null, + timestamp?: null, + ): DepositQueuedEventFilter; + + 'InsolventSettlementAmountUpdated(uint256,uint256)'( + amountQuoteAdded?: null, + totalInsolventSettlementAmount?: null, + ): InsolventSettlementAmountUpdatedEventFilter; + InsolventSettlementAmountUpdated( + amountQuoteAdded?: null, + totalInsolventSettlementAmount?: null, + ): InsolventSettlementAmountUpdatedEventFilter; + + 'LiquidityPoolParametersUpdated(tuple)'(lpParams?: null): LiquidityPoolParametersUpdatedEventFilter; + LiquidityPoolParametersUpdated(lpParams?: null): LiquidityPoolParametersUpdatedEventFilter; + + 'OutstandingSettlementSent(address,uint256,uint256)'( + user?: PromiseOrValue | null, + amount?: null, + totalOutstandingSettlements?: null, + ): OutstandingSettlementSentEventFilter; + OutstandingSettlementSent( + user?: PromiseOrValue | null, + amount?: null, + totalOutstandingSettlements?: null, + ): OutstandingSettlementSentEventFilter; + + 'OwnerChanged(address,address)'(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter; + OwnerChanged(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter; + + 'OwnerNominated(address)'(newOwner?: null): OwnerNominatedEventFilter; + OwnerNominated(newOwner?: null): OwnerNominatedEventFilter; + + 'PoolHedgerUpdated(address)'(poolHedger?: null): PoolHedgerUpdatedEventFilter; + PoolHedgerUpdated(poolHedger?: null): PoolHedgerUpdatedEventFilter; + + 'PremiumTransferred(address,uint256,uint256)'( + recipient?: PromiseOrValue | null, + recipientPortion?: null, + optionMarketPortion?: null, + ): PremiumTransferredEventFilter; + PremiumTransferred( + recipient?: PromiseOrValue | null, + recipientPortion?: null, + optionMarketPortion?: null, + ): PremiumTransferredEventFilter; + + 'PutCollateralFreed(uint256,uint256)'( + quoteFreed?: null, + lockedCollateralQuote?: null, + ): PutCollateralFreedEventFilter; + PutCollateralFreed(quoteFreed?: null, lockedCollateralQuote?: null): PutCollateralFreedEventFilter; + + 'PutCollateralLocked(uint256,uint256)'( + quoteLocked?: null, + lockedCollateralQuote?: null, + ): PutCollateralLockedEventFilter; + PutCollateralLocked(quoteLocked?: null, lockedCollateralQuote?: null): PutCollateralLockedEventFilter; + + 'QuoteTransferredToPoolHedger(uint256)'(amountQuote?: null): QuoteTransferredToPoolHedgerEventFilter; + QuoteTransferredToPoolHedger(amountQuote?: null): QuoteTransferredToPoolHedgerEventFilter; + + 'WithdrawPartiallyProcessed(address,address,uint256,uint256,uint256,uint256,uint256,uint256)'( + caller?: PromiseOrValue | null, + beneficiary?: PromiseOrValue | null, + withdrawalQueueId?: PromiseOrValue | null, + amountWithdrawn?: null, + tokenPrice?: null, + quoteReceived?: null, + totalQueuedWithdrawals?: null, + timestamp?: null, + ): WithdrawPartiallyProcessedEventFilter; + WithdrawPartiallyProcessed( + caller?: PromiseOrValue | null, + beneficiary?: PromiseOrValue | null, + withdrawalQueueId?: PromiseOrValue | null, + amountWithdrawn?: null, + tokenPrice?: null, + quoteReceived?: null, + totalQueuedWithdrawals?: null, + timestamp?: null, + ): WithdrawPartiallyProcessedEventFilter; + + 'WithdrawProcessed(address,address,uint256,uint256,uint256,uint256,uint256,uint256)'( + caller?: PromiseOrValue | null, + beneficiary?: PromiseOrValue | null, + withdrawalQueueId?: PromiseOrValue | null, + amountWithdrawn?: null, + tokenPrice?: null, + quoteReceived?: null, + totalQueuedWithdrawals?: null, + timestamp?: null, + ): WithdrawProcessedEventFilter; + WithdrawProcessed( + caller?: PromiseOrValue | null, + beneficiary?: PromiseOrValue | null, + withdrawalQueueId?: PromiseOrValue | null, + amountWithdrawn?: null, + tokenPrice?: null, + quoteReceived?: null, + totalQueuedWithdrawals?: null, + timestamp?: null, + ): WithdrawProcessedEventFilter; + + 'WithdrawQueued(address,address,uint256,uint256,uint256,uint256)'( + withdrawer?: PromiseOrValue | null, + beneficiary?: PromiseOrValue | null, + withdrawalQueueId?: PromiseOrValue | null, + amountWithdrawn?: null, + totalQueuedWithdrawals?: null, + timestamp?: null, + ): WithdrawQueuedEventFilter; + WithdrawQueued( + withdrawer?: PromiseOrValue | null, + beneficiary?: PromiseOrValue | null, + withdrawalQueueId?: PromiseOrValue | null, + amountWithdrawn?: null, + totalQueuedWithdrawals?: null, + timestamp?: null, + ): WithdrawQueuedEventFilter; + + 'WithdrawReverted(address,address,uint256,uint256,uint256,uint256,uint256)'( + caller?: PromiseOrValue | null, + beneficiary?: PromiseOrValue | null, + withdrawalQueueId?: PromiseOrValue | null, + tokenPrice?: null, + totalQueuedWithdrawals?: null, + timestamp?: null, + tokensReturned?: null, + ): WithdrawRevertedEventFilter; + WithdrawReverted( + caller?: PromiseOrValue | null, + beneficiary?: PromiseOrValue | null, + withdrawalQueueId?: PromiseOrValue | null, + tokenPrice?: null, + totalQueuedWithdrawals?: null, + timestamp?: null, + tokensReturned?: null, + ): WithdrawRevertedEventFilter; + }; + + estimateGas: { + CBTimestamp(overrides?: CallOverrides): Promise; + + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + boardSettlement( + insolventSettlements: PromiseOrValue, + amountQuoteFreed: PromiseOrValue, + amountQuoteReserved: PromiseOrValue, + amountBaseFreed: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + cbParams(overrides?: CallOverrides): Promise; + + exchangeBase(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + freeCallCollateralAndSendPremium( + amountBase: PromiseOrValue, + recipient: PromiseOrValue, + totalCost: PromiseOrValue, + reservedFee: PromiseOrValue, + longScaleFactor: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + freePutCollateralAndSendPremium( + amountQuoteFreed: PromiseOrValue, + recipient: PromiseOrValue, + totalCost: PromiseOrValue, + reservedFee: PromiseOrValue, + longScaleFactor: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getCBParams(overrides?: CallOverrides): Promise; + + getLiquidity(overrides?: CallOverrides): Promise; + + getLpParams(overrides?: CallOverrides): Promise; + + getTokenPrice(overrides?: CallOverrides): Promise; + + getTokenPriceWithCheck(overrides?: CallOverrides): Promise; + + getTotalPoolValueQuote(overrides?: CallOverrides): Promise; + + getTotalTokenSupply(overrides?: CallOverrides): Promise; + + init( + _exchangeAdapter: PromiseOrValue, + _optionMarket: PromiseOrValue, + _liquidityToken: PromiseOrValue, + _greekCache: PromiseOrValue, + _poolHedger: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _quoteAsset: PromiseOrValue, + _baseAsset: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + initiateDeposit( + beneficiary: PromiseOrValue, + amountQuote: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + initiateWithdraw( + beneficiary: PromiseOrValue, + amountLiquidityToken: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + insolventSettlementAmount(overrides?: CallOverrides): Promise; + + liquidationInsolventAmount(overrides?: CallOverrides): Promise; + + lockCallCollateral( + amount: PromiseOrValue, + spotPrice: PromiseOrValue, + freeLiquidity: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + lockPutCollateral( + amount: PromiseOrValue, + freeLiquidity: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + lockedCollateral(overrides?: CallOverrides): Promise; + + lpParams(overrides?: CallOverrides): Promise; + + nextQueuedDepositId(overrides?: CallOverrides): Promise; + + nextQueuedWithdrawalId(overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + poolHedger(overrides?: CallOverrides): Promise; + + processDepositQueue( + limit: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + processWithdrawalQueue( + limit: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + protectedQuote(overrides?: CallOverrides): Promise; + + queuedDepositHead(overrides?: CallOverrides): Promise; + + queuedDeposits(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + queuedWithdrawalHead(overrides?: CallOverrides): Promise; + + queuedWithdrawals(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + quoteAsset(overrides?: CallOverrides): Promise; + + reclaimInsolventBase( + amountBase: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + reclaimInsolventQuote( + amountQuote: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + recoverFunds( + token: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + sendSettlementValue( + user: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + sendShortPremium( + recipient: PromiseOrValue, + amountContracts: PromiseOrValue, + premium: PromiseOrValue, + freeLiquidity: PromiseOrValue, + reservedFee: PromiseOrValue, + isCall: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setCircuitBreakerParameters( + _cbParams: LiquidityPool.CircuitBreakerParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setLiquidityPoolParameters( + _lpParams: LiquidityPool.LiquidityPoolParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPoolHedger( + newPoolHedger: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + totalOutstandingSettlements(overrides?: CallOverrides): Promise; + + totalQueuedDeposits(overrides?: CallOverrides): Promise; + + totalQueuedWithdrawals(overrides?: CallOverrides): Promise; + + transferQuoteToHedge( + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + updateCBs(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + updateLiquidationInsolvency( + insolvencyAmountInQuote: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + populateTransaction: { + CBTimestamp(overrides?: CallOverrides): Promise; + + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + boardSettlement( + insolventSettlements: PromiseOrValue, + amountQuoteFreed: PromiseOrValue, + amountQuoteReserved: PromiseOrValue, + amountBaseFreed: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + cbParams(overrides?: CallOverrides): Promise; + + exchangeBase(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + freeCallCollateralAndSendPremium( + amountBase: PromiseOrValue, + recipient: PromiseOrValue, + totalCost: PromiseOrValue, + reservedFee: PromiseOrValue, + longScaleFactor: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + freePutCollateralAndSendPremium( + amountQuoteFreed: PromiseOrValue, + recipient: PromiseOrValue, + totalCost: PromiseOrValue, + reservedFee: PromiseOrValue, + longScaleFactor: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getCBParams(overrides?: CallOverrides): Promise; + + getLiquidity(overrides?: CallOverrides): Promise; + + getLpParams(overrides?: CallOverrides): Promise; + + getTokenPrice(overrides?: CallOverrides): Promise; + + getTokenPriceWithCheck(overrides?: CallOverrides): Promise; + + getTotalPoolValueQuote(overrides?: CallOverrides): Promise; + + getTotalTokenSupply(overrides?: CallOverrides): Promise; + + init( + _exchangeAdapter: PromiseOrValue, + _optionMarket: PromiseOrValue, + _liquidityToken: PromiseOrValue, + _greekCache: PromiseOrValue, + _poolHedger: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _quoteAsset: PromiseOrValue, + _baseAsset: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + initiateDeposit( + beneficiary: PromiseOrValue, + amountQuote: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + initiateWithdraw( + beneficiary: PromiseOrValue, + amountLiquidityToken: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + insolventSettlementAmount(overrides?: CallOverrides): Promise; + + liquidationInsolventAmount(overrides?: CallOverrides): Promise; + + lockCallCollateral( + amount: PromiseOrValue, + spotPrice: PromiseOrValue, + freeLiquidity: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + lockPutCollateral( + amount: PromiseOrValue, + freeLiquidity: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + lockedCollateral(overrides?: CallOverrides): Promise; + + lpParams(overrides?: CallOverrides): Promise; + + nextQueuedDepositId(overrides?: CallOverrides): Promise; + + nextQueuedWithdrawalId(overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + poolHedger(overrides?: CallOverrides): Promise; + + processDepositQueue( + limit: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + processWithdrawalQueue( + limit: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + protectedQuote(overrides?: CallOverrides): Promise; + + queuedDepositHead(overrides?: CallOverrides): Promise; + + queuedDeposits(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + queuedWithdrawalHead(overrides?: CallOverrides): Promise; + + queuedWithdrawals(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + quoteAsset(overrides?: CallOverrides): Promise; + + reclaimInsolventBase( + amountBase: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + reclaimInsolventQuote( + amountQuote: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + recoverFunds( + token: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + sendSettlementValue( + user: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + sendShortPremium( + recipient: PromiseOrValue, + amountContracts: PromiseOrValue, + premium: PromiseOrValue, + freeLiquidity: PromiseOrValue, + reservedFee: PromiseOrValue, + isCall: PromiseOrValue, + strikeId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setCircuitBreakerParameters( + _cbParams: LiquidityPool.CircuitBreakerParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setLiquidityPoolParameters( + _lpParams: LiquidityPool.LiquidityPoolParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPoolHedger( + newPoolHedger: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + totalOutstandingSettlements(overrides?: CallOverrides): Promise; + + totalQueuedDeposits(overrides?: CallOverrides): Promise; + + totalQueuedWithdrawals(overrides?: CallOverrides): Promise; + + transferQuoteToHedge( + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + updateCBs(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + updateLiquidationInsolvency( + insolvencyAmountInQuote: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; +} diff --git a/src/apps/lyra-newport/contracts/ethers/LyraLiquidityToken.ts b/src/apps/lyra-newport/contracts/ethers/LyraLiquidityToken.ts new file mode 100644 index 000000000..797a394fd --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/LyraLiquidityToken.ts @@ -0,0 +1,657 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; + +export interface LyraLiquidityTokenInterface extends utils.Interface { + functions: { + 'acceptOwnership()': FunctionFragment; + 'allowance(address,address)': FunctionFragment; + 'approve(address,uint256)': FunctionFragment; + 'balanceOf(address)': FunctionFragment; + 'burn(address,uint256)': FunctionFragment; + 'decimals()': FunctionFragment; + 'decreaseAllowance(address,uint256)': FunctionFragment; + 'increaseAllowance(address,uint256)': FunctionFragment; + 'init(address)': FunctionFragment; + 'liquidityPool()': FunctionFragment; + 'liquidityTracker()': FunctionFragment; + 'mint(address,uint256)': FunctionFragment; + 'name()': FunctionFragment; + 'nominateNewOwner(address)': FunctionFragment; + 'nominatedOwner()': FunctionFragment; + 'owner()': FunctionFragment; + 'setLiquidityTracker(address)': FunctionFragment; + 'symbol()': FunctionFragment; + 'totalSupply()': FunctionFragment; + 'transfer(address,uint256)': FunctionFragment; + 'transferFrom(address,address,uint256)': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'acceptOwnership' + | 'allowance' + | 'approve' + | 'balanceOf' + | 'burn' + | 'decimals' + | 'decreaseAllowance' + | 'increaseAllowance' + | 'init' + | 'liquidityPool' + | 'liquidityTracker' + | 'mint' + | 'name' + | 'nominateNewOwner' + | 'nominatedOwner' + | 'owner' + | 'setLiquidityTracker' + | 'symbol' + | 'totalSupply' + | 'transfer' + | 'transferFrom', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'acceptOwnership', values?: undefined): string; + encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue, PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'approve', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'burn', values: [PromiseOrValue, PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'decimals', values?: undefined): string; + encodeFunctionData( + functionFragment: 'decreaseAllowance', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'increaseAllowance', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'init', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'liquidityPool', values?: undefined): string; + encodeFunctionData(functionFragment: 'liquidityTracker', values?: undefined): string; + encodeFunctionData(functionFragment: 'mint', values: [PromiseOrValue, PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'name', values?: undefined): string; + encodeFunctionData(functionFragment: 'nominateNewOwner', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'nominatedOwner', values?: undefined): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; + encodeFunctionData(functionFragment: 'setLiquidityTracker', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'symbol', values?: undefined): string; + encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string; + encodeFunctionData( + functionFragment: 'transfer', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'transferFrom', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + + decodeFunctionResult(functionFragment: 'acceptOwnership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'burn', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'decreaseAllowance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'increaseAllowance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'init', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'liquidityPool', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'liquidityTracker', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'mint', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nominateNewOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nominatedOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setLiquidityTracker', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result; + + events: { + 'Approval(address,address,uint256)': EventFragment; + 'LiquidityTrackerSet(address)': EventFragment; + 'OwnerChanged(address,address)': EventFragment; + 'OwnerNominated(address)': EventFragment; + 'Transfer(address,address,uint256)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'LiquidityTrackerSet'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnerChanged'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnerNominated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment; +} + +export interface ApprovalEventObject { + owner: string; + spender: string; + value: BigNumber; +} +export type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>; + +export type ApprovalEventFilter = TypedEventFilter; + +export interface LiquidityTrackerSetEventObject { + liquidityTracker: string; +} +export type LiquidityTrackerSetEvent = TypedEvent<[string], LiquidityTrackerSetEventObject>; + +export type LiquidityTrackerSetEventFilter = TypedEventFilter; + +export interface OwnerChangedEventObject { + oldOwner: string; + newOwner: string; +} +export type OwnerChangedEvent = TypedEvent<[string, string], OwnerChangedEventObject>; + +export type OwnerChangedEventFilter = TypedEventFilter; + +export interface OwnerNominatedEventObject { + newOwner: string; +} +export type OwnerNominatedEvent = TypedEvent<[string], OwnerNominatedEventObject>; + +export type OwnerNominatedEventFilter = TypedEventFilter; + +export interface TransferEventObject { + from: string; + to: string; + value: BigNumber; +} +export type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>; + +export type TransferEventFilter = TypedEventFilter; + +export interface LyraLiquidityToken extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: LyraLiquidityTokenInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners(eventFilter?: TypedEventFilter): Array>; + listeners(eventName?: string): Array; + removeAllListeners(eventFilter: TypedEventFilter): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + burn( + account: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + decimals(overrides?: CallOverrides): Promise<[number]>; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + init( + _liquidityPool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liquidityPool(overrides?: CallOverrides): Promise<[string]>; + + liquidityTracker(overrides?: CallOverrides): Promise<[string]>; + + mint( + account: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise<[string]>; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise<[string]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + setLiquidityTracker( + _liquidityTracker: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + transferFrom( + sender: PromiseOrValue, + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + burn( + account: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + init( + _liquidityPool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liquidityPool(overrides?: CallOverrides): Promise; + + liquidityTracker(overrides?: CallOverrides): Promise; + + mint( + account: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + setLiquidityTracker( + _liquidityTracker: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + transferFrom( + sender: PromiseOrValue, + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + callStatic: { + acceptOwnership(overrides?: CallOverrides): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + burn( + account: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + init(_liquidityPool: PromiseOrValue, overrides?: CallOverrides): Promise; + + liquidityPool(overrides?: CallOverrides): Promise; + + liquidityTracker(overrides?: CallOverrides): Promise; + + mint( + account: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nominateNewOwner(_owner: PromiseOrValue, overrides?: CallOverrides): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + setLiquidityTracker(_liquidityTracker: PromiseOrValue, overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferFrom( + sender: PromiseOrValue, + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + }; + + filters: { + 'Approval(address,address,uint256)'( + owner?: PromiseOrValue | null, + spender?: PromiseOrValue | null, + value?: null, + ): ApprovalEventFilter; + Approval( + owner?: PromiseOrValue | null, + spender?: PromiseOrValue | null, + value?: null, + ): ApprovalEventFilter; + + 'LiquidityTrackerSet(address)'(liquidityTracker?: null): LiquidityTrackerSetEventFilter; + LiquidityTrackerSet(liquidityTracker?: null): LiquidityTrackerSetEventFilter; + + 'OwnerChanged(address,address)'(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter; + OwnerChanged(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter; + + 'OwnerNominated(address)'(newOwner?: null): OwnerNominatedEventFilter; + OwnerNominated(newOwner?: null): OwnerNominatedEventFilter; + + 'Transfer(address,address,uint256)'( + from?: PromiseOrValue | null, + to?: PromiseOrValue | null, + value?: null, + ): TransferEventFilter; + Transfer( + from?: PromiseOrValue | null, + to?: PromiseOrValue | null, + value?: null, + ): TransferEventFilter; + }; + + estimateGas: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + burn( + account: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + init( + _liquidityPool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liquidityPool(overrides?: CallOverrides): Promise; + + liquidityTracker(overrides?: CallOverrides): Promise; + + mint( + account: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + setLiquidityTracker( + _liquidityTracker: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + transferFrom( + sender: PromiseOrValue, + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + populateTransaction: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + burn( + account: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + init( + _liquidityPool: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liquidityPool(overrides?: CallOverrides): Promise; + + liquidityTracker(overrides?: CallOverrides): Promise; + + mint( + account: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + setLiquidityTracker( + _liquidityTracker: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transfer( + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + transferFrom( + sender: PromiseOrValue, + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; +} diff --git a/src/apps/lyra-newport/contracts/ethers/LyraLpStaking.ts b/src/apps/lyra-newport/contracts/ethers/LyraLpStaking.ts new file mode 100644 index 000000000..9bc11c700 --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/LyraLpStaking.ts @@ -0,0 +1,720 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; + +export interface LyraLpStakingInterface extends utils.Interface { + functions: { + 'acceptOwnership()': FunctionFragment; + 'balanceOf(address)': FunctionFragment; + 'earned(address)': FunctionFragment; + 'exit()': FunctionFragment; + 'getReward()': FunctionFragment; + 'getRewardForDuration()': FunctionFragment; + 'lastPauseTime()': FunctionFragment; + 'lastTimeRewardApplicable()': FunctionFragment; + 'lastUpdateTime()': FunctionFragment; + 'nominateNewOwner(address)': FunctionFragment; + 'nominatedOwner()': FunctionFragment; + 'notifyRewardAmount(uint256)': FunctionFragment; + 'owner()': FunctionFragment; + 'paused()': FunctionFragment; + 'periodFinish()': FunctionFragment; + 'recoverERC20(address,uint256)': FunctionFragment; + 'rewardPerToken()': FunctionFragment; + 'rewardPerTokenStored()': FunctionFragment; + 'rewardRate()': FunctionFragment; + 'rewards(address)': FunctionFragment; + 'rewardsDistribution()': FunctionFragment; + 'rewardsDuration()': FunctionFragment; + 'rewardsToken()': FunctionFragment; + 'setPaused(bool)': FunctionFragment; + 'setRewardsDistribution(address)': FunctionFragment; + 'setRewardsDuration(uint256)': FunctionFragment; + 'stake(uint256)': FunctionFragment; + 'stakingToken()': FunctionFragment; + 'totalSupply()': FunctionFragment; + 'userRewardPerTokenPaid(address)': FunctionFragment; + 'withdraw(uint256)': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'acceptOwnership' + | 'balanceOf' + | 'earned' + | 'exit' + | 'getReward' + | 'getRewardForDuration' + | 'lastPauseTime' + | 'lastTimeRewardApplicable' + | 'lastUpdateTime' + | 'nominateNewOwner' + | 'nominatedOwner' + | 'notifyRewardAmount' + | 'owner' + | 'paused' + | 'periodFinish' + | 'recoverERC20' + | 'rewardPerToken' + | 'rewardPerTokenStored' + | 'rewardRate' + | 'rewards' + | 'rewardsDistribution' + | 'rewardsDuration' + | 'rewardsToken' + | 'setPaused' + | 'setRewardsDistribution' + | 'setRewardsDuration' + | 'stake' + | 'stakingToken' + | 'totalSupply' + | 'userRewardPerTokenPaid' + | 'withdraw', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'acceptOwnership', values?: undefined): string; + encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'earned', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'exit', values?: undefined): string; + encodeFunctionData(functionFragment: 'getReward', values?: undefined): string; + encodeFunctionData(functionFragment: 'getRewardForDuration', values?: undefined): string; + encodeFunctionData(functionFragment: 'lastPauseTime', values?: undefined): string; + encodeFunctionData(functionFragment: 'lastTimeRewardApplicable', values?: undefined): string; + encodeFunctionData(functionFragment: 'lastUpdateTime', values?: undefined): string; + encodeFunctionData(functionFragment: 'nominateNewOwner', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'nominatedOwner', values?: undefined): string; + encodeFunctionData(functionFragment: 'notifyRewardAmount', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; + encodeFunctionData(functionFragment: 'paused', values?: undefined): string; + encodeFunctionData(functionFragment: 'periodFinish', values?: undefined): string; + encodeFunctionData( + functionFragment: 'recoverERC20', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'rewardPerToken', values?: undefined): string; + encodeFunctionData(functionFragment: 'rewardPerTokenStored', values?: undefined): string; + encodeFunctionData(functionFragment: 'rewardRate', values?: undefined): string; + encodeFunctionData(functionFragment: 'rewards', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'rewardsDistribution', values?: undefined): string; + encodeFunctionData(functionFragment: 'rewardsDuration', values?: undefined): string; + encodeFunctionData(functionFragment: 'rewardsToken', values?: undefined): string; + encodeFunctionData(functionFragment: 'setPaused', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'setRewardsDistribution', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'setRewardsDuration', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'stake', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'stakingToken', values?: undefined): string; + encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string; + encodeFunctionData(functionFragment: 'userRewardPerTokenPaid', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue]): string; + + decodeFunctionResult(functionFragment: 'acceptOwnership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'earned', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'exit', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getReward', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getRewardForDuration', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'lastPauseTime', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'lastTimeRewardApplicable', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'lastUpdateTime', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nominateNewOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nominatedOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'notifyRewardAmount', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'periodFinish', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'recoverERC20', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'rewardPerToken', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'rewardPerTokenStored', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'rewardRate', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'rewards', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'rewardsDistribution', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'rewardsDuration', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'rewardsToken', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setPaused', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setRewardsDistribution', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setRewardsDuration', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'stake', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'stakingToken', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'userRewardPerTokenPaid', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result; + + events: { + 'OwnerChanged(address,address)': EventFragment; + 'OwnerNominated(address)': EventFragment; + 'PauseChanged(bool)': EventFragment; + 'Recovered(address,uint256)': EventFragment; + 'RewardAdded(uint256)': EventFragment; + 'RewardPaid(address,uint256)': EventFragment; + 'RewardsDurationUpdated(uint256)': EventFragment; + 'Staked(address,uint256)': EventFragment; + 'Withdrawn(address,uint256)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'OwnerChanged'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnerNominated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'PauseChanged'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Recovered'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'RewardAdded'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'RewardPaid'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'RewardsDurationUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Staked'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Withdrawn'): EventFragment; +} + +export interface OwnerChangedEventObject { + oldOwner: string; + newOwner: string; +} +export type OwnerChangedEvent = TypedEvent<[string, string], OwnerChangedEventObject>; + +export type OwnerChangedEventFilter = TypedEventFilter; + +export interface OwnerNominatedEventObject { + newOwner: string; +} +export type OwnerNominatedEvent = TypedEvent<[string], OwnerNominatedEventObject>; + +export type OwnerNominatedEventFilter = TypedEventFilter; + +export interface PauseChangedEventObject { + isPaused: boolean; +} +export type PauseChangedEvent = TypedEvent<[boolean], PauseChangedEventObject>; + +export type PauseChangedEventFilter = TypedEventFilter; + +export interface RecoveredEventObject { + token: string; + amount: BigNumber; +} +export type RecoveredEvent = TypedEvent<[string, BigNumber], RecoveredEventObject>; + +export type RecoveredEventFilter = TypedEventFilter; + +export interface RewardAddedEventObject { + reward: BigNumber; +} +export type RewardAddedEvent = TypedEvent<[BigNumber], RewardAddedEventObject>; + +export type RewardAddedEventFilter = TypedEventFilter; + +export interface RewardPaidEventObject { + user: string; + reward: BigNumber; +} +export type RewardPaidEvent = TypedEvent<[string, BigNumber], RewardPaidEventObject>; + +export type RewardPaidEventFilter = TypedEventFilter; + +export interface RewardsDurationUpdatedEventObject { + newDuration: BigNumber; +} +export type RewardsDurationUpdatedEvent = TypedEvent<[BigNumber], RewardsDurationUpdatedEventObject>; + +export type RewardsDurationUpdatedEventFilter = TypedEventFilter; + +export interface StakedEventObject { + user: string; + amount: BigNumber; +} +export type StakedEvent = TypedEvent<[string, BigNumber], StakedEventObject>; + +export type StakedEventFilter = TypedEventFilter; + +export interface WithdrawnEventObject { + user: string; + amount: BigNumber; +} +export type WithdrawnEvent = TypedEvent<[string, BigNumber], WithdrawnEventObject>; + +export type WithdrawnEventFilter = TypedEventFilter; + +export interface LyraLpStaking extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: LyraLpStakingInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners(eventFilter?: TypedEventFilter): Array>; + listeners(eventName?: string): Array; + removeAllListeners(eventFilter: TypedEventFilter): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + earned(account: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + exit(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getReward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getRewardForDuration(overrides?: CallOverrides): Promise<[BigNumber]>; + + lastPauseTime(overrides?: CallOverrides): Promise<[BigNumber]>; + + lastTimeRewardApplicable(overrides?: CallOverrides): Promise<[BigNumber]>; + + lastUpdateTime(overrides?: CallOverrides): Promise<[BigNumber]>; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise<[string]>; + + notifyRewardAmount( + reward: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + owner(overrides?: CallOverrides): Promise<[string]>; + + paused(overrides?: CallOverrides): Promise<[boolean]>; + + periodFinish(overrides?: CallOverrides): Promise<[BigNumber]>; + + recoverERC20( + tokenAddress: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + rewardPerToken(overrides?: CallOverrides): Promise<[BigNumber]>; + + rewardPerTokenStored(overrides?: CallOverrides): Promise<[BigNumber]>; + + rewardRate(overrides?: CallOverrides): Promise<[BigNumber]>; + + rewards(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + rewardsDistribution(overrides?: CallOverrides): Promise<[string]>; + + rewardsDuration(overrides?: CallOverrides): Promise<[BigNumber]>; + + rewardsToken(overrides?: CallOverrides): Promise<[string]>; + + setPaused( + _paused: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setRewardsDistribution( + _rewardsDistribution: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setRewardsDuration( + _rewardsDuration: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stake( + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stakingToken(overrides?: CallOverrides): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + userRewardPerTokenPaid(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + withdraw( + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + earned(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + exit(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getReward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getRewardForDuration(overrides?: CallOverrides): Promise; + + lastPauseTime(overrides?: CallOverrides): Promise; + + lastTimeRewardApplicable(overrides?: CallOverrides): Promise; + + lastUpdateTime(overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + notifyRewardAmount( + reward: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + periodFinish(overrides?: CallOverrides): Promise; + + recoverERC20( + tokenAddress: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + rewardPerToken(overrides?: CallOverrides): Promise; + + rewardPerTokenStored(overrides?: CallOverrides): Promise; + + rewardRate(overrides?: CallOverrides): Promise; + + rewards(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + rewardsDistribution(overrides?: CallOverrides): Promise; + + rewardsDuration(overrides?: CallOverrides): Promise; + + rewardsToken(overrides?: CallOverrides): Promise; + + setPaused( + _paused: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setRewardsDistribution( + _rewardsDistribution: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setRewardsDuration( + _rewardsDuration: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stake( + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stakingToken(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + userRewardPerTokenPaid(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + withdraw( + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + callStatic: { + acceptOwnership(overrides?: CallOverrides): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + earned(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + exit(overrides?: CallOverrides): Promise; + + getReward(overrides?: CallOverrides): Promise; + + getRewardForDuration(overrides?: CallOverrides): Promise; + + lastPauseTime(overrides?: CallOverrides): Promise; + + lastTimeRewardApplicable(overrides?: CallOverrides): Promise; + + lastUpdateTime(overrides?: CallOverrides): Promise; + + nominateNewOwner(_owner: PromiseOrValue, overrides?: CallOverrides): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + notifyRewardAmount(reward: PromiseOrValue, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + periodFinish(overrides?: CallOverrides): Promise; + + recoverERC20( + tokenAddress: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + rewardPerToken(overrides?: CallOverrides): Promise; + + rewardPerTokenStored(overrides?: CallOverrides): Promise; + + rewardRate(overrides?: CallOverrides): Promise; + + rewards(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + rewardsDistribution(overrides?: CallOverrides): Promise; + + rewardsDuration(overrides?: CallOverrides): Promise; + + rewardsToken(overrides?: CallOverrides): Promise; + + setPaused(_paused: PromiseOrValue, overrides?: CallOverrides): Promise; + + setRewardsDistribution(_rewardsDistribution: PromiseOrValue, overrides?: CallOverrides): Promise; + + setRewardsDuration(_rewardsDuration: PromiseOrValue, overrides?: CallOverrides): Promise; + + stake(amount: PromiseOrValue, overrides?: CallOverrides): Promise; + + stakingToken(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + userRewardPerTokenPaid(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + withdraw(amount: PromiseOrValue, overrides?: CallOverrides): Promise; + }; + + filters: { + 'OwnerChanged(address,address)'(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter; + OwnerChanged(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter; + + 'OwnerNominated(address)'(newOwner?: null): OwnerNominatedEventFilter; + OwnerNominated(newOwner?: null): OwnerNominatedEventFilter; + + 'PauseChanged(bool)'(isPaused?: null): PauseChangedEventFilter; + PauseChanged(isPaused?: null): PauseChangedEventFilter; + + 'Recovered(address,uint256)'(token?: null, amount?: null): RecoveredEventFilter; + Recovered(token?: null, amount?: null): RecoveredEventFilter; + + 'RewardAdded(uint256)'(reward?: null): RewardAddedEventFilter; + RewardAdded(reward?: null): RewardAddedEventFilter; + + 'RewardPaid(address,uint256)'(user?: PromiseOrValue | null, reward?: null): RewardPaidEventFilter; + RewardPaid(user?: PromiseOrValue | null, reward?: null): RewardPaidEventFilter; + + 'RewardsDurationUpdated(uint256)'(newDuration?: null): RewardsDurationUpdatedEventFilter; + RewardsDurationUpdated(newDuration?: null): RewardsDurationUpdatedEventFilter; + + 'Staked(address,uint256)'(user?: PromiseOrValue | null, amount?: null): StakedEventFilter; + Staked(user?: PromiseOrValue | null, amount?: null): StakedEventFilter; + + 'Withdrawn(address,uint256)'(user?: PromiseOrValue | null, amount?: null): WithdrawnEventFilter; + Withdrawn(user?: PromiseOrValue | null, amount?: null): WithdrawnEventFilter; + }; + + estimateGas: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + earned(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + exit(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getReward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getRewardForDuration(overrides?: CallOverrides): Promise; + + lastPauseTime(overrides?: CallOverrides): Promise; + + lastTimeRewardApplicable(overrides?: CallOverrides): Promise; + + lastUpdateTime(overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + notifyRewardAmount( + reward: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + periodFinish(overrides?: CallOverrides): Promise; + + recoverERC20( + tokenAddress: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + rewardPerToken(overrides?: CallOverrides): Promise; + + rewardPerTokenStored(overrides?: CallOverrides): Promise; + + rewardRate(overrides?: CallOverrides): Promise; + + rewards(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + rewardsDistribution(overrides?: CallOverrides): Promise; + + rewardsDuration(overrides?: CallOverrides): Promise; + + rewardsToken(overrides?: CallOverrides): Promise; + + setPaused( + _paused: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setRewardsDistribution( + _rewardsDistribution: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setRewardsDuration( + _rewardsDuration: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stake( + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stakingToken(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + userRewardPerTokenPaid(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + withdraw( + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + populateTransaction: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + earned(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + exit(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getReward(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + getRewardForDuration(overrides?: CallOverrides): Promise; + + lastPauseTime(overrides?: CallOverrides): Promise; + + lastTimeRewardApplicable(overrides?: CallOverrides): Promise; + + lastUpdateTime(overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + notifyRewardAmount( + reward: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + paused(overrides?: CallOverrides): Promise; + + periodFinish(overrides?: CallOverrides): Promise; + + recoverERC20( + tokenAddress: PromiseOrValue, + tokenAmount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + rewardPerToken(overrides?: CallOverrides): Promise; + + rewardPerTokenStored(overrides?: CallOverrides): Promise; + + rewardRate(overrides?: CallOverrides): Promise; + + rewards(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + rewardsDistribution(overrides?: CallOverrides): Promise; + + rewardsDuration(overrides?: CallOverrides): Promise; + + rewardsToken(overrides?: CallOverrides): Promise; + + setPaused( + _paused: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setRewardsDistribution( + _rewardsDistribution: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setRewardsDuration( + _rewardsDuration: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stake( + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stakingToken(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + userRewardPerTokenPaid(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + withdraw( + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; +} diff --git a/src/apps/lyra-newport/contracts/ethers/LyraOptionMarket.ts b/src/apps/lyra-newport/contracts/ethers/LyraOptionMarket.ts new file mode 100644 index 000000000..42ad7b6f8 --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/LyraOptionMarket.ts @@ -0,0 +1,1520 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; + +export declare namespace OptionMarket { + export type OptionMarketParametersStruct = { + maxBoardExpiry: PromiseOrValue; + securityModule: PromiseOrValue; + feePortionReserved: PromiseOrValue; + staticBaseSettlementFee: PromiseOrValue; + }; + + export type OptionMarketParametersStructOutput = [BigNumber, string, BigNumber, BigNumber] & { + maxBoardExpiry: BigNumber; + securityModule: string; + feePortionReserved: BigNumber; + staticBaseSettlementFee: BigNumber; + }; + + export type TradeEventDataStruct = { + strikeId: PromiseOrValue; + expiry: PromiseOrValue; + strikePrice: PromiseOrValue; + optionType: PromiseOrValue; + tradeDirection: PromiseOrValue; + amount: PromiseOrValue; + setCollateralTo: PromiseOrValue; + isForceClose: PromiseOrValue; + spotPrice: PromiseOrValue; + reservedFee: PromiseOrValue; + totalCost: PromiseOrValue; + }; + + export type TradeEventDataStructOutput = [ + BigNumber, + BigNumber, + BigNumber, + number, + number, + BigNumber, + BigNumber, + boolean, + BigNumber, + BigNumber, + BigNumber, + ] & { + strikeId: BigNumber; + expiry: BigNumber; + strikePrice: BigNumber; + optionType: number; + tradeDirection: number; + amount: BigNumber; + setCollateralTo: BigNumber; + isForceClose: boolean; + spotPrice: BigNumber; + reservedFee: BigNumber; + totalCost: BigNumber; + }; + + export type LiquidationEventDataStruct = { + rewardBeneficiary: PromiseOrValue; + caller: PromiseOrValue; + returnCollateral: PromiseOrValue; + lpPremiums: PromiseOrValue; + lpFee: PromiseOrValue; + liquidatorFee: PromiseOrValue; + smFee: PromiseOrValue; + insolventAmount: PromiseOrValue; + }; + + export type LiquidationEventDataStructOutput = [ + string, + string, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + ] & { + rewardBeneficiary: string; + caller: string; + returnCollateral: BigNumber; + lpPremiums: BigNumber; + lpFee: BigNumber; + liquidatorFee: BigNumber; + smFee: BigNumber; + insolventAmount: BigNumber; + }; + + export type TradeInputParametersStruct = { + strikeId: PromiseOrValue; + positionId: PromiseOrValue; + iterations: PromiseOrValue; + optionType: PromiseOrValue; + amount: PromiseOrValue; + setCollateralTo: PromiseOrValue; + minTotalCost: PromiseOrValue; + maxTotalCost: PromiseOrValue; + referrer: PromiseOrValue; + }; + + export type TradeInputParametersStructOutput = [ + BigNumber, + BigNumber, + BigNumber, + number, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + string, + ] & { + strikeId: BigNumber; + positionId: BigNumber; + iterations: BigNumber; + optionType: number; + amount: BigNumber; + setCollateralTo: BigNumber; + minTotalCost: BigNumber; + maxTotalCost: BigNumber; + referrer: string; + }; + + export type ResultStruct = { + positionId: PromiseOrValue; + totalCost: PromiseOrValue; + totalFee: PromiseOrValue; + }; + + export type ResultStructOutput = [BigNumber, BigNumber, BigNumber] & { + positionId: BigNumber; + totalCost: BigNumber; + totalFee: BigNumber; + }; + + export type OptionBoardStruct = { + id: PromiseOrValue; + expiry: PromiseOrValue; + iv: PromiseOrValue; + frozen: PromiseOrValue; + strikeIds: PromiseOrValue[]; + }; + + export type OptionBoardStructOutput = [BigNumber, BigNumber, BigNumber, boolean, BigNumber[]] & { + id: BigNumber; + expiry: BigNumber; + iv: BigNumber; + frozen: boolean; + strikeIds: BigNumber[]; + }; + + export type StrikeStruct = { + id: PromiseOrValue; + strikePrice: PromiseOrValue; + skew: PromiseOrValue; + longCall: PromiseOrValue; + shortCallBase: PromiseOrValue; + shortCallQuote: PromiseOrValue; + longPut: PromiseOrValue; + shortPut: PromiseOrValue; + boardId: PromiseOrValue; + }; + + export type StrikeStructOutput = [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + ] & { + id: BigNumber; + strikePrice: BigNumber; + skew: BigNumber; + longCall: BigNumber; + shortCallBase: BigNumber; + shortCallQuote: BigNumber; + longPut: BigNumber; + shortPut: BigNumber; + boardId: BigNumber; + }; +} + +export declare namespace OptionMarketPricer { + export type VegaUtilFeeComponentsStruct = { + preTradeAmmNetStdVega: PromiseOrValue; + postTradeAmmNetStdVega: PromiseOrValue; + vegaUtil: PromiseOrValue; + volTraded: PromiseOrValue; + NAV: PromiseOrValue; + vegaUtilFee: PromiseOrValue; + }; + + export type VegaUtilFeeComponentsStructOutput = [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + preTradeAmmNetStdVega: BigNumber; + postTradeAmmNetStdVega: BigNumber; + vegaUtil: BigNumber; + volTraded: BigNumber; + NAV: BigNumber; + vegaUtilFee: BigNumber; + }; + + export type VarianceFeeComponentsStruct = { + varianceFeeCoefficient: PromiseOrValue; + vega: PromiseOrValue; + vegaCoefficient: PromiseOrValue; + skew: PromiseOrValue; + skewCoefficient: PromiseOrValue; + ivVariance: PromiseOrValue; + ivVarianceCoefficient: PromiseOrValue; + varianceFee: PromiseOrValue; + }; + + export type VarianceFeeComponentsStructOutput = [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + ] & { + varianceFeeCoefficient: BigNumber; + vega: BigNumber; + vegaCoefficient: BigNumber; + skew: BigNumber; + skewCoefficient: BigNumber; + ivVariance: BigNumber; + ivVarianceCoefficient: BigNumber; + varianceFee: BigNumber; + }; + + export type TradeResultStruct = { + amount: PromiseOrValue; + premium: PromiseOrValue; + optionPriceFee: PromiseOrValue; + spotPriceFee: PromiseOrValue; + vegaUtilFee: OptionMarketPricer.VegaUtilFeeComponentsStruct; + varianceFee: OptionMarketPricer.VarianceFeeComponentsStruct; + totalFee: PromiseOrValue; + totalCost: PromiseOrValue; + volTraded: PromiseOrValue; + newBaseIv: PromiseOrValue; + newSkew: PromiseOrValue; + }; + + export type TradeResultStructOutput = [ + BigNumber, + BigNumber, + BigNumber, + BigNumber, + OptionMarketPricer.VegaUtilFeeComponentsStructOutput, + OptionMarketPricer.VarianceFeeComponentsStructOutput, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + ] & { + amount: BigNumber; + premium: BigNumber; + optionPriceFee: BigNumber; + spotPriceFee: BigNumber; + vegaUtilFee: OptionMarketPricer.VegaUtilFeeComponentsStructOutput; + varianceFee: OptionMarketPricer.VarianceFeeComponentsStructOutput; + totalFee: BigNumber; + totalCost: BigNumber; + volTraded: BigNumber; + newBaseIv: BigNumber; + newSkew: BigNumber; + }; +} + +export interface LyraOptionMarketInterface extends utils.Interface { + functions: { + 'acceptOwnership()': FunctionFragment; + 'addCollateral(uint256,uint256)': FunctionFragment; + 'addStrikeToBoard(uint256,uint256,uint256)': FunctionFragment; + 'baseAsset()': FunctionFragment; + 'boardToPriceAtExpiry(uint256)': FunctionFragment; + 'closePosition((uint256,uint256,uint256,uint8,uint256,uint256,uint256,uint256,address))': FunctionFragment; + 'createOptionBoard(uint256,uint256,uint256[],uint256[],bool)': FunctionFragment; + 'forceClosePosition((uint256,uint256,uint256,uint8,uint256,uint256,uint256,uint256,address))': FunctionFragment; + 'forceSettleBoard(uint256)': FunctionFragment; + 'getBoardAndStrikeDetails(uint256)': FunctionFragment; + 'getBoardStrikes(uint256)': FunctionFragment; + 'getLiveBoards()': FunctionFragment; + 'getNumLiveBoards()': FunctionFragment; + 'getOptionBoard(uint256)': FunctionFragment; + 'getOptionMarketParams()': FunctionFragment; + 'getSettlementParameters(uint256)': FunctionFragment; + 'getStrike(uint256)': FunctionFragment; + 'getStrikeAndBoard(uint256)': FunctionFragment; + 'getStrikeAndExpiry(uint256)': FunctionFragment; + 'init(address,address,address,address,address,address,address,address)': FunctionFragment; + 'liquidatePosition(uint256,address)': FunctionFragment; + 'nominateNewOwner(address)': FunctionFragment; + 'nominatedOwner()': FunctionFragment; + 'openPosition((uint256,uint256,uint256,uint8,uint256,uint256,uint256,uint256,address))': FunctionFragment; + 'owner()': FunctionFragment; + 'quoteAsset()': FunctionFragment; + 'recoverFunds(address,address)': FunctionFragment; + 'scaledLongsForBoard(uint256)': FunctionFragment; + 'setBoardBaseIv(uint256,uint256)': FunctionFragment; + 'setBoardFrozen(uint256,bool)': FunctionFragment; + 'setOptionMarketParams((uint256,address,uint256,uint256))': FunctionFragment; + 'setStrikeSkew(uint256,uint256)': FunctionFragment; + 'settleExpiredBoard(uint256)': FunctionFragment; + 'smClaim()': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'acceptOwnership' + | 'addCollateral' + | 'addStrikeToBoard' + | 'baseAsset' + | 'boardToPriceAtExpiry' + | 'closePosition' + | 'createOptionBoard' + | 'forceClosePosition' + | 'forceSettleBoard' + | 'getBoardAndStrikeDetails' + | 'getBoardStrikes' + | 'getLiveBoards' + | 'getNumLiveBoards' + | 'getOptionBoard' + | 'getOptionMarketParams' + | 'getSettlementParameters' + | 'getStrike' + | 'getStrikeAndBoard' + | 'getStrikeAndExpiry' + | 'init' + | 'liquidatePosition' + | 'nominateNewOwner' + | 'nominatedOwner' + | 'openPosition' + | 'owner' + | 'quoteAsset' + | 'recoverFunds' + | 'scaledLongsForBoard' + | 'setBoardBaseIv' + | 'setBoardFrozen' + | 'setOptionMarketParams' + | 'setStrikeSkew' + | 'settleExpiredBoard' + | 'smClaim', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'acceptOwnership', values?: undefined): string; + encodeFunctionData( + functionFragment: 'addCollateral', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'addStrikeToBoard', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'baseAsset', values?: undefined): string; + encodeFunctionData(functionFragment: 'boardToPriceAtExpiry', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'closePosition', values: [OptionMarket.TradeInputParametersStruct]): string; + encodeFunctionData( + functionFragment: 'createOptionBoard', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue[], + PromiseOrValue[], + PromiseOrValue, + ], + ): string; + encodeFunctionData(functionFragment: 'forceClosePosition', values: [OptionMarket.TradeInputParametersStruct]): string; + encodeFunctionData(functionFragment: 'forceSettleBoard', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getBoardAndStrikeDetails', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getBoardStrikes', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getLiveBoards', values?: undefined): string; + encodeFunctionData(functionFragment: 'getNumLiveBoards', values?: undefined): string; + encodeFunctionData(functionFragment: 'getOptionBoard', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getOptionMarketParams', values?: undefined): string; + encodeFunctionData(functionFragment: 'getSettlementParameters', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getStrike', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getStrikeAndBoard', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getStrikeAndExpiry', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'init', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'liquidatePosition', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'nominateNewOwner', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'nominatedOwner', values?: undefined): string; + encodeFunctionData(functionFragment: 'openPosition', values: [OptionMarket.TradeInputParametersStruct]): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; + encodeFunctionData(functionFragment: 'quoteAsset', values?: undefined): string; + encodeFunctionData( + functionFragment: 'recoverFunds', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'scaledLongsForBoard', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'setBoardBaseIv', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'setBoardFrozen', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'setOptionMarketParams', + values: [OptionMarket.OptionMarketParametersStruct], + ): string; + encodeFunctionData( + functionFragment: 'setStrikeSkew', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'settleExpiredBoard', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'smClaim', values?: undefined): string; + + decodeFunctionResult(functionFragment: 'acceptOwnership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'addCollateral', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'addStrikeToBoard', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'baseAsset', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'boardToPriceAtExpiry', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'closePosition', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'createOptionBoard', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'forceClosePosition', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'forceSettleBoard', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getBoardAndStrikeDetails', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getBoardStrikes', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getLiveBoards', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNumLiveBoards', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getOptionBoard', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getOptionMarketParams', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getSettlementParameters', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getStrike', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getStrikeAndBoard', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getStrikeAndExpiry', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'init', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'liquidatePosition', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nominateNewOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nominatedOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'openPosition', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'quoteAsset', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'recoverFunds', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'scaledLongsForBoard', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setBoardBaseIv', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setBoardFrozen', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setOptionMarketParams', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setStrikeSkew', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'settleExpiredBoard', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'smClaim', data: BytesLike): Result; + + events: { + 'BoardBaseIvSet(uint256,uint256)': EventFragment; + 'BoardCreated(uint256,uint256,uint256,bool)': EventFragment; + 'BoardFrozen(uint256,bool)': EventFragment; + 'BoardSettled(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)': EventFragment; + 'OptionMarketParamsSet(tuple)': EventFragment; + 'OwnerChanged(address,address)': EventFragment; + 'OwnerNominated(address)': EventFragment; + 'SMClaimed(address,uint256)': EventFragment; + 'StrikeAdded(uint256,uint256,uint256,uint256)': EventFragment; + 'StrikeSkewSet(uint256,uint256)': EventFragment; + 'Trade(address,uint256,address,tuple,tuple[],tuple,uint256,uint256)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'BoardBaseIvSet'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'BoardCreated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'BoardFrozen'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'BoardSettled'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OptionMarketParamsSet'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnerChanged'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnerNominated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'SMClaimed'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'StrikeAdded'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'StrikeSkewSet'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Trade'): EventFragment; +} + +export interface BoardBaseIvSetEventObject { + boardId: BigNumber; + baseIv: BigNumber; +} +export type BoardBaseIvSetEvent = TypedEvent<[BigNumber, BigNumber], BoardBaseIvSetEventObject>; + +export type BoardBaseIvSetEventFilter = TypedEventFilter; + +export interface BoardCreatedEventObject { + boardId: BigNumber; + expiry: BigNumber; + baseIv: BigNumber; + frozen: boolean; +} +export type BoardCreatedEvent = TypedEvent<[BigNumber, BigNumber, BigNumber, boolean], BoardCreatedEventObject>; + +export type BoardCreatedEventFilter = TypedEventFilter; + +export interface BoardFrozenEventObject { + boardId: BigNumber; + frozen: boolean; +} +export type BoardFrozenEvent = TypedEvent<[BigNumber, boolean], BoardFrozenEventObject>; + +export type BoardFrozenEventFilter = TypedEventFilter; + +export interface BoardSettledEventObject { + boardId: BigNumber; + spotPriceAtExpiry: BigNumber; + totalUserLongProfitQuote: BigNumber; + totalBoardLongCallCollateral: BigNumber; + totalBoardLongPutCollateral: BigNumber; + totalAMMShortCallProfitBase: BigNumber; + totalAMMShortCallProfitQuote: BigNumber; + totalAMMShortPutProfitQuote: BigNumber; + longScaleFactor: BigNumber; +} +export type BoardSettledEvent = TypedEvent< + [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber], + BoardSettledEventObject +>; + +export type BoardSettledEventFilter = TypedEventFilter; + +export interface OptionMarketParamsSetEventObject { + optionMarketParams: OptionMarket.OptionMarketParametersStructOutput; +} +export type OptionMarketParamsSetEvent = TypedEvent< + [OptionMarket.OptionMarketParametersStructOutput], + OptionMarketParamsSetEventObject +>; + +export type OptionMarketParamsSetEventFilter = TypedEventFilter; + +export interface OwnerChangedEventObject { + oldOwner: string; + newOwner: string; +} +export type OwnerChangedEvent = TypedEvent<[string, string], OwnerChangedEventObject>; + +export type OwnerChangedEventFilter = TypedEventFilter; + +export interface OwnerNominatedEventObject { + newOwner: string; +} +export type OwnerNominatedEvent = TypedEvent<[string], OwnerNominatedEventObject>; + +export type OwnerNominatedEventFilter = TypedEventFilter; + +export interface SMClaimedEventObject { + securityModule: string; + quoteAmount: BigNumber; +} +export type SMClaimedEvent = TypedEvent<[string, BigNumber], SMClaimedEventObject>; + +export type SMClaimedEventFilter = TypedEventFilter; + +export interface StrikeAddedEventObject { + boardId: BigNumber; + strikeId: BigNumber; + strikePrice: BigNumber; + skew: BigNumber; +} +export type StrikeAddedEvent = TypedEvent<[BigNumber, BigNumber, BigNumber, BigNumber], StrikeAddedEventObject>; + +export type StrikeAddedEventFilter = TypedEventFilter; + +export interface StrikeSkewSetEventObject { + strikeId: BigNumber; + skew: BigNumber; +} +export type StrikeSkewSetEvent = TypedEvent<[BigNumber, BigNumber], StrikeSkewSetEventObject>; + +export type StrikeSkewSetEventFilter = TypedEventFilter; + +export interface TradeEventObject { + trader: string; + positionId: BigNumber; + referrer: string; + trade: OptionMarket.TradeEventDataStructOutput; + tradeResults: OptionMarketPricer.TradeResultStructOutput[]; + liquidation: OptionMarket.LiquidationEventDataStructOutput; + longScaleFactor: BigNumber; + timestamp: BigNumber; +} +export type TradeEvent = TypedEvent< + [ + string, + BigNumber, + string, + OptionMarket.TradeEventDataStructOutput, + OptionMarketPricer.TradeResultStructOutput[], + OptionMarket.LiquidationEventDataStructOutput, + BigNumber, + BigNumber, + ], + TradeEventObject +>; + +export type TradeEventFilter = TypedEventFilter; + +export interface LyraOptionMarket extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: LyraOptionMarketInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners(eventFilter?: TypedEventFilter): Array>; + listeners(eventName?: string): Array; + removeAllListeners(eventFilter: TypedEventFilter): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + addCollateral( + positionId: PromiseOrValue, + amountCollateral: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + addStrikeToBoard( + boardId: PromiseOrValue, + strikePrice: PromiseOrValue, + skew: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + baseAsset(overrides?: CallOverrides): Promise<[string]>; + + boardToPriceAtExpiry(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + closePosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + createOptionBoard( + expiry: PromiseOrValue, + baseIV: PromiseOrValue, + strikePrices: PromiseOrValue[], + skews: PromiseOrValue[], + frozen: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + forceClosePosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + forceSettleBoard( + boardId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getBoardAndStrikeDetails( + boardId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [OptionMarket.OptionBoardStructOutput, OptionMarket.StrikeStructOutput[], BigNumber[], BigNumber, BigNumber] + >; + + getBoardStrikes( + boardId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber[]] & { strikeIds: BigNumber[] }>; + + getLiveBoards(overrides?: CallOverrides): Promise<[BigNumber[]] & { _liveBoards: BigNumber[] }>; + + getNumLiveBoards(overrides?: CallOverrides): Promise<[BigNumber] & { numLiveBoards: BigNumber }>; + + getOptionBoard( + boardId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[OptionMarket.OptionBoardStructOutput]>; + + getOptionMarketParams(overrides?: CallOverrides): Promise<[OptionMarket.OptionMarketParametersStructOutput]>; + + getSettlementParameters( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber] & { + strikePrice: BigNumber; + priceAtExpiry: BigNumber; + strikeToBaseReturned: BigNumber; + longScaleFactor: BigNumber; + } + >; + + getStrike( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[OptionMarket.StrikeStructOutput]>; + + getStrikeAndBoard( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[OptionMarket.StrikeStructOutput, OptionMarket.OptionBoardStructOutput]>; + + getStrikeAndExpiry( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber] & { strikePrice: BigNumber; expiry: BigNumber }>; + + init( + _exchangeAdapter: PromiseOrValue, + _liquidityPool: PromiseOrValue, + _optionPricer: PromiseOrValue, + _greekCache: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _optionToken: PromiseOrValue, + _quoteAsset: PromiseOrValue, + _baseAsset: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liquidatePosition( + positionId: PromiseOrValue, + rewardBeneficiary: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise<[string]>; + + openPosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + owner(overrides?: CallOverrides): Promise<[string]>; + + quoteAsset(overrides?: CallOverrides): Promise<[string]>; + + recoverFunds( + token: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + scaledLongsForBoard(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + setBoardBaseIv( + boardId: PromiseOrValue, + baseIv: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setBoardFrozen( + boardId: PromiseOrValue, + frozen: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setOptionMarketParams( + _optionMarketParams: OptionMarket.OptionMarketParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setStrikeSkew( + strikeId: PromiseOrValue, + skew: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + settleExpiredBoard( + boardId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + smClaim(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + }; + + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + addCollateral( + positionId: PromiseOrValue, + amountCollateral: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + addStrikeToBoard( + boardId: PromiseOrValue, + strikePrice: PromiseOrValue, + skew: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + baseAsset(overrides?: CallOverrides): Promise; + + boardToPriceAtExpiry(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + closePosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + createOptionBoard( + expiry: PromiseOrValue, + baseIV: PromiseOrValue, + strikePrices: PromiseOrValue[], + skews: PromiseOrValue[], + frozen: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + forceClosePosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + forceSettleBoard( + boardId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getBoardAndStrikeDetails( + boardId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [OptionMarket.OptionBoardStructOutput, OptionMarket.StrikeStructOutput[], BigNumber[], BigNumber, BigNumber] + >; + + getBoardStrikes(boardId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getLiveBoards(overrides?: CallOverrides): Promise; + + getNumLiveBoards(overrides?: CallOverrides): Promise; + + getOptionBoard( + boardId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getOptionMarketParams(overrides?: CallOverrides): Promise; + + getSettlementParameters( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber] & { + strikePrice: BigNumber; + priceAtExpiry: BigNumber; + strikeToBaseReturned: BigNumber; + longScaleFactor: BigNumber; + } + >; + + getStrike( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getStrikeAndBoard( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[OptionMarket.StrikeStructOutput, OptionMarket.OptionBoardStructOutput]>; + + getStrikeAndExpiry( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber] & { strikePrice: BigNumber; expiry: BigNumber }>; + + init( + _exchangeAdapter: PromiseOrValue, + _liquidityPool: PromiseOrValue, + _optionPricer: PromiseOrValue, + _greekCache: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _optionToken: PromiseOrValue, + _quoteAsset: PromiseOrValue, + _baseAsset: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liquidatePosition( + positionId: PromiseOrValue, + rewardBeneficiary: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + openPosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + quoteAsset(overrides?: CallOverrides): Promise; + + recoverFunds( + token: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + scaledLongsForBoard(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + setBoardBaseIv( + boardId: PromiseOrValue, + baseIv: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setBoardFrozen( + boardId: PromiseOrValue, + frozen: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setOptionMarketParams( + _optionMarketParams: OptionMarket.OptionMarketParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setStrikeSkew( + strikeId: PromiseOrValue, + skew: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + settleExpiredBoard( + boardId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + smClaim(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + callStatic: { + acceptOwnership(overrides?: CallOverrides): Promise; + + addCollateral( + positionId: PromiseOrValue, + amountCollateral: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + addStrikeToBoard( + boardId: PromiseOrValue, + strikePrice: PromiseOrValue, + skew: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + baseAsset(overrides?: CallOverrides): Promise; + + boardToPriceAtExpiry(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + closePosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: CallOverrides, + ): Promise; + + createOptionBoard( + expiry: PromiseOrValue, + baseIV: PromiseOrValue, + strikePrices: PromiseOrValue[], + skews: PromiseOrValue[], + frozen: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + forceClosePosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: CallOverrides, + ): Promise; + + forceSettleBoard(boardId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getBoardAndStrikeDetails( + boardId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [OptionMarket.OptionBoardStructOutput, OptionMarket.StrikeStructOutput[], BigNumber[], BigNumber, BigNumber] + >; + + getBoardStrikes(boardId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getLiveBoards(overrides?: CallOverrides): Promise; + + getNumLiveBoards(overrides?: CallOverrides): Promise; + + getOptionBoard( + boardId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getOptionMarketParams(overrides?: CallOverrides): Promise; + + getSettlementParameters( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber] & { + strikePrice: BigNumber; + priceAtExpiry: BigNumber; + strikeToBaseReturned: BigNumber; + longScaleFactor: BigNumber; + } + >; + + getStrike( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getStrikeAndBoard( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[OptionMarket.StrikeStructOutput, OptionMarket.OptionBoardStructOutput]>; + + getStrikeAndExpiry( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber] & { strikePrice: BigNumber; expiry: BigNumber }>; + + init( + _exchangeAdapter: PromiseOrValue, + _liquidityPool: PromiseOrValue, + _optionPricer: PromiseOrValue, + _greekCache: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _optionToken: PromiseOrValue, + _quoteAsset: PromiseOrValue, + _baseAsset: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + liquidatePosition( + positionId: PromiseOrValue, + rewardBeneficiary: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + nominateNewOwner(_owner: PromiseOrValue, overrides?: CallOverrides): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + openPosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: CallOverrides, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + quoteAsset(overrides?: CallOverrides): Promise; + + recoverFunds( + token: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + scaledLongsForBoard(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + setBoardBaseIv( + boardId: PromiseOrValue, + baseIv: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + setBoardFrozen( + boardId: PromiseOrValue, + frozen: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + setOptionMarketParams( + _optionMarketParams: OptionMarket.OptionMarketParametersStruct, + overrides?: CallOverrides, + ): Promise; + + setStrikeSkew( + strikeId: PromiseOrValue, + skew: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + settleExpiredBoard(boardId: PromiseOrValue, overrides?: CallOverrides): Promise; + + smClaim(overrides?: CallOverrides): Promise; + }; + + filters: { + 'BoardBaseIvSet(uint256,uint256)'( + boardId?: PromiseOrValue | null, + baseIv?: null, + ): BoardBaseIvSetEventFilter; + BoardBaseIvSet(boardId?: PromiseOrValue | null, baseIv?: null): BoardBaseIvSetEventFilter; + + 'BoardCreated(uint256,uint256,uint256,bool)'( + boardId?: PromiseOrValue | null, + expiry?: null, + baseIv?: null, + frozen?: null, + ): BoardCreatedEventFilter; + BoardCreated( + boardId?: PromiseOrValue | null, + expiry?: null, + baseIv?: null, + frozen?: null, + ): BoardCreatedEventFilter; + + 'BoardFrozen(uint256,bool)'(boardId?: PromiseOrValue | null, frozen?: null): BoardFrozenEventFilter; + BoardFrozen(boardId?: PromiseOrValue | null, frozen?: null): BoardFrozenEventFilter; + + 'BoardSettled(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)'( + boardId?: PromiseOrValue | null, + spotPriceAtExpiry?: null, + totalUserLongProfitQuote?: null, + totalBoardLongCallCollateral?: null, + totalBoardLongPutCollateral?: null, + totalAMMShortCallProfitBase?: null, + totalAMMShortCallProfitQuote?: null, + totalAMMShortPutProfitQuote?: null, + longScaleFactor?: null, + ): BoardSettledEventFilter; + BoardSettled( + boardId?: PromiseOrValue | null, + spotPriceAtExpiry?: null, + totalUserLongProfitQuote?: null, + totalBoardLongCallCollateral?: null, + totalBoardLongPutCollateral?: null, + totalAMMShortCallProfitBase?: null, + totalAMMShortCallProfitQuote?: null, + totalAMMShortPutProfitQuote?: null, + longScaleFactor?: null, + ): BoardSettledEventFilter; + + 'OptionMarketParamsSet(tuple)'(optionMarketParams?: null): OptionMarketParamsSetEventFilter; + OptionMarketParamsSet(optionMarketParams?: null): OptionMarketParamsSetEventFilter; + + 'OwnerChanged(address,address)'(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter; + OwnerChanged(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter; + + 'OwnerNominated(address)'(newOwner?: null): OwnerNominatedEventFilter; + OwnerNominated(newOwner?: null): OwnerNominatedEventFilter; + + 'SMClaimed(address,uint256)'(securityModule?: null, quoteAmount?: null): SMClaimedEventFilter; + SMClaimed(securityModule?: null, quoteAmount?: null): SMClaimedEventFilter; + + 'StrikeAdded(uint256,uint256,uint256,uint256)'( + boardId?: PromiseOrValue | null, + strikeId?: PromiseOrValue | null, + strikePrice?: null, + skew?: null, + ): StrikeAddedEventFilter; + StrikeAdded( + boardId?: PromiseOrValue | null, + strikeId?: PromiseOrValue | null, + strikePrice?: null, + skew?: null, + ): StrikeAddedEventFilter; + + 'StrikeSkewSet(uint256,uint256)'( + strikeId?: PromiseOrValue | null, + skew?: null, + ): StrikeSkewSetEventFilter; + StrikeSkewSet(strikeId?: PromiseOrValue | null, skew?: null): StrikeSkewSetEventFilter; + + 'Trade(address,uint256,address,tuple,tuple[],tuple,uint256,uint256)'( + trader?: PromiseOrValue | null, + positionId?: PromiseOrValue | null, + referrer?: PromiseOrValue | null, + trade?: null, + tradeResults?: null, + liquidation?: null, + longScaleFactor?: null, + timestamp?: null, + ): TradeEventFilter; + Trade( + trader?: PromiseOrValue | null, + positionId?: PromiseOrValue | null, + referrer?: PromiseOrValue | null, + trade?: null, + tradeResults?: null, + liquidation?: null, + longScaleFactor?: null, + timestamp?: null, + ): TradeEventFilter; + }; + + estimateGas: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + addCollateral( + positionId: PromiseOrValue, + amountCollateral: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + addStrikeToBoard( + boardId: PromiseOrValue, + strikePrice: PromiseOrValue, + skew: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + baseAsset(overrides?: CallOverrides): Promise; + + boardToPriceAtExpiry(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + closePosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + createOptionBoard( + expiry: PromiseOrValue, + baseIV: PromiseOrValue, + strikePrices: PromiseOrValue[], + skews: PromiseOrValue[], + frozen: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + forceClosePosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + forceSettleBoard( + boardId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getBoardAndStrikeDetails(boardId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getBoardStrikes(boardId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getLiveBoards(overrides?: CallOverrides): Promise; + + getNumLiveBoards(overrides?: CallOverrides): Promise; + + getOptionBoard(boardId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getOptionMarketParams(overrides?: CallOverrides): Promise; + + getSettlementParameters(strikeId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getStrike(strikeId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getStrikeAndBoard(strikeId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getStrikeAndExpiry(strikeId: PromiseOrValue, overrides?: CallOverrides): Promise; + + init( + _exchangeAdapter: PromiseOrValue, + _liquidityPool: PromiseOrValue, + _optionPricer: PromiseOrValue, + _greekCache: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _optionToken: PromiseOrValue, + _quoteAsset: PromiseOrValue, + _baseAsset: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liquidatePosition( + positionId: PromiseOrValue, + rewardBeneficiary: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + openPosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + quoteAsset(overrides?: CallOverrides): Promise; + + recoverFunds( + token: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + scaledLongsForBoard(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + setBoardBaseIv( + boardId: PromiseOrValue, + baseIv: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setBoardFrozen( + boardId: PromiseOrValue, + frozen: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setOptionMarketParams( + _optionMarketParams: OptionMarket.OptionMarketParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setStrikeSkew( + strikeId: PromiseOrValue, + skew: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + settleExpiredBoard( + boardId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + smClaim(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + }; + + populateTransaction: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + addCollateral( + positionId: PromiseOrValue, + amountCollateral: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + addStrikeToBoard( + boardId: PromiseOrValue, + strikePrice: PromiseOrValue, + skew: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + baseAsset(overrides?: CallOverrides): Promise; + + boardToPriceAtExpiry(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + closePosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + createOptionBoard( + expiry: PromiseOrValue, + baseIV: PromiseOrValue, + strikePrices: PromiseOrValue[], + skews: PromiseOrValue[], + frozen: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + forceClosePosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + forceSettleBoard( + boardId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getBoardAndStrikeDetails( + boardId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getBoardStrikes(boardId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getLiveBoards(overrides?: CallOverrides): Promise; + + getNumLiveBoards(overrides?: CallOverrides): Promise; + + getOptionBoard(boardId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getOptionMarketParams(overrides?: CallOverrides): Promise; + + getSettlementParameters( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getStrike(strikeId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getStrikeAndBoard(strikeId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getStrikeAndExpiry( + strikeId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + init( + _exchangeAdapter: PromiseOrValue, + _liquidityPool: PromiseOrValue, + _optionPricer: PromiseOrValue, + _greekCache: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _optionToken: PromiseOrValue, + _quoteAsset: PromiseOrValue, + _baseAsset: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + liquidatePosition( + positionId: PromiseOrValue, + rewardBeneficiary: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + openPosition( + params: OptionMarket.TradeInputParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + owner(overrides?: CallOverrides): Promise; + + quoteAsset(overrides?: CallOverrides): Promise; + + recoverFunds( + token: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + scaledLongsForBoard(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + setBoardBaseIv( + boardId: PromiseOrValue, + baseIv: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setBoardFrozen( + boardId: PromiseOrValue, + frozen: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setOptionMarketParams( + _optionMarketParams: OptionMarket.OptionMarketParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setStrikeSkew( + strikeId: PromiseOrValue, + skew: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + settleExpiredBoard( + boardId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + smClaim(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + }; +} diff --git a/src/apps/lyra-newport/contracts/ethers/LyraOptionToken.ts b/src/apps/lyra-newport/contracts/ethers/LyraOptionToken.ts new file mode 100644 index 000000000..c889211ba --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/LyraOptionToken.ts @@ -0,0 +1,1555 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; + +export declare namespace OptionToken { + export type PartialCollateralParametersStruct = { + penaltyRatio: PromiseOrValue; + liquidatorFeeRatio: PromiseOrValue; + smFeeRatio: PromiseOrValue; + minLiquidationFee: PromiseOrValue; + }; + + export type PartialCollateralParametersStructOutput = [BigNumber, BigNumber, BigNumber, BigNumber] & { + penaltyRatio: BigNumber; + liquidatorFeeRatio: BigNumber; + smFeeRatio: BigNumber; + minLiquidationFee: BigNumber; + }; + + export type OptionPositionStruct = { + positionId: PromiseOrValue; + strikeId: PromiseOrValue; + optionType: PromiseOrValue; + amount: PromiseOrValue; + collateral: PromiseOrValue; + state: PromiseOrValue; + }; + + export type OptionPositionStructOutput = [BigNumber, BigNumber, number, BigNumber, BigNumber, number] & { + positionId: BigNumber; + strikeId: BigNumber; + optionType: number; + amount: BigNumber; + collateral: BigNumber; + state: number; + }; + + export type LiquidationFeesStruct = { + returnCollateral: PromiseOrValue; + lpPremiums: PromiseOrValue; + lpFee: PromiseOrValue; + liquidatorFee: PromiseOrValue; + smFee: PromiseOrValue; + insolventAmount: PromiseOrValue; + }; + + export type LiquidationFeesStructOutput = [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + returnCollateral: BigNumber; + lpPremiums: BigNumber; + lpFee: BigNumber; + liquidatorFee: BigNumber; + smFee: BigNumber; + insolventAmount: BigNumber; + }; + + export type PositionWithOwnerStruct = { + positionId: PromiseOrValue; + strikeId: PromiseOrValue; + optionType: PromiseOrValue; + amount: PromiseOrValue; + collateral: PromiseOrValue; + state: PromiseOrValue; + owner: PromiseOrValue; + }; + + export type PositionWithOwnerStructOutput = [BigNumber, BigNumber, number, BigNumber, BigNumber, number, string] & { + positionId: BigNumber; + strikeId: BigNumber; + optionType: number; + amount: BigNumber; + collateral: BigNumber; + state: number; + owner: string; + }; +} + +export declare namespace LiquidityPool { + export type LiquidityStruct = { + freeLiquidity: PromiseOrValue; + burnableLiquidity: PromiseOrValue; + reservedCollatLiquidity: PromiseOrValue; + pendingDeltaLiquidity: PromiseOrValue; + usedDeltaLiquidity: PromiseOrValue; + NAV: PromiseOrValue; + longScaleFactor: PromiseOrValue; + }; + + export type LiquidityStructOutput = [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber] & { + freeLiquidity: BigNumber; + burnableLiquidity: BigNumber; + reservedCollatLiquidity: BigNumber; + pendingDeltaLiquidity: BigNumber; + usedDeltaLiquidity: BigNumber; + NAV: BigNumber; + longScaleFactor: BigNumber; + }; +} + +export declare namespace OptionMarket { + export type TradeParametersStruct = { + isBuy: PromiseOrValue; + isForceClose: PromiseOrValue; + tradeDirection: PromiseOrValue; + optionType: PromiseOrValue; + amount: PromiseOrValue; + expiry: PromiseOrValue; + strikePrice: PromiseOrValue; + spotPrice: PromiseOrValue; + liquidity: LiquidityPool.LiquidityStruct; + }; + + export type TradeParametersStructOutput = [ + boolean, + boolean, + number, + number, + BigNumber, + BigNumber, + BigNumber, + BigNumber, + LiquidityPool.LiquidityStructOutput, + ] & { + isBuy: boolean; + isForceClose: boolean; + tradeDirection: number; + optionType: number; + amount: BigNumber; + expiry: BigNumber; + strikePrice: BigNumber; + spotPrice: BigNumber; + liquidity: LiquidityPool.LiquidityStructOutput; + }; +} + +export interface LyraOptionTokenInterface extends utils.Interface { + functions: { + 'acceptOwnership()': FunctionFragment; + 'addCollateral(uint256,uint256)': FunctionFragment; + 'adjustPosition((bool,bool,uint8,uint8,uint256,uint256,uint256,uint256,(uint256,uint256,uint256,uint256,uint256,uint256,uint256)),uint256,address,uint256,uint256,uint256,bool)': FunctionFragment; + 'approve(address,uint256)': FunctionFragment; + 'balanceOf(address)': FunctionFragment; + 'baseURI()': FunctionFragment; + 'canLiquidate((uint256,uint256,uint8,uint256,uint256,uint8),uint256,uint256,uint256)': FunctionFragment; + 'getApproved(uint256)': FunctionFragment; + 'getLiquidationFees(uint256,uint256,uint256,uint256)': FunctionFragment; + 'getOptionPosition(uint256)': FunctionFragment; + 'getOptionPositions(uint256[])': FunctionFragment; + 'getOwnerPositions(address)': FunctionFragment; + 'getPartialCollatParams()': FunctionFragment; + 'getPositionState(uint256)': FunctionFragment; + 'getPositionWithOwner(uint256)': FunctionFragment; + 'getPositionsWithOwner(uint256[])': FunctionFragment; + 'init(address,address,address,address)': FunctionFragment; + 'isApprovedForAll(address,address)': FunctionFragment; + 'liquidate(uint256,(bool,bool,uint8,uint8,uint256,uint256,uint256,uint256,(uint256,uint256,uint256,uint256,uint256,uint256,uint256)),uint256)': FunctionFragment; + 'merge(uint256[])': FunctionFragment; + 'name()': FunctionFragment; + 'nextId()': FunctionFragment; + 'nominateNewOwner(address)': FunctionFragment; + 'nominatedOwner()': FunctionFragment; + 'owner()': FunctionFragment; + 'ownerOf(uint256)': FunctionFragment; + 'partialCollatParams()': FunctionFragment; + 'positions(uint256)': FunctionFragment; + 'safeTransferFrom(address,address,uint256)': FunctionFragment; + 'safeTransferFrom(address,address,uint256,bytes)': FunctionFragment; + 'setApprovalForAll(address,bool)': FunctionFragment; + 'setPartialCollateralParams((uint256,uint256,uint256,uint256))': FunctionFragment; + 'setURI(string)': FunctionFragment; + 'settlePositions(uint256[])': FunctionFragment; + 'split(uint256,uint256,uint256,address)': FunctionFragment; + 'supportsInterface(bytes4)': FunctionFragment; + 'symbol()': FunctionFragment; + 'tokenByIndex(uint256)': FunctionFragment; + 'tokenOfOwnerByIndex(address,uint256)': FunctionFragment; + 'tokenURI(uint256)': FunctionFragment; + 'totalSupply()': FunctionFragment; + 'transferFrom(address,address,uint256)': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'acceptOwnership' + | 'addCollateral' + | 'adjustPosition' + | 'approve' + | 'balanceOf' + | 'baseURI' + | 'canLiquidate' + | 'getApproved' + | 'getLiquidationFees' + | 'getOptionPosition' + | 'getOptionPositions' + | 'getOwnerPositions' + | 'getPartialCollatParams' + | 'getPositionState' + | 'getPositionWithOwner' + | 'getPositionsWithOwner' + | 'init' + | 'isApprovedForAll' + | 'liquidate' + | 'merge' + | 'name' + | 'nextId' + | 'nominateNewOwner' + | 'nominatedOwner' + | 'owner' + | 'ownerOf' + | 'partialCollatParams' + | 'positions' + | 'safeTransferFrom(address,address,uint256)' + | 'safeTransferFrom(address,address,uint256,bytes)' + | 'setApprovalForAll' + | 'setPartialCollateralParams' + | 'setURI' + | 'settlePositions' + | 'split' + | 'supportsInterface' + | 'symbol' + | 'tokenByIndex' + | 'tokenOfOwnerByIndex' + | 'tokenURI' + | 'totalSupply' + | 'transferFrom', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'acceptOwnership', values?: undefined): string; + encodeFunctionData( + functionFragment: 'addCollateral', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'adjustPosition', + values: [ + OptionMarket.TradeParametersStruct, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'approve', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'baseURI', values?: undefined): string; + encodeFunctionData( + functionFragment: 'canLiquidate', + values: [ + OptionToken.OptionPositionStruct, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData(functionFragment: 'getApproved', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'getLiquidationFees', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData(functionFragment: 'getOptionPosition', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getOptionPositions', values: [PromiseOrValue[]]): string; + encodeFunctionData(functionFragment: 'getOwnerPositions', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getPartialCollatParams', values?: undefined): string; + encodeFunctionData(functionFragment: 'getPositionState', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getPositionWithOwner', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getPositionsWithOwner', values: [PromiseOrValue[]]): string; + encodeFunctionData( + functionFragment: 'init', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'isApprovedForAll', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'liquidate', + values: [PromiseOrValue, OptionMarket.TradeParametersStruct, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'merge', values: [PromiseOrValue[]]): string; + encodeFunctionData(functionFragment: 'name', values?: undefined): string; + encodeFunctionData(functionFragment: 'nextId', values?: undefined): string; + encodeFunctionData(functionFragment: 'nominateNewOwner', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'nominatedOwner', values?: undefined): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; + encodeFunctionData(functionFragment: 'ownerOf', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'partialCollatParams', values?: undefined): string; + encodeFunctionData(functionFragment: 'positions', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'safeTransferFrom(address,address,uint256)', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'safeTransferFrom(address,address,uint256,bytes)', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'setApprovalForAll', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'setPartialCollateralParams', + values: [OptionToken.PartialCollateralParametersStruct], + ): string; + encodeFunctionData(functionFragment: 'setURI', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'settlePositions', values: [PromiseOrValue[]]): string; + encodeFunctionData( + functionFragment: 'split', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData(functionFragment: 'supportsInterface', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'symbol', values?: undefined): string; + encodeFunctionData(functionFragment: 'tokenByIndex', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'tokenOfOwnerByIndex', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'tokenURI', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string; + encodeFunctionData( + functionFragment: 'transferFrom', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + + decodeFunctionResult(functionFragment: 'acceptOwnership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'addCollateral', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'adjustPosition', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'baseURI', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'canLiquidate', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getApproved', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getLiquidationFees', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getOptionPosition', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getOptionPositions', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getOwnerPositions', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getPartialCollatParams', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getPositionState', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getPositionWithOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getPositionsWithOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'init', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'isApprovedForAll', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'liquidate', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'merge', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nextId', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nominateNewOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nominatedOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'ownerOf', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'partialCollatParams', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'positions', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'safeTransferFrom(address,address,uint256)', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'safeTransferFrom(address,address,uint256,bytes)', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setApprovalForAll', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setPartialCollateralParams', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'setURI', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'settlePositions', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'split', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'tokenByIndex', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'tokenOfOwnerByIndex', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'tokenURI', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result; + + events: { + 'Approval(address,address,uint256)': EventFragment; + 'ApprovalForAll(address,address,bool)': EventFragment; + 'OwnerChanged(address,address)': EventFragment; + 'OwnerNominated(address)': EventFragment; + 'PartialCollateralParamsSet(tuple)': EventFragment; + 'PositionUpdated(uint256,address,uint8,tuple,uint256)': EventFragment; + 'Transfer(address,address,uint256)': EventFragment; + 'URISet(string)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'ApprovalForAll'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnerChanged'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnerNominated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'PartialCollateralParamsSet'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'PositionUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'URISet'): EventFragment; +} + +export interface ApprovalEventObject { + owner: string; + approved: string; + tokenId: BigNumber; +} +export type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>; + +export type ApprovalEventFilter = TypedEventFilter; + +export interface ApprovalForAllEventObject { + owner: string; + operator: string; + approved: boolean; +} +export type ApprovalForAllEvent = TypedEvent<[string, string, boolean], ApprovalForAllEventObject>; + +export type ApprovalForAllEventFilter = TypedEventFilter; + +export interface OwnerChangedEventObject { + oldOwner: string; + newOwner: string; +} +export type OwnerChangedEvent = TypedEvent<[string, string], OwnerChangedEventObject>; + +export type OwnerChangedEventFilter = TypedEventFilter; + +export interface OwnerNominatedEventObject { + newOwner: string; +} +export type OwnerNominatedEvent = TypedEvent<[string], OwnerNominatedEventObject>; + +export type OwnerNominatedEventFilter = TypedEventFilter; + +export interface PartialCollateralParamsSetEventObject { + partialCollateralParams: OptionToken.PartialCollateralParametersStructOutput; +} +export type PartialCollateralParamsSetEvent = TypedEvent< + [OptionToken.PartialCollateralParametersStructOutput], + PartialCollateralParamsSetEventObject +>; + +export type PartialCollateralParamsSetEventFilter = TypedEventFilter; + +export interface PositionUpdatedEventObject { + positionId: BigNumber; + owner: string; + updatedType: number; + position: OptionToken.OptionPositionStructOutput; + timestamp: BigNumber; +} +export type PositionUpdatedEvent = TypedEvent< + [BigNumber, string, number, OptionToken.OptionPositionStructOutput, BigNumber], + PositionUpdatedEventObject +>; + +export type PositionUpdatedEventFilter = TypedEventFilter; + +export interface TransferEventObject { + from: string; + to: string; + tokenId: BigNumber; +} +export type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>; + +export type TransferEventFilter = TypedEventFilter; + +export interface URISetEventObject { + URI: string; +} +export type URISetEvent = TypedEvent<[string], URISetEventObject>; + +export type URISetEventFilter = TypedEventFilter; + +export interface LyraOptionToken extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: LyraOptionTokenInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners(eventFilter?: TypedEventFilter): Array>; + listeners(eventName?: string): Array; + removeAllListeners(eventFilter: TypedEventFilter): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + addCollateral( + positionId: PromiseOrValue, + amountCollateral: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + adjustPosition( + trade: OptionMarket.TradeParametersStruct, + strikeId: PromiseOrValue, + trader: PromiseOrValue, + positionId: PromiseOrValue, + optionCost: PromiseOrValue, + setCollateralTo: PromiseOrValue, + isOpen: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + approve( + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + balanceOf(owner: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + baseURI(overrides?: CallOverrides): Promise<[string]>; + + canLiquidate( + position: OptionToken.OptionPositionStruct, + expiry: PromiseOrValue, + strikePrice: PromiseOrValue, + spotPrice: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + getApproved(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + getLiquidationFees( + gwavPremium: PromiseOrValue, + userPositionCollateral: PromiseOrValue, + convertedMinLiquidationFee: PromiseOrValue, + insolvencyMultiplier: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [OptionToken.LiquidationFeesStructOutput] & { + liquidationFees: OptionToken.LiquidationFeesStructOutput; + } + >; + + getOptionPosition( + positionId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[OptionToken.OptionPositionStructOutput]>; + + getOptionPositions( + positionIds: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise<[OptionToken.OptionPositionStructOutput[]]>; + + getOwnerPositions( + target: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[OptionToken.OptionPositionStructOutput[]]>; + + getPartialCollatParams(overrides?: CallOverrides): Promise<[OptionToken.PartialCollateralParametersStructOutput]>; + + getPositionState(positionId: PromiseOrValue, overrides?: CallOverrides): Promise<[number]>; + + getPositionWithOwner( + positionId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[OptionToken.PositionWithOwnerStructOutput]>; + + getPositionsWithOwner( + positionIds: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise<[OptionToken.PositionWithOwnerStructOutput[]]>; + + init( + _optionMarket: PromiseOrValue, + _greekCache: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _exchangeAdapter: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + isApprovedForAll( + owner: PromiseOrValue, + operator: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[boolean]>; + + liquidate( + positionId: PromiseOrValue, + trade: OptionMarket.TradeParametersStruct, + totalCost: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + merge( + positionIds: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise<[string]>; + + nextId(overrides?: CallOverrides): Promise<[BigNumber]>; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise<[string]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + ownerOf(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + partialCollatParams(overrides?: CallOverrides): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber] & { + penaltyRatio: BigNumber; + liquidatorFeeRatio: BigNumber; + smFeeRatio: BigNumber; + minLiquidationFee: BigNumber; + } + >; + + positions( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, number, BigNumber, BigNumber, number] & { + positionId: BigNumber; + strikeId: BigNumber; + optionType: number; + amount: BigNumber; + collateral: BigNumber; + state: number; + } + >; + + 'safeTransferFrom(address,address,uint256)'( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'safeTransferFrom(address,address,uint256,bytes)'( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + _data: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setApprovalForAll( + operator: PromiseOrValue, + approved: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPartialCollateralParams( + _partialCollatParams: OptionToken.PartialCollateralParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setURI( + newURI: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + settlePositions( + positionIds: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + split( + positionId: PromiseOrValue, + newAmount: PromiseOrValue, + newCollateral: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + supportsInterface(interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise<[boolean]>; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + tokenByIndex(index: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + tokenOfOwnerByIndex( + owner: PromiseOrValue, + index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + tokenURI(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + transferFrom( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + addCollateral( + positionId: PromiseOrValue, + amountCollateral: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + adjustPosition( + trade: OptionMarket.TradeParametersStruct, + strikeId: PromiseOrValue, + trader: PromiseOrValue, + positionId: PromiseOrValue, + optionCost: PromiseOrValue, + setCollateralTo: PromiseOrValue, + isOpen: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + approve( + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + balanceOf(owner: PromiseOrValue, overrides?: CallOverrides): Promise; + + baseURI(overrides?: CallOverrides): Promise; + + canLiquidate( + position: OptionToken.OptionPositionStruct, + expiry: PromiseOrValue, + strikePrice: PromiseOrValue, + spotPrice: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getApproved(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getLiquidationFees( + gwavPremium: PromiseOrValue, + userPositionCollateral: PromiseOrValue, + convertedMinLiquidationFee: PromiseOrValue, + insolvencyMultiplier: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getOptionPosition( + positionId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getOptionPositions( + positionIds: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise; + + getOwnerPositions( + target: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPartialCollatParams(overrides?: CallOverrides): Promise; + + getPositionState(positionId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getPositionWithOwner( + positionId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPositionsWithOwner( + positionIds: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise; + + init( + _optionMarket: PromiseOrValue, + _greekCache: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _exchangeAdapter: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + isApprovedForAll( + owner: PromiseOrValue, + operator: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + liquidate( + positionId: PromiseOrValue, + trade: OptionMarket.TradeParametersStruct, + totalCost: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + merge( + positionIds: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nextId(overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerOf(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; + + partialCollatParams(overrides?: CallOverrides): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber] & { + penaltyRatio: BigNumber; + liquidatorFeeRatio: BigNumber; + smFeeRatio: BigNumber; + minLiquidationFee: BigNumber; + } + >; + + positions( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, number, BigNumber, BigNumber, number] & { + positionId: BigNumber; + strikeId: BigNumber; + optionType: number; + amount: BigNumber; + collateral: BigNumber; + state: number; + } + >; + + 'safeTransferFrom(address,address,uint256)'( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'safeTransferFrom(address,address,uint256,bytes)'( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + _data: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setApprovalForAll( + operator: PromiseOrValue, + approved: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPartialCollateralParams( + _partialCollatParams: OptionToken.PartialCollateralParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setURI( + newURI: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + settlePositions( + positionIds: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + split( + positionId: PromiseOrValue, + newAmount: PromiseOrValue, + newCollateral: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + supportsInterface(interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex(index: PromiseOrValue, overrides?: CallOverrides): Promise; + + tokenOfOwnerByIndex( + owner: PromiseOrValue, + index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenURI(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + callStatic: { + acceptOwnership(overrides?: CallOverrides): Promise; + + addCollateral( + positionId: PromiseOrValue, + amountCollateral: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + adjustPosition( + trade: OptionMarket.TradeParametersStruct, + strikeId: PromiseOrValue, + trader: PromiseOrValue, + positionId: PromiseOrValue, + optionCost: PromiseOrValue, + setCollateralTo: PromiseOrValue, + isOpen: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber] & { pendingCollateral: BigNumber }>; + + approve( + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + balanceOf(owner: PromiseOrValue, overrides?: CallOverrides): Promise; + + baseURI(overrides?: CallOverrides): Promise; + + canLiquidate( + position: OptionToken.OptionPositionStruct, + expiry: PromiseOrValue, + strikePrice: PromiseOrValue, + spotPrice: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getApproved(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getLiquidationFees( + gwavPremium: PromiseOrValue, + userPositionCollateral: PromiseOrValue, + convertedMinLiquidationFee: PromiseOrValue, + insolvencyMultiplier: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getOptionPosition( + positionId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getOptionPositions( + positionIds: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise; + + getOwnerPositions( + target: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPartialCollatParams(overrides?: CallOverrides): Promise; + + getPositionState(positionId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getPositionWithOwner( + positionId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPositionsWithOwner( + positionIds: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise; + + init( + _optionMarket: PromiseOrValue, + _greekCache: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _exchangeAdapter: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + isApprovedForAll( + owner: PromiseOrValue, + operator: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + liquidate( + positionId: PromiseOrValue, + trade: OptionMarket.TradeParametersStruct, + totalCost: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + merge(positionIds: PromiseOrValue[], overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + nextId(overrides?: CallOverrides): Promise; + + nominateNewOwner(_owner: PromiseOrValue, overrides?: CallOverrides): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerOf(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; + + partialCollatParams(overrides?: CallOverrides): Promise< + [BigNumber, BigNumber, BigNumber, BigNumber] & { + penaltyRatio: BigNumber; + liquidatorFeeRatio: BigNumber; + smFeeRatio: BigNumber; + minLiquidationFee: BigNumber; + } + >; + + positions( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, number, BigNumber, BigNumber, number] & { + positionId: BigNumber; + strikeId: BigNumber; + optionType: number; + amount: BigNumber; + collateral: BigNumber; + state: number; + } + >; + + 'safeTransferFrom(address,address,uint256)'( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + 'safeTransferFrom(address,address,uint256,bytes)'( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + _data: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + setApprovalForAll( + operator: PromiseOrValue, + approved: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + setPartialCollateralParams( + _partialCollatParams: OptionToken.PartialCollateralParametersStruct, + overrides?: CallOverrides, + ): Promise; + + setURI(newURI: PromiseOrValue, overrides?: CallOverrides): Promise; + + settlePositions(positionIds: PromiseOrValue[], overrides?: CallOverrides): Promise; + + split( + positionId: PromiseOrValue, + newAmount: PromiseOrValue, + newCollateral: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + supportsInterface(interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex(index: PromiseOrValue, overrides?: CallOverrides): Promise; + + tokenOfOwnerByIndex( + owner: PromiseOrValue, + index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenURI(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + }; + + filters: { + 'Approval(address,address,uint256)'( + owner?: PromiseOrValue | null, + approved?: PromiseOrValue | null, + tokenId?: PromiseOrValue | null, + ): ApprovalEventFilter; + Approval( + owner?: PromiseOrValue | null, + approved?: PromiseOrValue | null, + tokenId?: PromiseOrValue | null, + ): ApprovalEventFilter; + + 'ApprovalForAll(address,address,bool)'( + owner?: PromiseOrValue | null, + operator?: PromiseOrValue | null, + approved?: null, + ): ApprovalForAllEventFilter; + ApprovalForAll( + owner?: PromiseOrValue | null, + operator?: PromiseOrValue | null, + approved?: null, + ): ApprovalForAllEventFilter; + + 'OwnerChanged(address,address)'(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter; + OwnerChanged(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter; + + 'OwnerNominated(address)'(newOwner?: null): OwnerNominatedEventFilter; + OwnerNominated(newOwner?: null): OwnerNominatedEventFilter; + + 'PartialCollateralParamsSet(tuple)'(partialCollateralParams?: null): PartialCollateralParamsSetEventFilter; + PartialCollateralParamsSet(partialCollateralParams?: null): PartialCollateralParamsSetEventFilter; + + 'PositionUpdated(uint256,address,uint8,tuple,uint256)'( + positionId?: PromiseOrValue | null, + owner?: PromiseOrValue | null, + updatedType?: PromiseOrValue | null, + position?: null, + timestamp?: null, + ): PositionUpdatedEventFilter; + PositionUpdated( + positionId?: PromiseOrValue | null, + owner?: PromiseOrValue | null, + updatedType?: PromiseOrValue | null, + position?: null, + timestamp?: null, + ): PositionUpdatedEventFilter; + + 'Transfer(address,address,uint256)'( + from?: PromiseOrValue | null, + to?: PromiseOrValue | null, + tokenId?: PromiseOrValue | null, + ): TransferEventFilter; + Transfer( + from?: PromiseOrValue | null, + to?: PromiseOrValue | null, + tokenId?: PromiseOrValue | null, + ): TransferEventFilter; + + 'URISet(string)'(URI?: null): URISetEventFilter; + URISet(URI?: null): URISetEventFilter; + }; + + estimateGas: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + addCollateral( + positionId: PromiseOrValue, + amountCollateral: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + adjustPosition( + trade: OptionMarket.TradeParametersStruct, + strikeId: PromiseOrValue, + trader: PromiseOrValue, + positionId: PromiseOrValue, + optionCost: PromiseOrValue, + setCollateralTo: PromiseOrValue, + isOpen: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + approve( + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + balanceOf(owner: PromiseOrValue, overrides?: CallOverrides): Promise; + + baseURI(overrides?: CallOverrides): Promise; + + canLiquidate( + position: OptionToken.OptionPositionStruct, + expiry: PromiseOrValue, + strikePrice: PromiseOrValue, + spotPrice: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getApproved(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getLiquidationFees( + gwavPremium: PromiseOrValue, + userPositionCollateral: PromiseOrValue, + convertedMinLiquidationFee: PromiseOrValue, + insolvencyMultiplier: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getOptionPosition(positionId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getOptionPositions(positionIds: PromiseOrValue[], overrides?: CallOverrides): Promise; + + getOwnerPositions(target: PromiseOrValue, overrides?: CallOverrides): Promise; + + getPartialCollatParams(overrides?: CallOverrides): Promise; + + getPositionState(positionId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getPositionWithOwner(positionId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getPositionsWithOwner(positionIds: PromiseOrValue[], overrides?: CallOverrides): Promise; + + init( + _optionMarket: PromiseOrValue, + _greekCache: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _exchangeAdapter: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + isApprovedForAll( + owner: PromiseOrValue, + operator: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + liquidate( + positionId: PromiseOrValue, + trade: OptionMarket.TradeParametersStruct, + totalCost: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + merge( + positionIds: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nextId(overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerOf(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; + + partialCollatParams(overrides?: CallOverrides): Promise; + + positions(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + 'safeTransferFrom(address,address,uint256)'( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'safeTransferFrom(address,address,uint256,bytes)'( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + _data: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setApprovalForAll( + operator: PromiseOrValue, + approved: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPartialCollateralParams( + _partialCollatParams: OptionToken.PartialCollateralParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setURI( + newURI: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + settlePositions( + positionIds: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + split( + positionId: PromiseOrValue, + newAmount: PromiseOrValue, + newCollateral: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + supportsInterface(interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex(index: PromiseOrValue, overrides?: CallOverrides): Promise; + + tokenOfOwnerByIndex( + owner: PromiseOrValue, + index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenURI(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + populateTransaction: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + addCollateral( + positionId: PromiseOrValue, + amountCollateral: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + adjustPosition( + trade: OptionMarket.TradeParametersStruct, + strikeId: PromiseOrValue, + trader: PromiseOrValue, + positionId: PromiseOrValue, + optionCost: PromiseOrValue, + setCollateralTo: PromiseOrValue, + isOpen: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + approve( + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + balanceOf(owner: PromiseOrValue, overrides?: CallOverrides): Promise; + + baseURI(overrides?: CallOverrides): Promise; + + canLiquidate( + position: OptionToken.OptionPositionStruct, + expiry: PromiseOrValue, + strikePrice: PromiseOrValue, + spotPrice: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getApproved(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; + + getLiquidationFees( + gwavPremium: PromiseOrValue, + userPositionCollateral: PromiseOrValue, + convertedMinLiquidationFee: PromiseOrValue, + insolvencyMultiplier: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getOptionPosition( + positionId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getOptionPositions( + positionIds: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise; + + getOwnerPositions(target: PromiseOrValue, overrides?: CallOverrides): Promise; + + getPartialCollatParams(overrides?: CallOverrides): Promise; + + getPositionState( + positionId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPositionWithOwner( + positionId: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPositionsWithOwner( + positionIds: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise; + + init( + _optionMarket: PromiseOrValue, + _greekCache: PromiseOrValue, + _shortCollateral: PromiseOrValue, + _exchangeAdapter: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + isApprovedForAll( + owner: PromiseOrValue, + operator: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + liquidate( + positionId: PromiseOrValue, + trade: OptionMarket.TradeParametersStruct, + totalCost: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + merge( + positionIds: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + nextId(overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + ownerOf(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; + + partialCollatParams(overrides?: CallOverrides): Promise; + + positions(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + 'safeTransferFrom(address,address,uint256)'( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + 'safeTransferFrom(address,address,uint256,bytes)'( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + _data: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setApprovalForAll( + operator: PromiseOrValue, + approved: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setPartialCollateralParams( + _partialCollatParams: OptionToken.PartialCollateralParametersStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + setURI( + newURI: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + settlePositions( + positionIds: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + split( + positionId: PromiseOrValue, + newAmount: PromiseOrValue, + newCollateral: PromiseOrValue, + recipient: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + supportsInterface(interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + tokenByIndex(index: PromiseOrValue, overrides?: CallOverrides): Promise; + + tokenOfOwnerByIndex( + owner: PromiseOrValue, + index: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + tokenURI(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + transferFrom( + from: PromiseOrValue, + to: PromiseOrValue, + tokenId: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; +} diff --git a/src/apps/lyra-newport/contracts/ethers/LyraRegistry.ts b/src/apps/lyra-newport/contracts/ethers/LyraRegistry.ts new file mode 100644 index 000000000..11f32bc30 --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/LyraRegistry.ts @@ -0,0 +1,470 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; + +export declare namespace LyraRegistry { + export type OptionMarketAddressesStruct = { + liquidityPool: PromiseOrValue; + liquidityToken: PromiseOrValue; + greekCache: PromiseOrValue; + optionMarket: PromiseOrValue; + optionMarketPricer: PromiseOrValue; + optionToken: PromiseOrValue; + poolHedger: PromiseOrValue; + shortCollateral: PromiseOrValue; + gwavOracle: PromiseOrValue; + quoteAsset: PromiseOrValue; + baseAsset: PromiseOrValue; + }; + + export type OptionMarketAddressesStructOutput = [ + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + string, + ] & { + liquidityPool: string; + liquidityToken: string; + greekCache: string; + optionMarket: string; + optionMarketPricer: string; + optionToken: string; + poolHedger: string; + shortCollateral: string; + gwavOracle: string; + quoteAsset: string; + baseAsset: string; + }; +} + +export interface LyraRegistryInterface extends utils.Interface { + functions: { + 'acceptOwnership()': FunctionFragment; + 'addMarket((address,address,address,address,address,address,address,address,address,address,address))': FunctionFragment; + 'getGlobalAddress(bytes32)': FunctionFragment; + 'getMarketAddresses(address)': FunctionFragment; + 'globalAddresses(bytes32)': FunctionFragment; + 'marketAddresses(address)': FunctionFragment; + 'nominateNewOwner(address)': FunctionFragment; + 'nominatedOwner()': FunctionFragment; + 'optionMarkets(uint256)': FunctionFragment; + 'owner()': FunctionFragment; + 'removeMarket(address)': FunctionFragment; + 'updateGlobalAddresses(bytes32[],address[])': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'acceptOwnership' + | 'addMarket' + | 'getGlobalAddress' + | 'getMarketAddresses' + | 'globalAddresses' + | 'marketAddresses' + | 'nominateNewOwner' + | 'nominatedOwner' + | 'optionMarkets' + | 'owner' + | 'removeMarket' + | 'updateGlobalAddresses', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'acceptOwnership', values?: undefined): string; + encodeFunctionData(functionFragment: 'addMarket', values: [LyraRegistry.OptionMarketAddressesStruct]): string; + encodeFunctionData(functionFragment: 'getGlobalAddress', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'getMarketAddresses', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'globalAddresses', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'marketAddresses', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'nominateNewOwner', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'nominatedOwner', values?: undefined): string; + encodeFunctionData(functionFragment: 'optionMarkets', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'owner', values?: undefined): string; + encodeFunctionData(functionFragment: 'removeMarket', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'updateGlobalAddresses', + values: [PromiseOrValue[], PromiseOrValue[]], + ): string; + + decodeFunctionResult(functionFragment: 'acceptOwnership', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'addMarket', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getGlobalAddress', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getMarketAddresses', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'globalAddresses', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'marketAddresses', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nominateNewOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'nominatedOwner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'optionMarkets', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'removeMarket', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'updateGlobalAddresses', data: BytesLike): Result; + + events: { + 'GlobalAddressUpdated(bytes32,address)': EventFragment; + 'MarketRemoved(address)': EventFragment; + 'MarketUpdated(address,tuple)': EventFragment; + 'OwnerChanged(address,address)': EventFragment; + 'OwnerNominated(address)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'GlobalAddressUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'MarketRemoved'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'MarketUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnerChanged'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'OwnerNominated'): EventFragment; +} + +export interface GlobalAddressUpdatedEventObject { + name: string; + addr: string; +} +export type GlobalAddressUpdatedEvent = TypedEvent<[string, string], GlobalAddressUpdatedEventObject>; + +export type GlobalAddressUpdatedEventFilter = TypedEventFilter; + +export interface MarketRemovedEventObject { + market: string; +} +export type MarketRemovedEvent = TypedEvent<[string], MarketRemovedEventObject>; + +export type MarketRemovedEventFilter = TypedEventFilter; + +export interface MarketUpdatedEventObject { + optionMarket: string; + market: LyraRegistry.OptionMarketAddressesStructOutput; +} +export type MarketUpdatedEvent = TypedEvent< + [string, LyraRegistry.OptionMarketAddressesStructOutput], + MarketUpdatedEventObject +>; + +export type MarketUpdatedEventFilter = TypedEventFilter; + +export interface OwnerChangedEventObject { + oldOwner: string; + newOwner: string; +} +export type OwnerChangedEvent = TypedEvent<[string, string], OwnerChangedEventObject>; + +export type OwnerChangedEventFilter = TypedEventFilter; + +export interface OwnerNominatedEventObject { + newOwner: string; +} +export type OwnerNominatedEvent = TypedEvent<[string], OwnerNominatedEventObject>; + +export type OwnerNominatedEventFilter = TypedEventFilter; + +export interface LyraRegistry extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: LyraRegistryInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners(eventFilter?: TypedEventFilter): Array>; + listeners(eventName?: string): Array; + removeAllListeners(eventFilter: TypedEventFilter): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + addMarket( + newMarketAddresses: LyraRegistry.OptionMarketAddressesStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getGlobalAddress( + contractName: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string] & { globalContract: string }>; + + getMarketAddresses( + optionMarket: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[LyraRegistry.OptionMarketAddressesStructOutput]>; + + globalAddresses(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + marketAddresses( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [string, string, string, string, string, string, string, string, string, string, string] & { + liquidityPool: string; + liquidityToken: string; + greekCache: string; + optionMarket: string; + optionMarketPricer: string; + optionToken: string; + poolHedger: string; + shortCollateral: string; + gwavOracle: string; + quoteAsset: string; + baseAsset: string; + } + >; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise<[string]>; + + optionMarkets(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; + + owner(overrides?: CallOverrides): Promise<[string]>; + + removeMarket( + market: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + updateGlobalAddresses( + names: PromiseOrValue[], + addresses: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + addMarket( + newMarketAddresses: LyraRegistry.OptionMarketAddressesStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getGlobalAddress(contractName: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMarketAddresses( + optionMarket: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + globalAddresses(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + marketAddresses( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [string, string, string, string, string, string, string, string, string, string, string] & { + liquidityPool: string; + liquidityToken: string; + greekCache: string; + optionMarket: string; + optionMarketPricer: string; + optionToken: string; + poolHedger: string; + shortCollateral: string; + gwavOracle: string; + quoteAsset: string; + baseAsset: string; + } + >; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + optionMarkets(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + removeMarket( + market: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + updateGlobalAddresses( + names: PromiseOrValue[], + addresses: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + callStatic: { + acceptOwnership(overrides?: CallOverrides): Promise; + + addMarket(newMarketAddresses: LyraRegistry.OptionMarketAddressesStruct, overrides?: CallOverrides): Promise; + + getGlobalAddress(contractName: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMarketAddresses( + optionMarket: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + globalAddresses(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + marketAddresses( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [string, string, string, string, string, string, string, string, string, string, string] & { + liquidityPool: string; + liquidityToken: string; + greekCache: string; + optionMarket: string; + optionMarketPricer: string; + optionToken: string; + poolHedger: string; + shortCollateral: string; + gwavOracle: string; + quoteAsset: string; + baseAsset: string; + } + >; + + nominateNewOwner(_owner: PromiseOrValue, overrides?: CallOverrides): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + optionMarkets(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + removeMarket(market: PromiseOrValue, overrides?: CallOverrides): Promise; + + updateGlobalAddresses( + names: PromiseOrValue[], + addresses: PromiseOrValue[], + overrides?: CallOverrides, + ): Promise; + }; + + filters: { + 'GlobalAddressUpdated(bytes32,address)'( + name?: PromiseOrValue | null, + addr?: null, + ): GlobalAddressUpdatedEventFilter; + GlobalAddressUpdated(name?: PromiseOrValue | null, addr?: null): GlobalAddressUpdatedEventFilter; + + 'MarketRemoved(address)'(market?: PromiseOrValue | null): MarketRemovedEventFilter; + MarketRemoved(market?: PromiseOrValue | null): MarketRemovedEventFilter; + + 'MarketUpdated(address,tuple)'( + optionMarket?: PromiseOrValue | null, + market?: null, + ): MarketUpdatedEventFilter; + MarketUpdated(optionMarket?: PromiseOrValue | null, market?: null): MarketUpdatedEventFilter; + + 'OwnerChanged(address,address)'(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter; + OwnerChanged(oldOwner?: null, newOwner?: null): OwnerChangedEventFilter; + + 'OwnerNominated(address)'(newOwner?: null): OwnerNominatedEventFilter; + OwnerNominated(newOwner?: null): OwnerNominatedEventFilter; + }; + + estimateGas: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + addMarket( + newMarketAddresses: LyraRegistry.OptionMarketAddressesStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getGlobalAddress(contractName: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMarketAddresses(optionMarket: PromiseOrValue, overrides?: CallOverrides): Promise; + + globalAddresses(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + marketAddresses(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + optionMarkets(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + removeMarket( + market: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + updateGlobalAddresses( + names: PromiseOrValue[], + addresses: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + populateTransaction: { + acceptOwnership(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + addMarket( + newMarketAddresses: LyraRegistry.OptionMarketAddressesStruct, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getGlobalAddress(contractName: PromiseOrValue, overrides?: CallOverrides): Promise; + + getMarketAddresses(optionMarket: PromiseOrValue, overrides?: CallOverrides): Promise; + + globalAddresses(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + marketAddresses(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + nominateNewOwner( + _owner: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + nominatedOwner(overrides?: CallOverrides): Promise; + + optionMarkets(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + owner(overrides?: CallOverrides): Promise; + + removeMarket( + market: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + updateGlobalAddresses( + names: PromiseOrValue[], + addresses: PromiseOrValue[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; +} diff --git a/src/apps/lyra-newport/contracts/ethers/LyraStkLyra.ts b/src/apps/lyra-newport/contracts/ethers/LyraStkLyra.ts new file mode 100644 index 000000000..fa74b0c1c --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/LyraStkLyra.ts @@ -0,0 +1,1658 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BigNumberish, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from 'ethers'; +import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi'; +import type { Listener, Provider } from '@ethersproject/providers'; +import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common'; + +export declare namespace DistributionTypes { + export type AssetConfigInputStruct = { + emissionPerSecond: PromiseOrValue; + totalStaked: PromiseOrValue; + underlyingAsset: PromiseOrValue; + }; + + export type AssetConfigInputStructOutput = [BigNumber, BigNumber, string] & { + emissionPerSecond: BigNumber; + totalStaked: BigNumber; + underlyingAsset: string; + }; +} + +export interface LyraStkLyraInterface extends utils.Interface { + functions: { + 'COOLDOWN_SECONDS()': FunctionFragment; + 'DELEGATE_BY_TYPE_TYPEHASH()': FunctionFragment; + 'DELEGATE_TYPEHASH()': FunctionFragment; + 'DISTRIBUTION_END()': FunctionFragment; + 'DOMAIN_SEPARATOR()': FunctionFragment; + 'EIP712_REVISION()': FunctionFragment; + 'EMISSION_MANAGER()': FunctionFragment; + 'PERMIT_TYPEHASH()': FunctionFragment; + 'PRECISION()': FunctionFragment; + 'REVISION()': FunctionFragment; + 'REWARDS_VAULT()': FunctionFragment; + 'REWARD_TOKEN()': FunctionFragment; + 'STAKED_TOKEN()': FunctionFragment; + 'UNSTAKE_WINDOW()': FunctionFragment; + '_aaveGovernance()': FunctionFragment; + '_nonces(address)': FunctionFragment; + '_votingSnapshots(address,uint256)': FunctionFragment; + '_votingSnapshotsCounts(address)': FunctionFragment; + 'allowance(address,address)': FunctionFragment; + 'approve(address,uint256)': FunctionFragment; + 'assets(address)': FunctionFragment; + 'balanceOf(address)': FunctionFragment; + 'claimRewards(address,uint256)': FunctionFragment; + 'configureAssets((uint128,uint256,address)[])': FunctionFragment; + 'cooldown()': FunctionFragment; + 'decimals()': FunctionFragment; + 'decreaseAllowance(address,uint256)': FunctionFragment; + 'delegate(address)': FunctionFragment; + 'delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)': FunctionFragment; + 'delegateByType(address,uint8)': FunctionFragment; + 'delegateByTypeBySig(address,uint8,uint256,uint256,uint8,bytes32,bytes32)': FunctionFragment; + 'getDelegateeByType(address,uint8)': FunctionFragment; + 'getNextCooldownTimestamp(uint256,uint256,address,uint256)': FunctionFragment; + 'getPowerAtBlock(address,uint256,uint8)': FunctionFragment; + 'getPowerCurrent(address,uint8)': FunctionFragment; + 'getTotalRewardsBalance(address)': FunctionFragment; + 'getUserAssetData(address,address)': FunctionFragment; + 'increaseAllowance(address,uint256)': FunctionFragment; + 'initialize(string,string,uint8)': FunctionFragment; + 'name()': FunctionFragment; + 'permit(address,address,uint256,uint256,uint8,bytes32,bytes32)': FunctionFragment; + 'redeem(address,uint256)': FunctionFragment; + 'stake(address,uint256)': FunctionFragment; + 'stakerRewardsToClaim(address)': FunctionFragment; + 'stakersCooldowns(address)': FunctionFragment; + 'symbol()': FunctionFragment; + 'totalSupply()': FunctionFragment; + 'totalSupplyAt(uint256)': FunctionFragment; + 'transfer(address,uint256)': FunctionFragment; + 'transferFrom(address,address,uint256)': FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: + | 'COOLDOWN_SECONDS' + | 'DELEGATE_BY_TYPE_TYPEHASH' + | 'DELEGATE_TYPEHASH' + | 'DISTRIBUTION_END' + | 'DOMAIN_SEPARATOR' + | 'EIP712_REVISION' + | 'EMISSION_MANAGER' + | 'PERMIT_TYPEHASH' + | 'PRECISION' + | 'REVISION' + | 'REWARDS_VAULT' + | 'REWARD_TOKEN' + | 'STAKED_TOKEN' + | 'UNSTAKE_WINDOW' + | '_aaveGovernance' + | '_nonces' + | '_votingSnapshots' + | '_votingSnapshotsCounts' + | 'allowance' + | 'approve' + | 'assets' + | 'balanceOf' + | 'claimRewards' + | 'configureAssets' + | 'cooldown' + | 'decimals' + | 'decreaseAllowance' + | 'delegate' + | 'delegateBySig' + | 'delegateByType' + | 'delegateByTypeBySig' + | 'getDelegateeByType' + | 'getNextCooldownTimestamp' + | 'getPowerAtBlock' + | 'getPowerCurrent' + | 'getTotalRewardsBalance' + | 'getUserAssetData' + | 'increaseAllowance' + | 'initialize' + | 'name' + | 'permit' + | 'redeem' + | 'stake' + | 'stakerRewardsToClaim' + | 'stakersCooldowns' + | 'symbol' + | 'totalSupply' + | 'totalSupplyAt' + | 'transfer' + | 'transferFrom', + ): FunctionFragment; + + encodeFunctionData(functionFragment: 'COOLDOWN_SECONDS', values?: undefined): string; + encodeFunctionData(functionFragment: 'DELEGATE_BY_TYPE_TYPEHASH', values?: undefined): string; + encodeFunctionData(functionFragment: 'DELEGATE_TYPEHASH', values?: undefined): string; + encodeFunctionData(functionFragment: 'DISTRIBUTION_END', values?: undefined): string; + encodeFunctionData(functionFragment: 'DOMAIN_SEPARATOR', values?: undefined): string; + encodeFunctionData(functionFragment: 'EIP712_REVISION', values?: undefined): string; + encodeFunctionData(functionFragment: 'EMISSION_MANAGER', values?: undefined): string; + encodeFunctionData(functionFragment: 'PERMIT_TYPEHASH', values?: undefined): string; + encodeFunctionData(functionFragment: 'PRECISION', values?: undefined): string; + encodeFunctionData(functionFragment: 'REVISION', values?: undefined): string; + encodeFunctionData(functionFragment: 'REWARDS_VAULT', values?: undefined): string; + encodeFunctionData(functionFragment: 'REWARD_TOKEN', values?: undefined): string; + encodeFunctionData(functionFragment: 'STAKED_TOKEN', values?: undefined): string; + encodeFunctionData(functionFragment: 'UNSTAKE_WINDOW', values?: undefined): string; + encodeFunctionData(functionFragment: '_aaveGovernance', values?: undefined): string; + encodeFunctionData(functionFragment: '_nonces', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: '_votingSnapshots', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: '_votingSnapshotsCounts', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'allowance', values: [PromiseOrValue, PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'approve', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'assets', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'balanceOf', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'claimRewards', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'configureAssets', values: [DistributionTypes.AssetConfigInputStruct[]]): string; + encodeFunctionData(functionFragment: 'cooldown', values?: undefined): string; + encodeFunctionData(functionFragment: 'decimals', values?: undefined): string; + encodeFunctionData( + functionFragment: 'decreaseAllowance', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'delegate', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'delegateBySig', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'delegateByType', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'delegateByTypeBySig', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'getDelegateeByType', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'getNextCooldownTimestamp', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'getPowerAtBlock', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'getPowerCurrent', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'getTotalRewardsBalance', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'getUserAssetData', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'increaseAllowance', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'initialize', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'name', values?: undefined): string; + encodeFunctionData( + functionFragment: 'permit', + values: [ + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + PromiseOrValue, + ], + ): string; + encodeFunctionData( + functionFragment: 'redeem', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData(functionFragment: 'stake', values: [PromiseOrValue, PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'stakerRewardsToClaim', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'stakersCooldowns', values: [PromiseOrValue]): string; + encodeFunctionData(functionFragment: 'symbol', values?: undefined): string; + encodeFunctionData(functionFragment: 'totalSupply', values?: undefined): string; + encodeFunctionData(functionFragment: 'totalSupplyAt', values: [PromiseOrValue]): string; + encodeFunctionData( + functionFragment: 'transfer', + values: [PromiseOrValue, PromiseOrValue], + ): string; + encodeFunctionData( + functionFragment: 'transferFrom', + values: [PromiseOrValue, PromiseOrValue, PromiseOrValue], + ): string; + + decodeFunctionResult(functionFragment: 'COOLDOWN_SECONDS', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'DELEGATE_BY_TYPE_TYPEHASH', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'DELEGATE_TYPEHASH', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'DISTRIBUTION_END', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'DOMAIN_SEPARATOR', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'EIP712_REVISION', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'EMISSION_MANAGER', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'PERMIT_TYPEHASH', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'PRECISION', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'REVISION', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'REWARDS_VAULT', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'REWARD_TOKEN', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'STAKED_TOKEN', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'UNSTAKE_WINDOW', data: BytesLike): Result; + decodeFunctionResult(functionFragment: '_aaveGovernance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: '_nonces', data: BytesLike): Result; + decodeFunctionResult(functionFragment: '_votingSnapshots', data: BytesLike): Result; + decodeFunctionResult(functionFragment: '_votingSnapshotsCounts', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'allowance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'approve', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'assets', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'balanceOf', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'claimRewards', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'configureAssets', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'cooldown', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'decimals', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'decreaseAllowance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'delegate', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'delegateBySig', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'delegateByType', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'delegateByTypeBySig', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getDelegateeByType', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getNextCooldownTimestamp', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getPowerAtBlock', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getPowerCurrent', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getTotalRewardsBalance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'getUserAssetData', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'increaseAllowance', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'name', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'permit', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'redeem', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'stake', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'stakerRewardsToClaim', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'stakersCooldowns', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'symbol', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'totalSupply', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'totalSupplyAt', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'transfer', data: BytesLike): Result; + decodeFunctionResult(functionFragment: 'transferFrom', data: BytesLike): Result; + + events: { + 'Approval(address,address,uint256)': EventFragment; + 'AssetConfigUpdated(address,uint256)': EventFragment; + 'AssetIndexUpdated(address,uint256)': EventFragment; + 'Cooldown(address)': EventFragment; + 'CooldownUpdated(address,uint256,uint256)': EventFragment; + 'DelegateChanged(address,address,uint8)': EventFragment; + 'DelegatedPowerChanged(address,uint256,uint8)': EventFragment; + 'Redeem(address,address,uint256)': EventFragment; + 'RewardsAccrued(address,uint256)': EventFragment; + 'RewardsClaimed(address,address,uint256)': EventFragment; + 'Staked(address,address,uint256)': EventFragment; + 'Transfer(address,address,uint256)': EventFragment; + 'UserIndexUpdated(address,address,uint256)': EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: 'Approval'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'AssetConfigUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'AssetIndexUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Cooldown'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'CooldownUpdated'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'DelegateChanged'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'DelegatedPowerChanged'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Redeem'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'RewardsAccrued'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'RewardsClaimed'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Staked'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'Transfer'): EventFragment; + getEvent(nameOrSignatureOrTopic: 'UserIndexUpdated'): EventFragment; +} + +export interface ApprovalEventObject { + owner: string; + spender: string; + value: BigNumber; +} +export type ApprovalEvent = TypedEvent<[string, string, BigNumber], ApprovalEventObject>; + +export type ApprovalEventFilter = TypedEventFilter; + +export interface AssetConfigUpdatedEventObject { + asset: string; + emission: BigNumber; +} +export type AssetConfigUpdatedEvent = TypedEvent<[string, BigNumber], AssetConfigUpdatedEventObject>; + +export type AssetConfigUpdatedEventFilter = TypedEventFilter; + +export interface AssetIndexUpdatedEventObject { + asset: string; + index: BigNumber; +} +export type AssetIndexUpdatedEvent = TypedEvent<[string, BigNumber], AssetIndexUpdatedEventObject>; + +export type AssetIndexUpdatedEventFilter = TypedEventFilter; + +export interface CooldownEventObject { + user: string; +} +export type CooldownEvent = TypedEvent<[string], CooldownEventObject>; + +export type CooldownEventFilter = TypedEventFilter; + +export interface CooldownUpdatedEventObject { + user: string; + balance: BigNumber; + cooldownTimestamp: BigNumber; +} +export type CooldownUpdatedEvent = TypedEvent<[string, BigNumber, BigNumber], CooldownUpdatedEventObject>; + +export type CooldownUpdatedEventFilter = TypedEventFilter; + +export interface DelegateChangedEventObject { + delegator: string; + delegatee: string; + delegationType: number; +} +export type DelegateChangedEvent = TypedEvent<[string, string, number], DelegateChangedEventObject>; + +export type DelegateChangedEventFilter = TypedEventFilter; + +export interface DelegatedPowerChangedEventObject { + user: string; + amount: BigNumber; + delegationType: number; +} +export type DelegatedPowerChangedEvent = TypedEvent<[string, BigNumber, number], DelegatedPowerChangedEventObject>; + +export type DelegatedPowerChangedEventFilter = TypedEventFilter; + +export interface RedeemEventObject { + from: string; + to: string; + amount: BigNumber; +} +export type RedeemEvent = TypedEvent<[string, string, BigNumber], RedeemEventObject>; + +export type RedeemEventFilter = TypedEventFilter; + +export interface RewardsAccruedEventObject { + user: string; + amount: BigNumber; +} +export type RewardsAccruedEvent = TypedEvent<[string, BigNumber], RewardsAccruedEventObject>; + +export type RewardsAccruedEventFilter = TypedEventFilter; + +export interface RewardsClaimedEventObject { + from: string; + to: string; + amount: BigNumber; +} +export type RewardsClaimedEvent = TypedEvent<[string, string, BigNumber], RewardsClaimedEventObject>; + +export type RewardsClaimedEventFilter = TypedEventFilter; + +export interface StakedEventObject { + from: string; + onBehalfOf: string; + amount: BigNumber; +} +export type StakedEvent = TypedEvent<[string, string, BigNumber], StakedEventObject>; + +export type StakedEventFilter = TypedEventFilter; + +export interface TransferEventObject { + from: string; + to: string; + value: BigNumber; +} +export type TransferEvent = TypedEvent<[string, string, BigNumber], TransferEventObject>; + +export type TransferEventFilter = TypedEventFilter; + +export interface UserIndexUpdatedEventObject { + user: string; + asset: string; + index: BigNumber; +} +export type UserIndexUpdatedEvent = TypedEvent<[string, string, BigNumber], UserIndexUpdatedEventObject>; + +export type UserIndexUpdatedEventFilter = TypedEventFilter; + +export interface LyraStkLyra extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: LyraStkLyraInterface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined, + ): Promise>; + + listeners(eventFilter?: TypedEventFilter): Array>; + listeners(eventName?: string): Array; + removeAllListeners(eventFilter: TypedEventFilter): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + COOLDOWN_SECONDS(overrides?: CallOverrides): Promise<[BigNumber]>; + + DELEGATE_BY_TYPE_TYPEHASH(overrides?: CallOverrides): Promise<[string]>; + + DELEGATE_TYPEHASH(overrides?: CallOverrides): Promise<[string]>; + + DISTRIBUTION_END(overrides?: CallOverrides): Promise<[BigNumber]>; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>; + + EIP712_REVISION(overrides?: CallOverrides): Promise<[string]>; + + EMISSION_MANAGER(overrides?: CallOverrides): Promise<[string]>; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>; + + PRECISION(overrides?: CallOverrides): Promise<[number]>; + + REVISION(overrides?: CallOverrides): Promise<[BigNumber]>; + + REWARDS_VAULT(overrides?: CallOverrides): Promise<[string]>; + + REWARD_TOKEN(overrides?: CallOverrides): Promise<[string]>; + + STAKED_TOKEN(overrides?: CallOverrides): Promise<[string]>; + + UNSTAKE_WINDOW(overrides?: CallOverrides): Promise<[BigNumber]>; + + _aaveGovernance(overrides?: CallOverrides): Promise<[string]>; + + _nonces(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + _votingSnapshots( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber] & { blockNumber: BigNumber; value: BigNumber }>; + + _votingSnapshotsCounts(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + assets( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, BigNumber] & { + emissionPerSecond: BigNumber; + lastUpdateTimestamp: BigNumber; + index: BigNumber; + } + >; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + claimRewards( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + configureAssets( + assetsConfigInput: DistributionTypes.AssetConfigInputStruct[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + cooldown(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + decimals(overrides?: CallOverrides): Promise<[number]>; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegate( + delegatee: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegateBySig( + delegatee: PromiseOrValue, + nonce: PromiseOrValue, + expiry: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegateByType( + delegatee: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegateByTypeBySig( + delegatee: PromiseOrValue, + delegationType: PromiseOrValue, + nonce: PromiseOrValue, + expiry: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getDelegateeByType( + delegator: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[string]>; + + getNextCooldownTimestamp( + fromCooldownTimestamp: PromiseOrValue, + amountToReceive: PromiseOrValue, + toAddress: PromiseOrValue, + toBalance: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + getPowerAtBlock( + user: PromiseOrValue, + blockNumber: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + getPowerCurrent( + user: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + getTotalRewardsBalance(staker: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + getUserAssetData( + user: PromiseOrValue, + asset: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber]>; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + initialize( + name: PromiseOrValue, + symbol: PromiseOrValue, + decimals: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise<[string]>; + + permit( + owner: PromiseOrValue, + spender: PromiseOrValue, + value: PromiseOrValue, + deadline: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + redeem( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stake( + onBehalfOf: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stakerRewardsToClaim(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + stakersCooldowns(arg0: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + symbol(overrides?: CallOverrides): Promise<[string]>; + + totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; + + totalSupplyAt(blockNumber: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; + + transfer( + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + transferFrom( + sender: PromiseOrValue, + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + COOLDOWN_SECONDS(overrides?: CallOverrides): Promise; + + DELEGATE_BY_TYPE_TYPEHASH(overrides?: CallOverrides): Promise; + + DELEGATE_TYPEHASH(overrides?: CallOverrides): Promise; + + DISTRIBUTION_END(overrides?: CallOverrides): Promise; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + EIP712_REVISION(overrides?: CallOverrides): Promise; + + EMISSION_MANAGER(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + PRECISION(overrides?: CallOverrides): Promise; + + REVISION(overrides?: CallOverrides): Promise; + + REWARDS_VAULT(overrides?: CallOverrides): Promise; + + REWARD_TOKEN(overrides?: CallOverrides): Promise; + + STAKED_TOKEN(overrides?: CallOverrides): Promise; + + UNSTAKE_WINDOW(overrides?: CallOverrides): Promise; + + _aaveGovernance(overrides?: CallOverrides): Promise; + + _nonces(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + _votingSnapshots( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber] & { blockNumber: BigNumber; value: BigNumber }>; + + _votingSnapshotsCounts(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + assets( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, BigNumber] & { + emissionPerSecond: BigNumber; + lastUpdateTimestamp: BigNumber; + index: BigNumber; + } + >; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + claimRewards( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + configureAssets( + assetsConfigInput: DistributionTypes.AssetConfigInputStruct[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + cooldown(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegate( + delegatee: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegateBySig( + delegatee: PromiseOrValue, + nonce: PromiseOrValue, + expiry: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegateByType( + delegatee: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegateByTypeBySig( + delegatee: PromiseOrValue, + delegationType: PromiseOrValue, + nonce: PromiseOrValue, + expiry: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getDelegateeByType( + delegator: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNextCooldownTimestamp( + fromCooldownTimestamp: PromiseOrValue, + amountToReceive: PromiseOrValue, + toAddress: PromiseOrValue, + toBalance: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPowerAtBlock( + user: PromiseOrValue, + blockNumber: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPowerCurrent( + user: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getTotalRewardsBalance(staker: PromiseOrValue, overrides?: CallOverrides): Promise; + + getUserAssetData( + user: PromiseOrValue, + asset: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + initialize( + name: PromiseOrValue, + symbol: PromiseOrValue, + decimals: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + permit( + owner: PromiseOrValue, + spender: PromiseOrValue, + value: PromiseOrValue, + deadline: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + redeem( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stake( + onBehalfOf: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stakerRewardsToClaim(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + stakersCooldowns(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + totalSupplyAt(blockNumber: PromiseOrValue, overrides?: CallOverrides): Promise; + + transfer( + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + transferFrom( + sender: PromiseOrValue, + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + callStatic: { + COOLDOWN_SECONDS(overrides?: CallOverrides): Promise; + + DELEGATE_BY_TYPE_TYPEHASH(overrides?: CallOverrides): Promise; + + DELEGATE_TYPEHASH(overrides?: CallOverrides): Promise; + + DISTRIBUTION_END(overrides?: CallOverrides): Promise; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + EIP712_REVISION(overrides?: CallOverrides): Promise; + + EMISSION_MANAGER(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + PRECISION(overrides?: CallOverrides): Promise; + + REVISION(overrides?: CallOverrides): Promise; + + REWARDS_VAULT(overrides?: CallOverrides): Promise; + + REWARD_TOKEN(overrides?: CallOverrides): Promise; + + STAKED_TOKEN(overrides?: CallOverrides): Promise; + + UNSTAKE_WINDOW(overrides?: CallOverrides): Promise; + + _aaveGovernance(overrides?: CallOverrides): Promise; + + _nonces(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + _votingSnapshots( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise<[BigNumber, BigNumber] & { blockNumber: BigNumber; value: BigNumber }>; + + _votingSnapshotsCounts(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + assets( + arg0: PromiseOrValue, + overrides?: CallOverrides, + ): Promise< + [BigNumber, BigNumber, BigNumber] & { + emissionPerSecond: BigNumber; + lastUpdateTimestamp: BigNumber; + index: BigNumber; + } + >; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + claimRewards( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + configureAssets( + assetsConfigInput: DistributionTypes.AssetConfigInputStruct[], + overrides?: CallOverrides, + ): Promise; + + cooldown(overrides?: CallOverrides): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + delegate(delegatee: PromiseOrValue, overrides?: CallOverrides): Promise; + + delegateBySig( + delegatee: PromiseOrValue, + nonce: PromiseOrValue, + expiry: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + delegateByType( + delegatee: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + delegateByTypeBySig( + delegatee: PromiseOrValue, + delegationType: PromiseOrValue, + nonce: PromiseOrValue, + expiry: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getDelegateeByType( + delegator: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNextCooldownTimestamp( + fromCooldownTimestamp: PromiseOrValue, + amountToReceive: PromiseOrValue, + toAddress: PromiseOrValue, + toBalance: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPowerAtBlock( + user: PromiseOrValue, + blockNumber: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPowerCurrent( + user: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getTotalRewardsBalance(staker: PromiseOrValue, overrides?: CallOverrides): Promise; + + getUserAssetData( + user: PromiseOrValue, + asset: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + initialize( + name: PromiseOrValue, + symbol: PromiseOrValue, + decimals: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + permit( + owner: PromiseOrValue, + spender: PromiseOrValue, + value: PromiseOrValue, + deadline: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + redeem(to: PromiseOrValue, amount: PromiseOrValue, overrides?: CallOverrides): Promise; + + stake( + onBehalfOf: PromiseOrValue, + amount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + stakerRewardsToClaim(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + stakersCooldowns(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + totalSupplyAt(blockNumber: PromiseOrValue, overrides?: CallOverrides): Promise; + + transfer( + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + transferFrom( + sender: PromiseOrValue, + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + }; + + filters: { + 'Approval(address,address,uint256)'( + owner?: PromiseOrValue | null, + spender?: PromiseOrValue | null, + value?: null, + ): ApprovalEventFilter; + Approval( + owner?: PromiseOrValue | null, + spender?: PromiseOrValue | null, + value?: null, + ): ApprovalEventFilter; + + 'AssetConfigUpdated(address,uint256)'( + asset?: PromiseOrValue | null, + emission?: null, + ): AssetConfigUpdatedEventFilter; + AssetConfigUpdated(asset?: PromiseOrValue | null, emission?: null): AssetConfigUpdatedEventFilter; + + 'AssetIndexUpdated(address,uint256)'( + asset?: PromiseOrValue | null, + index?: null, + ): AssetIndexUpdatedEventFilter; + AssetIndexUpdated(asset?: PromiseOrValue | null, index?: null): AssetIndexUpdatedEventFilter; + + 'Cooldown(address)'(user?: PromiseOrValue | null): CooldownEventFilter; + Cooldown(user?: PromiseOrValue | null): CooldownEventFilter; + + 'CooldownUpdated(address,uint256,uint256)'( + user?: PromiseOrValue | null, + balance?: null, + cooldownTimestamp?: null, + ): CooldownUpdatedEventFilter; + CooldownUpdated( + user?: PromiseOrValue | null, + balance?: null, + cooldownTimestamp?: null, + ): CooldownUpdatedEventFilter; + + 'DelegateChanged(address,address,uint8)'( + delegator?: PromiseOrValue | null, + delegatee?: PromiseOrValue | null, + delegationType?: null, + ): DelegateChangedEventFilter; + DelegateChanged( + delegator?: PromiseOrValue | null, + delegatee?: PromiseOrValue | null, + delegationType?: null, + ): DelegateChangedEventFilter; + + 'DelegatedPowerChanged(address,uint256,uint8)'( + user?: PromiseOrValue | null, + amount?: null, + delegationType?: null, + ): DelegatedPowerChangedEventFilter; + DelegatedPowerChanged( + user?: PromiseOrValue | null, + amount?: null, + delegationType?: null, + ): DelegatedPowerChangedEventFilter; + + 'Redeem(address,address,uint256)'( + from?: PromiseOrValue | null, + to?: PromiseOrValue | null, + amount?: null, + ): RedeemEventFilter; + Redeem(from?: PromiseOrValue | null, to?: PromiseOrValue | null, amount?: null): RedeemEventFilter; + + 'RewardsAccrued(address,uint256)'(user?: null, amount?: null): RewardsAccruedEventFilter; + RewardsAccrued(user?: null, amount?: null): RewardsAccruedEventFilter; + + 'RewardsClaimed(address,address,uint256)'( + from?: PromiseOrValue | null, + to?: PromiseOrValue | null, + amount?: null, + ): RewardsClaimedEventFilter; + RewardsClaimed( + from?: PromiseOrValue | null, + to?: PromiseOrValue | null, + amount?: null, + ): RewardsClaimedEventFilter; + + 'Staked(address,address,uint256)'( + from?: PromiseOrValue | null, + onBehalfOf?: PromiseOrValue | null, + amount?: null, + ): StakedEventFilter; + Staked( + from?: PromiseOrValue | null, + onBehalfOf?: PromiseOrValue | null, + amount?: null, + ): StakedEventFilter; + + 'Transfer(address,address,uint256)'( + from?: PromiseOrValue | null, + to?: PromiseOrValue | null, + value?: null, + ): TransferEventFilter; + Transfer( + from?: PromiseOrValue | null, + to?: PromiseOrValue | null, + value?: null, + ): TransferEventFilter; + + 'UserIndexUpdated(address,address,uint256)'( + user?: PromiseOrValue | null, + asset?: PromiseOrValue | null, + index?: null, + ): UserIndexUpdatedEventFilter; + UserIndexUpdated( + user?: PromiseOrValue | null, + asset?: PromiseOrValue | null, + index?: null, + ): UserIndexUpdatedEventFilter; + }; + + estimateGas: { + COOLDOWN_SECONDS(overrides?: CallOverrides): Promise; + + DELEGATE_BY_TYPE_TYPEHASH(overrides?: CallOverrides): Promise; + + DELEGATE_TYPEHASH(overrides?: CallOverrides): Promise; + + DISTRIBUTION_END(overrides?: CallOverrides): Promise; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + EIP712_REVISION(overrides?: CallOverrides): Promise; + + EMISSION_MANAGER(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + PRECISION(overrides?: CallOverrides): Promise; + + REVISION(overrides?: CallOverrides): Promise; + + REWARDS_VAULT(overrides?: CallOverrides): Promise; + + REWARD_TOKEN(overrides?: CallOverrides): Promise; + + STAKED_TOKEN(overrides?: CallOverrides): Promise; + + UNSTAKE_WINDOW(overrides?: CallOverrides): Promise; + + _aaveGovernance(overrides?: CallOverrides): Promise; + + _nonces(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + _votingSnapshots( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + _votingSnapshotsCounts(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + assets(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + claimRewards( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + configureAssets( + assetsConfigInput: DistributionTypes.AssetConfigInputStruct[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + cooldown(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegate( + delegatee: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegateBySig( + delegatee: PromiseOrValue, + nonce: PromiseOrValue, + expiry: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegateByType( + delegatee: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegateByTypeBySig( + delegatee: PromiseOrValue, + delegationType: PromiseOrValue, + nonce: PromiseOrValue, + expiry: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getDelegateeByType( + delegator: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNextCooldownTimestamp( + fromCooldownTimestamp: PromiseOrValue, + amountToReceive: PromiseOrValue, + toAddress: PromiseOrValue, + toBalance: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPowerAtBlock( + user: PromiseOrValue, + blockNumber: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPowerCurrent( + user: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getTotalRewardsBalance(staker: PromiseOrValue, overrides?: CallOverrides): Promise; + + getUserAssetData( + user: PromiseOrValue, + asset: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + initialize( + name: PromiseOrValue, + symbol: PromiseOrValue, + decimals: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + permit( + owner: PromiseOrValue, + spender: PromiseOrValue, + value: PromiseOrValue, + deadline: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + redeem( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stake( + onBehalfOf: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stakerRewardsToClaim(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + stakersCooldowns(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + totalSupplyAt(blockNumber: PromiseOrValue, overrides?: CallOverrides): Promise; + + transfer( + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + transferFrom( + sender: PromiseOrValue, + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; + + populateTransaction: { + COOLDOWN_SECONDS(overrides?: CallOverrides): Promise; + + DELEGATE_BY_TYPE_TYPEHASH(overrides?: CallOverrides): Promise; + + DELEGATE_TYPEHASH(overrides?: CallOverrides): Promise; + + DISTRIBUTION_END(overrides?: CallOverrides): Promise; + + DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; + + EIP712_REVISION(overrides?: CallOverrides): Promise; + + EMISSION_MANAGER(overrides?: CallOverrides): Promise; + + PERMIT_TYPEHASH(overrides?: CallOverrides): Promise; + + PRECISION(overrides?: CallOverrides): Promise; + + REVISION(overrides?: CallOverrides): Promise; + + REWARDS_VAULT(overrides?: CallOverrides): Promise; + + REWARD_TOKEN(overrides?: CallOverrides): Promise; + + STAKED_TOKEN(overrides?: CallOverrides): Promise; + + UNSTAKE_WINDOW(overrides?: CallOverrides): Promise; + + _aaveGovernance(overrides?: CallOverrides): Promise; + + _nonces(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + _votingSnapshots( + arg0: PromiseOrValue, + arg1: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + _votingSnapshotsCounts(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + allowance( + owner: PromiseOrValue, + spender: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + approve( + spender: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + assets(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + balanceOf(account: PromiseOrValue, overrides?: CallOverrides): Promise; + + claimRewards( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + configureAssets( + assetsConfigInput: DistributionTypes.AssetConfigInputStruct[], + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + cooldown(overrides?: Overrides & { from?: PromiseOrValue }): Promise; + + decimals(overrides?: CallOverrides): Promise; + + decreaseAllowance( + spender: PromiseOrValue, + subtractedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegate( + delegatee: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegateBySig( + delegatee: PromiseOrValue, + nonce: PromiseOrValue, + expiry: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegateByType( + delegatee: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + delegateByTypeBySig( + delegatee: PromiseOrValue, + delegationType: PromiseOrValue, + nonce: PromiseOrValue, + expiry: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + getDelegateeByType( + delegator: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getNextCooldownTimestamp( + fromCooldownTimestamp: PromiseOrValue, + amountToReceive: PromiseOrValue, + toAddress: PromiseOrValue, + toBalance: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPowerAtBlock( + user: PromiseOrValue, + blockNumber: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getPowerCurrent( + user: PromiseOrValue, + delegationType: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + getTotalRewardsBalance(staker: PromiseOrValue, overrides?: CallOverrides): Promise; + + getUserAssetData( + user: PromiseOrValue, + asset: PromiseOrValue, + overrides?: CallOverrides, + ): Promise; + + increaseAllowance( + spender: PromiseOrValue, + addedValue: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + initialize( + name: PromiseOrValue, + symbol: PromiseOrValue, + decimals: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + name(overrides?: CallOverrides): Promise; + + permit( + owner: PromiseOrValue, + spender: PromiseOrValue, + value: PromiseOrValue, + deadline: PromiseOrValue, + v: PromiseOrValue, + r: PromiseOrValue, + s: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + redeem( + to: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stake( + onBehalfOf: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + stakerRewardsToClaim(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + stakersCooldowns(arg0: PromiseOrValue, overrides?: CallOverrides): Promise; + + symbol(overrides?: CallOverrides): Promise; + + totalSupply(overrides?: CallOverrides): Promise; + + totalSupplyAt(blockNumber: PromiseOrValue, overrides?: CallOverrides): Promise; + + transfer( + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + + transferFrom( + sender: PromiseOrValue, + recipient: PromiseOrValue, + amount: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue }, + ): Promise; + }; +} diff --git a/src/apps/lyra-newport/contracts/ethers/common.ts b/src/apps/lyra-newport/contracts/ethers/common.ts new file mode 100644 index 000000000..35f31be99 --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/common.ts @@ -0,0 +1,32 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { Listener } from '@ethersproject/providers'; +import type { Event, EventFilter } from 'ethers'; + +export interface TypedEvent = any, TArgsObject = any> extends Event { + args: TArgsArray & TArgsObject; +} + +export interface TypedEventFilter<_TEvent extends TypedEvent> extends EventFilter {} + +export interface TypedListener { + (...listenerArg: [...__TypechainArgsArray, TEvent]): void; +} + +type __TypechainArgsArray = T extends TypedEvent ? U : never; + +export interface OnEvent { + (eventFilter: TypedEventFilter, listener: TypedListener): TRes; + (eventName: string, listener: Listener): TRes; +} + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; + +export type GetContractTypeFromFactory = F extends MinEthersFactory ? C : never; + +export type GetARGsTypeFromFactory = F extends MinEthersFactory ? Parameters : never; + +export type PromiseOrValue = T | Promise; diff --git a/src/apps/lyra-newport/contracts/ethers/factories/LyraLiquidityPool__factory.ts b/src/apps/lyra-newport/contracts/ethers/factories/LyraLiquidityPool__factory.ts new file mode 100644 index 000000000..1c4403cb1 --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/factories/LyraLiquidityPool__factory.ts @@ -0,0 +1,2551 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from 'ethers'; +import type { Provider } from '@ethersproject/providers'; +import type { LyraLiquidityPool, LyraLiquidityPoolInterface } from '../LyraLiquidityPool'; + +const _abi = [ + { + inputs: [], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + ], + name: 'AlreadyInitialised', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'approvee', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'BaseApprovalFailure', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'realAmount', + type: 'uint256', + }, + ], + name: 'BaseTransferFailed', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + ], + name: 'CannotRecoverQuoteBase', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'beneficiary', + type: 'address', + }, + ], + name: 'InvalidBeneficiaryAddress', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + components: [ + { + internalType: 'uint256', + name: 'liquidityCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'liquidityCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'ivVarianceCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skewVarianceCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'ivVarianceCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skewVarianceCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'boardSettlementCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'contractAdjustmentCBTimeout', + type: 'uint256', + }, + ], + internalType: 'struct LiquidityPool.CircuitBreakerParameters', + name: 'cbParams', + type: 'tuple', + }, + ], + name: 'InvalidCircuitBreakerParameters', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + components: [ + { + internalType: 'uint256', + name: 'minDepositWithdraw', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'depositDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'withdrawalDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'withdrawalFee', + type: 'uint256', + }, + { + internalType: 'address', + name: 'guardianMultisig', + type: 'address', + }, + { + internalType: 'uint256', + name: 'guardianDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'adjustmentNetScalingFactor', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'callCollatScalingFactor', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'putCollatScalingFactor', + type: 'uint256', + }, + ], + internalType: 'struct LiquidityPool.LiquidityPoolParameters', + name: 'lpParams', + type: 'tuple', + }, + ], + name: 'InvalidLiquidityPoolParameters', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'quoteToLock', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'freeLiquidity', + type: 'uint256', + }, + { + components: [ + { + internalType: 'uint256', + name: 'quote', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'base', + type: 'uint256', + }, + ], + internalType: 'struct LiquidityPool.Collateral', + name: 'lockedCollateral', + type: 'tuple', + }, + ], + name: 'LockingMoreQuoteThanIsFree', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amountQuote', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'minDeposit', + type: 'uint256', + }, + ], + name: 'MinimumDepositNotMet', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amountQuote', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'minWithdraw', + type: 'uint256', + }, + ], + name: 'MinimumWithdrawNotMet', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'int256', + name: 'totalAssetValue', + type: 'int256', + }, + ], + name: 'NegativeTotalAssetValue', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amountQuote', + type: 'uint256', + }, + { + components: [ + { + internalType: 'uint256', + name: 'freeLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'burnableLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'reservedCollatLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'pendingDeltaLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'usedDeltaLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'NAV', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'longScaleFactor', + type: 'uint256', + }, + ], + internalType: 'struct LiquidityPool.Liquidity', + name: 'liquidity', + type: 'tuple', + }, + ], + name: 'NotEnoughFreeToReclaimInsolvency', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'nominatedOwner', + type: 'address', + }, + ], + name: 'OnlyNominatedOwner', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'optionMarket', + type: 'address', + }, + ], + name: 'OnlyOptionMarket', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'OnlyOwner', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'poolHedger', + type: 'address', + }, + ], + name: 'OnlyPoolHedger', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'poolHedger', + type: 'address', + }, + ], + name: 'OnlyShortCollateral', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'int256', + name: 'totalAssetValue', + type: 'int256', + }, + { + internalType: 'int256', + name: 'optionValueDebt', + type: 'int256', + }, + ], + name: 'OptionValueDebtExceedsTotalAssets', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'approvee', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'QuoteApprovalFailure', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'realAmount', + type: 'uint256', + }, + ], + name: 'QuoteTransferFailed', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'premium', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'reservedFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'freeLiquidity', + type: 'uint256', + }, + ], + name: 'SendPremiumNotEnoughCollateral', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amountOptions', + type: 'uint256', + }, + { + internalType: 'bool', + name: 'increasesDelta', + type: 'bool', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + ], + name: 'UnableToHedgeDelta', + type: 'error', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'quoteSpent', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'baseReceived', + type: 'uint256', + }, + ], + name: 'BasePurchased', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'amountBase', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'quoteReceived', + type: 'uint256', + }, + ], + name: 'BaseSold', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'insolventSettlementAmount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amountQuoteReserved', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalOutstandingSettlements', + type: 'uint256', + }, + ], + name: 'BoardSettlement', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'newTimestamp', + type: 'uint256', + }, + ], + name: 'BoardSettlementCircuitBreakerUpdated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'baseFreed', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'lockedCollateralBase', + type: 'uint256', + }, + ], + name: 'CallCollateralFreed', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'baseLocked', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'lockedCollateralBase', + type: 'uint256', + }, + ], + name: 'CallCollateralLocked', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'entryId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'bool', + name: 'boardNotStale', + type: 'bool', + }, + { + indexed: false, + internalType: 'bool', + name: 'validEntry', + type: 'bool', + }, + { + indexed: false, + internalType: 'bool', + name: 'guardianBypass', + type: 'bool', + }, + { + indexed: false, + internalType: 'bool', + name: 'delaysExpired', + type: 'bool', + }, + ], + name: 'CheckingCanProcess', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'liquidityCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'liquidityCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'ivVarianceCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skewVarianceCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'ivVarianceCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skewVarianceCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'boardSettlementCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'contractAdjustmentCBTimeout', + type: 'uint256', + }, + ], + indexed: false, + internalType: 'struct LiquidityPool.CircuitBreakerParameters', + name: 'cbParams', + type: 'tuple', + }, + ], + name: 'CircuitBreakerParametersUpdated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'newTimestamp', + type: 'uint256', + }, + { + indexed: false, + internalType: 'bool', + name: 'ivVarianceThresholdCrossed', + type: 'bool', + }, + { + indexed: false, + internalType: 'bool', + name: 'skewVarianceThresholdCrossed', + type: 'bool', + }, + { + indexed: false, + internalType: 'bool', + name: 'liquidityThresholdCrossed', + type: 'bool', + }, + { + indexed: false, + internalType: 'bool', + name: 'contractAdjustmentEvent', + type: 'bool', + }, + ], + name: 'CircuitBreakerUpdated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'beneficiary', + type: 'address', + }, + { + indexed: true, + internalType: 'uint256', + name: 'depositQueueId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amountDeposited', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'tokenPrice', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'tokensReceived', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'timestamp', + type: 'uint256', + }, + ], + name: 'DepositProcessed', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'depositor', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'beneficiary', + type: 'address', + }, + { + indexed: true, + internalType: 'uint256', + name: 'depositQueueId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amountDeposited', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalQueuedDeposits', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'timestamp', + type: 'uint256', + }, + ], + name: 'DepositQueued', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'amountQuoteAdded', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalInsolventSettlementAmount', + type: 'uint256', + }, + ], + name: 'InsolventSettlementAmountUpdated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'minDepositWithdraw', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'depositDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'withdrawalDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'withdrawalFee', + type: 'uint256', + }, + { + internalType: 'address', + name: 'guardianMultisig', + type: 'address', + }, + { + internalType: 'uint256', + name: 'guardianDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'adjustmentNetScalingFactor', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'callCollatScalingFactor', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'putCollatScalingFactor', + type: 'uint256', + }, + ], + indexed: false, + internalType: 'struct LiquidityPool.LiquidityPoolParameters', + name: 'lpParams', + type: 'tuple', + }, + ], + name: 'LiquidityPoolParametersUpdated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalOutstandingSettlements', + type: 'uint256', + }, + ], + name: 'OutstandingSettlementSent', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'oldOwner', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnerChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnerNominated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'contract PoolHedger', + name: 'poolHedger', + type: 'address', + }, + ], + name: 'PoolHedgerUpdated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'recipient', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'recipientPortion', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'optionMarketPortion', + type: 'uint256', + }, + ], + name: 'PremiumTransferred', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'quoteFreed', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'lockedCollateralQuote', + type: 'uint256', + }, + ], + name: 'PutCollateralFreed', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'quoteLocked', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'lockedCollateralQuote', + type: 'uint256', + }, + ], + name: 'PutCollateralLocked', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'amountQuote', + type: 'uint256', + }, + ], + name: 'QuoteTransferredToPoolHedger', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'beneficiary', + type: 'address', + }, + { + indexed: true, + internalType: 'uint256', + name: 'withdrawalQueueId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amountWithdrawn', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'tokenPrice', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'quoteReceived', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalQueuedWithdrawals', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'timestamp', + type: 'uint256', + }, + ], + name: 'WithdrawPartiallyProcessed', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'beneficiary', + type: 'address', + }, + { + indexed: true, + internalType: 'uint256', + name: 'withdrawalQueueId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amountWithdrawn', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'tokenPrice', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'quoteReceived', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalQueuedWithdrawals', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'timestamp', + type: 'uint256', + }, + ], + name: 'WithdrawProcessed', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'withdrawer', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'beneficiary', + type: 'address', + }, + { + indexed: true, + internalType: 'uint256', + name: 'withdrawalQueueId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amountWithdrawn', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalQueuedWithdrawals', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'timestamp', + type: 'uint256', + }, + ], + name: 'WithdrawQueued', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'beneficiary', + type: 'address', + }, + { + indexed: true, + internalType: 'uint256', + name: 'withdrawalQueueId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'tokenPrice', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalQueuedWithdrawals', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'timestamp', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'tokensReturned', + type: 'uint256', + }, + ], + name: 'WithdrawReverted', + type: 'event', + }, + { + inputs: [], + name: 'CBTimestamp', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'acceptOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'insolventSettlements', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'amountQuoteFreed', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'amountQuoteReserved', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'amountBaseFreed', + type: 'uint256', + }, + ], + name: 'boardSettlement', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'cbParams', + outputs: [ + { + internalType: 'uint256', + name: 'liquidityCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'liquidityCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'ivVarianceCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skewVarianceCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'ivVarianceCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skewVarianceCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'boardSettlementCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'contractAdjustmentCBTimeout', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'exchangeBase', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'amountBase', + type: 'uint256', + }, + { + internalType: 'address', + name: 'recipient', + type: 'address', + }, + { + internalType: 'uint256', + name: 'totalCost', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'reservedFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'longScaleFactor', + type: 'uint256', + }, + ], + name: 'freeCallCollateralAndSendPremium', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'amountQuoteFreed', + type: 'uint256', + }, + { + internalType: 'address', + name: 'recipient', + type: 'address', + }, + { + internalType: 'uint256', + name: 'totalCost', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'reservedFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'longScaleFactor', + type: 'uint256', + }, + ], + name: 'freePutCollateralAndSendPremium', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'getCBParams', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'liquidityCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'liquidityCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'ivVarianceCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skewVarianceCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'ivVarianceCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skewVarianceCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'boardSettlementCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'contractAdjustmentCBTimeout', + type: 'uint256', + }, + ], + internalType: 'struct LiquidityPool.CircuitBreakerParameters', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getLiquidity', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'freeLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'burnableLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'reservedCollatLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'pendingDeltaLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'usedDeltaLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'NAV', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'longScaleFactor', + type: 'uint256', + }, + ], + internalType: 'struct LiquidityPool.Liquidity', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getLpParams', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'minDepositWithdraw', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'depositDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'withdrawalDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'withdrawalFee', + type: 'uint256', + }, + { + internalType: 'address', + name: 'guardianMultisig', + type: 'address', + }, + { + internalType: 'uint256', + name: 'guardianDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'adjustmentNetScalingFactor', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'callCollatScalingFactor', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'putCollatScalingFactor', + type: 'uint256', + }, + ], + internalType: 'struct LiquidityPool.LiquidityPoolParameters', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getTokenPrice', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getTokenPriceWithCheck', + outputs: [ + { + internalType: 'uint256', + name: 'tokenPrice', + type: 'uint256', + }, + { + internalType: 'bool', + name: 'isStale', + type: 'bool', + }, + { + internalType: 'uint256', + name: 'circuitBreakerExpiry', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getTotalPoolValueQuote', + outputs: [ + { + internalType: 'uint256', + name: 'totalPoolValue', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getTotalTokenSupply', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'contract BaseExchangeAdapter', + name: '_exchangeAdapter', + type: 'address', + }, + { + internalType: 'contract OptionMarket', + name: '_optionMarket', + type: 'address', + }, + { + internalType: 'contract LiquidityToken', + name: '_liquidityToken', + type: 'address', + }, + { + internalType: 'contract OptionGreekCache', + name: '_greekCache', + type: 'address', + }, + { + internalType: 'contract PoolHedger', + name: '_poolHedger', + type: 'address', + }, + { + internalType: 'contract ShortCollateral', + name: '_shortCollateral', + type: 'address', + }, + { + internalType: 'contract IERC20Decimals', + name: '_quoteAsset', + type: 'address', + }, + { + internalType: 'contract IERC20Decimals', + name: '_baseAsset', + type: 'address', + }, + ], + name: 'init', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'beneficiary', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amountQuote', + type: 'uint256', + }, + ], + name: 'initiateDeposit', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'beneficiary', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amountLiquidityToken', + type: 'uint256', + }, + ], + name: 'initiateWithdraw', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'insolventSettlementAmount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'liquidationInsolventAmount', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'spotPrice', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'freeLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + ], + name: 'lockCallCollateral', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'freeLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + ], + name: 'lockPutCollateral', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'lockedCollateral', + outputs: [ + { + internalType: 'uint256', + name: 'quote', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'base', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'lpParams', + outputs: [ + { + internalType: 'uint256', + name: 'minDepositWithdraw', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'depositDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'withdrawalDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'withdrawalFee', + type: 'uint256', + }, + { + internalType: 'address', + name: 'guardianMultisig', + type: 'address', + }, + { + internalType: 'uint256', + name: 'guardianDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'adjustmentNetScalingFactor', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'callCollatScalingFactor', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'putCollatScalingFactor', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'nextQueuedDepositId', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'nextQueuedWithdrawalId', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_owner', + type: 'address', + }, + ], + name: 'nominateNewOwner', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'nominatedOwner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'owner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'poolHedger', + outputs: [ + { + internalType: 'contract PoolHedger', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'limit', + type: 'uint256', + }, + ], + name: 'processDepositQueue', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'limit', + type: 'uint256', + }, + ], + name: 'processWithdrawalQueue', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'protectedQuote', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'queuedDepositHead', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'queuedDeposits', + outputs: [ + { + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + { + internalType: 'address', + name: 'beneficiary', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amountLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'mintedTokens', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'depositInitiatedTime', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'queuedWithdrawalHead', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'queuedWithdrawals', + outputs: [ + { + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + { + internalType: 'address', + name: 'beneficiary', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amountTokens', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'quoteSent', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'withdrawInitiatedTime', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'quoteAsset', + outputs: [ + { + internalType: 'contract IERC20Decimals', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'amountBase', + type: 'uint256', + }, + ], + name: 'reclaimInsolventBase', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'amountQuote', + type: 'uint256', + }, + ], + name: 'reclaimInsolventQuote', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'contract IERC20Decimals', + name: 'token', + type: 'address', + }, + { + internalType: 'address', + name: 'recipient', + type: 'address', + }, + ], + name: 'recoverFunds', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'sendSettlementValue', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'recipient', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amountContracts', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'premium', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'freeLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'reservedFee', + type: 'uint256', + }, + { + internalType: 'bool', + name: 'isCall', + type: 'bool', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + ], + name: 'sendShortPremium', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'liquidityCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'liquidityCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'ivVarianceCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skewVarianceCBThreshold', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'ivVarianceCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skewVarianceCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'boardSettlementCBTimeout', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'contractAdjustmentCBTimeout', + type: 'uint256', + }, + ], + internalType: 'struct LiquidityPool.CircuitBreakerParameters', + name: '_cbParams', + type: 'tuple', + }, + ], + name: 'setCircuitBreakerParameters', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'minDepositWithdraw', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'depositDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'withdrawalDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'withdrawalFee', + type: 'uint256', + }, + { + internalType: 'address', + name: 'guardianMultisig', + type: 'address', + }, + { + internalType: 'uint256', + name: 'guardianDelay', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'adjustmentNetScalingFactor', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'callCollatScalingFactor', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'putCollatScalingFactor', + type: 'uint256', + }, + ], + internalType: 'struct LiquidityPool.LiquidityPoolParameters', + name: '_lpParams', + type: 'tuple', + }, + ], + name: 'setLiquidityPoolParameters', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'contract PoolHedger', + name: 'newPoolHedger', + type: 'address', + }, + ], + name: 'setPoolHedger', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'totalOutstandingSettlements', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'totalQueuedDeposits', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'totalQueuedWithdrawals', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'transferQuoteToHedge', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'updateCBs', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'insolvencyAmountInQuote', + type: 'uint256', + }, + ], + name: 'updateLiquidationInsolvency', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, +]; + +export class LyraLiquidityPool__factory { + static readonly abi = _abi; + static createInterface(): LyraLiquidityPoolInterface { + return new utils.Interface(_abi) as LyraLiquidityPoolInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): LyraLiquidityPool { + return new Contract(address, _abi, signerOrProvider) as LyraLiquidityPool; + } +} diff --git a/src/apps/lyra-newport/contracts/ethers/factories/LyraLiquidityToken__factory.ts b/src/apps/lyra-newport/contracts/ethers/factories/LyraLiquidityToken__factory.ts new file mode 100644 index 000000000..4694bf90d --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/factories/LyraLiquidityToken__factory.ts @@ -0,0 +1,559 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from 'ethers'; +import type { Provider } from '@ethersproject/providers'; +import type { LyraLiquidityToken, LyraLiquidityTokenInterface } from '../LyraLiquidityToken'; + +const _abi = [ + { + inputs: [ + { + internalType: 'string', + name: 'name_', + type: 'string', + }, + { + internalType: 'string', + name: 'symbol_', + type: 'string', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + ], + name: 'AlreadyInitialised', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'liquidityPool', + type: 'address', + }, + ], + name: 'OnlyLiquidityPool', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'nominatedOwner', + type: 'address', + }, + ], + name: 'OnlyNominatedOwner', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'OnlyOwner', + type: 'error', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'Approval', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'contract ILiquidityTracker', + name: 'liquidityTracker', + type: 'address', + }, + ], + name: 'LiquidityTrackerSet', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'oldOwner', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnerChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnerNominated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'Transfer', + type: 'event', + }, + { + inputs: [], + name: 'acceptOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + ], + name: 'allowance', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'approve', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'balanceOf', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenAmount', + type: 'uint256', + }, + ], + name: 'burn', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'decimals', + outputs: [ + { + internalType: 'uint8', + name: '', + type: 'uint8', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'subtractedValue', + type: 'uint256', + }, + ], + name: 'decreaseAllowance', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'addedValue', + type: 'uint256', + }, + ], + name: 'increaseAllowance', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_liquidityPool', + type: 'address', + }, + ], + name: 'init', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'liquidityPool', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'liquidityTracker', + outputs: [ + { + internalType: 'contract ILiquidityTracker', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenAmount', + type: 'uint256', + }, + ], + name: 'mint', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'name', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_owner', + type: 'address', + }, + ], + name: 'nominateNewOwner', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'nominatedOwner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'owner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'contract ILiquidityTracker', + name: '_liquidityTracker', + type: 'address', + }, + ], + name: 'setLiquidityTracker', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'symbol', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'totalSupply', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'recipient', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'transfer', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'sender', + type: 'address', + }, + { + internalType: 'address', + name: 'recipient', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'transferFrom', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, +]; + +export class LyraLiquidityToken__factory { + static readonly abi = _abi; + static createInterface(): LyraLiquidityTokenInterface { + return new utils.Interface(_abi) as LyraLiquidityTokenInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): LyraLiquidityToken { + return new Contract(address, _abi, signerOrProvider) as LyraLiquidityToken; + } +} diff --git a/src/apps/lyra-newport/contracts/ethers/factories/LyraLpStaking__factory.ts b/src/apps/lyra-newport/contracts/ethers/factories/LyraLpStaking__factory.ts new file mode 100644 index 000000000..743e09756 --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/factories/LyraLpStaking__factory.ts @@ -0,0 +1,670 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from 'ethers'; +import type { Provider } from '@ethersproject/providers'; +import type { LyraLpStaking, LyraLpStakingInterface } from '../LyraLpStaking'; + +const _abi = [ + { + inputs: [ + { + internalType: 'address', + name: '_owner', + type: 'address', + }, + { + internalType: 'address', + name: '_rewardsDistribution', + type: 'address', + }, + { + internalType: 'address', + name: '_rewardsToken', + type: 'address', + }, + { + internalType: 'address', + name: '_stakingToken', + type: 'address', + }, + ], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'oldOwner', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnerChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnerNominated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'bool', + name: 'isPaused', + type: 'bool', + }, + ], + name: 'PauseChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'token', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'Recovered', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'reward', + type: 'uint256', + }, + ], + name: 'RewardAdded', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'reward', + type: 'uint256', + }, + ], + name: 'RewardPaid', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'uint256', + name: 'newDuration', + type: 'uint256', + }, + ], + name: 'RewardsDurationUpdated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'Staked', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'Withdrawn', + type: 'event', + }, + { + constant: false, + inputs: [], + name: 'acceptOwnership', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'balanceOf', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'earned', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [], + name: 'exit', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [], + name: 'getReward', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'getRewardForDuration', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'lastPauseTime', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'lastTimeRewardApplicable', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'lastUpdateTime', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { + internalType: 'address', + name: '_owner', + type: 'address', + }, + ], + name: 'nominateNewOwner', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'nominatedOwner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { + internalType: 'uint256', + name: 'reward', + type: 'uint256', + }, + ], + name: 'notifyRewardAmount', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'owner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'paused', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'periodFinish', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { + internalType: 'address', + name: 'tokenAddress', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenAmount', + type: 'uint256', + }, + ], + name: 'recoverERC20', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'rewardPerToken', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'rewardPerTokenStored', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'rewardRate', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'rewards', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'rewardsDistribution', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'rewardsDuration', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'rewardsToken', + outputs: [ + { + internalType: 'contract IERC20', + name: '', + type: 'address', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { + internalType: 'bool', + name: '_paused', + type: 'bool', + }, + ], + name: 'setPaused', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { + internalType: 'address', + name: '_rewardsDistribution', + type: 'address', + }, + ], + name: 'setRewardsDistribution', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { + internalType: 'uint256', + name: '_rewardsDuration', + type: 'uint256', + }, + ], + name: 'setRewardsDuration', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: false, + inputs: [ + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'stake', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'stakingToken', + outputs: [ + { + internalType: 'contract IERC20', + name: '', + type: 'address', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [], + name: 'totalSupply', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: true, + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'userRewardPerTokenPaid', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + payable: false, + stateMutability: 'view', + type: 'function', + }, + { + constant: false, + inputs: [ + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'withdraw', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function', + }, +]; + +export class LyraLpStaking__factory { + static readonly abi = _abi; + static createInterface(): LyraLpStakingInterface { + return new utils.Interface(_abi) as LyraLpStakingInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): LyraLpStaking { + return new Contract(address, _abi, signerOrProvider) as LyraLpStaking; + } +} diff --git a/src/apps/lyra-newport/contracts/ethers/factories/LyraOptionMarket__factory.ts b/src/apps/lyra-newport/contracts/ethers/factories/LyraOptionMarket__factory.ts new file mode 100644 index 000000000..18346ee2a --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/factories/LyraOptionMarket__factory.ts @@ -0,0 +1,2099 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from 'ethers'; +import type { Provider } from '@ethersproject/providers'; +import type { LyraOptionMarket, LyraOptionMarketInterface } from '../LyraOptionMarket'; + +const _abi = [ + { + inputs: [], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + ], + name: 'AlreadyInitialised', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'BaseTransferFailed', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + name: 'BoardAlreadySettled', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'boardExpiry', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'currentTime', + type: 'uint256', + }, + ], + name: 'BoardExpired', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + name: 'BoardIsFrozen', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + name: 'BoardNotExpired', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + name: 'BoardNotFrozen', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + ], + name: 'CannotRecoverQuote', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'enum OptionMarket.NonZeroValues', + name: 'valueType', + type: 'uint8', + }, + ], + name: 'ExpectedNonZeroValue', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + name: 'InvalidBoardId', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'currentTime', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'expiry', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'maxBoardExpiry', + type: 'uint256', + }, + ], + name: 'InvalidExpiryTimestamp', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + components: [ + { + internalType: 'uint256', + name: 'maxBoardExpiry', + type: 'uint256', + }, + { + internalType: 'address', + name: 'securityModule', + type: 'address', + }, + { + internalType: 'uint256', + name: 'feePortionReserved', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'staticBaseSettlementFee', + type: 'uint256', + }, + ], + internalType: 'struct OptionMarket.OptionMarketParameters', + name: 'optionMarketParams', + type: 'tuple', + }, + ], + name: 'InvalidOptionMarketParams', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + ], + name: 'InvalidStrikeId', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'nominatedOwner', + type: 'address', + }, + ], + name: 'OnlyNominatedOwner', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'OnlyOwner', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'securityModule', + type: 'address', + }, + ], + name: 'OnlySecurityModule', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'QuoteTransferFailed', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'strikesLength', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skewsLength', + type: 'uint256', + }, + ], + name: 'StrikeSkewLengthMismatch', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'totalCost', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'minCost', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'maxCost', + type: 'uint256', + }, + ], + name: 'TotalCostOutsideOfSpecifiedBounds', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'iterations', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'expectedAmount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'tradeAmount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'totalAmount', + type: 'uint256', + }, + ], + name: 'TradeIterationsHasRemainder', + type: 'error', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'baseIv', + type: 'uint256', + }, + ], + name: 'BoardBaseIvSet', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'expiry', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'baseIv', + type: 'uint256', + }, + { + indexed: false, + internalType: 'bool', + name: 'frozen', + type: 'bool', + }, + ], + name: 'BoardCreated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'bool', + name: 'frozen', + type: 'bool', + }, + ], + name: 'BoardFrozen', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'spotPriceAtExpiry', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalUserLongProfitQuote', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalBoardLongCallCollateral', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalBoardLongPutCollateral', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalAMMShortCallProfitBase', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalAMMShortCallProfitQuote', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalAMMShortPutProfitQuote', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'longScaleFactor', + type: 'uint256', + }, + ], + name: 'BoardSettled', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'maxBoardExpiry', + type: 'uint256', + }, + { + internalType: 'address', + name: 'securityModule', + type: 'address', + }, + { + internalType: 'uint256', + name: 'feePortionReserved', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'staticBaseSettlementFee', + type: 'uint256', + }, + ], + indexed: false, + internalType: 'struct OptionMarket.OptionMarketParameters', + name: 'optionMarketParams', + type: 'tuple', + }, + ], + name: 'OptionMarketParamsSet', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'oldOwner', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnerChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnerNominated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'securityModule', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'quoteAmount', + type: 'uint256', + }, + ], + name: 'SMClaimed', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + { + indexed: true, + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'strikePrice', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'skew', + type: 'uint256', + }, + ], + name: 'StrikeAdded', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'skew', + type: 'uint256', + }, + ], + name: 'StrikeSkewSet', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'trader', + type: 'address', + }, + { + indexed: true, + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + indexed: true, + internalType: 'address', + name: 'referrer', + type: 'address', + }, + { + components: [ + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'expiry', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikePrice', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'enum OptionMarket.TradeDirection', + name: 'tradeDirection', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'setCollateralTo', + type: 'uint256', + }, + { + internalType: 'bool', + name: 'isForceClose', + type: 'bool', + }, + { + internalType: 'uint256', + name: 'spotPrice', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'reservedFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'totalCost', + type: 'uint256', + }, + ], + indexed: false, + internalType: 'struct OptionMarket.TradeEventData', + name: 'trade', + type: 'tuple', + }, + { + components: [ + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'premium', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'optionPriceFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'spotPriceFee', + type: 'uint256', + }, + { + components: [ + { + internalType: 'int256', + name: 'preTradeAmmNetStdVega', + type: 'int256', + }, + { + internalType: 'int256', + name: 'postTradeAmmNetStdVega', + type: 'int256', + }, + { + internalType: 'uint256', + name: 'vegaUtil', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'volTraded', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'NAV', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'vegaUtilFee', + type: 'uint256', + }, + ], + internalType: 'struct OptionMarketPricer.VegaUtilFeeComponents', + name: 'vegaUtilFee', + type: 'tuple', + }, + { + components: [ + { + internalType: 'uint256', + name: 'varianceFeeCoefficient', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'vega', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'vegaCoefficient', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skew', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skewCoefficient', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'ivVariance', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'ivVarianceCoefficient', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'varianceFee', + type: 'uint256', + }, + ], + internalType: 'struct OptionMarketPricer.VarianceFeeComponents', + name: 'varianceFee', + type: 'tuple', + }, + { + internalType: 'uint256', + name: 'totalFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'totalCost', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'volTraded', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'newBaseIv', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'newSkew', + type: 'uint256', + }, + ], + indexed: false, + internalType: 'struct OptionMarketPricer.TradeResult[]', + name: 'tradeResults', + type: 'tuple[]', + }, + { + components: [ + { + internalType: 'address', + name: 'rewardBeneficiary', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'uint256', + name: 'returnCollateral', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'lpPremiums', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'lpFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'liquidatorFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'smFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'insolventAmount', + type: 'uint256', + }, + ], + indexed: false, + internalType: 'struct OptionMarket.LiquidationEventData', + name: 'liquidation', + type: 'tuple', + }, + { + indexed: false, + internalType: 'uint256', + name: 'longScaleFactor', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'timestamp', + type: 'uint256', + }, + ], + name: 'Trade', + type: 'event', + }, + { + inputs: [], + name: 'acceptOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'amountCollateral', + type: 'uint256', + }, + ], + name: 'addCollateral', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikePrice', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skew', + type: 'uint256', + }, + ], + name: 'addStrikeToBoard', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'baseAsset', + outputs: [ + { + internalType: 'contract IERC20Decimals', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'boardToPriceAtExpiry', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'iterations', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'setCollateralTo', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'minTotalCost', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'maxTotalCost', + type: 'uint256', + }, + { + internalType: 'address', + name: 'referrer', + type: 'address', + }, + ], + internalType: 'struct OptionMarket.TradeInputParameters', + name: 'params', + type: 'tuple', + }, + ], + name: 'closePosition', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'totalCost', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'totalFee', + type: 'uint256', + }, + ], + internalType: 'struct OptionMarket.Result', + name: 'result', + type: 'tuple', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'expiry', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'baseIV', + type: 'uint256', + }, + { + internalType: 'uint256[]', + name: 'strikePrices', + type: 'uint256[]', + }, + { + internalType: 'uint256[]', + name: 'skews', + type: 'uint256[]', + }, + { + internalType: 'bool', + name: 'frozen', + type: 'bool', + }, + ], + name: 'createOptionBoard', + outputs: [ + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'iterations', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'setCollateralTo', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'minTotalCost', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'maxTotalCost', + type: 'uint256', + }, + { + internalType: 'address', + name: 'referrer', + type: 'address', + }, + ], + internalType: 'struct OptionMarket.TradeInputParameters', + name: 'params', + type: 'tuple', + }, + ], + name: 'forceClosePosition', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'totalCost', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'totalFee', + type: 'uint256', + }, + ], + internalType: 'struct OptionMarket.Result', + name: 'result', + type: 'tuple', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + name: 'forceSettleBoard', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + name: 'getBoardAndStrikeDetails', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'expiry', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'iv', + type: 'uint256', + }, + { + internalType: 'bool', + name: 'frozen', + type: 'bool', + }, + { + internalType: 'uint256[]', + name: 'strikeIds', + type: 'uint256[]', + }, + ], + internalType: 'struct OptionMarket.OptionBoard', + name: '', + type: 'tuple', + }, + { + components: [ + { + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikePrice', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skew', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'longCall', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'shortCallBase', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'shortCallQuote', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'longPut', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'shortPut', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + internalType: 'struct OptionMarket.Strike[]', + name: '', + type: 'tuple[]', + }, + { + internalType: 'uint256[]', + name: '', + type: 'uint256[]', + }, + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + name: 'getBoardStrikes', + outputs: [ + { + internalType: 'uint256[]', + name: 'strikeIds', + type: 'uint256[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getLiveBoards', + outputs: [ + { + internalType: 'uint256[]', + name: '_liveBoards', + type: 'uint256[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getNumLiveBoards', + outputs: [ + { + internalType: 'uint256', + name: 'numLiveBoards', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + name: 'getOptionBoard', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'expiry', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'iv', + type: 'uint256', + }, + { + internalType: 'bool', + name: 'frozen', + type: 'bool', + }, + { + internalType: 'uint256[]', + name: 'strikeIds', + type: 'uint256[]', + }, + ], + internalType: 'struct OptionMarket.OptionBoard', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getOptionMarketParams', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'maxBoardExpiry', + type: 'uint256', + }, + { + internalType: 'address', + name: 'securityModule', + type: 'address', + }, + { + internalType: 'uint256', + name: 'feePortionReserved', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'staticBaseSettlementFee', + type: 'uint256', + }, + ], + internalType: 'struct OptionMarket.OptionMarketParameters', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + ], + name: 'getSettlementParameters', + outputs: [ + { + internalType: 'uint256', + name: 'strikePrice', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'priceAtExpiry', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeToBaseReturned', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'longScaleFactor', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + ], + name: 'getStrike', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikePrice', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skew', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'longCall', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'shortCallBase', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'shortCallQuote', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'longPut', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'shortPut', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + internalType: 'struct OptionMarket.Strike', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + ], + name: 'getStrikeAndBoard', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikePrice', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skew', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'longCall', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'shortCallBase', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'shortCallQuote', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'longPut', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'shortPut', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + internalType: 'struct OptionMarket.Strike', + name: '', + type: 'tuple', + }, + { + components: [ + { + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'expiry', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'iv', + type: 'uint256', + }, + { + internalType: 'bool', + name: 'frozen', + type: 'bool', + }, + { + internalType: 'uint256[]', + name: 'strikeIds', + type: 'uint256[]', + }, + ], + internalType: 'struct OptionMarket.OptionBoard', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + ], + name: 'getStrikeAndExpiry', + outputs: [ + { + internalType: 'uint256', + name: 'strikePrice', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'expiry', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'contract BaseExchangeAdapter', + name: '_exchangeAdapter', + type: 'address', + }, + { + internalType: 'contract LiquidityPool', + name: '_liquidityPool', + type: 'address', + }, + { + internalType: 'contract OptionMarketPricer', + name: '_optionPricer', + type: 'address', + }, + { + internalType: 'contract OptionGreekCache', + name: '_greekCache', + type: 'address', + }, + { + internalType: 'contract ShortCollateral', + name: '_shortCollateral', + type: 'address', + }, + { + internalType: 'contract OptionToken', + name: '_optionToken', + type: 'address', + }, + { + internalType: 'contract IERC20Decimals', + name: '_quoteAsset', + type: 'address', + }, + { + internalType: 'contract IERC20Decimals', + name: '_baseAsset', + type: 'address', + }, + ], + name: 'init', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'address', + name: 'rewardBeneficiary', + type: 'address', + }, + ], + name: 'liquidatePosition', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_owner', + type: 'address', + }, + ], + name: 'nominateNewOwner', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'nominatedOwner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'iterations', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'setCollateralTo', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'minTotalCost', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'maxTotalCost', + type: 'uint256', + }, + { + internalType: 'address', + name: 'referrer', + type: 'address', + }, + ], + internalType: 'struct OptionMarket.TradeInputParameters', + name: 'params', + type: 'tuple', + }, + ], + name: 'openPosition', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'totalCost', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'totalFee', + type: 'uint256', + }, + ], + internalType: 'struct OptionMarket.Result', + name: 'result', + type: 'tuple', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'owner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'quoteAsset', + outputs: [ + { + internalType: 'contract IERC20Decimals', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'contract IERC20Decimals', + name: 'token', + type: 'address', + }, + { + internalType: 'address', + name: 'recipient', + type: 'address', + }, + ], + name: 'recoverFunds', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'scaledLongsForBoard', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'baseIv', + type: 'uint256', + }, + ], + name: 'setBoardBaseIv', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + { + internalType: 'bool', + name: 'frozen', + type: 'bool', + }, + ], + name: 'setBoardFrozen', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'maxBoardExpiry', + type: 'uint256', + }, + { + internalType: 'address', + name: 'securityModule', + type: 'address', + }, + { + internalType: 'uint256', + name: 'feePortionReserved', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'staticBaseSettlementFee', + type: 'uint256', + }, + ], + internalType: 'struct OptionMarket.OptionMarketParameters', + name: '_optionMarketParams', + type: 'tuple', + }, + ], + name: 'setOptionMarketParams', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'skew', + type: 'uint256', + }, + ], + name: 'setStrikeSkew', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'boardId', + type: 'uint256', + }, + ], + name: 'settleExpiredBoard', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'smClaim', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, +]; + +export class LyraOptionMarket__factory { + static readonly abi = _abi; + static createInterface(): LyraOptionMarketInterface { + return new utils.Interface(_abi) as LyraOptionMarketInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): LyraOptionMarket { + return new Contract(address, _abi, signerOrProvider) as LyraOptionMarket; + } +} diff --git a/src/apps/lyra-newport/contracts/ethers/factories/LyraOptionToken__factory.ts b/src/apps/lyra-newport/contracts/ethers/factories/LyraOptionToken__factory.ts new file mode 100644 index 000000000..0e6cd0510 --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/factories/LyraOptionToken__factory.ts @@ -0,0 +1,2285 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from 'ethers'; +import type { Provider } from '@ethersproject/providers'; +import type { LyraOptionToken, LyraOptionTokenInterface } from '../LyraOptionToken'; + +const _abi = [ + { + inputs: [ + { + internalType: 'string', + name: 'name_', + type: 'string', + }, + { + internalType: 'string', + name: 'symbol_', + type: 'string', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'bool', + name: 'invalidPositionId', + type: 'bool', + }, + { + internalType: 'bool', + name: 'positionInactive', + type: 'bool', + }, + { + internalType: 'bool', + name: 'isShort', + type: 'bool', + }, + ], + name: 'AddingCollateralToInvalidPosition', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + ], + internalType: 'struct OptionToken.OptionPosition', + name: 'position', + type: 'tuple', + }, + { + internalType: 'uint256', + name: 'spotPrice', + type: 'uint256', + }, + ], + name: 'AdjustmentResultsInMinimumCollateralNotBeingMet', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + ], + name: 'AlreadyInitialised', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'bool', + name: 'invalidPositionId', + type: 'bool', + }, + { + internalType: 'bool', + name: 'positionInactive', + type: 'bool', + }, + { + internalType: 'bool', + name: 'strikeMismatch', + type: 'bool', + }, + { + internalType: 'bool', + name: 'optionTypeMismatch', + type: 'bool', + }, + ], + name: 'CannotAdjustInvalidPosition', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + ], + name: 'CannotClosePositionZero', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + ], + name: 'CannotOpenZeroAmount', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'setCollateralTo', + type: 'uint256', + }, + ], + name: 'FullyClosingWithNonZeroSetCollateral', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + components: [ + { + internalType: 'uint256', + name: 'penaltyRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'liquidatorFeeRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'smFeeRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'minLiquidationFee', + type: 'uint256', + }, + ], + internalType: 'struct OptionToken.PartialCollateralParameters', + name: 'partialCollatParams', + type: 'tuple', + }, + ], + name: 'InvalidPartialCollateralParameters', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'originalPositionAmount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'splitAmount', + type: 'uint256', + }, + ], + name: 'InvalidSplitAmount', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + ], + name: 'MergingUnapprovedPosition', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + ], + name: 'MustMergeTwoOrMorePositions', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'nominatedOwner', + type: 'address', + }, + ], + name: 'OnlyNominatedOwner', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'optionMarket', + type: 'address', + }, + ], + name: 'OnlyOptionMarket', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'OnlyOwner', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'address', + name: 'trader', + type: 'address', + }, + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'OnlyOwnerCanAdjustPosition', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'shortCollateral', + type: 'address', + }, + ], + name: 'OnlyShortCollateral', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + ], + internalType: 'struct OptionToken.OptionPosition', + name: 'firstPosition', + type: 'tuple', + }, + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + ], + internalType: 'struct OptionToken.OptionPosition', + name: 'nextPosition', + type: 'tuple', + }, + { + internalType: 'bool', + name: 'ownerMismatch', + type: 'bool', + }, + { + internalType: 'bool', + name: 'strikeMismatch', + type: 'bool', + }, + { + internalType: 'bool', + name: 'optionTypeMismatch', + type: 'bool', + }, + { + internalType: 'bool', + name: 'duplicatePositionId', + type: 'bool', + }, + ], + name: 'PositionMismatchWhenMerging', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + ], + internalType: 'struct OptionToken.OptionPosition', + name: 'position', + type: 'tuple', + }, + { + internalType: 'uint256', + name: 'spotPrice', + type: 'uint256', + }, + ], + name: 'PositionNotLiquidatable', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + ], + internalType: 'struct OptionToken.OptionPosition', + name: 'position', + type: 'tuple', + }, + { + internalType: 'uint256', + name: 'spotPrice', + type: 'uint256', + }, + ], + name: 'ResultingNewPositionLiquidatable', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + ], + internalType: 'struct OptionToken.OptionPosition', + name: 'position', + type: 'tuple', + }, + { + internalType: 'uint256', + name: 'spotPrice', + type: 'uint256', + }, + ], + name: 'ResultingOriginalPositionLiquidatable', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + ], + name: 'SplittingUnapprovedPosition', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + ], + name: 'StrikeIsSettled', + type: 'error', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'approved', + type: 'address', + }, + { + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'Approval', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + indexed: false, + internalType: 'bool', + name: 'approved', + type: 'bool', + }, + ], + name: 'ApprovalForAll', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'oldOwner', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnerChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnerNominated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'penaltyRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'liquidatorFeeRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'smFeeRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'minLiquidationFee', + type: 'uint256', + }, + ], + indexed: false, + internalType: 'struct OptionToken.PartialCollateralParameters', + name: 'partialCollateralParams', + type: 'tuple', + }, + ], + name: 'PartialCollateralParamsSet', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + indexed: true, + internalType: 'enum OptionToken.PositionUpdatedType', + name: 'updatedType', + type: 'uint8', + }, + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + ], + indexed: false, + internalType: 'struct OptionToken.OptionPosition', + name: 'position', + type: 'tuple', + }, + { + indexed: false, + internalType: 'uint256', + name: 'timestamp', + type: 'uint256', + }, + ], + name: 'PositionUpdated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'Transfer', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'string', + name: 'URI', + type: 'string', + }, + ], + name: 'URISet', + type: 'event', + }, + { + inputs: [], + name: 'acceptOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'amountCollateral', + type: 'uint256', + }, + ], + name: 'addCollateral', + outputs: [ + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'bool', + name: 'isBuy', + type: 'bool', + }, + { + internalType: 'bool', + name: 'isForceClose', + type: 'bool', + }, + { + internalType: 'enum OptionMarket.TradeDirection', + name: 'tradeDirection', + type: 'uint8', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'expiry', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikePrice', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'spotPrice', + type: 'uint256', + }, + { + components: [ + { + internalType: 'uint256', + name: 'freeLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'burnableLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'reservedCollatLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'pendingDeltaLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'usedDeltaLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'NAV', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'longScaleFactor', + type: 'uint256', + }, + ], + internalType: 'struct LiquidityPool.Liquidity', + name: 'liquidity', + type: 'tuple', + }, + ], + internalType: 'struct OptionMarket.TradeParameters', + name: 'trade', + type: 'tuple', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'address', + name: 'trader', + type: 'address', + }, + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'optionCost', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'setCollateralTo', + type: 'uint256', + }, + { + internalType: 'bool', + name: 'isOpen', + type: 'bool', + }, + ], + name: 'adjustPosition', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + { + internalType: 'int256', + name: 'pendingCollateral', + type: 'int256', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'approve', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'balanceOf', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'baseURI', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + ], + internalType: 'struct OptionToken.OptionPosition', + name: 'position', + type: 'tuple', + }, + { + internalType: 'uint256', + name: 'expiry', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikePrice', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'spotPrice', + type: 'uint256', + }, + ], + name: 'canLiquidate', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'getApproved', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'gwavPremium', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'userPositionCollateral', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'convertedMinLiquidationFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'insolvencyMultiplier', + type: 'uint256', + }, + ], + name: 'getLiquidationFees', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'returnCollateral', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'lpPremiums', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'lpFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'liquidatorFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'smFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'insolventAmount', + type: 'uint256', + }, + ], + internalType: 'struct OptionToken.LiquidationFees', + name: 'liquidationFees', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + ], + name: 'getOptionPosition', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + ], + internalType: 'struct OptionToken.OptionPosition', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256[]', + name: 'positionIds', + type: 'uint256[]', + }, + ], + name: 'getOptionPositions', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + ], + internalType: 'struct OptionToken.OptionPosition[]', + name: '', + type: 'tuple[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'target', + type: 'address', + }, + ], + name: 'getOwnerPositions', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + ], + internalType: 'struct OptionToken.OptionPosition[]', + name: '', + type: 'tuple[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getPartialCollatParams', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'penaltyRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'liquidatorFeeRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'smFeeRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'minLiquidationFee', + type: 'uint256', + }, + ], + internalType: 'struct OptionToken.PartialCollateralParameters', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + ], + name: 'getPositionState', + outputs: [ + { + internalType: 'enum OptionToken.PositionState', + name: '', + type: 'uint8', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + ], + name: 'getPositionWithOwner', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + internalType: 'struct OptionToken.PositionWithOwner', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256[]', + name: 'positionIds', + type: 'uint256[]', + }, + ], + name: 'getPositionsWithOwner', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + internalType: 'struct OptionToken.PositionWithOwner[]', + name: '', + type: 'tuple[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'contract OptionMarket', + name: '_optionMarket', + type: 'address', + }, + { + internalType: 'contract OptionGreekCache', + name: '_greekCache', + type: 'address', + }, + { + internalType: 'address', + name: '_shortCollateral', + type: 'address', + }, + { + internalType: 'contract BaseExchangeAdapter', + name: '_exchangeAdapter', + type: 'address', + }, + ], + name: 'init', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + ], + name: 'isApprovedForAll', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + components: [ + { + internalType: 'bool', + name: 'isBuy', + type: 'bool', + }, + { + internalType: 'bool', + name: 'isForceClose', + type: 'bool', + }, + { + internalType: 'enum OptionMarket.TradeDirection', + name: 'tradeDirection', + type: 'uint8', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'expiry', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikePrice', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'spotPrice', + type: 'uint256', + }, + { + components: [ + { + internalType: 'uint256', + name: 'freeLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'burnableLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'reservedCollatLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'pendingDeltaLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'usedDeltaLiquidity', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'NAV', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'longScaleFactor', + type: 'uint256', + }, + ], + internalType: 'struct LiquidityPool.Liquidity', + name: 'liquidity', + type: 'tuple', + }, + ], + internalType: 'struct OptionMarket.TradeParameters', + name: 'trade', + type: 'tuple', + }, + { + internalType: 'uint256', + name: 'totalCost', + type: 'uint256', + }, + ], + name: 'liquidate', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'returnCollateral', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'lpPremiums', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'lpFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'liquidatorFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'smFee', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'insolventAmount', + type: 'uint256', + }, + ], + internalType: 'struct OptionToken.LiquidationFees', + name: 'liquidationFees', + type: 'tuple', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256[]', + name: 'positionIds', + type: 'uint256[]', + }, + ], + name: 'merge', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'name', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'nextId', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_owner', + type: 'address', + }, + ], + name: 'nominateNewOwner', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'nominatedOwner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'owner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'ownerOf', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'partialCollatParams', + outputs: [ + { + internalType: 'uint256', + name: 'penaltyRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'liquidatorFeeRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'smFeeRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'minLiquidationFee', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'positions', + outputs: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'strikeId', + type: 'uint256', + }, + { + internalType: 'enum OptionMarket.OptionType', + name: 'optionType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'collateral', + type: 'uint256', + }, + { + internalType: 'enum OptionToken.PositionState', + name: 'state', + type: 'uint8', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + { + internalType: 'bytes', + name: '_data', + type: 'bytes', + }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + internalType: 'bool', + name: 'approved', + type: 'bool', + }, + ], + name: 'setApprovalForAll', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'penaltyRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'liquidatorFeeRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'smFeeRatio', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'minLiquidationFee', + type: 'uint256', + }, + ], + internalType: 'struct OptionToken.PartialCollateralParameters', + name: '_partialCollatParams', + type: 'tuple', + }, + ], + name: 'setPartialCollateralParams', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: 'newURI', + type: 'string', + }, + ], + name: 'setURI', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256[]', + name: 'positionIds', + type: 'uint256[]', + }, + ], + name: 'settlePositions', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'positionId', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'newAmount', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'newCollateral', + type: 'uint256', + }, + { + internalType: 'address', + name: 'recipient', + type: 'address', + }, + ], + name: 'split', + outputs: [ + { + internalType: 'uint256', + name: 'newPositionId', + type: 'uint256', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bytes4', + name: 'interfaceId', + type: 'bytes4', + }, + ], + name: 'supportsInterface', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'symbol', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'index', + type: 'uint256', + }, + ], + name: 'tokenByIndex', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + internalType: 'uint256', + name: 'index', + type: 'uint256', + }, + ], + name: 'tokenOfOwnerByIndex', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'tokenURI', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'totalSupply', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'transferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, +]; + +export class LyraOptionToken__factory { + static readonly abi = _abi; + static createInterface(): LyraOptionTokenInterface { + return new utils.Interface(_abi) as LyraOptionTokenInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): LyraOptionToken { + return new Contract(address, _abi, signerOrProvider) as LyraOptionToken; + } +} diff --git a/src/apps/lyra-newport/contracts/ethers/factories/LyraRegistry__factory.ts b/src/apps/lyra-newport/contracts/ethers/factories/LyraRegistry__factory.ts new file mode 100644 index 000000000..bf12902a1 --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/factories/LyraRegistry__factory.ts @@ -0,0 +1,594 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from 'ethers'; +import type { Provider } from '@ethersproject/providers'; +import type { LyraRegistry, LyraRegistryInterface } from '../LyraRegistry'; + +const _abi = [ + { + inputs: [], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + inputs: [ + { + internalType: 'bytes32', + name: 'contractName', + type: 'bytes32', + }, + ], + name: 'NonExistentGlobalContract', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'optionMarket', + type: 'address', + }, + ], + name: 'NonExistentMarket', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'nominatedOwner', + type: 'address', + }, + ], + name: 'OnlyNominatedOwner', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'caller', + type: 'address', + }, + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'OnlyOwner', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'thrower', + type: 'address', + }, + { + internalType: 'address', + name: 'market', + type: 'address', + }, + ], + name: 'RemovingInvalidMarket', + type: 'error', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'bytes32', + name: 'name', + type: 'bytes32', + }, + { + indexed: false, + internalType: 'address', + name: 'addr', + type: 'address', + }, + ], + name: 'GlobalAddressUpdated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'contract OptionMarket', + name: 'market', + type: 'address', + }, + ], + name: 'MarketRemoved', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'contract OptionMarket', + name: 'optionMarket', + type: 'address', + }, + { + components: [ + { + internalType: 'contract LiquidityPool', + name: 'liquidityPool', + type: 'address', + }, + { + internalType: 'contract LiquidityToken', + name: 'liquidityToken', + type: 'address', + }, + { + internalType: 'contract OptionGreekCache', + name: 'greekCache', + type: 'address', + }, + { + internalType: 'contract OptionMarket', + name: 'optionMarket', + type: 'address', + }, + { + internalType: 'contract OptionMarketPricer', + name: 'optionMarketPricer', + type: 'address', + }, + { + internalType: 'contract OptionToken', + name: 'optionToken', + type: 'address', + }, + { + internalType: 'contract PoolHedger', + name: 'poolHedger', + type: 'address', + }, + { + internalType: 'contract ShortCollateral', + name: 'shortCollateral', + type: 'address', + }, + { + internalType: 'contract GWAVOracle', + name: 'gwavOracle', + type: 'address', + }, + { + internalType: 'contract IERC20', + name: 'quoteAsset', + type: 'address', + }, + { + internalType: 'contract IERC20', + name: 'baseAsset', + type: 'address', + }, + ], + indexed: false, + internalType: 'struct LyraRegistry.OptionMarketAddresses', + name: 'market', + type: 'tuple', + }, + ], + name: 'MarketUpdated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'oldOwner', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnerChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, + ], + name: 'OwnerNominated', + type: 'event', + }, + { + inputs: [], + name: 'acceptOwnership', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'contract LiquidityPool', + name: 'liquidityPool', + type: 'address', + }, + { + internalType: 'contract LiquidityToken', + name: 'liquidityToken', + type: 'address', + }, + { + internalType: 'contract OptionGreekCache', + name: 'greekCache', + type: 'address', + }, + { + internalType: 'contract OptionMarket', + name: 'optionMarket', + type: 'address', + }, + { + internalType: 'contract OptionMarketPricer', + name: 'optionMarketPricer', + type: 'address', + }, + { + internalType: 'contract OptionToken', + name: 'optionToken', + type: 'address', + }, + { + internalType: 'contract PoolHedger', + name: 'poolHedger', + type: 'address', + }, + { + internalType: 'contract ShortCollateral', + name: 'shortCollateral', + type: 'address', + }, + { + internalType: 'contract GWAVOracle', + name: 'gwavOracle', + type: 'address', + }, + { + internalType: 'contract IERC20', + name: 'quoteAsset', + type: 'address', + }, + { + internalType: 'contract IERC20', + name: 'baseAsset', + type: 'address', + }, + ], + internalType: 'struct LyraRegistry.OptionMarketAddresses', + name: 'newMarketAddresses', + type: 'tuple', + }, + ], + name: 'addMarket', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bytes32', + name: 'contractName', + type: 'bytes32', + }, + ], + name: 'getGlobalAddress', + outputs: [ + { + internalType: 'address', + name: 'globalContract', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'contract OptionMarket', + name: 'optionMarket', + type: 'address', + }, + ], + name: 'getMarketAddresses', + outputs: [ + { + components: [ + { + internalType: 'contract LiquidityPool', + name: 'liquidityPool', + type: 'address', + }, + { + internalType: 'contract LiquidityToken', + name: 'liquidityToken', + type: 'address', + }, + { + internalType: 'contract OptionGreekCache', + name: 'greekCache', + type: 'address', + }, + { + internalType: 'contract OptionMarket', + name: 'optionMarket', + type: 'address', + }, + { + internalType: 'contract OptionMarketPricer', + name: 'optionMarketPricer', + type: 'address', + }, + { + internalType: 'contract OptionToken', + name: 'optionToken', + type: 'address', + }, + { + internalType: 'contract PoolHedger', + name: 'poolHedger', + type: 'address', + }, + { + internalType: 'contract ShortCollateral', + name: 'shortCollateral', + type: 'address', + }, + { + internalType: 'contract GWAVOracle', + name: 'gwavOracle', + type: 'address', + }, + { + internalType: 'contract IERC20', + name: 'quoteAsset', + type: 'address', + }, + { + internalType: 'contract IERC20', + name: 'baseAsset', + type: 'address', + }, + ], + internalType: 'struct LyraRegistry.OptionMarketAddresses', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bytes32', + name: '', + type: 'bytes32', + }, + ], + name: 'globalAddresses', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'contract OptionMarket', + name: '', + type: 'address', + }, + ], + name: 'marketAddresses', + outputs: [ + { + internalType: 'contract LiquidityPool', + name: 'liquidityPool', + type: 'address', + }, + { + internalType: 'contract LiquidityToken', + name: 'liquidityToken', + type: 'address', + }, + { + internalType: 'contract OptionGreekCache', + name: 'greekCache', + type: 'address', + }, + { + internalType: 'contract OptionMarket', + name: 'optionMarket', + type: 'address', + }, + { + internalType: 'contract OptionMarketPricer', + name: 'optionMarketPricer', + type: 'address', + }, + { + internalType: 'contract OptionToken', + name: 'optionToken', + type: 'address', + }, + { + internalType: 'contract PoolHedger', + name: 'poolHedger', + type: 'address', + }, + { + internalType: 'contract ShortCollateral', + name: 'shortCollateral', + type: 'address', + }, + { + internalType: 'contract GWAVOracle', + name: 'gwavOracle', + type: 'address', + }, + { + internalType: 'contract IERC20', + name: 'quoteAsset', + type: 'address', + }, + { + internalType: 'contract IERC20', + name: 'baseAsset', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '_owner', + type: 'address', + }, + ], + name: 'nominateNewOwner', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'nominatedOwner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'optionMarkets', + outputs: [ + { + internalType: 'contract OptionMarket', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'owner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'contract OptionMarket', + name: 'market', + type: 'address', + }, + ], + name: 'removeMarket', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bytes32[]', + name: 'names', + type: 'bytes32[]', + }, + { + internalType: 'address[]', + name: 'addresses', + type: 'address[]', + }, + ], + name: 'updateGlobalAddresses', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, +]; + +export class LyraRegistry__factory { + static readonly abi = _abi; + static createInterface(): LyraRegistryInterface { + return new utils.Interface(_abi) as LyraRegistryInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): LyraRegistry { + return new Contract(address, _abi, signerOrProvider) as LyraRegistry; + } +} diff --git a/src/apps/lyra-newport/contracts/ethers/factories/LyraStkLyra__factory.ts b/src/apps/lyra-newport/contracts/ethers/factories/LyraStkLyra__factory.ts new file mode 100644 index 000000000..5c3186676 --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/factories/LyraStkLyra__factory.ts @@ -0,0 +1,1347 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer, utils } from 'ethers'; +import type { Provider } from '@ethersproject/providers'; +import type { LyraStkLyra, LyraStkLyraInterface } from '../LyraStkLyra'; + +const _abi = [ + { + inputs: [ + { + internalType: 'contract IERC20', + name: 'stakedToken', + type: 'address', + }, + { + internalType: 'contract IERC20', + name: 'rewardToken', + type: 'address', + }, + { + internalType: 'uint256', + name: 'cooldownSeconds', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'unstakeWindow', + type: 'uint256', + }, + { + internalType: 'address', + name: 'rewardsVault', + type: 'address', + }, + { + internalType: 'address', + name: 'emissionManager', + type: 'address', + }, + { + internalType: 'uint128', + name: 'distributionDuration', + type: 'uint128', + }, + ], + stateMutability: 'nonpayable', + type: 'constructor', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'Approval', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'asset', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'emission', + type: 'uint256', + }, + ], + name: 'AssetConfigUpdated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'asset', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'index', + type: 'uint256', + }, + ], + name: 'AssetIndexUpdated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'Cooldown', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'balance', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'cooldownTimestamp', + type: 'uint256', + }, + ], + name: 'CooldownUpdated', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'delegator', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'delegatee', + type: 'address', + }, + { + indexed: false, + internalType: 'enum IGovernancePowerDelegationToken.DelegationType', + name: 'delegationType', + type: 'uint8', + }, + ], + name: 'DelegateChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + { + indexed: false, + internalType: 'enum IGovernancePowerDelegationToken.DelegationType', + name: 'delegationType', + type: 'uint8', + }, + ], + name: 'DelegatedPowerChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'Redeem', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'address', + name: 'user', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'RewardsAccrued', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'RewardsClaimed', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'onBehalfOf', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'Staked', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'Transfer', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'asset', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'index', + type: 'uint256', + }, + ], + name: 'UserIndexUpdated', + type: 'event', + }, + { + inputs: [], + name: 'COOLDOWN_SECONDS', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'DELEGATE_BY_TYPE_TYPEHASH', + outputs: [ + { + internalType: 'bytes32', + name: '', + type: 'bytes32', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'DELEGATE_TYPEHASH', + outputs: [ + { + internalType: 'bytes32', + name: '', + type: 'bytes32', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'DISTRIBUTION_END', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [ + { + internalType: 'bytes32', + name: '', + type: 'bytes32', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'EIP712_REVISION', + outputs: [ + { + internalType: 'bytes', + name: '', + type: 'bytes', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'EMISSION_MANAGER', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'PERMIT_TYPEHASH', + outputs: [ + { + internalType: 'bytes32', + name: '', + type: 'bytes32', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'PRECISION', + outputs: [ + { + internalType: 'uint8', + name: '', + type: 'uint8', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'REVISION', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'REWARDS_VAULT', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'REWARD_TOKEN', + outputs: [ + { + internalType: 'contract IERC20', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'STAKED_TOKEN', + outputs: [ + { + internalType: 'contract IERC20', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'UNSTAKE_WINDOW', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: '_aaveGovernance', + outputs: [ + { + internalType: 'contract ITransferHook', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: '_nonces', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: '_votingSnapshots', + outputs: [ + { + internalType: 'uint128', + name: 'blockNumber', + type: 'uint128', + }, + { + internalType: 'uint128', + name: 'value', + type: 'uint128', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: '_votingSnapshotsCounts', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + ], + name: 'allowance', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'approve', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'assets', + outputs: [ + { + internalType: 'uint128', + name: 'emissionPerSecond', + type: 'uint128', + }, + { + internalType: 'uint128', + name: 'lastUpdateTimestamp', + type: 'uint128', + }, + { + internalType: 'uint256', + name: 'index', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + ], + name: 'balanceOf', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'claimRewards', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + internalType: 'uint128', + name: 'emissionPerSecond', + type: 'uint128', + }, + { + internalType: 'uint256', + name: 'totalStaked', + type: 'uint256', + }, + { + internalType: 'address', + name: 'underlyingAsset', + type: 'address', + }, + ], + internalType: 'struct DistributionTypes.AssetConfigInput[]', + name: 'assetsConfigInput', + type: 'tuple[]', + }, + ], + name: 'configureAssets', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'cooldown', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'decimals', + outputs: [ + { + internalType: 'uint8', + name: '', + type: 'uint8', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'subtractedValue', + type: 'uint256', + }, + ], + name: 'decreaseAllowance', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'delegatee', + type: 'address', + }, + ], + name: 'delegate', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'delegatee', + type: 'address', + }, + { + internalType: 'uint256', + name: 'nonce', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'expiry', + type: 'uint256', + }, + { + internalType: 'uint8', + name: 'v', + type: 'uint8', + }, + { + internalType: 'bytes32', + name: 'r', + type: 'bytes32', + }, + { + internalType: 'bytes32', + name: 's', + type: 'bytes32', + }, + ], + name: 'delegateBySig', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'delegatee', + type: 'address', + }, + { + internalType: 'enum IGovernancePowerDelegationToken.DelegationType', + name: 'delegationType', + type: 'uint8', + }, + ], + name: 'delegateByType', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'delegatee', + type: 'address', + }, + { + internalType: 'enum IGovernancePowerDelegationToken.DelegationType', + name: 'delegationType', + type: 'uint8', + }, + { + internalType: 'uint256', + name: 'nonce', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'expiry', + type: 'uint256', + }, + { + internalType: 'uint8', + name: 'v', + type: 'uint8', + }, + { + internalType: 'bytes32', + name: 'r', + type: 'bytes32', + }, + { + internalType: 'bytes32', + name: 's', + type: 'bytes32', + }, + ], + name: 'delegateByTypeBySig', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'delegator', + type: 'address', + }, + { + internalType: 'enum IGovernancePowerDelegationToken.DelegationType', + name: 'delegationType', + type: 'uint8', + }, + ], + name: 'getDelegateeByType', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'fromCooldownTimestamp', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'amountToReceive', + type: 'uint256', + }, + { + internalType: 'address', + name: 'toAddress', + type: 'address', + }, + { + internalType: 'uint256', + name: 'toBalance', + type: 'uint256', + }, + ], + name: 'getNextCooldownTimestamp', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + { + internalType: 'uint256', + name: 'blockNumber', + type: 'uint256', + }, + { + internalType: 'enum IGovernancePowerDelegationToken.DelegationType', + name: 'delegationType', + type: 'uint8', + }, + ], + name: 'getPowerAtBlock', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + { + internalType: 'enum IGovernancePowerDelegationToken.DelegationType', + name: 'delegationType', + type: 'uint8', + }, + ], + name: 'getPowerCurrent', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'staker', + type: 'address', + }, + ], + name: 'getTotalRewardsBalance', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + { + internalType: 'address', + name: 'asset', + type: 'address', + }, + ], + name: 'getUserAssetData', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'addedValue', + type: 'uint256', + }, + ], + name: 'increaseAllowance', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'string', + name: 'name', + type: 'string', + }, + { + internalType: 'string', + name: 'symbol', + type: 'string', + }, + { + internalType: 'uint8', + name: 'decimals', + type: 'uint8', + }, + ], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'name', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + { + internalType: 'address', + name: 'spender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'deadline', + type: 'uint256', + }, + { + internalType: 'uint8', + name: 'v', + type: 'uint8', + }, + { + internalType: 'bytes32', + name: 'r', + type: 'bytes32', + }, + { + internalType: 'bytes32', + name: 's', + type: 'bytes32', + }, + ], + name: 'permit', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'redeem', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'onBehalfOf', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'stake', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'stakerRewardsToClaim', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + name: 'stakersCooldowns', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'symbol', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'totalSupply', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'blockNumber', + type: 'uint256', + }, + ], + name: 'totalSupplyAt', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'recipient', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'transfer', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'sender', + type: 'address', + }, + { + internalType: 'address', + name: 'recipient', + type: 'address', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'transferFrom', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, +]; + +export class LyraStkLyra__factory { + static readonly abi = _abi; + static createInterface(): LyraStkLyraInterface { + return new utils.Interface(_abi) as LyraStkLyraInterface; + } + static connect(address: string, signerOrProvider: Signer | Provider): LyraStkLyra { + return new Contract(address, _abi, signerOrProvider) as LyraStkLyra; + } +} diff --git a/src/apps/lyra-newport/contracts/ethers/factories/index.ts b/src/apps/lyra-newport/contracts/ethers/factories/index.ts new file mode 100644 index 000000000..563351235 --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/factories/index.ts @@ -0,0 +1,10 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { LyraLiquidityPool__factory } from './LyraLiquidityPool__factory'; +export { LyraLiquidityToken__factory } from './LyraLiquidityToken__factory'; +export { LyraLpStaking__factory } from './LyraLpStaking__factory'; +export { LyraOptionMarket__factory } from './LyraOptionMarket__factory'; +export { LyraOptionToken__factory } from './LyraOptionToken__factory'; +export { LyraRegistry__factory } from './LyraRegistry__factory'; +export { LyraStkLyra__factory } from './LyraStkLyra__factory'; diff --git a/src/apps/lyra-newport/contracts/ethers/index.ts b/src/apps/lyra-newport/contracts/ethers/index.ts new file mode 100644 index 000000000..7d7aa769d --- /dev/null +++ b/src/apps/lyra-newport/contracts/ethers/index.ts @@ -0,0 +1,18 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { LyraLiquidityPool } from './LyraLiquidityPool'; +export type { LyraLiquidityToken } from './LyraLiquidityToken'; +export type { LyraLpStaking } from './LyraLpStaking'; +export type { LyraOptionMarket } from './LyraOptionMarket'; +export type { LyraOptionToken } from './LyraOptionToken'; +export type { LyraRegistry } from './LyraRegistry'; +export type { LyraStkLyra } from './LyraStkLyra'; +export * as factories from './factories'; +export { LyraLiquidityPool__factory } from './factories/LyraLiquidityPool__factory'; +export { LyraLiquidityToken__factory } from './factories/LyraLiquidityToken__factory'; +export { LyraLpStaking__factory } from './factories/LyraLpStaking__factory'; +export { LyraOptionMarket__factory } from './factories/LyraOptionMarket__factory'; +export { LyraOptionToken__factory } from './factories/LyraOptionToken__factory'; +export { LyraRegistry__factory } from './factories/LyraRegistry__factory'; +export { LyraStkLyra__factory } from './factories/LyraStkLyra__factory'; diff --git a/src/apps/lyra-newport/contracts/index.ts b/src/apps/lyra-newport/contracts/index.ts new file mode 100644 index 000000000..4e3781b07 --- /dev/null +++ b/src/apps/lyra-newport/contracts/index.ts @@ -0,0 +1,55 @@ +import { Injectable, Inject } from '@nestjs/common'; + +import { IAppToolkit, APP_TOOLKIT } from '~app-toolkit/app-toolkit.interface'; +import { ContractFactory } from '~contract/contracts'; +import { Network } from '~types/network.interface'; + +import { + LyraLiquidityPool__factory, + LyraLiquidityToken__factory, + LyraLpStaking__factory, + LyraOptionMarket__factory, + LyraOptionToken__factory, + LyraRegistry__factory, + LyraStkLyra__factory, +} from './ethers'; + +// eslint-disable-next-line +type ContractOpts = { address: string; network: Network }; + +@Injectable() +export class LyraNewportContractFactory extends ContractFactory { + constructor(@Inject(APP_TOOLKIT) protected readonly appToolkit: IAppToolkit) { + super((network: Network) => appToolkit.getNetworkProvider(network)); + } + + lyraLiquidityPool({ address, network }: ContractOpts) { + return LyraLiquidityPool__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + } + lyraLiquidityToken({ address, network }: ContractOpts) { + return LyraLiquidityToken__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + } + lyraLpStaking({ address, network }: ContractOpts) { + return LyraLpStaking__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + } + lyraOptionMarket({ address, network }: ContractOpts) { + return LyraOptionMarket__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + } + lyraOptionToken({ address, network }: ContractOpts) { + return LyraOptionToken__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + } + lyraRegistry({ address, network }: ContractOpts) { + return LyraRegistry__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + } + lyraStkLyra({ address, network }: ContractOpts) { + return LyraStkLyra__factory.connect(address, this.appToolkit.getNetworkProvider(network)); + } +} + +export type { LyraLiquidityPool } from './ethers'; +export type { LyraLiquidityToken } from './ethers'; +export type { LyraLpStaking } from './ethers'; +export type { LyraOptionMarket } from './ethers'; +export type { LyraOptionToken } from './ethers'; +export type { LyraRegistry } from './ethers'; +export type { LyraStkLyra } from './ethers'; diff --git a/src/apps/lyra-newport/ethereum/lyra-newport.staking.contract-position-fetcher.ts b/src/apps/lyra-newport/ethereum/lyra-newport.staking.contract-position-fetcher.ts new file mode 100644 index 000000000..6f98b8e8d --- /dev/null +++ b/src/apps/lyra-newport/ethereum/lyra-newport.staking.contract-position-fetcher.ts @@ -0,0 +1,52 @@ +import { Inject } from '@nestjs/common'; + +import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; +import { PositionTemplate } from '~app-toolkit/decorators/position-template.decorator'; +import { GetDataPropsParams, GetTokenBalancesParams } from '~position/template/contract-position.template.types'; +import { + SingleStakingFarmDataProps, + SingleStakingFarmDefinition, + SingleStakingFarmTemplateContractPositionFetcher, +} from '~position/template/single-staking.template.contract-position-fetcher'; + +import { LyraNewportContractFactory, LyraLpStaking } from '../contracts'; + +const FARMS = [ + { + address: '0x1a364a7e66b21ed3045b13d3465627f9e9613f07', + stakedTokenAddress: '0xe6f375a29cdd3b40fa7aa0932ff510d304d95fa6', // Lyra/WETH Arrakis vault token + rewardTokenAddresses: ['0x01ba67aac7f75f647d94220cc98fb30fcc5105bf'], // Lyra + }, +]; + +@PositionTemplate() +export class EthereumLyraNewportStakingContractPositionFetcher extends SingleStakingFarmTemplateContractPositionFetcher { + groupLabel = 'Farm'; + + constructor( + @Inject(APP_TOOLKIT) protected readonly appToolkit: IAppToolkit, + @Inject(LyraNewportContractFactory) protected readonly contractFactory: LyraNewportContractFactory, + ) { + super(appToolkit); + } + + getContract(address: string): LyraLpStaking { + return this.contractFactory.lyraLpStaking({ address, network: this.network }); + } + + async getFarmDefinitions(): Promise { + return FARMS; + } + + getRewardRates({ contract }: GetDataPropsParams) { + return contract.rewardRate(); + } + + getStakedTokenBalance({ contract, address }: GetTokenBalancesParams) { + return contract.balanceOf(address); + } + + getRewardTokenBalances({ contract, address }: GetTokenBalancesParams) { + return contract.earned(address); + } +} diff --git a/src/apps/lyra-newport/ethereum/lyra-newport.stk-lyra.token-fetcher.ts b/src/apps/lyra-newport/ethereum/lyra-newport.stk-lyra.token-fetcher.ts new file mode 100644 index 000000000..f1137f122 --- /dev/null +++ b/src/apps/lyra-newport/ethereum/lyra-newport.stk-lyra.token-fetcher.ts @@ -0,0 +1,35 @@ +import { Inject } from '@nestjs/common'; + +import { APP_TOOLKIT, IAppToolkit } from '~app-toolkit/app-toolkit.interface'; +import { PositionTemplate } from '~app-toolkit/decorators/position-template.decorator'; +import { AppTokenTemplatePositionFetcher } from '~position/template/app-token.template.position-fetcher'; + +import { LyraNewportContractFactory, LyraStkLyra } from '../contracts'; + +@PositionTemplate() +export class EthereumLyraNewportStkLyraTokenFetcher extends AppTokenTemplatePositionFetcher { + groupLabel = 'stkLYRA'; + + constructor( + @Inject(APP_TOOLKIT) protected readonly appToolkit: IAppToolkit, + @Inject(LyraNewportContractFactory) protected readonly contractFactory: LyraNewportContractFactory, + ) { + super(appToolkit); + } + + getContract(address: string): LyraStkLyra { + return this.contractFactory.lyraStkLyra({ address, network: this.network }); + } + + async getAddresses() { + return ['0xcb9f85730f57732fc899fb158164b9ed60c77d49']; + } + + async getUnderlyingTokenDefinitions() { + return [{ address: '0x01ba67aac7f75f647d94220cc98fb30fcc5105bf', network: this.network }]; + } + + async getPricePerShare() { + return [1]; + } +} diff --git a/src/apps/lyra-newport/lyra-newport.module.ts b/src/apps/lyra-newport/lyra-newport.module.ts new file mode 100644 index 000000000..0891581d3 --- /dev/null +++ b/src/apps/lyra-newport/lyra-newport.module.ts @@ -0,0 +1,17 @@ +import { Module } from '@nestjs/common'; + +import { AbstractApp } from '~app/app.dynamic-module'; + +import { LyraNewportContractFactory } from './contracts'; +import { ArbitrumLyraNewportOptionsContractPositionFetcher } from './arbitrum/lyra-newport.options.contract-position-fetcher'; +import { ArbitrumLyraNewportPoolTokenFetcher } from './arbitrum/lyra-newport.pool.token-fetcher'; + +@Module({ + providers: [ + LyraNewportContractFactory, + ArbitrumLyraNewportOptionsContractPositionFetcher, + ArbitrumLyraNewportPoolTokenFetcher, + ], +}) +export class LyraNewportAppModule extends AbstractApp() { } +