Types

Custom types used by options-library

ChainAddresses

Contains the addresses of the pre-deployed contracts used by the Option system.

type ChainAddresses = {
  FixedStrikeOptionTeller: `0x${string}`;
  MOLMFactory: `0x${string}`;
  OOLMFactory: `0x${string}`;
};

ChainAbis

Contains the ABIs of the contracts used by the Option system.

type ChainAbis = {
  ERC20: typeof IERC20;
  FixedStrikeOptionTeller: typeof fixedStrikeOptionTeller;
  MOLMFactory: typeof MOLMFactory;
  OOLMFactory: typeof OOLMFactory;
  Allowlist: typeof allowlist;
  FixedStrikeOptionToken: typeof fixedStrikeOptionToken;
  OLM: typeof OLM;
  MOLM: typeof manualStrikeOLM;
  OOLM: typeof oracleStrikeOLM;
  OptionToken: typeof optionToken;
};

OLMPricing

Contains pricing data for an OLM.

type OLMPricing = {
  strikePriceUSD: number;
  impliedValue: number;
  stakedTokenBalance: string;
  rewardRate: string;
  epochRoi: number;
  epochDuration: number;
  epochsPerYear: number;
  apr: number;
};

Token

Contains the basic data for an ERC-20 token.

type Token = {
  address: `0x${string}`;
  name: string;
  symbol: string;
  decimals: number;
};

OTokenData

Contains data for an Option Token which is commonly required by frontend displays.

type OTokenData = {
  optionToken: Token;
  payoutToken: Token;
  quoteToken: Token;
  strikePrice: bigint;
  decimalAdjustedStrike: string;
  eligibleTime: number;
  expiryTime: number;
  call: boolean;
  balance: bigint;
  decimalAdjustedBalance: string;
};