@nexusmutual/sdk 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../node_modules/dotenv/package.json","../node_modules/dotenv/lib/main.js","../src/index.ts","../generated/products.json","../generated/product-types.json","../generated/types.ts","../src/swap/index.ts","../src/swap/calculateExactNxmForEth.ts","../src/swap/calculateExactEthForNxm.ts","../src/swap/calculateNxmForExactEth.ts","../src/swap/calculateEthForExactNxm.ts","../src/swap/calculateSpotPrice.ts","../src/swap/calculatePriceImpactA.ts","../src/swap/calculatePriceImpactB.ts","../src/buyCover/index.ts","../src/constants/buyCover.ts","../src/buyCover/calculatePremiumWithCommissionAndSlippage.ts","../src/types/index.ts","../src/quote/index.ts","../src/quote/getQuoteAndBuyCoverInputs.ts","../src/constants/index.ts"],"sourcesContent":["{\n \"name\": \"dotenv\",\n \"version\": \"16.0.3\",\n \"description\": \"Loads environment variables from .env file\",\n \"main\": \"lib/main.js\",\n \"types\": \"lib/main.d.ts\",\n \"exports\": {\n \".\": {\n \"require\": \"./lib/main.js\",\n \"types\": \"./lib/main.d.ts\",\n \"default\": \"./lib/main.js\"\n },\n \"./config\": \"./config.js\",\n \"./config.js\": \"./config.js\",\n \"./lib/env-options\": \"./lib/env-options.js\",\n \"./lib/env-options.js\": \"./lib/env-options.js\",\n \"./lib/cli-options\": \"./lib/cli-options.js\",\n \"./lib/cli-options.js\": \"./lib/cli-options.js\",\n \"./package.json\": \"./package.json\"\n },\n \"scripts\": {\n \"dts-check\": \"tsc --project tests/types/tsconfig.json\",\n \"lint\": \"standard\",\n \"lint-readme\": \"standard-markdown\",\n \"pretest\": \"npm run lint && npm run dts-check\",\n \"test\": \"tap tests/*.js --100 -Rspec\",\n \"prerelease\": \"npm test\",\n \"release\": \"standard-version\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/motdotla/dotenv.git\"\n },\n \"keywords\": [\n \"dotenv\",\n \"env\",\n \".env\",\n \"environment\",\n \"variables\",\n \"config\",\n \"settings\"\n ],\n \"readmeFilename\": \"README.md\",\n \"license\": \"BSD-2-Clause\",\n \"devDependencies\": {\n \"@types/node\": \"^17.0.9\",\n \"decache\": \"^4.6.1\",\n \"dtslint\": \"^3.7.0\",\n \"sinon\": \"^12.0.1\",\n \"standard\": \"^16.0.4\",\n \"standard-markdown\": \"^7.1.0\",\n \"standard-version\": \"^9.3.2\",\n \"tap\": \"^15.1.6\",\n \"tar\": \"^6.1.11\",\n \"typescript\": \"^4.5.4\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n}\n","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parser src into an Object\nfunction parse (src) {\n const obj = {}\n\n // Convert buffer to string\n let lines = src.toString()\n\n // Convert line breaks to same format\n lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n let match\n while ((match = LINE.exec(lines)) != null) {\n const key = match[1]\n\n // Default undefined or null to empty string\n let value = (match[2] || '')\n\n // Remove whitespace\n value = value.trim()\n\n // Check if double quoted\n const maybeQuote = value[0]\n\n // Remove surrounding quotes\n value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n // Expand newlines if double quoted\n if (maybeQuote === '\"') {\n value = value.replace(/\\\\n/g, '\\n')\n value = value.replace(/\\\\r/g, '\\r')\n }\n\n // Add to object\n obj[key] = value\n }\n\n return obj\n}\n\nfunction _log (message) {\n console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n let dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n\n if (options) {\n if (options.path != null) {\n dotenvPath = _resolveHome(options.path)\n }\n if (options.encoding != null) {\n encoding = options.encoding\n }\n }\n\n try {\n // Specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(dotenvPath, { encoding }))\n\n Object.keys(parsed).forEach(function (key) {\n if (!Object.prototype.hasOwnProperty.call(process.env, key)) {\n process.env[key] = parsed[key]\n } else {\n if (override === true) {\n process.env[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n _log(`\"${key}\" is already defined in \\`process.env\\` and WAS overwritten`)\n } else {\n _log(`\"${key}\" is already defined in \\`process.env\\` and was NOT overwritten`)\n }\n }\n }\n })\n\n return { parsed }\n } catch (e) {\n if (debug) {\n _log(`Failed to load ${dotenvPath} ${e.message}`)\n }\n\n return { error: e }\n }\n}\n\nconst DotenvModule = {\n config,\n parse\n}\n\nmodule.exports.config = DotenvModule.config\nmodule.exports.parse = DotenvModule.parse\nmodule.exports = DotenvModule\n","import * as deployments from '@nexusmutual/deployments';\nimport productsData from '../generated/products.json';\nimport productTypesData from '../generated/product-types.json';\nimport * as generatedTypes from '../generated/types';\nimport * as swap from './swap';\nimport * as buyCover from './buyCover';\nimport * as types from './types';\nimport * as quote from './quote';\nimport * as constants from './constants';\n\nconst nexusSdk = {\n ...deployments,\n products: productsData,\n productTypes: productTypesData,\n ...generatedTypes,\n ...swap,\n ...buyCover,\n ...types,\n ...quote,\n ...constants,\n};\n\n// Re-export everything from the deployments package (e.g. `addresses` and `abis`)\nexport * from '@nexusmutual/deployments';\n\n// Export product data so it will be included in the bundle\nexport { default as products } from '../generated/products.json';\nexport { default as productTypes } from '../generated/product-types.json';\n\n// Export generated logo types\nexport * from '../generated/types';\n\nexport * from './swap';\n\nexport * from './buyCover';\n\nexport * from './types';\n\nexport * from './quote';\n\nexport * from './constants';\n\nexport default nexusSdk;\n","[\n {\n \"id\": 0,\n \"name\": \"0x v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"zerox.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 1,\n \"name\": \"1Inch (DEX & Liquidity Pools)\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"oneinch.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 2,\n \"name\": \"Aave v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"aavev2.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 3,\n \"name\": \"Abracadabra v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"abracadabra.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 4,\n \"name\": \"Alchemix v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"alchemix.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 5,\n \"name\": \"Anchor\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"anchor.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 6,\n \"name\": \"Angle v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"angle.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 7,\n \"name\": \"Argent\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"argent.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 8,\n \"name\": \"Aura v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"aura.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 9,\n \"name\": \"Babylon Finance\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"babylon.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 10,\n \"name\": \"BadgerDAO v1\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"badgerdao.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 11,\n \"name\": \"Balancer v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"balancer.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 12,\n \"name\": \"Bancor v2\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"bancor.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 13,\n \"name\": \"Bancor v3\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"bancor.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Liquidity provider (LP) losses as a result of previously disclosed design issues, which include but is not limited to accumulated LP losses due to BNT pairs without IL protection\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 14,\n \"name\": \"Beefy v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"beefy.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 15,\n \"name\": \"Binance\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"binance.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 16,\n \"name\": \"BlockFi\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"blockFi.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 17,\n \"name\": \"Bundle: Gelt + mStable + Aave v2 \",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"gelt.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 18,\n \"name\": \"Centrifuge Tinlake\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"centrifuge.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 19,\n \"name\": \"Coinbase\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"coinbase.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 20,\n \"name\": \"Compound v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"compoundv2.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 21,\n \"name\": \"Convex 3CRV (cvx3CRV)\",\n \"productType\": 2,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"convex.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 22,\n \"name\": \"Convex Finance v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"convex.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 23,\n \"name\": \"Convex stethCrv (cvxstethCrv)\",\n \"productType\": 2,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"convex.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 24,\n \"name\": \"Crypto.com\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"crypto-com.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 25,\n \"name\": \"Curve 3pool LP (3Crv)\",\n \"productType\": 2,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"curve.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 26,\n \"name\": \"Curve All Pools (incl staking)\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"curve.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 27,\n \"name\": \"Curve sETH LP (eCrv)\",\n \"productType\": 2,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"curve.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 28,\n \"name\": \"dydx v3 (EVM)\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"dydx.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 29,\n \"name\": \"Ease v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"ease.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 30,\n \"name\": \"Enzyme v3\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"enzyme.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 31,\n \"name\": \"Enzyme v4\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"enzyme.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 32,\n \"name\": \"Eth 2.0 (deposit contract)\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"eth.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 33,\n \"name\": \"Euler\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"euler.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 34,\n \"name\": \"FODL v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"fodl.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 35,\n \"name\": \"FTX\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"ftx.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 36,\n \"name\": \"Gearbox v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"gearbox.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 37,\n \"name\": \"Gemini\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"gemini.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 38,\n \"name\": \"GMX v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"gmx.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Liquidity provider (LP) losses as a result of previously disclosed design issues, which include but is not limited to [accumulated LP losses due to zero-slippage design](https://www.coindesk.com/markets/2022/09/19/defi-trader-nets-over-500k-by-using-dex-gmx-to-manipulate-avalanche-token/)\",\n \"\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 39,\n \"name\": \"Goldfinch v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"goldfinch.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 40,\n \"name\": \"Hodlnaut\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"hodlnaut.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 41,\n \"name\": \"Kraken\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"kraken.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 42,\n \"name\": \"Ledn\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"ledn.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 43,\n \"name\": \"Liquid Collective\",\n \"productType\": 5,\n \"isDeprecated\": true,\n \"useFixedPrice\": true,\n \"logo\": \"liquidcollective.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 44,\n \"name\": \"Liquity v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"liquity.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 45,\n \"name\": \"MakerDAO CDP\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"makerdao.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 46,\n \"name\": \"mStable\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"mstable.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 47,\n \"name\": \"Nested v1\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"nested.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 48,\n \"name\": \"Nexo\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"nexo.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 49,\n \"name\": \"Notional Finance v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"notional-finance.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 50,\n \"name\": \"OlympusDAO\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"olympusdao.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 51,\n \"name\": \"Opyn v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"opyn.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 52,\n \"name\": \"Origin OUSD\",\n \"productType\": 2,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"originusd.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 53,\n \"name\": \"Pangolin v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"pangolin.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 54,\n \"name\": \"Perpetual Protocol v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"perpetual.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 55,\n \"name\": \"Pool Together v4\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"pooltogether.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 56,\n \"name\": \"Premia Finance\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"premia.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 57,\n \"name\": \"Rari Capital\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"rari.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 58,\n \"name\": \"Reflexer v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"reflexer.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 59,\n \"name\": \"Aevo\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"ribbon.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 60,\n \"name\": \"Safe (formerly, Gnosis Safe)\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"gnosis-safe.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 61,\n \"name\": \"Set Protocol\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"tokensets.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 62,\n \"name\": \"Set Protocol v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"tokensets.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 63,\n \"name\": \"Sherlock\",\n \"productType\": 4,\n \"isDeprecated\": true,\n \"useFixedPrice\": true,\n \"logo\": \"sherlock.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 64,\n \"name\": \"Stake DAO v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"stakedao.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 65,\n \"name\": \"Stakewise 3rd party (3 ETH/validator)\",\n \"productType\": 3,\n \"isDeprecated\": true,\n \"useFixedPrice\": true,\n \"logo\": \"stakewise.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 66,\n \"name\": \"Stakewise operated (3 ETH/validator)\",\n \"productType\": 3,\n \"isDeprecated\": true,\n \"useFixedPrice\": true,\n \"logo\": \"stakewise.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 67,\n \"name\": \"SushiSwap v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"sushiswap.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 68,\n \"name\": \"Synthetix\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"synthetix.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 69,\n \"name\": \"THORChain (Thorchain Network)\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"thorchain.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 70,\n \"name\": \"Trader Joe v2.1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"trader-joe.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 71,\n \"name\": \"Uniswap v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"uniswapv2.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 72,\n \"name\": \"Uniswap v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"uniswapv2.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 73,\n \"name\": \"Vector v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"vector.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 74,\n \"name\": \"Vesper v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"vesper.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 75,\n \"name\": \"Yearn Finance v2 (all vaults)\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"yearn.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 76,\n \"name\": \"Yearn yvUSDC v2\",\n \"productType\": 2,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"yearn.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 77,\n \"name\": \"Yeti Finance v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"yeti.png\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 78,\n \"name\": \"Yield App\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"yield-app.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 79,\n \"name\": \"Alpaca Finance v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"alpaca.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1682080307\n },\n {\n \"id\": 80,\n \"name\": \"WeFi v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"wefi.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1682080307\n },\n {\n \"id\": 81,\n \"name\": \"Exactly v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"exactly.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1682080307\n },\n {\n \"id\": 82,\n \"name\": \"EtherFi 5ETH\",\n \"productType\": 6,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"etherfi.png\",\n \"metadata\": {\n \"schedule\": \"QmNLoufTxAfmAsZfFPas2QJvgwmLVsY4mGyn9VK6cpF2e3\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1683207839\n },\n {\n \"id\": 83,\n \"name\": \"Squeeth by Opyn (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"squeeth-by-opyn.png\",\n \"metadata\": {\n \"annex\": \"QmSBvXTyDrrhQZir1CAwfZY7dYysMdMznMqv753LDS2uix\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 84,\n \"name\": \"Rage Trade (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"rage-trade.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 85,\n \"name\": \"Sentiment (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"sentiment.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 86,\n \"name\": \"Lyra Newport (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"lyra.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 87,\n \"name\": \"Perennial (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"perennial.jpeg\",\n \"metadata\": {\n \"annex\": \"QmRMnVaZvAJQUTFF4PReXTeHv6vrQJvTz3T9UpuARf2djR\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 88,\n \"name\": \"LiquiFi (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"liquify.svg\",\n \"metadata\": {\n \"annex\": \"QmSZ8pTHUGE4HjCSbG5DvyvM4axYKwcUwQ3nbdHrKLdU3b\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 89,\n \"name\": \"Lyra Avalon (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"lyra.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 90,\n \"name\": \"Buffer Finance (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"buffer-finance.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 91,\n \"name\": \"Hook (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"hook.jpeg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 92,\n \"name\": \"Holyheld (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"holyheld.jpeg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 93,\n \"name\": \"Union Finance (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"union-finance.svg\",\n \"metadata\": {\n \"annex\": \"QmbG3HRdbNJKeoRp8ScKrYUtiZpfqfWKSmWuYu3mN4LutK\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1704981731\n },\n {\n \"id\": 94,\n \"name\": \"OpenQ (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"openq.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 95,\n \"name\": \"Level Finance v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"level-finance.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1686061307\n },\n {\n \"id\": 96,\n \"name\": \"Offramp.xyz v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"offramp.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1686061307\n },\n {\n \"id\": 97,\n \"name\": \"Aave v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"aavev3.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1686061307\n },\n {\n \"id\": 98,\n \"name\": \"Morpho Optimisers v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"morpho.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1686061307\n },\n {\n \"id\": 99,\n \"name\": \"Chorus One\",\n \"productType\": 6,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"chorusone.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1686061307\n },\n {\n \"id\": 100,\n \"name\": \"Kiln\",\n \"productType\": 6,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"kiln.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1686061307\n },\n {\n \"id\": 101,\n \"name\": \"Vertex (Native Protocol)\",\n \"productType\": 8,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"vertex.svg\",\n \"metadata\": {\n \"schedule\": \"QmX4HnfD4RToyBNSLocCqSxHcSzWBUDHDGxAtTvR2gsBmy\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1688467835\n },\n {\n \"id\": 102,\n \"name\": \"The Retail Mutual\",\n \"productType\": 9,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"the-retail-mutual.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1688467835\n },\n {\n \"id\": 103,\n \"name\": \"Figment\",\n \"productType\": 6,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"figment.svg\",\n \"metadata\": {\n \"schedule\": \"QmaXutduGRq4gpZ7xKUHQeAHd67X8zMXuzXVTncxx2kJqk\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1689003539\n },\n {\n \"id\": 104,\n \"name\": \"Teller (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"teller.svg\",\n \"metadata\": {\n \"annex\": \"QmUeLxx2o32gGJd9yQ3V1So35TGhYrt6QrpoCvGsrZPeMY\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1689782903\n },\n {\n \"id\": 105,\n \"name\": \"Ajna (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"ajna.svg\",\n \"metadata\": {\n \"annex\": \"QmSqCe8QrPSCjAXRrWxcqFLnFvK4Eecw8NZ6hYEFAgQVyD\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1689782903\n },\n {\n \"id\": 106,\n \"name\": \"EigenLayer v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"eigenlayer.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1690296191\n },\n {\n \"id\": 107,\n \"name\": \"Vox Finance (UnoRe)\",\n \"productType\": 10,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"vox.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1690982483\n },\n {\n \"id\": 108,\n \"name\": \"MahaLend (UnoRe)\",\n \"productType\": 10,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"mahalend.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1690982483\n },\n {\n \"id\": 109,\n \"name\": \"SELF (UnoRe)\",\n \"productType\": 10,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"self.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1690982483\n },\n {\n \"id\": 110,\n \"name\": \"Scallop (UnoRe)\",\n \"productType\": 10,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"scallop.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1690982483\n },\n {\n \"id\": 111,\n \"name\": \"WeFi (UnoRe)\",\n \"productType\": 10,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"wefi.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1690982483\n },\n {\n \"id\": 112,\n \"name\": \"ZkTsunami (UnoRe)\",\n \"productType\": 10,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"zktsunami.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1690982483\n },\n {\n \"id\": 113,\n \"name\": \"Hats Protocol\",\n \"productType\": 8,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"hats.svg\",\n \"metadata\": {\n \"schedule\": \"QmQMLsH7rs4WoNkvdLSCmhHcAHynbHtHzPsPRY3SFdd98D\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1691493035\n },\n {\n \"id\": 114,\n \"name\": \"MakerDAO DSR (sDAI)\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"makerdao-dsr.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1693212491\n },\n {\n \"id\": 115,\n \"name\": \"Spark Lending v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"spark-lending.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1693212491\n },\n {\n \"id\": 116,\n \"name\": \"DefiEdge\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"defi-edge.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1694434295\n },\n {\n \"id\": 117,\n \"name\": \"Stakewise v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"stakewisev3.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1701270695\n },\n {\n \"id\": 118,\n \"name\": \"Compound v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"compoundv3.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1701270695\n },\n {\n \"id\": 119,\n \"name\": \"Product Removed\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"deprecated.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1704981563\n },\n {\n \"id\": 120,\n \"name\": \"Product Removed\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"deprecated.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1704981563\n },\n {\n \"id\": 121,\n \"name\": \"Product Removed\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"deprecated.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1704981563\n },\n {\n \"id\": 122,\n \"name\": \"Product Removed\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"deprecated.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1704981563\n },\n {\n \"id\": 123,\n \"name\": \"Yearn v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"yearn.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1705077767\n },\n {\n \"id\": 124,\n \"name\": \"Velodrome v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"velodrome2.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1705077767\n },\n {\n \"id\": 125,\n \"name\": \"GMX v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"gmxv2.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1705077767\n },\n {\n \"id\": 126,\n \"name\": \"dHEDGE\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"dhedge.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1705077767\n },\n {\n \"id\": 127,\n \"name\": \"Term Finance\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"term-finance.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1706089043\n },\n {\n \"id\": 128,\n \"name\": \"Pendle\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"pendle.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1706089043\n },\n {\n \"id\": 129,\n \"name\": \"Aerodrome\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"aerodrome.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1706089043\n },\n {\n \"id\": 130,\n \"name\": \"Hyperliquid\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"hyperliquid.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1706089043\n },\n {\n \"id\": 131,\n \"name\": \"Maverick\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"maverick.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1706624999\n },\n {\n \"id\": 132,\n \"name\": \"Equilibria\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"equilibria.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1708086935\n },\n {\n \"id\": 133,\n \"name\": \"Camelot\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"camelot.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1708944959\n },\n {\n \"id\": 134,\n \"name\": \"NFTperp\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"nftperp.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1708944959\n },\n {\n \"id\": 135,\n \"name\": \"Gearbox v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"gearbox.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1708944959\n },\n {\n \"id\": 136,\n \"name\": \"pxETH\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"pxeth.svg\",\n \"metadata\": {\n \"annex\": \"QmfHGfWr3tYxD1SvCphAXLN5X6QDP4evFXPrZaRYJZWWPw\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1709310707\n },\n {\n \"id\": 137,\n \"name\": \"fx Protocol\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"fx-protocol.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1709806439\n },\n {\n \"id\": 138,\n \"name\": \"Prisma\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"prisma.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1709806439\n },\n {\n \"id\": 139,\n \"name\": \"Beethoven X\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"beethovenx.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1709806439\n },\n {\n \"id\": 140,\n \"name\": \"Arrakis\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"arrakis.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1709806439\n },\n {\n \"id\": 141,\n \"name\": \"Yearn Juiced Vaults\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"yearn-juiced-vaults.svg\",\n \"metadata\": {\n \"annex\": \"QmSfEJs5y234miCmpzRUsF5bUXwA3g64tEFMfgwXNEF3Ky\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710254231\n },\n {\n \"id\": 142,\n \"name\": \"Kwenta + Synthetix\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"kwenta-synthetix.svg\",\n \"metadata\": {\n \"annex\": \"QmVUr4qAiTsyHzutXMnvB68azapJed9qkkzznotyX61WDx\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710254231\n },\n {\n \"id\": 143,\n \"name\": \"EigenLayer + Ether.fi + Pendle\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"eigenlayer-etherfi-pendle.svg\",\n \"metadata\": {\n \"annex\": \"QmZ7J5mQFLrqcrg6keEtzq6cRR1ju9Xd47qKLV7mi9sbyK\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710254231\n },\n {\n \"id\": 144,\n \"name\": \"Beefy + Curve\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"beefy-curve.svg\",\n \"metadata\": {\n \"annex\": \"QmS931srMkJk3ZJoRxPGyhVjauzr5d15mWmvYLiN2uXJRS\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710254231\n },\n {\n \"id\": 145,\n \"name\": \"Beefy + Compound v3\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"beefy-compoundv3.svg\",\n \"metadata\": {\n \"annex\": \"QmfNH8QC7wT4onB5B8VYk14weofGx17NcrmobhD4jz7pTd\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710254231\n },\n {\n \"id\": 146,\n \"name\": \"Beefy + Balancer v2 + Aura\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"beefy-balancerv2-aura.svg\",\n \"metadata\": {\n \"annex\": \"QmSHURzqSHB4f9moJ7fKbsqC2h5pFiCM8oDWDTYVx45XZN\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710254231\n },\n {\n \"id\": 147,\n \"name\": \"Notional v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"notional-finance.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710517631\n },\n {\n \"id\": 148,\n \"name\": \"Fraxlend\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"fraxlend.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710517631\n },\n {\n \"id\": 149,\n \"name\": \"wstETH/USDC Market Morpho Blue\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"morpho.svg\",\n \"metadata\": {\n \"annex\": \"QmR9y3yKnAjr74Q9BebeMADrwwSsAwRABe9isq1ceEJrFm\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710850979\n },\n {\n \"id\": 150,\n \"name\": \"EtherFi Liquid\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"etherfi.png\",\n \"metadata\": {\n \"annex\": \"QmW8sc5XmTz2nmDi8sDHfHYqfmZamTTeivFnXSUG6UFe6i\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1711473767\n },\n {\n \"id\": 151,\n \"name\": \"Arcadia (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"arcadia.svg\",\n \"metadata\": {\n \"annex\": \"QmeLHGmDfEyUZyUKxcGaWnZtJAcvqMp1SBB9Qz2YAZfkAe\"\n },\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1711473767\n },\n {\n \"id\": 152,\n \"name\": \"fx Protocol + Curve + Convex\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"fx-curve-connex.svg\",\n \"metadata\": {\n \"annex\": \"QmThLMYmmdq8RZeSx7zdZTPDjFcCqb8uMN3WvpcKdQvpUy\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1711473767\n },\n {\n \"id\": 153,\n \"name\": \"EigenLayer + KelpDAO + Pendle\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"eigenlayer-kelp-pendle.svg\",\n \"metadata\": {\n \"annex\": \"QmRSwrR4ohnCsBaPvd52oXfXFdAor1HBXuLM7339hBmfyK\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1711473767\n },\n {\n \"id\": 154,\n \"name\": \"EigenLayer + Renzo + Pendle\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"eigenlayer-renzo-pendle.svg\",\n \"metadata\": {\n \"annex\": \"QmR8nb6d8u3nqQtNJxoyK2McjcGzSVrp3GMw71vcVMQgwF\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1711473767\n },\n {\n \"id\": 155,\n \"name\": \"EigenLayer + Swell + Pendle\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"eigenlayer-swell-pendle.svg\",\n \"metadata\": {\n \"annex\": \"QmZiSDEQXH3yVGNyDZTQxj26tKbWe9n5dxC87ddwCGk2Di\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1711473767\n },\n {\n \"id\": 156,\n \"name\": \"Arcadia\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"arcadia.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1712244083\n },\n {\n \"id\": 157,\n \"name\": \"Lyra + Synthetix\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"lyra-synthetix.svg\",\n \"metadata\": {\n \"annex\": \"QmYfSDbuQLqJ2MAG3ATRjUPVFQubAhAM5oiYuuu9Kfs8RY\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1712244083\n },\n {\n \"id\": 158,\n \"name\": \"EigenLayer + Renzo\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"eigenlayer-renzo.svg\",\n \"metadata\": {\n \"annex\": \"QmWWBqHBumXtHTkD6coEio8rWCJ68s9xheCqFS4kMRpW2R\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1712244083\n },\n {\n \"id\": 159,\n \"name\": \"Liquid Collective\",\n \"productType\": 12,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"liquidcollective.svg\",\n \"metadata\": {\n \"annex\": \"QmZ4XB78eFzfcAReQHVdzPrab9m9JNtJ2QkLA6qsDSCoRZ\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1712739011\n }\n]","[\n {\n \"id\": 0,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmdunFJm4A5CUW1ynM7bevsGt6UzQfw6K4ysKqvsqpjWCQ\",\n \"name\": \"Protocol\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 1,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmYhCNjfrNTMq8eyg8i7LbBpTkMCHfix9Sv1jrPb7dYZKd\",\n \"name\": \"Custody\",\n \"gracePeriod\": 10368000,\n \"claimMethod\": 0\n },\n {\n \"id\": 2,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmcPdiLNZmBM8pjQcCzLhH8tjPuhphCVKZeP5P4SBiLx3h\",\n \"name\": \"Yield Token\",\n \"gracePeriod\": 1209600,\n \"claimMethod\": 1\n },\n {\n \"id\": 3,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmUTUfdfuZUjtPAiMZ4YRu77SaiyCov7jrSXTgeGeK8qt3\",\n \"name\": \"Sherlock Excess\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 4,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmPmwtwbyKnXBae1dmYD6jmgnewCeZGPMFGepkWMLWaiwC\",\n \"name\": \"Stakewise ETH Staking\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 5,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmUKhLi5ZahnzSxsMC9YQZbwwAKGhkHcoYqHUVgE31cXLe\",\n \"name\": \"Liquid Collective ETH Staking\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 6,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmWepFbtMYSzJt22ddF1CK9PwbrYgiLk9qJjryDrgpGuus\",\n \"name\": \"ETH Slashing\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 7,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmQfYgbBhyC3gJMvan9gbzUaZtd4Xy4gubEYfgTFKycBDZ\",\n \"name\": \"Sherlock Quota Share\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 8,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmRrKXV9RBNAB5E1ZEigWmvvT24FgrWNSZ8Yw1VNXR8E6Q\",\n \"name\": \"Native Protocol\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 9,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmQG8ooLgoQx2YdykwZEUYruoMZ7YP23LK9yiQbw9AGTZi\",\n \"name\": \"The Retail Mutual\",\n \"gracePeriod\": 36720000,\n \"claimMethod\": 0\n },\n {\n \"id\": 10,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmWXYjBYjdKoRw6kyUvp5gYKjj2ojPPVxNYKr1gDjMLssY\",\n \"name\": \"UnoRe Quota Share\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 11,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmWV9woyKJirjHd73MhibV59qmqzp1w1gqfMfZBQhneSL8\",\n \"name\": \"Bundled Protocol Cover\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 12,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmQx2H9A51SARNc4W8Ta2D2woXv2ebkUGZMC5HZoQW8TUX\",\n \"name\": \"ETH Slashing Umbrella\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n }\n]","export const allLogoFileNames = [\n 'zerox.svg',\n 'oneinch.svg',\n 'aavev2.svg',\n 'abracadabra.svg',\n 'alchemix.svg',\n 'anchor.svg',\n 'angle.svg',\n 'argent.svg',\n 'aura.svg',\n 'babylon.svg',\n 'badgerdao.svg',\n 'balancer.svg',\n 'bancor.svg',\n 'bancor.svg',\n 'beefy.svg',\n 'binance.svg',\n 'blockFi.svg',\n 'gelt.svg',\n 'centrifuge.svg',\n 'coinbase.svg',\n 'compoundv2.svg',\n 'convex.svg',\n 'convex.svg',\n 'convex.svg',\n 'crypto-com.svg',\n 'curve.svg',\n 'curve.svg',\n 'curve.svg',\n 'dydx.svg',\n 'ease.svg',\n 'enzyme.svg',\n 'enzyme.svg',\n 'eth.svg',\n 'euler.svg',\n 'fodl.svg',\n 'ftx.svg',\n 'gearbox.svg',\n 'gemini.svg',\n 'gmx.svg',\n 'goldfinch.svg',\n 'hodlnaut.svg',\n 'kraken.svg',\n 'ledn.svg',\n 'liquidcollective.svg',\n 'liquity.svg',\n 'makerdao.svg',\n 'mstable.svg',\n 'nested.svg',\n 'nexo.svg',\n 'notional-finance.svg',\n 'olympusdao.svg',\n 'opyn.png',\n 'originusd.svg',\n 'pangolin.svg',\n 'perpetual.svg',\n 'pooltogether.svg',\n 'premia.svg',\n 'rari.svg',\n 'reflexer.png',\n 'ribbon.svg',\n 'gnosis-safe.svg',\n 'tokensets.svg',\n 'tokensets.svg',\n 'sherlock.svg',\n 'stakedao.svg',\n 'stakewise.svg',\n 'stakewise.svg',\n 'sushiswap.svg',\n 'synthetix.svg',\n 'thorchain.svg',\n 'trader-joe.svg',\n 'uniswapv2.svg',\n 'uniswapv2.svg',\n 'vector.svg',\n 'vesper.svg',\n 'yearn.svg',\n 'yearn.svg',\n 'yeti.png',\n 'yield-app.svg',\n 'alpaca.svg',\n 'wefi.png',\n 'exactly.svg',\n 'etherfi.png',\n 'squeeth-by-opyn.png',\n 'rage-trade.svg',\n 'sentiment.png',\n 'lyra.svg',\n 'perennial.jpeg',\n 'liquify.svg',\n 'lyra.svg',\n 'buffer-finance.svg',\n 'hook.jpeg',\n 'holyheld.jpeg',\n 'union-finance.svg',\n 'openq.png',\n 'level-finance.png',\n 'offramp.png',\n 'aavev3.svg',\n 'morpho.svg',\n 'chorusone.svg',\n 'kiln.svg',\n 'vertex.svg',\n 'the-retail-mutual.png',\n 'figment.svg',\n 'teller.svg',\n 'ajna.svg',\n 'eigenlayer.png',\n 'vox.png',\n 'mahalend.svg',\n 'self.svg',\n 'scallop.svg',\n 'wefi.png',\n 'zktsunami.svg',\n 'hats.svg',\n 'makerdao-dsr.svg',\n 'spark-lending.svg',\n 'defi-edge.svg',\n 'stakewisev3.svg',\n 'compoundv3.svg',\n 'deprecated.svg',\n 'deprecated.svg',\n 'deprecated.svg',\n 'deprecated.svg',\n 'yearn.svg',\n 'velodrome2.svg',\n 'gmxv2.svg',\n 'dhedge.svg',\n 'term-finance.png',\n 'pendle.svg',\n 'aerodrome.svg',\n 'hyperliquid.svg',\n 'maverick.svg',\n 'equilibria.svg',\n 'camelot.svg',\n 'nftperp.svg',\n 'gearbox.svg',\n 'pxeth.svg',\n 'fx-protocol.svg',\n 'prisma.svg',\n 'beethovenx.svg',\n 'arrakis.svg',\n 'yearn-juiced-vaults.svg',\n 'kwenta-synthetix.svg',\n 'eigenlayer-etherfi-pendle.svg',\n 'beefy-curve.svg',\n 'beefy-compoundv3.svg',\n 'beefy-balancerv2-aura.svg',\n 'notional-finance.svg',\n 'fraxlend.svg',\n 'morpho.svg',\n 'etherfi.png',\n 'arcadia.svg',\n 'fx-curve-connex.svg',\n 'eigenlayer-kelp-pendle.svg',\n 'eigenlayer-renzo-pendle.svg',\n 'eigenlayer-swell-pendle.svg',\n 'arcadia.svg',\n 'lyra-synthetix.svg',\n 'eigenlayer-renzo.svg',\n 'liquidcollective.svg',\n 'aave-v1.svg',\n 'akropolis.svg',\n 'alpha-homora.svg',\n 'ampleforth.svg',\n 'arbitrum.svg',\n 'aurora.svg',\n 'avalanche.svg',\n 'bunnypancake.svg',\n 'bzx.svg',\n 'celo.svg',\n 'celsius.svg',\n 'cowswap.svg',\n 'cream.svg',\n 'cronos.svg',\n 'dforce.svg',\n 'dodo.svg',\n 'element-finance.svg',\n 'enzyme-v4.svg',\n 'fantom.svg',\n 'fuse.svg',\n 'gamma.svg',\n 'gnosis-multisig.svg',\n 'harmony.svg',\n 'heco.svg',\n 'homora.svg',\n 'idleDAIYield.svg',\n 'idleUSDTYield.svg',\n 'instadapp.svg',\n 'ironbank.svg',\n 'maker-sai.svg',\n 'metis.svg',\n 'moonbeam.svg',\n 'mooniswap.svg',\n 'moonriver.svg',\n 'nexus-mutual.svg',\n 'nucypher.svg',\n 'nuo.png',\n 'ondo.svg',\n 'optimism.svg',\n 'pancakeswap.svg',\n 'polkadot.svg',\n 'polygon.svg',\n 'popsicle.svg',\n 'ren.svg',\n 'solana.svg',\n 'starkware.svg',\n 'tbtc.svg',\n 'terra-chain.svg',\n 'uma.svg',\n 'uniswap-v1.svg',\n 'venus.svg',\n 'vesper-veth.svg',\n 'zksync.svg'\n] as const;\n\nexport type LogoFileName = (typeof allLogoFileNames)[number];\n\nexport const allLogoNames = [\n 'zerox',\n 'oneinch',\n 'aavev2',\n 'abracadabra',\n 'alchemix',\n 'anchor',\n 'angle',\n 'argent',\n 'aura',\n 'babylon',\n 'badgerdao',\n 'balancer',\n 'bancor',\n 'bancor',\n 'beefy',\n 'binance',\n 'blockFi',\n 'gelt',\n 'centrifuge',\n 'coinbase',\n 'compoundv2',\n 'convex',\n 'convex',\n 'convex',\n 'crypto-com',\n 'curve',\n 'curve',\n 'curve',\n 'dydx',\n 'ease',\n 'enzyme',\n 'enzyme',\n 'eth',\n 'euler',\n 'fodl',\n 'ftx',\n 'gearbox',\n 'gemini',\n 'gmx',\n 'goldfinch',\n 'hodlnaut',\n 'kraken',\n 'ledn',\n 'liquidcollective',\n 'liquity',\n 'makerdao',\n 'mstable',\n 'nested',\n 'nexo',\n 'notional-finance',\n 'olympusdao',\n 'opyn',\n 'originusd',\n 'pangolin',\n 'perpetual',\n 'pooltogether',\n 'premia',\n 'rari',\n 'reflexer',\n 'ribbon',\n 'gnosis-safe',\n 'tokensets',\n 'tokensets',\n 'sherlock',\n 'stakedao',\n 'stakewise',\n 'stakewise',\n 'sushiswap',\n 'synthetix',\n 'thorchain',\n 'trader-joe',\n 'uniswapv2',\n 'uniswapv2',\n 'vector',\n 'vesper',\n 'yearn',\n 'yearn',\n 'yeti',\n 'yield-app',\n 'alpaca',\n 'wefi',\n 'exactly',\n 'etherfi',\n 'squeeth-by-opyn',\n 'rage-trade',\n 'sentiment',\n 'lyra',\n 'perennial',\n 'liquify',\n 'lyra',\n 'buffer-finance',\n 'hook',\n 'holyheld',\n 'union-finance',\n 'openq',\n 'level-finance',\n 'offramp',\n 'aavev3',\n 'morpho',\n 'chorusone',\n 'kiln',\n 'vertex',\n 'the-retail-mutual',\n 'figment',\n 'teller',\n 'ajna',\n 'eigenlayer',\n 'vox',\n 'mahalend',\n 'self',\n 'scallop',\n 'wefi',\n 'zktsunami',\n 'hats',\n 'makerdao-dsr',\n 'spark-lending',\n 'defi-edge',\n 'stakewisev3',\n 'compoundv3',\n 'deprecated',\n 'deprecated',\n 'deprecated',\n 'deprecated',\n 'yearn',\n 'velodrome2',\n 'gmxv2',\n 'dhedge',\n 'term-finance',\n 'pendle',\n 'aerodrome',\n 'hyperliquid',\n 'maverick',\n 'equilibria',\n 'camelot',\n 'nftperp',\n 'gearbox',\n 'pxeth',\n 'fx-protocol',\n 'prisma',\n 'beethovenx',\n 'arrakis',\n 'yearn-juiced-vaults',\n 'kwenta-synthetix',\n 'eigenlayer-etherfi-pendle',\n 'beefy-curve',\n 'beefy-compoundv3',\n 'beefy-balancerv2-aura',\n 'notional-finance',\n 'fraxlend',\n 'morpho',\n 'etherfi',\n 'arcadia',\n 'fx-curve-connex',\n 'eigenlayer-kelp-pendle',\n 'eigenlayer-renzo-pendle',\n 'eigenlayer-swell-pendle',\n 'arcadia',\n 'lyra-synthetix',\n 'eigenlayer-renzo',\n 'liquidcollective',\n 'aave-v1',\n 'akropolis',\n 'alpha-homora',\n 'ampleforth',\n 'arbitrum',\n 'aurora',\n 'avalanche',\n 'bunnypancake',\n 'bzx',\n 'celo',\n 'celsius',\n 'cowswap',\n 'cream',\n 'cronos',\n 'dforce',\n 'dodo',\n 'element-finance',\n 'enzyme-v4',\n 'fantom',\n 'fuse',\n 'gamma',\n 'gnosis-multisig',\n 'harmony',\n 'heco',\n 'homora',\n 'idleDAIYield',\n 'idleUSDTYield',\n 'instadapp',\n 'ironbank',\n 'maker-sai',\n 'metis',\n 'moonbeam',\n 'mooniswap',\n 'moonriver',\n 'nexus-mutual',\n 'nucypher',\n 'nuo',\n 'ondo',\n 'optimism',\n 'pancakeswap',\n 'polkadot',\n 'polygon',\n 'popsicle',\n 'ren',\n 'solana',\n 'starkware',\n 'tbtc',\n 'terra-chain',\n 'uma',\n 'uniswap-v1',\n 'venus',\n 'vesper-veth',\n 'zksync'\n] as const;\n\nexport type LogoName = (typeof allLogoNames)[number];\n","export * from './calculateExactNxmForEth';\nexport * from './calculateExactEthForNxm';\nexport * from './calculateNxmForExactEth';\nexport * from './calculateEthForExactNxm';\nexport * from './reserves.type';\nexport * from './calculatePriceImpactA';\nexport * from './calculatePriceImpactB';\nexport * from './calculateSpotPrice';\n\n","import { Reserves } from './reserves.type';\n\n/**\n * Calculates the amount of nxm flowing out of the pool for the given amount of eth flowing in\n */\n// suggestion: calculateNxmOutGivenEthIn\nexport const calculateExactNxmForEth = (ethIn: bigint, reserves: Reserves): bigint => {\n \n if(ethIn <= 0n) throw new Error('ETH in value must be greater than 0');\n \n // Calculate the constant product (k) for the market maker model\n const k = reserves.nxmA * reserves.ethReserve;\n\n // Simulate the swap and calculate the new reserves\n const ethReservesAfter = reserves.ethReserve + ethIn;\n const nxmReservesAfter = k / ethReservesAfter;\n\n // Calculate the amount of Nxm that will flow out of the pool\n const nxmOut = reserves.nxmA - nxmReservesAfter;\n\n if(nxmOut < 0n) throw new Error('Cannot swap this amount');\n\n return nxmOut;\n};\n","import { Reserves } from './reserves.type';\n\n/**\n * Calculates the amount of eth flowing out of the pool for the given amount of nxm flowing in\n */\n// suggestion: calculateEthOutGivenNxmIn\nexport const calculateExactEthForNxm = (nxmIn: bigint, reserves: Reserves): bigint => {\n\n if(nxmIn <= 0n) throw new Error('NXM in value must be greater than 0');\n\n // Calculate the constant product (k) for the market maker model\n const k = reserves.nxmB * reserves.ethReserve;\n\n // Simulate the swap and calculate the new reserves\n const nxmReservesAfter = reserves.nxmB + nxmIn;\n const ethReservesAfter = k / nxmReservesAfter;\n\n // Calculate the amount of Eth that will flow out of the pool\n const ethOut = reserves.ethReserve - ethReservesAfter;\n\n if(ethOut < 0n) throw new Error('Cannot swap this amount');\n\n return ethOut;\n};\n","import { Reserves } from './reserves.type';\n\n/**\n * Calculates the amount of nxm needed to flow into the pool to get the exact amount of eth out\n */\n// suggestion: calculateNxmInGivenEthOut\nexport const calculateNxmForExactEth = (ethOut: bigint, reserves: Reserves): bigint => {\n\n if(ethOut <= 0n || ethOut >= reserves.ethReserve) throw new Error('ETH out value must be greater than 0 and less than the reserves');\n\n // Calculate the constant product (k) for the market maker model\n const k = reserves.nxmB * reserves.ethReserve;\n\n // Simulate the swap and calculate the new reserves\n const ethReservesAfter = reserves.ethReserve - ethOut;\n const nxmReservesAfter = k / ethReservesAfter;\n\n // Calculate the amount of Nxm needed to flow into the pool to get the desired amount of eth\n const nxmIn = nxmReservesAfter - reserves.nxmB;\n\n return nxmIn;\n};\n","import { Reserves } from './reserves.type';\n\n/**\n * Calculates the amount of eth needed to flow into the pool to get the exact amount of nxm out\n */\n// suggestion: calculateEthInGivenNxmOut\nexport const calculateEthForExactNxm = (nxmOut: bigint, reserves: Reserves): bigint => {\n\n if(nxmOut <= 0n || nxmOut >= reserves.nxmA) throw new Error('NXM out value must be greater than 0 and less than the reserves');\n\n // Calculate the constant product (k) for the market maker model\n const k = reserves.nxmA * reserves.ethReserve;\n\n // Simulate the swap and calculate the new reserves\n const nxmReservesAfter = reserves.nxmA - nxmOut;\n const ethReservesAfter = k / nxmReservesAfter;\n\n // Calculate the amount of Nxm needed to flow into the pool to get the desired amount of eth\n const ethIn = ethReservesAfter - reserves.ethReserve;\n\n return ethIn;\n};\n","import { Reserves } from './reserves.type';\n\nexport const calculateSpotPrice = (reserves: Reserves) => {\n const oneEth = BigInt(1e18);\n return {\n spotPriceA: (oneEth * reserves.ethReserve) / reserves.nxmA,\n spotPriceB: (oneEth * reserves.ethReserve) / reserves.nxmB,\n };\n};\n","import { calculateExactNxmForEth } from \"./calculateExactNxmForEth\";\nimport { calculateSpotPrice } from \"./calculateSpotPrice\";\nimport { Reserves } from \"./reserves.type\";\n\n// Calculate the price impact when buying NXM with ETH\nexport const calculatePriceImpactA = (ethIn: bigint, reserves: Reserves) => {\n const { spotPriceA } = calculateSpotPrice(reserves);\n const nxmOut = calculateExactNxmForEth(ethIn, reserves);\n const nxmOutAtSpotPrice = BigInt(1e18) * ethIn / spotPriceA;\n\n // 100 - 100 * nxmOut / nxmOutAtSpot\n // using BigInt(1000000) to keep 4 decimals of precision\n return BigInt(1000000) - BigInt(1000000) * nxmOut / nxmOutAtSpotPrice;\n};\n","import { calculateExactEthForNxm } from './calculateExactEthForNxm';\nimport { calculateSpotPrice } from './calculateSpotPrice';\nimport { Reserves } from './reserves.type';\n\n// Calculate the price impact when selling NXM for ETH\nexport const calculatePriceImpactB = (nxmIn: bigint, reserves: Reserves) => {\n const { spotPriceB } = calculateSpotPrice(reserves);\n const ethOut = calculateExactEthForNxm(nxmIn, reserves);\n const ethOutAtSpotPrice = spotPriceB * nxmIn / BigInt(1e18);\n\n // 100 - 100 * ethOut / ethOutAtSpot\n // using BigInt(1000000) to keep 4 decimals of precision\n return BigInt(1000000) - BigInt(1000000) * ethOut / ethOutAtSpotPrice;\n};\n","export * from './calculatePremiumWithCommissionAndSlippage';\n","export enum CoverAsset {\n ETH = 0,\n DAI = 1,\n}\n\nexport enum CoverId {\n BUY = 0,\n}\n\nexport const COMMISSION_DENOMINATOR = 100_00;\nexport const SLIPPAGE_DENOMINATOR = 100_00;\nexport const TARGET_PRICE_DENOMINATOR = 100_00;\n\nexport const MINIMUM_COVER_PERIOD = 28;\nexport const MAXIMUM_COVER_PERIOD = 365;\nexport const DEFAULT_SLIPPAGE = 10; // 0.1%\nexport const DEFAULT_COMMISSION_RATIO = 15_00; // 15%\nexport const NEXUS_MUTUAL_DAO_TREASURY_ADDRESS = '0x586b9b2F8010b284A0197f392156f1A7Eb5e86e9';\n","import { COMMISSION_DENOMINATOR, SLIPPAGE_DENOMINATOR } from '../constants/buyCover';\n\nexport const calculatePremiumWithCommissionAndSlippage = (premium: bigint, commission = 0, slippage = 0) => {\n const premiumWithCommission =\n (premium * BigInt(COMMISSION_DENOMINATOR)) / BigInt(COMMISSION_DENOMINATOR - commission);\n\n const premiumWithCommissionAndSlippage =\n (premiumWithCommission * BigInt(SLIPPAGE_DENOMINATOR + slippage)) / BigInt(SLIPPAGE_DENOMINATOR);\n\n return premiumWithCommissionAndSlippage;\n};\n","export * from './api';\nexport * from './cover';\nexport * from './data';\n","export * from './getQuoteAndBuyCoverInputs';\n","import axios, { AxiosError } from 'axios';\nimport dotenv from 'dotenv';\n\nimport { calculatePremiumWithCommissionAndSlippage } from '../buyCover/calculatePremiumWithCommissionAndSlippage';\nimport {\n CoverAsset,\n CoverId,\n DEFAULT_COMMISSION_RATIO,\n DEFAULT_SLIPPAGE,\n MAXIMUM_COVER_PERIOD,\n MINIMUM_COVER_PERIOD,\n NEXUS_MUTUAL_DAO_TREASURY_ADDRESS,\n SLIPPAGE_DENOMINATOR,\n TARGET_PRICE_DENOMINATOR,\n} from '../constants/buyCover';\nimport {\n Address,\n CoverRouterProductCapacityResponse,\n CoverRouterQuoteResponse,\n ErrorApiResponse,\n GetQuoteApiResponse,\n GetQuoteResponse,\n IntString,\n Integer,\n PoolCapacity,\n} from '../types';\n\ndotenv.config();\n\ntype CoverRouterQuoteParams = {\n productId: Integer;\n amount: IntString;\n period: Integer;\n coverAsset: CoverAsset;\n};\n\ntype CoverRouterCapacityParams = {\n period: Integer;\n};\n\n/**\n * Retrieves a quote for buying cover and prepares the necessary inputs for CoverBroker.buyCover method\n * The cover must be purchased using the same asset as the cover\n *\n * @param {Integer} productId - The ID of the product for which cover is being purchased.\n * @param {IntString} coverAmount - The amount of cover in smallest unit of currency (i.e. wei)\n * @param {Integer} coverPeriod - The duration of the cover in days (28-365).\n * @param {CoverAsset} coverAsset - The asset for which cover is being purchased (the cover must be purchased using the same asset)\n * @param {Address} coverBuyerAddress - The Ethereum address of the buyer.\n * @param {number} slippage - The acceptable slippage percentage. Must be between 0-1 (Defaults to 0.001 ~ 0.1%)\n * @param {string} ipfsCid - The IPFS CID for additional data (optional).\n * @return {Promise<GetQuoteApiResponse | ErrorApiResponse>} Returns a successful quote response or an error response.\n */\nasync function getQuoteAndBuyCoverInputs(\n productId: Integer,\n coverAmount: IntString,\n coverPeriod: Integer,\n coverAsset: CoverAsset,\n coverBuyerAddress: Address,\n slippage: number = DEFAULT_SLIPPAGE / SLIPPAGE_DENOMINATOR,\n ipfsCid: string = '',\n): Promise<GetQuoteApiResponse | ErrorApiResponse> {\n if (!process.env.COVER_ROUTER_URL) {\n return { result: undefined, error: { message: 'Missing COVER_ROUTER_URL env var' } };\n }\n\n if (!Number.isInteger(productId) || productId <= 0) {\n return { result: undefined, error: { message: 'Invalid productId: must be a positive integer' } };\n }\n\n if (typeof coverAmount !== 'string' || !/^\\d+$/.test(coverAmount) || parseInt(coverAmount, 10) <= 0) {\n return { result: undefined, error: { message: 'Invalid coverAmount: must be a positive integer string' } };\n }\n\n if (!Number.isInteger(coverPeriod) || coverPeriod < MINIMUM_COVER_PERIOD || coverPeriod > MAXIMUM_COVER_PERIOD) {\n return {\n result: undefined,\n error: {\n message: `Invalid coverPeriod: must be between ${MINIMUM_COVER_PERIOD} and ${MAXIMUM_COVER_PERIOD} days`,\n },\n };\n }\n\n const coverAssetsString = Object.keys(CoverAsset)\n .filter(k => isNaN(+k))\n .map(k => `CoverAsset.${k}`)\n .join(', ');\n\n if (!Object.values(CoverAsset).includes(coverAsset)) {\n return {\n result: undefined,\n error: {\n message: `Invalid coverAsset: must be one of ${coverAssetsString}`,\n },\n };\n }\n\n if (!/^0x[a-fA-F0-9]{40}$/.test(coverBuyerAddress)) {\n return { result: undefined, error: { message: 'Invalid coverBuyerAddress: must be a valid Ethereum address' } };\n }\n\n if (typeof slippage !== 'number' || slippage < 0 || slippage > 1) {\n return {\n result: undefined,\n error: { message: 'Invalid slippage: must be a number between 0 and 1' },\n };\n }\n\n if (typeof ipfsCid !== 'string') {\n return { result: undefined, error: { message: 'Invalid ipfsCid: must be a valid IPFS CID' } };\n }\n\n // convert slippage from 0-1 to 0-100_00\n slippage = slippage * SLIPPAGE_DENOMINATOR;\n\n try {\n const { quote, capacities } = await getQuote(productId, coverAmount, coverPeriod, coverAsset);\n\n const maxPremiumInAsset = calculatePremiumWithCommissionAndSlippage(\n BigInt(quote.premiumInAsset),\n DEFAULT_COMMISSION_RATIO,\n slippage,\n );\n const yearlyCostPerc = calculatePremiumWithCommissionAndSlippage(\n BigInt(quote.annualPrice),\n DEFAULT_COMMISSION_RATIO,\n slippage,\n );\n\n const result: GetQuoteResponse = {\n displayInfo: {\n premiumInAsset: maxPremiumInAsset.toString(),\n coverAmount,\n yearlyCostPerc: Number(yearlyCostPerc) / TARGET_PRICE_DENOMINATOR,\n maxCapacity: sumPoolCapacities(capacities),\n },\n buyCoverInput: {\n buyCoverParams: {\n coverId: CoverId.BUY,\n owner: coverBuyerAddress,\n productId,\n coverAsset,\n amount: coverAmount,\n period: coverPeriod * 60 * 60 * 24, // seconds\n maxPremiumInAsset: maxPremiumInAsset.toString(),\n paymentAsset: coverAsset,\n commissionRatio: DEFAULT_COMMISSION_RATIO,\n commissionDestination: NEXUS_MUTUAL_DAO_TREASURY_ADDRESS,\n ipfsData: ipfsCid,\n },\n poolAllocationRequests: quote.poolAllocationRequests,\n },\n };\n\n return { result, error: undefined };\n } catch (error: unknown) {\n const errorResponse = await handleError(error, productId, coverPeriod, coverAsset);\n return errorResponse;\n }\n}\n\n/**\n * Calls the CoverRouter quote endpoint to retrieve the quote for the specified cover\n */\nasync function getQuote(\n productId: Integer,\n coverAmount: IntString,\n coverPeriod: Integer,\n coverAsset: CoverAsset,\n): Promise<CoverRouterQuoteResponse> {\n const params: CoverRouterQuoteParams = { productId, amount: coverAmount, period: coverPeriod, coverAsset };\n const response = await axios.get<CoverRouterQuoteResponse>(process.env.COVER_ROUTER_URL + '/quote', { params });\n if (!response.data) {\n throw new Error('Failed to fetch cover quote');\n }\n return response.data;\n}\n\n/**\n * Calls the CoverRouter capacity endpoint to retrieve capacities for the specified cover\n */\nasync function getProductCapacity(\n productId: Integer,\n coverPeriod: Integer,\n coverAsset: CoverAsset,\n): Promise<IntString | undefined> {\n const params: CoverRouterCapacityParams = { period: coverPeriod };\n const capacityUrl = process.env.COVER_ROUTER_URL + `/capacity/${productId}`;\n const response = await axios.get<CoverRouterProductCapacityResponse>(capacityUrl, { params });\n if (!response.data) {\n throw new Error('Failed to fetch cover capacities');\n }\n return response.data.availableCapacity.find(av => av.assetId === coverAsset)?.amount;\n}\n\n/**\n * Calculates the max capacity by summing up all the amounts in the given array of pool capacities.\n */\nfunction sumPoolCapacities(capacities: PoolCapacity[]): IntString {\n let totalAmount: bigint = BigInt(0);\n\n capacities.forEach(poolCapacity => {\n poolCapacity.capacity.forEach(capacity => (totalAmount += BigInt(capacity.amount)));\n });\n\n return totalAmount.toString();\n}\n\nasync function handleError(\n error: unknown,\n productId: Integer,\n coverPeriod: Integer,\n coverAsset: CoverAsset,\n): Promise<ErrorApiResponse> {\n const axiosError = error as AxiosError<{ error: string }>;\n if (axiosError.isAxiosError) {\n if (axiosError.response?.data?.error?.includes('Not enough capacity')) {\n const maxCapacity = await getProductCapacity(productId, coverPeriod, coverAsset);\n return {\n result: undefined,\n error: {\n message: axiosError.response?.data.error,\n data: maxCapacity ? { maxCapacity } : undefined,\n },\n };\n }\n }\n\n return {\n result: undefined,\n error: { message: (error as Error).message || 'Something went wrong' },\n };\n}\n\nexport { sumPoolCapacities, getQuoteAndBuyCoverInputs };\n","export * from './buyCover';\n"],"mappings":"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ACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,IAAM,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,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","names":["module","module","CoverAsset","CoverId","types_exports","dotenv","axios","types_exports"]}
1
+ {"version":3,"sources":["../node_modules/dotenv/package.json","../node_modules/dotenv/lib/main.js","../src/index.ts","../generated/products.json","../generated/product-types.json","../generated/types.ts","../src/swap/index.ts","../src/swap/calculateExactNxmForEth.ts","../src/swap/calculateExactEthForNxm.ts","../src/swap/calculateNxmForExactEth.ts","../src/swap/calculateEthForExactNxm.ts","../src/swap/calculateSpotPrice.ts","../src/swap/calculatePriceImpactA.ts","../src/swap/calculatePriceImpactB.ts","../src/buyCover/index.ts","../src/constants/buyCover.ts","../src/buyCover/calculatePremiumWithCommissionAndSlippage.ts","../src/types/index.ts","../src/quote/index.ts","../src/quote/getQuoteAndBuyCoverInputs.ts","../src/constants/index.ts"],"sourcesContent":["{\n \"name\": \"dotenv\",\n \"version\": \"16.0.3\",\n \"description\": \"Loads environment variables from .env file\",\n \"main\": \"lib/main.js\",\n \"types\": \"lib/main.d.ts\",\n \"exports\": {\n \".\": {\n \"require\": \"./lib/main.js\",\n \"types\": \"./lib/main.d.ts\",\n \"default\": \"./lib/main.js\"\n },\n \"./config\": \"./config.js\",\n \"./config.js\": \"./config.js\",\n \"./lib/env-options\": \"./lib/env-options.js\",\n \"./lib/env-options.js\": \"./lib/env-options.js\",\n \"./lib/cli-options\": \"./lib/cli-options.js\",\n \"./lib/cli-options.js\": \"./lib/cli-options.js\",\n \"./package.json\": \"./package.json\"\n },\n \"scripts\": {\n \"dts-check\": \"tsc --project tests/types/tsconfig.json\",\n \"lint\": \"standard\",\n \"lint-readme\": \"standard-markdown\",\n \"pretest\": \"npm run lint && npm run dts-check\",\n \"test\": \"tap tests/*.js --100 -Rspec\",\n \"prerelease\": \"npm test\",\n \"release\": \"standard-version\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/motdotla/dotenv.git\"\n },\n \"keywords\": [\n \"dotenv\",\n \"env\",\n \".env\",\n \"environment\",\n \"variables\",\n \"config\",\n \"settings\"\n ],\n \"readmeFilename\": \"README.md\",\n \"license\": \"BSD-2-Clause\",\n \"devDependencies\": {\n \"@types/node\": \"^17.0.9\",\n \"decache\": \"^4.6.1\",\n \"dtslint\": \"^3.7.0\",\n \"sinon\": \"^12.0.1\",\n \"standard\": \"^16.0.4\",\n \"standard-markdown\": \"^7.1.0\",\n \"standard-version\": \"^9.3.2\",\n \"tap\": \"^15.1.6\",\n \"tar\": \"^6.1.11\",\n \"typescript\": \"^4.5.4\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n}\n","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parser src into an Object\nfunction parse (src) {\n const obj = {}\n\n // Convert buffer to string\n let lines = src.toString()\n\n // Convert line breaks to same format\n lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n let match\n while ((match = LINE.exec(lines)) != null) {\n const key = match[1]\n\n // Default undefined or null to empty string\n let value = (match[2] || '')\n\n // Remove whitespace\n value = value.trim()\n\n // Check if double quoted\n const maybeQuote = value[0]\n\n // Remove surrounding quotes\n value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n // Expand newlines if double quoted\n if (maybeQuote === '\"') {\n value = value.replace(/\\\\n/g, '\\n')\n value = value.replace(/\\\\r/g, '\\r')\n }\n\n // Add to object\n obj[key] = value\n }\n\n return obj\n}\n\nfunction _log (message) {\n console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n let dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n\n if (options) {\n if (options.path != null) {\n dotenvPath = _resolveHome(options.path)\n }\n if (options.encoding != null) {\n encoding = options.encoding\n }\n }\n\n try {\n // Specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(dotenvPath, { encoding }))\n\n Object.keys(parsed).forEach(function (key) {\n if (!Object.prototype.hasOwnProperty.call(process.env, key)) {\n process.env[key] = parsed[key]\n } else {\n if (override === true) {\n process.env[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n _log(`\"${key}\" is already defined in \\`process.env\\` and WAS overwritten`)\n } else {\n _log(`\"${key}\" is already defined in \\`process.env\\` and was NOT overwritten`)\n }\n }\n }\n })\n\n return { parsed }\n } catch (e) {\n if (debug) {\n _log(`Failed to load ${dotenvPath} ${e.message}`)\n }\n\n return { error: e }\n }\n}\n\nconst DotenvModule = {\n config,\n parse\n}\n\nmodule.exports.config = DotenvModule.config\nmodule.exports.parse = DotenvModule.parse\nmodule.exports = DotenvModule\n","import * as deployments from '@nexusmutual/deployments';\nimport productsData from '../generated/products.json';\nimport productTypesData from '../generated/product-types.json';\nimport * as generatedTypes from '../generated/types';\nimport * as swap from './swap';\nimport * as buyCover from './buyCover';\nimport * as types from './types';\nimport * as quote from './quote';\nimport * as constants from './constants';\n\nconst nexusSdk = {\n ...deployments,\n products: productsData,\n productTypes: productTypesData,\n ...generatedTypes,\n ...swap,\n ...buyCover,\n ...types,\n ...quote,\n ...constants,\n};\n\n// Re-export everything from the deployments package (e.g. `addresses` and `abis`)\nexport * from '@nexusmutual/deployments';\n\n// Export product data so it will be included in the bundle\nexport { default as products } from '../generated/products.json';\nexport { default as productTypes } from '../generated/product-types.json';\n\n// Export generated logo types\nexport * from '../generated/types';\n\nexport * from './swap';\n\nexport * from './buyCover';\n\nexport * from './types';\n\nexport * from './quote';\n\nexport * from './constants';\n\nexport default nexusSdk;\n","[\n {\n \"id\": 0,\n \"name\": \"0x v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"zerox.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 1,\n \"name\": \"1Inch (DEX & Liquidity Pools)\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"oneinch.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 2,\n \"name\": \"Aave v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"aavev2.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 3,\n \"name\": \"Abracadabra v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"abracadabra.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 4,\n \"name\": \"Alchemix v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"alchemix.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 5,\n \"name\": \"Anchor\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"anchor.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 6,\n \"name\": \"Angle v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"angle.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 7,\n \"name\": \"Argent\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"argent.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 8,\n \"name\": \"Aura v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"aura.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 9,\n \"name\": \"Babylon Finance\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"babylon.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 10,\n \"name\": \"BadgerDAO v1\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"badgerdao.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 11,\n \"name\": \"Balancer v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"balancer.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 12,\n \"name\": \"Bancor v2\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"bancor.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 13,\n \"name\": \"Bancor v3\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"bancor.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Liquidity provider (LP) losses as a result of previously disclosed design issues, which include but is not limited to accumulated LP losses due to BNT pairs without IL protection\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 14,\n \"name\": \"Beefy v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"beefy.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 15,\n \"name\": \"Binance\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"binance.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 16,\n \"name\": \"BlockFi\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"blockFi.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 17,\n \"name\": \"Bundle: Gelt + mStable + Aave v2 \",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"gelt.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 18,\n \"name\": \"Centrifuge Tinlake\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"centrifuge.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 19,\n \"name\": \"Coinbase\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"coinbase.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 20,\n \"name\": \"Compound v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"compoundv2.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 21,\n \"name\": \"Convex 3CRV (cvx3CRV)\",\n \"productType\": 2,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"convex.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 22,\n \"name\": \"Convex Finance v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"convex.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 23,\n \"name\": \"Convex stethCrv (cvxstethCrv)\",\n \"productType\": 2,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"convex.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 24,\n \"name\": \"Crypto.com\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"crypto-com.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 25,\n \"name\": \"Curve 3pool LP (3Crv)\",\n \"productType\": 2,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"curve.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 26,\n \"name\": \"Curve All Pools (incl staking)\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"curve.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 27,\n \"name\": \"Curve sETH LP (eCrv)\",\n \"productType\": 2,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"curve.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 28,\n \"name\": \"dydx v3 (EVM)\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"dydx.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 29,\n \"name\": \"Ease v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"ease.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678392947\n },\n {\n \"id\": 30,\n \"name\": \"Enzyme v3\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"enzyme.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 31,\n \"name\": \"Enzyme v4\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"enzyme.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 32,\n \"name\": \"Eth 2.0 (deposit contract)\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"eth.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 33,\n \"name\": \"Euler\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"euler.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 34,\n \"name\": \"FODL v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"fodl.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 35,\n \"name\": \"FTX\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"ftx.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 36,\n \"name\": \"Gearbox v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"gearbox.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 37,\n \"name\": \"Gemini\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"gemini.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 38,\n \"name\": \"GMX v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"gmx.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Liquidity provider (LP) losses as a result of previously disclosed design issues, which include but is not limited to [accumulated LP losses due to zero-slippage design](https://www.coindesk.com/markets/2022/09/19/defi-trader-nets-over-500k-by-using-dex-gmx-to-manipulate-avalanche-token/)\",\n \"\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 39,\n \"name\": \"Goldfinch v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"goldfinch.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 40,\n \"name\": \"Hodlnaut\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"hodlnaut.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 41,\n \"name\": \"Kraken\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"kraken.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 42,\n \"name\": \"Ledn\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"ledn.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 43,\n \"name\": \"Liquid Collective\",\n \"productType\": 5,\n \"isDeprecated\": true,\n \"useFixedPrice\": true,\n \"logo\": \"liquidcollective.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 44,\n \"name\": \"Liquity v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"liquity.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 45,\n \"name\": \"MakerDAO CDP\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"makerdao.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 46,\n \"name\": \"mStable\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"mstable.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 47,\n \"name\": \"Nested v1\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"nested.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 48,\n \"name\": \"Nexo\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"nexo.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 49,\n \"name\": \"Notional Finance v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"notional-finance.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 50,\n \"name\": \"OlympusDAO\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"olympusdao.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 51,\n \"name\": \"Opyn v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"opyn.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 52,\n \"name\": \"Origin OUSD\",\n \"productType\": 2,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"originusd.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 53,\n \"name\": \"Pangolin v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"pangolin.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 54,\n \"name\": \"Perpetual Protocol v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"perpetual.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 55,\n \"name\": \"Pool Together v4\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"pooltogether.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 56,\n \"name\": \"Premia Finance\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"premia.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 57,\n \"name\": \"Rari Capital\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"rari.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 58,\n \"name\": \"Reflexer v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"reflexer.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 59,\n \"name\": \"Aevo\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"ribbon.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393031\n },\n {\n \"id\": 60,\n \"name\": \"Safe (formerly, Gnosis Safe)\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"gnosis-safe.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 61,\n \"name\": \"Set Protocol\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"tokensets.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 62,\n \"name\": \"Set Protocol v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"tokensets.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 63,\n \"name\": \"Sherlock\",\n \"productType\": 4,\n \"isDeprecated\": true,\n \"useFixedPrice\": true,\n \"logo\": \"sherlock.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 64,\n \"name\": \"Stake DAO v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"stakedao.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 65,\n \"name\": \"Stakewise 3rd party (3 ETH/validator)\",\n \"productType\": 3,\n \"isDeprecated\": true,\n \"useFixedPrice\": true,\n \"logo\": \"stakewise.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 66,\n \"name\": \"Stakewise operated (3 ETH/validator)\",\n \"productType\": 3,\n \"isDeprecated\": true,\n \"useFixedPrice\": true,\n \"logo\": \"stakewise.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 67,\n \"name\": \"SushiSwap v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"sushiswap.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 68,\n \"name\": \"Synthetix\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"synthetix.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 69,\n \"name\": \"THORChain (Thorchain Network)\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"thorchain.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 70,\n \"name\": \"Trader Joe v2.1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"trader-joe.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 71,\n \"name\": \"Uniswap v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"uniswapv2.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 72,\n \"name\": \"Uniswap v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"uniswapv2.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 73,\n \"name\": \"Vector v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"vector.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 74,\n \"name\": \"Vesper v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"vesper.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 75,\n \"name\": \"Yearn Finance v2 (all vaults)\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"yearn.svg\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 76,\n \"name\": \"Yearn yvUSDC v2\",\n \"productType\": 2,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"yearn.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 77,\n \"name\": \"Yeti Finance v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"yeti.png\",\n \"metadata\": {\n \"exclusions\": [\n \"Losses due to a compromised wallet\",\n \"Losses due to a previously disclosed vulnerability\",\n \"Losses that occur outside the designated protocol, such as a separate protocol used in an underlying yield aggregation strategy\"\n ]\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 78,\n \"name\": \"Yield App\",\n \"productType\": 1,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"yield-app.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1678393127\n },\n {\n \"id\": 79,\n \"name\": \"Alpaca Finance v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"alpaca.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1682080307\n },\n {\n \"id\": 80,\n \"name\": \"WeFi v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"wefi.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1682080307\n },\n {\n \"id\": 81,\n \"name\": \"Exactly v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"exactly.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1682080307\n },\n {\n \"id\": 82,\n \"name\": \"EtherFi 5ETH\",\n \"productType\": 6,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"etherfi.png\",\n \"metadata\": {\n \"schedule\": \"QmNLoufTxAfmAsZfFPas2QJvgwmLVsY4mGyn9VK6cpF2e3\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1683207839\n },\n {\n \"id\": 83,\n \"name\": \"Squeeth by Opyn (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"squeeth-by-opyn.png\",\n \"metadata\": {\n \"annex\": \"QmSBvXTyDrrhQZir1CAwfZY7dYysMdMznMqv753LDS2uix\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1704980411\n },\n {\n \"id\": 84,\n \"name\": \"Rage Trade (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"rage-trade.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 85,\n \"name\": \"Sentiment (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"sentiment.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 86,\n \"name\": \"Lyra Newport (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"lyra.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 87,\n \"name\": \"Perennial (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"perennial.jpeg\",\n \"metadata\": {\n \"annex\": \"QmRMnVaZvAJQUTFF4PReXTeHv6vrQJvTz3T9UpuARf2djR\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 88,\n \"name\": \"LiquiFi (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"liquify.svg\",\n \"metadata\": {\n \"annex\": \"QmSZ8pTHUGE4HjCSbG5DvyvM4axYKwcUwQ3nbdHrKLdU3b\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1704980411\n },\n {\n \"id\": 89,\n \"name\": \"Lyra Avalon (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"lyra.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 90,\n \"name\": \"Buffer Finance (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"buffer-finance.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 91,\n \"name\": \"Hook (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"hook.jpeg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 92,\n \"name\": \"Holyheld (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"holyheld.jpeg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 93,\n \"name\": \"Union Finance (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"union-finance.svg\",\n \"metadata\": {\n \"annex\": \"QmbG3HRdbNJKeoRp8ScKrYUtiZpfqfWKSmWuYu3mN4LutK\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 94,\n \"name\": \"OpenQ (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"openq.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1684312727\n },\n {\n \"id\": 95,\n \"name\": \"Level Finance v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"level-finance.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1686061307\n },\n {\n \"id\": 96,\n \"name\": \"Offramp.xyz v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"offramp.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1686061307\n },\n {\n \"id\": 97,\n \"name\": \"Aave v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"aavev3.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1686061307\n },\n {\n \"id\": 98,\n \"name\": \"Morpho Optimisers v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"morpho.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1686061307\n },\n {\n \"id\": 99,\n \"name\": \"Chorus One\",\n \"productType\": 6,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"chorusone.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1686061307\n },\n {\n \"id\": 100,\n \"name\": \"Kiln\",\n \"productType\": 6,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"kiln.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1686061307\n },\n {\n \"id\": 101,\n \"name\": \"Vertex (Native Protocol)\",\n \"productType\": 8,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"vertex.svg\",\n \"metadata\": {\n \"schedule\": \"QmX4HnfD4RToyBNSLocCqSxHcSzWBUDHDGxAtTvR2gsBmy\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1688467835\n },\n {\n \"id\": 102,\n \"name\": \"The Retail Mutual\",\n \"productType\": 9,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"the-retail-mutual.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1688467835\n },\n {\n \"id\": 103,\n \"name\": \"Figment\",\n \"productType\": 6,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"figment.svg\",\n \"metadata\": {\n \"schedule\": \"QmaXutduGRq4gpZ7xKUHQeAHd67X8zMXuzXVTncxx2kJqk\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1689003539\n },\n {\n \"id\": 104,\n \"name\": \"Teller (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"teller.svg\",\n \"metadata\": {\n \"annex\": \"QmUeLxx2o32gGJd9yQ3V1So35TGhYrt6QrpoCvGsrZPeMY\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1689782903\n },\n {\n \"id\": 105,\n \"name\": \"Ajna (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"ajna.svg\",\n \"metadata\": {\n \"annex\": \"QmSqCe8QrPSCjAXRrWxcqFLnFvK4Eecw8NZ6hYEFAgQVyD\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1704981731\n },\n {\n \"id\": 106,\n \"name\": \"EigenLayer v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"eigenlayer.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1690296191\n },\n {\n \"id\": 107,\n \"name\": \"Vox Finance (UnoRe)\",\n \"productType\": 10,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"vox.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1690982483\n },\n {\n \"id\": 108,\n \"name\": \"MahaLend (UnoRe)\",\n \"productType\": 10,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"mahalend.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1690982483\n },\n {\n \"id\": 109,\n \"name\": \"SELF (UnoRe)\",\n \"productType\": 10,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"self.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1690982483\n },\n {\n \"id\": 110,\n \"name\": \"Scallop (UnoRe)\",\n \"productType\": 10,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"scallop.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1690982483\n },\n {\n \"id\": 111,\n \"name\": \"WeFi (UnoRe)\",\n \"productType\": 10,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"wefi.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1690982483\n },\n {\n \"id\": 112,\n \"name\": \"ZkTsunami (UnoRe)\",\n \"productType\": 10,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"zktsunami.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1690982483\n },\n {\n \"id\": 113,\n \"name\": \"Hats Protocol\",\n \"productType\": 8,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"hats.svg\",\n \"metadata\": {\n \"schedule\": \"QmQMLsH7rs4WoNkvdLSCmhHcAHynbHtHzPsPRY3SFdd98D\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1691495087\n },\n {\n \"id\": 114,\n \"name\": \"MakerDAO DSR (sDAI)\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"makerdao-dsr.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1693212491\n },\n {\n \"id\": 115,\n \"name\": \"Spark Lending v1\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"spark-lending.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1693212491\n },\n {\n \"id\": 116,\n \"name\": \"DefiEdge\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"defi-edge.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1694434295\n },\n {\n \"id\": 117,\n \"name\": \"Stakewise v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"stakewisev3.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1701270695\n },\n {\n \"id\": 118,\n \"name\": \"Compound v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"compoundv3.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1701270695\n },\n {\n \"id\": 119,\n \"name\": \"Product Removed\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"deprecated.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1704981563\n },\n {\n \"id\": 120,\n \"name\": \"Product Removed\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"deprecated.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1704981563\n },\n {\n \"id\": 121,\n \"name\": \"Product Removed\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"deprecated.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1704981563\n },\n {\n \"id\": 122,\n \"name\": \"Product Removed\",\n \"productType\": 0,\n \"isDeprecated\": true,\n \"useFixedPrice\": false,\n \"logo\": \"deprecated.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1704981563\n },\n {\n \"id\": 123,\n \"name\": \"Yearn v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"yearn.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1705077767\n },\n {\n \"id\": 124,\n \"name\": \"Velodrome v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"velodrome2.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1705077767\n },\n {\n \"id\": 125,\n \"name\": \"GMX v2\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"gmxv2.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1705077767\n },\n {\n \"id\": 126,\n \"name\": \"dHEDGE\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"dhedge.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1705077767\n },\n {\n \"id\": 127,\n \"name\": \"Term Finance\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"term-finance.png\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1706089043\n },\n {\n \"id\": 128,\n \"name\": \"Pendle\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"pendle.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1706089043\n },\n {\n \"id\": 129,\n \"name\": \"Aerodrome\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"aerodrome.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1706089043\n },\n {\n \"id\": 130,\n \"name\": \"Hyperliquid\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"hyperliquid.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1706089043\n },\n {\n \"id\": 131,\n \"name\": \"Maverick\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"maverick.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1706624999\n },\n {\n \"id\": 132,\n \"name\": \"Equilibria\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"equilibria.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1708086935\n },\n {\n \"id\": 133,\n \"name\": \"Camelot\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"camelot.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1708944959\n },\n {\n \"id\": 134,\n \"name\": \"NFTperp\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"nftperp.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1708944959\n },\n {\n \"id\": 135,\n \"name\": \"Gearbox v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"gearbox.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1708944959\n },\n {\n \"id\": 136,\n \"name\": \"pxETH\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"pxeth.svg\",\n \"metadata\": {\n \"annex\": \"QmfHGfWr3tYxD1SvCphAXLN5X6QDP4evFXPrZaRYJZWWPw\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1709311739\n },\n {\n \"id\": 137,\n \"name\": \"fx Protocol\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"fx-protocol.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1709806439\n },\n {\n \"id\": 138,\n \"name\": \"Prisma\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"prisma.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1709806439\n },\n {\n \"id\": 139,\n \"name\": \"Beethoven X\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"beethovenx.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1709806439\n },\n {\n \"id\": 140,\n \"name\": \"Arrakis\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"arrakis.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1709806439\n },\n {\n \"id\": 141,\n \"name\": \"Yearn Juiced Vaults\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"yearn-juiced-vaults.svg\",\n \"metadata\": {\n \"annex\": \"QmSfEJs5y234miCmpzRUsF5bUXwA3g64tEFMfgwXNEF3Ky\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710254231\n },\n {\n \"id\": 142,\n \"name\": \"Kwenta + Synthetix\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"kwenta-synthetix.svg\",\n \"metadata\": {\n \"annex\": \"QmVUr4qAiTsyHzutXMnvB68azapJed9qkkzznotyX61WDx\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710254231\n },\n {\n \"id\": 143,\n \"name\": \"EigenLayer + Ether.fi + Pendle\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"eigenlayer-etherfi-pendle.svg\",\n \"metadata\": {\n \"annex\": \"QmZ7J5mQFLrqcrg6keEtzq6cRR1ju9Xd47qKLV7mi9sbyK\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710254231\n },\n {\n \"id\": 144,\n \"name\": \"Beefy + Curve\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"beefy-curve.svg\",\n \"metadata\": {\n \"annex\": \"QmS931srMkJk3ZJoRxPGyhVjauzr5d15mWmvYLiN2uXJRS\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710254231\n },\n {\n \"id\": 145,\n \"name\": \"Beefy + Compound v3\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"beefy-compoundv3.svg\",\n \"metadata\": {\n \"annex\": \"QmfNH8QC7wT4onB5B8VYk14weofGx17NcrmobhD4jz7pTd\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710254231\n },\n {\n \"id\": 146,\n \"name\": \"Beefy + Balancer v2 + Aura\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"beefy-balancerv2-aura.svg\",\n \"metadata\": {\n \"annex\": \"QmSHURzqSHB4f9moJ7fKbsqC2h5pFiCM8oDWDTYVx45XZN\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710254231\n },\n {\n \"id\": 147,\n \"name\": \"Notional v3\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"notional-finance.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710517631\n },\n {\n \"id\": 148,\n \"name\": \"Fraxlend\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"fraxlend.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710517631\n },\n {\n \"id\": 149,\n \"name\": \"wstETH/USDC Market Morpho Blue\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"morpho.svg\",\n \"metadata\": {\n \"annex\": \"QmR9y3yKnAjr74Q9BebeMADrwwSsAwRABe9isq1ceEJrFm\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1710850979\n },\n {\n \"id\": 150,\n \"name\": \"EtherFi Liquid\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"etherfi.png\",\n \"metadata\": {\n \"annex\": \"QmW8sc5XmTz2nmDi8sDHfHYqfmZamTTeivFnXSUG6UFe6i\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1711473767\n },\n {\n \"id\": 151,\n \"name\": \"Arcadia (Sherlock)\",\n \"productType\": 7,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"arcadia.svg\",\n \"metadata\": {\n \"annex\": \"QmeLHGmDfEyUZyUKxcGaWnZtJAcvqMp1SBB9Qz2YAZfkAe\"\n },\n \"coverAssets\": [\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1711473767\n },\n {\n \"id\": 152,\n \"name\": \"fx Protocol + Curve + Convex\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"fx-curve-connex.svg\",\n \"metadata\": {\n \"annex\": \"QmThLMYmmdq8RZeSx7zdZTPDjFcCqb8uMN3WvpcKdQvpUy\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1711473767\n },\n {\n \"id\": 153,\n \"name\": \"EigenLayer + KelpDAO + Pendle\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"eigenlayer-kelp-pendle.svg\",\n \"metadata\": {\n \"annex\": \"QmRSwrR4ohnCsBaPvd52oXfXFdAor1HBXuLM7339hBmfyK\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1711473767\n },\n {\n \"id\": 154,\n \"name\": \"EigenLayer + Renzo + Pendle\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"eigenlayer-renzo-pendle.svg\",\n \"metadata\": {\n \"annex\": \"QmR8nb6d8u3nqQtNJxoyK2McjcGzSVrp3GMw71vcVMQgwF\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1711473767\n },\n {\n \"id\": 155,\n \"name\": \"EigenLayer + Swell + Pendle\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"eigenlayer-swell-pendle.svg\",\n \"metadata\": {\n \"annex\": \"QmZiSDEQXH3yVGNyDZTQxj26tKbWe9n5dxC87ddwCGk2Di\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1711473767\n },\n {\n \"id\": 156,\n \"name\": \"Arcadia\",\n \"productType\": 0,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"arcadia.svg\",\n \"metadata\": {},\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1712244083\n },\n {\n \"id\": 157,\n \"name\": \"Lyra + Synthetix\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"lyra-synthetix.svg\",\n \"metadata\": {\n \"annex\": \"QmYfSDbuQLqJ2MAG3ATRjUPVFQubAhAM5oiYuuu9Kfs8RY\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1712244083\n },\n {\n \"id\": 158,\n \"name\": \"EigenLayer + Renzo\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"eigenlayer-renzo.svg\",\n \"metadata\": {\n \"annex\": \"QmWWBqHBumXtHTkD6coEio8rWCJ68s9xheCqFS4kMRpW2R\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1712244083\n },\n {\n \"id\": 159,\n \"name\": \"Liquid Collective\",\n \"productType\": 12,\n \"isDeprecated\": false,\n \"useFixedPrice\": true,\n \"logo\": \"liquidcollective.svg\",\n \"metadata\": {\n \"annex\": \"QmZ4XB78eFzfcAReQHVdzPrab9m9JNtJ2QkLA6qsDSCoRZ\"\n },\n \"coverAssets\": [\n \"ETH\",\n \"DAI\"\n ],\n \"isPrivate\": true,\n \"timestamp\": 1712739011\n },\n {\n \"id\": 160,\n \"name\": \"Etherfi (Zircuit) Pendle\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"etherfi-zircuit-pendle.svg\",\n \"metadata\": {\n \"annex\": \"QmarQuziSJBVQoayRgPNuEiJdZHgf6wxDyKiGQVpsCNRnJ\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1713185771\n },\n {\n \"id\": 161,\n \"name\": \"KelpDAO (Zircuit) Pendle\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"kelpdao-zircuit-pendle.svg\",\n \"metadata\": {\n \"annex\": \"QmdseksWrvXoMjF58NGnSS6WC7dXDVk2oeZz93Bt4oMzT2\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1713185771\n },\n {\n \"id\": 162,\n \"name\": \"Renzo (Zircuit) Pendle\",\n \"productType\": 11,\n \"isDeprecated\": false,\n \"useFixedPrice\": false,\n \"logo\": \"renzo-zircuit-pendle.svg\",\n \"metadata\": {\n \"annex\": \"QmeAB5RzQgQbC2DFa9W49taFEoxhZEUDgnXqvfceFUL4Xm\"\n },\n \"coverAssets\": [\n \"ETH\"\n ],\n \"isPrivate\": false,\n \"timestamp\": 1713185771\n }\n]","[\n {\n \"id\": 0,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmdunFJm4A5CUW1ynM7bevsGt6UzQfw6K4ysKqvsqpjWCQ\",\n \"name\": \"Protocol\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 1,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmYhCNjfrNTMq8eyg8i7LbBpTkMCHfix9Sv1jrPb7dYZKd\",\n \"name\": \"Custody\",\n \"gracePeriod\": 10368000,\n \"claimMethod\": 0\n },\n {\n \"id\": 2,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmcPdiLNZmBM8pjQcCzLhH8tjPuhphCVKZeP5P4SBiLx3h\",\n \"name\": \"Yield Token\",\n \"gracePeriod\": 1209600,\n \"claimMethod\": 1\n },\n {\n \"id\": 3,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmUTUfdfuZUjtPAiMZ4YRu77SaiyCov7jrSXTgeGeK8qt3\",\n \"name\": \"Sherlock Excess\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 4,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmPmwtwbyKnXBae1dmYD6jmgnewCeZGPMFGepkWMLWaiwC\",\n \"name\": \"Stakewise ETH Staking\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 5,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmUKhLi5ZahnzSxsMC9YQZbwwAKGhkHcoYqHUVgE31cXLe\",\n \"name\": \"Liquid Collective ETH Staking\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 6,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmWepFbtMYSzJt22ddF1CK9PwbrYgiLk9qJjryDrgpGuus\",\n \"name\": \"ETH Slashing\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 7,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmQfYgbBhyC3gJMvan9gbzUaZtd4Xy4gubEYfgTFKycBDZ\",\n \"name\": \"Sherlock Quota Share\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 8,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmRrKXV9RBNAB5E1ZEigWmvvT24FgrWNSZ8Yw1VNXR8E6Q\",\n \"name\": \"Native Protocol\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 9,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmQG8ooLgoQx2YdykwZEUYruoMZ7YP23LK9yiQbw9AGTZi\",\n \"name\": \"The Retail Mutual\",\n \"gracePeriod\": 36720000,\n \"claimMethod\": 0\n },\n {\n \"id\": 10,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmWXYjBYjdKoRw6kyUvp5gYKjj2ojPPVxNYKr1gDjMLssY\",\n \"name\": \"UnoRe Quota Share\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 11,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmWV9woyKJirjHd73MhibV59qmqzp1w1gqfMfZBQhneSL8\",\n \"name\": \"Bundled Protocol Cover\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n },\n {\n \"id\": 12,\n \"coverWordingURL\": \"https://api.nexusmutual.io/ipfs/QmQx2H9A51SARNc4W8Ta2D2woXv2ebkUGZMC5HZoQW8TUX\",\n \"name\": \"ETH Slashing Umbrella\",\n \"gracePeriod\": 3024000,\n \"claimMethod\": 0\n }\n]","export const allLogoFileNames = [\n 'zerox.svg',\n 'oneinch.svg',\n 'aavev2.svg',\n 'abracadabra.svg',\n 'alchemix.svg',\n 'anchor.svg',\n 'angle.svg',\n 'argent.svg',\n 'aura.svg',\n 'babylon.svg',\n 'badgerdao.svg',\n 'balancer.svg',\n 'bancor.svg',\n 'bancor.svg',\n 'beefy.svg',\n 'binance.svg',\n 'blockFi.svg',\n 'gelt.svg',\n 'centrifuge.svg',\n 'coinbase.svg',\n 'compoundv2.svg',\n 'convex.svg',\n 'convex.svg',\n 'convex.svg',\n 'crypto-com.svg',\n 'curve.svg',\n 'curve.svg',\n 'curve.svg',\n 'dydx.svg',\n 'ease.svg',\n 'enzyme.svg',\n 'enzyme.svg',\n 'eth.svg',\n 'euler.svg',\n 'fodl.svg',\n 'ftx.svg',\n 'gearbox.svg',\n 'gemini.svg',\n 'gmx.svg',\n 'goldfinch.svg',\n 'hodlnaut.svg',\n 'kraken.svg',\n 'ledn.svg',\n 'liquidcollective.svg',\n 'liquity.svg',\n 'makerdao.svg',\n 'mstable.svg',\n 'nested.svg',\n 'nexo.svg',\n 'notional-finance.svg',\n 'olympusdao.svg',\n 'opyn.png',\n 'originusd.svg',\n 'pangolin.svg',\n 'perpetual.svg',\n 'pooltogether.svg',\n 'premia.svg',\n 'rari.svg',\n 'reflexer.png',\n 'ribbon.svg',\n 'gnosis-safe.svg',\n 'tokensets.svg',\n 'tokensets.svg',\n 'sherlock.svg',\n 'stakedao.svg',\n 'stakewise.svg',\n 'stakewise.svg',\n 'sushiswap.svg',\n 'synthetix.svg',\n 'thorchain.svg',\n 'trader-joe.svg',\n 'uniswapv2.svg',\n 'uniswapv2.svg',\n 'vector.svg',\n 'vesper.svg',\n 'yearn.svg',\n 'yearn.svg',\n 'yeti.png',\n 'yield-app.svg',\n 'alpaca.svg',\n 'wefi.png',\n 'exactly.svg',\n 'etherfi.png',\n 'squeeth-by-opyn.png',\n 'rage-trade.svg',\n 'sentiment.png',\n 'lyra.svg',\n 'perennial.jpeg',\n 'liquify.svg',\n 'lyra.svg',\n 'buffer-finance.svg',\n 'hook.jpeg',\n 'holyheld.jpeg',\n 'union-finance.svg',\n 'openq.png',\n 'level-finance.png',\n 'offramp.png',\n 'aavev3.svg',\n 'morpho.svg',\n 'chorusone.svg',\n 'kiln.svg',\n 'vertex.svg',\n 'the-retail-mutual.png',\n 'figment.svg',\n 'teller.svg',\n 'ajna.svg',\n 'eigenlayer.png',\n 'vox.png',\n 'mahalend.svg',\n 'self.svg',\n 'scallop.svg',\n 'wefi.png',\n 'zktsunami.svg',\n 'hats.svg',\n 'makerdao-dsr.svg',\n 'spark-lending.svg',\n 'defi-edge.svg',\n 'stakewisev3.svg',\n 'compoundv3.svg',\n 'deprecated.svg',\n 'deprecated.svg',\n 'deprecated.svg',\n 'deprecated.svg',\n 'yearn.svg',\n 'velodrome2.svg',\n 'gmxv2.svg',\n 'dhedge.svg',\n 'term-finance.png',\n 'pendle.svg',\n 'aerodrome.svg',\n 'hyperliquid.svg',\n 'maverick.svg',\n 'equilibria.svg',\n 'camelot.svg',\n 'nftperp.svg',\n 'gearbox.svg',\n 'pxeth.svg',\n 'fx-protocol.svg',\n 'prisma.svg',\n 'beethovenx.svg',\n 'arrakis.svg',\n 'yearn-juiced-vaults.svg',\n 'kwenta-synthetix.svg',\n 'eigenlayer-etherfi-pendle.svg',\n 'beefy-curve.svg',\n 'beefy-compoundv3.svg',\n 'beefy-balancerv2-aura.svg',\n 'notional-finance.svg',\n 'fraxlend.svg',\n 'morpho.svg',\n 'etherfi.png',\n 'arcadia.svg',\n 'fx-curve-connex.svg',\n 'eigenlayer-kelp-pendle.svg',\n 'eigenlayer-renzo-pendle.svg',\n 'eigenlayer-swell-pendle.svg',\n 'arcadia.svg',\n 'lyra-synthetix.svg',\n 'eigenlayer-renzo.svg',\n 'liquidcollective.svg',\n 'etherfi-zircuit-pendle.svg',\n 'kelpdao-zircuit-pendle.svg',\n 'renzo-zircuit-pendle.svg',\n 'aave-v1.svg',\n 'akropolis.svg',\n 'alpha-homora.svg',\n 'ampleforth.svg',\n 'arbitrum.svg',\n 'aurora.svg',\n 'avalanche.svg',\n 'bunnypancake.svg',\n 'bzx.svg',\n 'celo.svg',\n 'celsius.svg',\n 'cowswap.svg',\n 'cream.svg',\n 'cronos.svg',\n 'dforce.svg',\n 'dodo.svg',\n 'element-finance.svg',\n 'enzyme-v4.svg',\n 'fantom.svg',\n 'fuse.svg',\n 'gamma.svg',\n 'gnosis-multisig.svg',\n 'harmony.svg',\n 'heco.svg',\n 'homora.svg',\n 'idleDAIYield.svg',\n 'idleUSDTYield.svg',\n 'instadapp.svg',\n 'ironbank.svg',\n 'maker-sai.svg',\n 'metis.svg',\n 'moonbeam.svg',\n 'mooniswap.svg',\n 'moonriver.svg',\n 'nexus-mutual.svg',\n 'nucypher.svg',\n 'nuo.png',\n 'ondo.svg',\n 'optimism.svg',\n 'pancakeswap.svg',\n 'polkadot.svg',\n 'polygon.svg',\n 'popsicle.svg',\n 'ren.svg',\n 'solana.svg',\n 'starkware.svg',\n 'tbtc.svg',\n 'terra-chain.svg',\n 'uma.svg',\n 'uniswap-v1.svg',\n 'venus.svg',\n 'vesper-veth.svg',\n 'zksync.svg'\n] as const;\n\nexport type LogoFileName = (typeof allLogoFileNames)[number];\n\nexport const allLogoNames = [\n 'zerox',\n 'oneinch',\n 'aavev2',\n 'abracadabra',\n 'alchemix',\n 'anchor',\n 'angle',\n 'argent',\n 'aura',\n 'babylon',\n 'badgerdao',\n 'balancer',\n 'bancor',\n 'bancor',\n 'beefy',\n 'binance',\n 'blockFi',\n 'gelt',\n 'centrifuge',\n 'coinbase',\n 'compoundv2',\n 'convex',\n 'convex',\n 'convex',\n 'crypto-com',\n 'curve',\n 'curve',\n 'curve',\n 'dydx',\n 'ease',\n 'enzyme',\n 'enzyme',\n 'eth',\n 'euler',\n 'fodl',\n 'ftx',\n 'gearbox',\n 'gemini',\n 'gmx',\n 'goldfinch',\n 'hodlnaut',\n 'kraken',\n 'ledn',\n 'liquidcollective',\n 'liquity',\n 'makerdao',\n 'mstable',\n 'nested',\n 'nexo',\n 'notional-finance',\n 'olympusdao',\n 'opyn',\n 'originusd',\n 'pangolin',\n 'perpetual',\n 'pooltogether',\n 'premia',\n 'rari',\n 'reflexer',\n 'ribbon',\n 'gnosis-safe',\n 'tokensets',\n 'tokensets',\n 'sherlock',\n 'stakedao',\n 'stakewise',\n 'stakewise',\n 'sushiswap',\n 'synthetix',\n 'thorchain',\n 'trader-joe',\n 'uniswapv2',\n 'uniswapv2',\n 'vector',\n 'vesper',\n 'yearn',\n 'yearn',\n 'yeti',\n 'yield-app',\n 'alpaca',\n 'wefi',\n 'exactly',\n 'etherfi',\n 'squeeth-by-opyn',\n 'rage-trade',\n 'sentiment',\n 'lyra',\n 'perennial',\n 'liquify',\n 'lyra',\n 'buffer-finance',\n 'hook',\n 'holyheld',\n 'union-finance',\n 'openq',\n 'level-finance',\n 'offramp',\n 'aavev3',\n 'morpho',\n 'chorusone',\n 'kiln',\n 'vertex',\n 'the-retail-mutual',\n 'figment',\n 'teller',\n 'ajna',\n 'eigenlayer',\n 'vox',\n 'mahalend',\n 'self',\n 'scallop',\n 'wefi',\n 'zktsunami',\n 'hats',\n 'makerdao-dsr',\n 'spark-lending',\n 'defi-edge',\n 'stakewisev3',\n 'compoundv3',\n 'deprecated',\n 'deprecated',\n 'deprecated',\n 'deprecated',\n 'yearn',\n 'velodrome2',\n 'gmxv2',\n 'dhedge',\n 'term-finance',\n 'pendle',\n 'aerodrome',\n 'hyperliquid',\n 'maverick',\n 'equilibria',\n 'camelot',\n 'nftperp',\n 'gearbox',\n 'pxeth',\n 'fx-protocol',\n 'prisma',\n 'beethovenx',\n 'arrakis',\n 'yearn-juiced-vaults',\n 'kwenta-synthetix',\n 'eigenlayer-etherfi-pendle',\n 'beefy-curve',\n 'beefy-compoundv3',\n 'beefy-balancerv2-aura',\n 'notional-finance',\n 'fraxlend',\n 'morpho',\n 'etherfi',\n 'arcadia',\n 'fx-curve-connex',\n 'eigenlayer-kelp-pendle',\n 'eigenlayer-renzo-pendle',\n 'eigenlayer-swell-pendle',\n 'arcadia',\n 'lyra-synthetix',\n 'eigenlayer-renzo',\n 'liquidcollective',\n 'etherfi-zircuit-pendle',\n 'kelpdao-zircuit-pendle',\n 'renzo-zircuit-pendle',\n 'aave-v1',\n 'akropolis',\n 'alpha-homora',\n 'ampleforth',\n 'arbitrum',\n 'aurora',\n 'avalanche',\n 'bunnypancake',\n 'bzx',\n 'celo',\n 'celsius',\n 'cowswap',\n 'cream',\n 'cronos',\n 'dforce',\n 'dodo',\n 'element-finance',\n 'enzyme-v4',\n 'fantom',\n 'fuse',\n 'gamma',\n 'gnosis-multisig',\n 'harmony',\n 'heco',\n 'homora',\n 'idleDAIYield',\n 'idleUSDTYield',\n 'instadapp',\n 'ironbank',\n 'maker-sai',\n 'metis',\n 'moonbeam',\n 'mooniswap',\n 'moonriver',\n 'nexus-mutual',\n 'nucypher',\n 'nuo',\n 'ondo',\n 'optimism',\n 'pancakeswap',\n 'polkadot',\n 'polygon',\n 'popsicle',\n 'ren',\n 'solana',\n 'starkware',\n 'tbtc',\n 'terra-chain',\n 'uma',\n 'uniswap-v1',\n 'venus',\n 'vesper-veth',\n 'zksync'\n] as const;\n\nexport type LogoName = (typeof allLogoNames)[number];\n","export * from './calculateExactNxmForEth';\nexport * from './calculateExactEthForNxm';\nexport * from './calculateNxmForExactEth';\nexport * from './calculateEthForExactNxm';\nexport * from './reserves.type';\nexport * from './calculatePriceImpactA';\nexport * from './calculatePriceImpactB';\nexport * from './calculateSpotPrice';\n\n","import { Reserves } from './reserves.type';\n\n/**\n * Calculates the amount of nxm flowing out of the pool for the given amount of eth flowing in\n */\n// suggestion: calculateNxmOutGivenEthIn\nexport const calculateExactNxmForEth = (ethIn: bigint, reserves: Reserves): bigint => {\n \n if(ethIn <= 0n) throw new Error('ETH in value must be greater than 0');\n \n // Calculate the constant product (k) for the market maker model\n const k = reserves.nxmA * reserves.ethReserve;\n\n // Simulate the swap and calculate the new reserves\n const ethReservesAfter = reserves.ethReserve + ethIn;\n const nxmReservesAfter = k / ethReservesAfter;\n\n // Calculate the amount of Nxm that will flow out of the pool\n const nxmOut = reserves.nxmA - nxmReservesAfter;\n\n if(nxmOut < 0n) throw new Error('Cannot swap this amount');\n\n return nxmOut;\n};\n","import { Reserves } from './reserves.type';\n\n/**\n * Calculates the amount of eth flowing out of the pool for the given amount of nxm flowing in\n */\n// suggestion: calculateEthOutGivenNxmIn\nexport const calculateExactEthForNxm = (nxmIn: bigint, reserves: Reserves): bigint => {\n\n if(nxmIn <= 0n) throw new Error('NXM in value must be greater than 0');\n\n // Calculate the constant product (k) for the market maker model\n const k = reserves.nxmB * reserves.ethReserve;\n\n // Simulate the swap and calculate the new reserves\n const nxmReservesAfter = reserves.nxmB + nxmIn;\n const ethReservesAfter = k / nxmReservesAfter;\n\n // Calculate the amount of Eth that will flow out of the pool\n const ethOut = reserves.ethReserve - ethReservesAfter;\n\n if(ethOut < 0n) throw new Error('Cannot swap this amount');\n\n return ethOut;\n};\n","import { Reserves } from './reserves.type';\n\n/**\n * Calculates the amount of nxm needed to flow into the pool to get the exact amount of eth out\n */\n// suggestion: calculateNxmInGivenEthOut\nexport const calculateNxmForExactEth = (ethOut: bigint, reserves: Reserves): bigint => {\n\n if(ethOut <= 0n || ethOut >= reserves.ethReserve) throw new Error('ETH out value must be greater than 0 and less than the reserves');\n\n // Calculate the constant product (k) for the market maker model\n const k = reserves.nxmB * reserves.ethReserve;\n\n // Simulate the swap and calculate the new reserves\n const ethReservesAfter = reserves.ethReserve - ethOut;\n const nxmReservesAfter = k / ethReservesAfter;\n\n // Calculate the amount of Nxm needed to flow into the pool to get the desired amount of eth\n const nxmIn = nxmReservesAfter - reserves.nxmB;\n\n return nxmIn;\n};\n","import { Reserves } from './reserves.type';\n\n/**\n * Calculates the amount of eth needed to flow into the pool to get the exact amount of nxm out\n */\n// suggestion: calculateEthInGivenNxmOut\nexport const calculateEthForExactNxm = (nxmOut: bigint, reserves: Reserves): bigint => {\n\n if(nxmOut <= 0n || nxmOut >= reserves.nxmA) throw new Error('NXM out value must be greater than 0 and less than the reserves');\n\n // Calculate the constant product (k) for the market maker model\n const k = reserves.nxmA * reserves.ethReserve;\n\n // Simulate the swap and calculate the new reserves\n const nxmReservesAfter = reserves.nxmA - nxmOut;\n const ethReservesAfter = k / nxmReservesAfter;\n\n // Calculate the amount of Nxm needed to flow into the pool to get the desired amount of eth\n const ethIn = ethReservesAfter - reserves.ethReserve;\n\n return ethIn;\n};\n","import { Reserves } from './reserves.type';\n\nexport const calculateSpotPrice = (reserves: Reserves) => {\n const oneEth = BigInt(1e18);\n return {\n spotPriceA: (oneEth * reserves.ethReserve) / reserves.nxmA,\n spotPriceB: (oneEth * reserves.ethReserve) / reserves.nxmB,\n };\n};\n","import { calculateExactNxmForEth } from \"./calculateExactNxmForEth\";\nimport { calculateSpotPrice } from \"./calculateSpotPrice\";\nimport { Reserves } from \"./reserves.type\";\n\n// Calculate the price impact when buying NXM with ETH\nexport const calculatePriceImpactA = (ethIn: bigint, reserves: Reserves) => {\n const { spotPriceA } = calculateSpotPrice(reserves);\n const nxmOut = calculateExactNxmForEth(ethIn, reserves);\n const nxmOutAtSpotPrice = BigInt(1e18) * ethIn / spotPriceA;\n\n // 100 - 100 * nxmOut / nxmOutAtSpot\n // using BigInt(1000000) to keep 4 decimals of precision\n return BigInt(1000000) - BigInt(1000000) * nxmOut / nxmOutAtSpotPrice;\n};\n","import { calculateExactEthForNxm } from './calculateExactEthForNxm';\nimport { calculateSpotPrice } from './calculateSpotPrice';\nimport { Reserves } from './reserves.type';\n\n// Calculate the price impact when selling NXM for ETH\nexport const calculatePriceImpactB = (nxmIn: bigint, reserves: Reserves) => {\n const { spotPriceB } = calculateSpotPrice(reserves);\n const ethOut = calculateExactEthForNxm(nxmIn, reserves);\n const ethOutAtSpotPrice = spotPriceB * nxmIn / BigInt(1e18);\n\n // 100 - 100 * ethOut / ethOutAtSpot\n // using BigInt(1000000) to keep 4 decimals of precision\n return BigInt(1000000) - BigInt(1000000) * ethOut / ethOutAtSpotPrice;\n};\n","export * from './calculatePremiumWithCommissionAndSlippage';\n","export enum CoverAsset {\n ETH = 0,\n DAI = 1,\n}\n\nexport enum CoverId {\n BUY = 0,\n}\n\nexport const COMMISSION_DENOMINATOR = 100_00;\nexport const SLIPPAGE_DENOMINATOR = 100_00;\nexport const TARGET_PRICE_DENOMINATOR = 100_00;\n\nexport const MINIMUM_COVER_PERIOD = 28;\nexport const MAXIMUM_COVER_PERIOD = 365;\nexport const DEFAULT_SLIPPAGE = 10; // 0.1%\nexport const DEFAULT_COMMISSION_RATIO = 15_00; // 15%\nexport const NEXUS_MUTUAL_DAO_TREASURY_ADDRESS = '0x586b9b2F8010b284A0197f392156f1A7Eb5e86e9';\n","import { COMMISSION_DENOMINATOR, SLIPPAGE_DENOMINATOR } from '../constants/buyCover';\n\nexport const calculatePremiumWithCommissionAndSlippage = (premium: bigint, commission = 0, slippage = 0) => {\n const premiumWithCommission =\n (premium * BigInt(COMMISSION_DENOMINATOR)) / BigInt(COMMISSION_DENOMINATOR - commission);\n\n const premiumWithCommissionAndSlippage =\n (premiumWithCommission * BigInt(SLIPPAGE_DENOMINATOR + slippage)) / BigInt(SLIPPAGE_DENOMINATOR);\n\n return premiumWithCommissionAndSlippage;\n};\n","export * from './api';\nexport * from './cover';\nexport * from './data';\n","export * from './getQuoteAndBuyCoverInputs';\n","import axios, { AxiosError } from 'axios';\nimport dotenv from 'dotenv';\n\nimport { calculatePremiumWithCommissionAndSlippage } from '../buyCover/calculatePremiumWithCommissionAndSlippage';\nimport {\n CoverAsset,\n CoverId,\n DEFAULT_COMMISSION_RATIO,\n DEFAULT_SLIPPAGE,\n MAXIMUM_COVER_PERIOD,\n MINIMUM_COVER_PERIOD,\n NEXUS_MUTUAL_DAO_TREASURY_ADDRESS,\n SLIPPAGE_DENOMINATOR,\n TARGET_PRICE_DENOMINATOR,\n} from '../constants/buyCover';\nimport {\n Address,\n CoverRouterProductCapacityResponse,\n CoverRouterQuoteResponse,\n ErrorApiResponse,\n GetQuoteApiResponse,\n GetQuoteResponse,\n IntString,\n Integer,\n PoolCapacity,\n} from '../types';\n\ndotenv.config();\n\ntype CoverRouterQuoteParams = {\n productId: Integer;\n amount: IntString;\n period: Integer;\n coverAsset: CoverAsset;\n};\n\ntype CoverRouterCapacityParams = {\n period: Integer;\n};\n\n/**\n * Retrieves a quote for buying cover and prepares the necessary inputs for CoverBroker.buyCover method\n * The cover must be purchased using the same asset as the cover\n *\n * @param {Integer} productId - The ID of the product for which cover is being purchased.\n * @param {IntString} coverAmount - The amount of cover in smallest unit of currency (i.e. wei)\n * @param {Integer} coverPeriod - The duration of the cover in days (28-365).\n * @param {CoverAsset} coverAsset - The asset for which cover is being purchased (the cover must be purchased using the same asset)\n * @param {Address} coverBuyerAddress - The Ethereum address of the buyer.\n * @param {number} slippage - The acceptable slippage percentage. Must be between 0-1 (Defaults to 0.001 ~ 0.1%)\n * @param {string} ipfsCid - The IPFS CID for additional data (optional).\n * @return {Promise<GetQuoteApiResponse | ErrorApiResponse>} Returns a successful quote response or an error response.\n */\nasync function getQuoteAndBuyCoverInputs(\n productId: Integer,\n coverAmount: IntString,\n coverPeriod: Integer,\n coverAsset: CoverAsset,\n coverBuyerAddress: Address,\n slippage: number = DEFAULT_SLIPPAGE / SLIPPAGE_DENOMINATOR,\n ipfsCid: string = '',\n): Promise<GetQuoteApiResponse | ErrorApiResponse> {\n if (!process.env.COVER_ROUTER_URL) {\n return { result: undefined, error: { message: 'Missing COVER_ROUTER_URL env var' } };\n }\n\n if (!Number.isInteger(productId) || productId <= 0) {\n return { result: undefined, error: { message: 'Invalid productId: must be a positive integer' } };\n }\n\n if (typeof coverAmount !== 'string' || !/^\\d+$/.test(coverAmount) || parseInt(coverAmount, 10) <= 0) {\n return { result: undefined, error: { message: 'Invalid coverAmount: must be a positive integer string' } };\n }\n\n if (!Number.isInteger(coverPeriod) || coverPeriod < MINIMUM_COVER_PERIOD || coverPeriod > MAXIMUM_COVER_PERIOD) {\n return {\n result: undefined,\n error: {\n message: `Invalid coverPeriod: must be between ${MINIMUM_COVER_PERIOD} and ${MAXIMUM_COVER_PERIOD} days`,\n },\n };\n }\n\n const coverAssetsString = Object.keys(CoverAsset)\n .filter(k => isNaN(+k))\n .map(k => `CoverAsset.${k}`)\n .join(', ');\n\n if (!Object.values(CoverAsset).includes(coverAsset)) {\n return {\n result: undefined,\n error: {\n message: `Invalid coverAsset: must be one of ${coverAssetsString}`,\n },\n };\n }\n\n if (!/^0x[a-fA-F0-9]{40}$/.test(coverBuyerAddress)) {\n return { result: undefined, error: { message: 'Invalid coverBuyerAddress: must be a valid Ethereum address' } };\n }\n\n if (typeof slippage !== 'number' || slippage < 0 || slippage > 1) {\n return {\n result: undefined,\n error: { message: 'Invalid slippage: must be a number between 0 and 1' },\n };\n }\n\n if (typeof ipfsCid !== 'string') {\n return { result: undefined, error: { message: 'Invalid ipfsCid: must be a valid IPFS CID' } };\n }\n\n // convert slippage from 0-1 to 0-100_00\n slippage = slippage * SLIPPAGE_DENOMINATOR;\n\n try {\n const { quote, capacities } = await getQuote(productId, coverAmount, coverPeriod, coverAsset);\n\n const maxPremiumInAsset = calculatePremiumWithCommissionAndSlippage(\n BigInt(quote.premiumInAsset),\n DEFAULT_COMMISSION_RATIO,\n slippage,\n );\n const yearlyCostPerc = calculatePremiumWithCommissionAndSlippage(\n BigInt(quote.annualPrice),\n DEFAULT_COMMISSION_RATIO,\n slippage,\n );\n\n const result: GetQuoteResponse = {\n displayInfo: {\n premiumInAsset: maxPremiumInAsset.toString(),\n coverAmount,\n yearlyCostPerc: Number(yearlyCostPerc) / TARGET_PRICE_DENOMINATOR,\n maxCapacity: sumPoolCapacities(capacities),\n },\n buyCoverInput: {\n buyCoverParams: {\n coverId: CoverId.BUY,\n owner: coverBuyerAddress,\n productId,\n coverAsset,\n amount: coverAmount,\n period: coverPeriod * 60 * 60 * 24, // seconds\n maxPremiumInAsset: maxPremiumInAsset.toString(),\n paymentAsset: coverAsset,\n commissionRatio: DEFAULT_COMMISSION_RATIO,\n commissionDestination: NEXUS_MUTUAL_DAO_TREASURY_ADDRESS,\n ipfsData: ipfsCid,\n },\n poolAllocationRequests: quote.poolAllocationRequests,\n },\n };\n\n return { result, error: undefined };\n } catch (error: unknown) {\n const errorResponse = await handleError(error, productId, coverPeriod, coverAsset);\n return errorResponse;\n }\n}\n\n/**\n * Calls the CoverRouter quote endpoint to retrieve the quote for the specified cover\n */\nasync function getQuote(\n productId: Integer,\n coverAmount: IntString,\n coverPeriod: Integer,\n coverAsset: CoverAsset,\n): Promise<CoverRouterQuoteResponse> {\n const params: CoverRouterQuoteParams = { productId, amount: coverAmount, period: coverPeriod, coverAsset };\n const response = await axios.get<CoverRouterQuoteResponse>(process.env.COVER_ROUTER_URL + '/quote', { params });\n if (!response.data) {\n throw new Error('Failed to fetch cover quote');\n }\n return response.data;\n}\n\n/**\n * Calls the CoverRouter capacity endpoint to retrieve capacities for the specified cover\n */\nasync function getProductCapacity(\n productId: Integer,\n coverPeriod: Integer,\n coverAsset: CoverAsset,\n): Promise<IntString | undefined> {\n const params: CoverRouterCapacityParams = { period: coverPeriod };\n const capacityUrl = process.env.COVER_ROUTER_URL + `/capacity/${productId}`;\n const response = await axios.get<CoverRouterProductCapacityResponse>(capacityUrl, { params });\n if (!response.data) {\n throw new Error('Failed to fetch cover capacities');\n }\n return response.data.availableCapacity.find(av => av.assetId === coverAsset)?.amount;\n}\n\n/**\n * Calculates the max capacity by summing up all the amounts in the given array of pool capacities.\n */\nfunction sumPoolCapacities(capacities: PoolCapacity[]): IntString {\n let totalAmount: bigint = BigInt(0);\n\n capacities.forEach(poolCapacity => {\n poolCapacity.capacity.forEach(capacity => (totalAmount += BigInt(capacity.amount)));\n });\n\n return totalAmount.toString();\n}\n\nasync function handleError(\n error: unknown,\n productId: Integer,\n coverPeriod: Integer,\n coverAsset: CoverAsset,\n): Promise<ErrorApiResponse> {\n const axiosError = error as AxiosError<{ error: string }>;\n if (axiosError.isAxiosError) {\n if (axiosError.response?.data?.error?.includes('Not enough capacity')) {\n const maxCapacity = await getProductCapacity(productId, coverPeriod, coverAsset);\n return {\n result: undefined,\n error: {\n message: axiosError.response?.data.error,\n data: maxCapacity ? { maxCapacity } : undefined,\n },\n };\n }\n }\n\n return {\n result: undefined,\n error: { message: (error as Error).message || 'Something went wrong' },\n };\n}\n\nexport { sumPoolCapacities, getQuoteAndBuyCoverInputs };\n","export * from './buyCover';\n"],"mappings":"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mB;AAAA,IACnB,MAAQ;AAAA,IACR,aAAe;AAAA,IACf,aAAe;AAAA,EACjB;AACF;;;AC5FA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,IAAM,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAC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","names":["module","module","CoverAsset","CoverId","types_exports","dotenv","axios","types_exports"]}