changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "additionalProperties": false,
+ "properties": {
+ "actionableCount": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "address": {
+ "type": "string"
+ },
+ "boundary": {
+ "type": "string"
+ },
+ "chain": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "name"
+ ],
+ "type": "object"
+ },
+ "fetchedAt": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "inputs": {
+ "additionalProperties": false,
+ "properties": {
+ "executionBufferBps": {
+ "type": "integer"
+ },
+ "protectAgainstShockPct": {
+ "type": "number"
+ },
+ "targetHealthFactor": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "targetHealthFactor",
+ "protectAgainstShockPct",
+ "executionBufferBps"
+ ],
+ "type": "object"
+ },
+ "invariants": {
+ "additionalProperties": false,
+ "properties": {
+ "broadcasting": {
+ "const": "none",
+ "type": "string"
+ },
+ "custody": {
+ "const": "none",
+ "type": "string"
+ },
+ "postconditions": {
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "revalidation": {
+ "type": "string"
+ },
+ "signing": {
+ "const": "none",
+ "type": "string"
+ },
+ "simulation": {
+ "type": "string"
+ },
+ "value": {
+ "const": "0 on every unsigned transaction template",
+ "type": "string"
+ }
+ },
+ "required": [
+ "signing",
+ "broadcasting",
+ "custody",
+ "value",
+ "revalidation",
+ "simulation",
+ "postconditions"
+ ],
+ "type": "object"
+ },
+ "latestIndexedAt": {
+ "anyOf": [
+ {
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "ok": {
+ "const": true,
+ "type": "boolean"
+ },
+ "positionCount": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "product": {
+ "const": "morpho-protection-quote",
+ "type": "string"
+ },
+ "quotes": {
+ "items": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "currentHealthFactor": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "explanation": {
+ "type": "string"
+ },
+ "marketId": {
+ "type": "string"
+ },
+ "plans": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "type": "string"
+ },
+ "amountRaw": {
+ "type": "string"
+ },
+ "asset": {
+ "additionalProperties": false,
+ "properties": {
+ "address": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "decimals": {
+ "type": "number"
+ },
+ "symbol": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "address",
+ "symbol",
+ "decimals"
+ ],
+ "type": "object"
+ },
+ "expectedHealthFactorAtShock": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "id": {
+ "enum": [
+ "partial_repay",
+ "add_collateral"
+ ],
+ "type": "string"
+ },
+ "transactions": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "pattern": "^0x[0-9a-fA-F]+$",
+ "type": "string"
+ },
+ "purpose": {
+ "type": "string"
+ },
+ "to": {
+ "type": "string"
+ },
+ "value": {
+ "const": "0",
+ "type": "string"
+ }
+ },
+ "required": [
+ "to",
+ "value",
+ "data",
+ "purpose"
+ ],
+ "type": "object"
+ },
+ "maxItems": 2,
+ "minItems": 2,
+ "type": "array"
+ }
+ },
+ "required": [
+ "id",
+ "asset",
+ "amountRaw",
+ "amount",
+ "expectedHealthFactorAtShock",
+ "transactions"
+ ],
+ "type": "object"
+ },
+ "maxItems": 0,
+ "type": "array"
+ },
+ "status": {
+ "const": "state_unverified",
+ "type": "string"
+ }
+ },
+ "required": [
+ "marketId",
+ "currentHealthFactor",
+ "status",
+ "plans",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "currentHealthFactor": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "explanation": {
+ "type": "string"
+ },
+ "healthFactorAtShockBeforeAction": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "marketId": {
+ "type": "string"
+ },
+ "plans": {
+ "items": {
+ "$ref": "#/properties/quotes/items/anyOf/0/properties/plans/items"
+ },
+ "maxItems": 0,
+ "type": "array"
+ },
+ "shock": {
+ "additionalProperties": false,
+ "properties": {
+ "collateralPricePct": {
+ "type": "number"
+ },
+ "oraclePriceRaw": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "collateralPricePct",
+ "oraclePriceRaw"
+ ],
+ "type": "object"
+ },
+ "stateBasis": {
+ "additionalProperties": false,
+ "properties": {
+ "blockNumber": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "borrowAssets": {
+ "const": "indexed amount with explicit execution buffer",
+ "type": "string"
+ },
+ "collateralAndBorrowShares": {
+ "const": "direct_rpc_exact_match",
+ "type": "string"
+ },
+ "marketParams": {
+ "const": "keccak256 match to observed Morpho market ID",
+ "type": "string"
+ },
+ "oraclePrice": {
+ "const": "direct_rpc_fresh_read",
+ "type": "string"
+ }
+ },
+ "required": [
+ "blockNumber",
+ "collateralAndBorrowShares",
+ "oraclePrice",
+ "borrowAssets",
+ "marketParams"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "const": "target_met",
+ "type": "string"
+ },
+ "targetHealthFactorAtShock": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "marketId",
+ "currentHealthFactor",
+ "healthFactorAtShockBeforeAction",
+ "targetHealthFactorAtShock",
+ "shock",
+ "stateBasis",
+ "status",
+ "plans",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "currentHealthFactor": {
+ "$ref": "#/properties/quotes/items/anyOf/1/properties/currentHealthFactor"
+ },
+ "healthFactorAtShockBeforeAction": {
+ "$ref": "#/properties/quotes/items/anyOf/1/properties/healthFactorAtShockBeforeAction"
+ },
+ "marketId": {
+ "$ref": "#/properties/quotes/items/anyOf/1/properties/marketId"
+ },
+ "plans": {
+ "items": {
+ "$ref": "#/properties/quotes/items/anyOf/0/properties/plans/items"
+ },
+ "maxItems": 2,
+ "minItems": 2,
+ "type": "array"
+ },
+ "shock": {
+ "$ref": "#/properties/quotes/items/anyOf/1/properties/shock"
+ },
+ "stateBasis": {
+ "$ref": "#/properties/quotes/items/anyOf/1/properties/stateBasis"
+ },
+ "status": {
+ "const": "protection_available",
+ "type": "string"
+ },
+ "targetHealthFactorAtShock": {
+ "$ref": "#/properties/quotes/items/anyOf/1/properties/targetHealthFactorAtShock"
+ }
+ },
+ "required": [
+ "marketId",
+ "currentHealthFactor",
+ "healthFactorAtShockBeforeAction",
+ "targetHealthFactorAtShock",
+ "shock",
+ "stateBasis",
+ "status",
+ "plans"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "source": {
+ "additionalProperties": true,
+ "properties": {
+ "provider": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "provider"
+ ],
+ "type": "object"
+ },
+ "unverifiedCount": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "version": {
+ "const": "1.0.0",
+ "type": "string"
+ }
+ },
+ "required": [
+ "ok",
+ "product",
+ "version",
+ "address",
+ "chain",
+ "fetchedAt",
+ "latestIndexedAt",
+ "inputs",
+ "positionCount",
+ "actionableCount",
+ "unverifiedCount",
+ "quotes",
+ "source",
+ "invariants",
+ "boundary"
+ ],
+ "type": "object"
+}