{
  "kind": "rootNode",
  "standard": "codama",
  "version": "1.8.0",
  "program": {
    "kind": "programNode",
    "name": "flint",
    "publicKey": "4MxEr7W5f9xtajcTTpTTd5wfdBmwrF72j2NMg6YzXgMo",
    "version": "0.1.0",
    "accounts": [
      {
        "kind": "accountNode",
        "name": "globalConfig",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "95089ccaa0fcb0d9",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "admin",
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "pendingAdmin",
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "pauseAdmin",
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "backstopMmRatio",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "flags",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "feeDestinationAuthority",
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "ifBorrowLendFeeShares",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "ifPerpFeeShares",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "spotMarketFlags",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "borrowLendFlags",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxSpotPositions",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxLinearPerpPositions",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "passkeyDomain",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 64,
                "type": {
                  "kind": "stringTypeNode",
                  "encoding": "utf8"
                }
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "globalConfig"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "productCatalog",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "2bab3092aa902923",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "nextProductId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "nextSpotId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "nextLinearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "length",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "products",
              "docs": [
                "The slab can be over-allocated; truncate this array to `length`."
              ],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "definedTypeLinkNode",
                  "name": "productInfo"
                },
                "count": {
                  "kind": "remainderCountNode"
                }
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "productCatalog"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "spotProductCache",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "5751f79f5f6fcbec",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "length",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "entries",
              "docs": [
                "The slab can be over-allocated; truncate this array to `length`."
              ],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "definedTypeLinkNode",
                  "name": "spotProductInfoEntry"
                },
                "count": {
                  "kind": "remainderCountNode"
                }
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "spotProductCache"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "linearPerpCache",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "f171b075a4c0eaee",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "length",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "entries",
              "docs": [
                "The slab can be over-allocated; truncate this array to `length`."
              ],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "definedTypeLinkNode",
                  "name": "linearPerpInfoEntry"
                },
                "count": {
                  "kind": "remainderCountNode"
                }
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "linearPerpCache"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "linearPerpQuoting",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "19908c83b363d3ae",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "length",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "entries",
              "docs": [
                "One fixed-size maker slot; truncate this array to `length`."
              ],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "definedTypeLinkNode",
                  "name": "quotingEntry"
                },
                "count": {
                  "kind": "remainderCountNode"
                }
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "quoting"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "linearPerpOrderBook",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "0d96f2876937ad8b",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "allocatedBytes",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bids",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "redBlackTreeHead"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "asks",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "redBlackTreeHead"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "traders",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "redBlackTreeHead"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "length",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "tail",
              "docs": [
                "Raw growable arena holding the bid, ask, and trader trees. Only the first `length` bytes are live."
              ],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "remainderCountNode"
                }
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "orderBook"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "oracleCache",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "23cf77fb329b9b2f",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "tiers",
              "docs": [
                "Used only while staging prices; published readers consume materialized rows."
              ],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "definedTypeLinkNode",
                  "name": "tierParams"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "tierGenerations",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "entryCounts",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u16",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "dirtyCounts",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u16",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "imageRevision",
              "docs": [
                "Whole-image revision used to reject an image already copied to the published cache."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "length",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "entries",
              "docs": [
                "The slab can be over-allocated; truncate this array to `length`."
              ],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "definedTypeLinkNode",
                  "name": "oraclePrices"
                },
                "count": {
                  "kind": "remainderCountNode"
                }
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "oracleCache"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "oracleIngestState",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "452a00bbdf6d1a14",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "config",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "entryConfig"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "snapshot",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "oracleSnapshot"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bindings",
              "docs": [
                "Provider identities, written by `configureOracleSources`. Kept off the hot row."
              ],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "definedTypeLinkNode",
                  "name": "sourceBinding"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "cursors",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "definedTypeLinkNode",
                  "name": "sourceCursor"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lastObservations",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "definedTypeLinkNode",
                  "name": "sourceObservation"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "twap",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "twapState"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "degradationEpisodeStart",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "oracleIngest"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "linearPerp",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "dc2fffd6bb91bfdf",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bump",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "pnlCurrency",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lotScale",
              "type": {
                "kind": "numberTypeNode",
                "format": "i8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "tickSize",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "pnlSettlePool",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "takerFee",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerRebateShare",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "accruedProtocolFeeTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "openInterestLots",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxOpenInterestLots",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxPositionLots",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "underlyingOracleId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "liquidationFee",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "liquidatorShare",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxLiquidationBand",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "minLiquidationNotionalUsd",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxLiquidationNotionalUsd",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "flags",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "funding",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "fundingParams"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "marketSequence",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "linearPerp"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "spotMarket",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "64b1086ba8414127",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bump",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "spotId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "oracleId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "info",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "spotMarketAssetInfo"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "depositWeight",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "borrowImf",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "borrowMmf",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "liquidationBonus",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "throttleRedeemUtilisation",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "throttleBorrowUtilisation",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "depositLimit",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "borrowLimit",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "totalIsolatedDeposit",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "flags",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "flowCap",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "flowCap"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "spotSharesVault",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "borrowLendVault"
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "spotMarket"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "traderAccount",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "d464682cf1a1dc14",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "owner",
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "id",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "leverageCap",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "flags",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "allocatedBytes",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "spotPositions",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "linkedListHead"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpPositions",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "linkedListHead"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "length",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "tail",
              "docs": [
                "Raw growable storage. Decode the spot-position linked list with `decodeSpotPositions`."
              ],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "remainderCountNode"
                }
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "traderAccount"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "delegateTraderAccount",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "e127651bf2d26386",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "id",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "scope",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "expiry",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "nextNonce",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "credential",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "delegateCredential"
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "delegateTraderAccount"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "spotMarketUpdateProposal",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "3be1c377e5bc9db2",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bump",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "spotId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "rentPayer",
              "docs": [
                "Both close paths refund here."
              ],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "effectiveTs",
              "docs": [
                "Earliest timestamp `applySpotMarketUpdate` accepts."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "update",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "spotMarketConfigUpdate"
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "spotMarketUpdateProposal"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "linearPerpUpdateProposal",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "eaa693fad19eb23b",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bump",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "docs": [
                "How `apply` pairs this with its contract."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "rentPayer",
              "docs": [
                "Both close paths refund here."
              ],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "effectiveTs",
              "docs": [
                "Earliest timestamp `applyLinearPerpUpdate` accepts."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "update",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "linearPerpUpdate"
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "linearPerpUpdateProposal"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "crossMarginInsuranceFund",
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "badf462e11ae8ca5",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bump",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "borrowLendSocializeLossMaxDraw",
              "docs": [
                "Ceiling on a single `socializeLoss` draw, as a share of the fund's balance",
                "of that asset: a `PercentU32`, the value over 2^32 - 1."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "crossMarginInsuranceFund"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      }
    ],
    "instructions": [
      {
        "kind": "instructionNode",
        "name": "initializeProgram",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "upgradeAuthority",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": [
              "The program's upgrade authority, per `programData`; gates the bootstrap."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "programData",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "This program's `ProgramData` account under the BPF upgradeable loader."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "productCatalog",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "crossMarginInsuranceFund",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 0
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "passkeyDomain",
            "type": {
              "kind": "fixedSizeTypeNode",
              "size": 64,
              "type": {
                "kind": "stringTypeNode",
                "encoding": "utf8"
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "createSpotMarket",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "productCatalog",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCacheWorking",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Read-only: where `oracleId` is checked against the registry, and the only place the binding sealed into the new cache entry can be minted. The working copy, so a market may bind to an entry registered since the last publication."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "mint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "vault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "crossMarginInsuranceFund",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "insuranceFundVault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The insurance fund's ATA for `mint`, opened by this instruction if absent so the market is listed with its backstop already reachable. `socializeLoss` pins its source to this exact ATA and will not create it."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "tokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "associatedTokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 1
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "name",
            "type": {
              "kind": "fixedSizeTypeNode",
              "size": 32,
              "type": {
                "kind": "stringTypeNode",
                "encoding": "utf8"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "oracleId",
            "docs": [
              "The registered oracle entry this market prices against. Checked against the",
              "oracle cache — registration, the metadata seam, and the entry's sealed unit",
              "scaling against this mint's decimals — and sealed into the market and its cache entry."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "depositWeight",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "borrowImf",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "borrowMmf",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "liquidationBonus",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "lendingRateFee",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "targetUtilisation",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "throttleRedeemUtilisation",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "throttleBorrowUtilisation",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "depositLimit",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "borrowLimit",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "flowCap",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "flowCapConfig"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "optInMintExtensions",
            "docs": [
              "Token-2022 `ExtensionType` ids to accept on this mint beyond the default",
              "allowlist, for this listing only; empty is the narrow screen. Any id is",
              "permitted, including ones that break the vault accounting rather than merely",
              "trusting the issuer — see the Rust `opt_in_mint_extensions` docs first."
            ],
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "createLinearPerp",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "productCatalog",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Read-only: the PnL currency must already be listed here."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCacheWorking",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Read-only: where `underlyingOracleId` is checked against the registry. The working copy, so a contract may mark against an entry registered since the last publication."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerp",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "quoting",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "orderBook",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 38
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "name",
            "type": {
              "kind": "fixedSizeTypeNode",
              "size": 32,
              "type": {
                "kind": "stringTypeNode",
                "encoding": "utf8"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "docs": [
              "The dense id this contract claims, `== the catalog's next linear-perp id`.",
              "It seeds the contract PDA, so the handler rejects a mismatch against the id",
              "the catalog actually allocates."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "underlyingOracleId",
            "docs": [
              "Registered oracle entry the mark is read from."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "pnlCurrency",
            "docs": [
              "Spot asset every settlement on this contract routes into. Must be listed."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "lotScale",
            "docs": [
              "1 lot = `10^(-lotScale)` units of the underlying."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "i8",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "tickSize",
            "docs": [
              "PnL-currency atoms per tick. Non-zero."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "imf",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "mmf",
            "docs": [
              "Non-zero, and no greater than `imf`."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "unplWeight",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "takerFee",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "makerRebateShare",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "maxOpenInterestLots",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "maxPositionLots",
            "docs": [
              "Ceiling on one trader's net size. Non-zero; 4,294,967,295 is uncapped."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "liquidationFee",
            "docs": [
              "Fraction of a forced close's notional charged on top of the taker fee."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "liquidatorShare",
            "docs": [
              "Fraction of that charge credited to the liquidator; the rest accrues to the protocol."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "maxLiquidationBand",
            "docs": [
              "A forced close lands inside `mark * (1 ± band)` or not at all."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "minLiquidationNotionalUsd",
            "docs": [
              "Smallest notional one forced close may take; a position worth less is closed whole. `0` imposes no floor."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "maxLiquidationNotionalUsd",
            "docs": [
              "Largest notional one forced close may take. Non-zero, and no less than the floor."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "funding",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "createFundingArgs"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "setTraderQuotingPermission",
        "docs": [
          "Grants or withdraws permission to open quoting slots. Withdrawing does not disable existing slots."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 54
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "allowed",
            "type": {
              "kind": "booleanTypeNode",
              "size": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "openQuotingEntry",
        "docs": [
          "An authorized trader with quoting permission opens its own disabled, empty quoting slot."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": true,
            "docs": [
              "Required when the signer is not the trader owner."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "quoting",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 55
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "releaseQuotingEntry",
        "docs": [
          "The admin or authorized trader releases the trader's slot in place, making it available for reuse."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": true,
            "docs": [
              "Required when the signer is not the trader owner."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "quoting",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 56
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "entryIndex",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "updateQuoting",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": true,
            "docs": [
              "Required when the signer is not the trader owner."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "quoting",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 40
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "entryIndex",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "enable",
            "type": {
              "kind": "booleanTypeNode",
              "size": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "update",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "quotingUpdate"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "updateDensityFairs",
        "docs": [
          "Append one writable quoting account per contract the records name, in the order they name them.",
          "Fairs only: enabled flags, bands and accumulated risk are preserved."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "authority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The signer's own trader account, or a QUOTE-scoped delegate of it."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "clock",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The Clock sysvar."
            ]
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 47
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "allowPartialSuccess",
            "docs": [
              "Skip failed records and succeed if any lands; false makes the batch atomic."
            ],
            "type": {
              "kind": "booleanTypeNode",
              "size": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "updates",
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "densityFairUpdate"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "resetQuotingSequences",
        "docs": [
          "Append one writable quoting account per contract the records name, in the order they name them.",
          "The expected sequence stops a late reset clearing a newer write."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "authority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The signer's own trader account, or a QUOTE-scoped delegate of it."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "clock",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The Clock sysvar."
            ]
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 48
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "allowPartialSuccess",
            "docs": [
              "Skip failed records and succeed if any lands; false makes the batch atomic."
            ],
            "type": {
              "kind": "booleanTypeNode",
              "size": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "updates",
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "quotingSequenceReset"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "updateOrderLists",
        "docs": [
          "Append one writable quoting account per contract the records name, in the order they name them.",
          "Selected sides only: the enabled flag is preserved."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "authority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The signer's own trader account, or a QUOTE-scoped delegate of it."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "clock",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The Clock sysvar."
            ]
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 49
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "allowPartialSuccess",
            "docs": [
              "Skip failed records and succeed if any lands; false makes the batch atomic."
            ],
            "type": {
              "kind": "booleanTypeNode",
              "size": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "updates",
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "orderListEntryUpdate"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "levels",
            "docs": [
              "Shared pool every record's `bids`/`asks` range indexes into."
            ],
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "orderListLevel"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "placePerpOrder",
        "docs": [
          "Append the maker trader accounts to cross against — writable, strictly ascending by trader id, and following the event authority and program accounts."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "authority",
            "isWritable": false,
            "isSigner": "either",
            "isOptional": false,
            "docs": [
              "Wallet signer or Instructions sysvar for passkey authorization."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": true
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Read for the ceiling on a trader's linear-perp positions."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The contract's mark, grid and risk params; an expired mark cannot trade."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerp",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "quoting",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "orderBook",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 41
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "direction",
            "docs": [
              "Which way the taker wants to end up positioned."
            ],
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "direction"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "clientOrderId",
            "docs": [
              "Caller's handle echoed on the order events."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "lots",
            "docs": [
              "Base budget in contract lots."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "reduceOnly",
            "docs": [
              "Capped at the standing position. An immediate order is refused when that leaves less than its minimum, or nothing."
            ],
            "type": {
              "kind": "booleanTypeNode",
              "size": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "kind",
            "docs": [
              "Bounds the price and decides what happens to the remainder."
            ],
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "perpOrderKind"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "bookScan",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "orderBookScan"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "auth",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "traderAuth"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "setAccountLeverageCap",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "authority",
            "isWritable": false,
            "isSigner": "either",
            "isOptional": false,
            "docs": [
              "Wallet signer or Instructions sysvar for passkey authorization."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": true
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 57
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "leverageCap",
            "docs": [
              "Raw Q0.64 fraction, 1 / max leverage; zero removes the cap."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "auth",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "traderAuth"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "modifyPerpOrder",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "authority",
            "isWritable": false,
            "isSigner": "either",
            "isOptional": false,
            "docs": [
              "Wallet signer or Instructions sysvar for passkey authorization."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": true
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerp",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "orderBook",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 60
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "side",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "makerSide"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "priceTicks",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "lots",
            "docs": [
              "Some zero cancels; None preserves the resting quantity."
            ],
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "fixedOptionU32"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "reduceOnly",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "fixedOptionBool"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "expiresAtSlot",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "fixedOptionU64"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "auth",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "traderAuth"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "cancelAllPerpOrders",
        "docs": [
          "Cancels every resting order of the authorized trader on one contract, including reduce-only orders."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "authority",
            "isWritable": false,
            "isSigner": "either",
            "isOptional": false,
            "docs": [
              "Wallet signer or Instructions sysvar for passkey authorization."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": true
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "orderBook",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 61
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "auth",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "traderAuth"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "createTraderAccount",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "owner",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 2
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "traderId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "createDelegateTraderAccount",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "owner",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegate",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 3
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "ops",
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "delegateOp"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "expiryUnixSeconds",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "registerPasskeyDelegate",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "owner",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 28
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "credentialIdHash",
            "type": {
              "kind": "fixedSizeTypeNode",
              "size": 32,
              "type": {
                "kind": "bytesTypeNode"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "credentialId",
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "publicKey",
            "type": {
              "kind": "fixedSizeTypeNode",
              "size": 33,
              "type": {
                "kind": "bytesTypeNode"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "rpIdHash",
            "type": {
              "kind": "fixedSizeTypeNode",
              "size": 32,
              "type": {
                "kind": "bytesTypeNode"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "origin",
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "expiryUnixSeconds",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "revokeDelegateTraderAccount",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "owner",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 29
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "revokePasskeyDelegate",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Supplies the passkey challenge domain."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "instructionsSysvar",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 30
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "clientDataJson",
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "deposit",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Read for the global pause: the second layer every gate consults."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": [
              "Transfer authority over `from`; also must own the trader account when this deposit creates its first position in the asset."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "mint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "from",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "vault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "tokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 4
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "amount",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "depositAmount"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "withdraw",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Read for the global pause: the second layer every gate consults."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": true,
            "docs": [
              "Required when the signer is not the trader owner."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "mint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "to",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "vault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "tokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 5
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "amount",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "lend",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Read for the global pause: the second layer every gate consults."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": true,
            "docs": [
              "Required when the signer is not the trader owner."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "mint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 6
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "amount",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "redeemLend",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Read for the global pause: the second layer every gate consults."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": true,
            "docs": [
              "Required when the signer is not the trader owner."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "mint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 7
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "amount",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "redeemAmount"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "minRedeem",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "borrow",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Read for the global pause: the second layer every gate consults."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": true,
            "docs": [
              "Required when the signer is not the trader owner."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "mint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 8
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "amount",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "repayBorrow",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Read for the global pause: the second layer every gate consults."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": true,
            "docs": [
              "Required when the signer is not the trader owner."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "mint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 9
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "amount",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "repayAmount"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "startFlashloan",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": true,
            "docs": [
              "Required when the signer is not the trader owner."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "instructionsSysvar",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 10
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "endIndex",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "endFlashloan",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "instructionsSysvar",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 11
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "syncSpotProductCache",
        "docs": [
          "Append each writable spot market to refresh its static risk parameters and share prices."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 12
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "syncLinearPerpCache",
        "docs": [
          "Prices the row and carries the contract's funding to the clock."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "linearPerp",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "quoting",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The maker book the funding premium is measured off."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 45
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "settleFunding",
        "docs": [
          "Books what every linear-perp position on one trader account owes its",
          "contract's funding index. Permissionless — settling only moves ticks the",
          "index already charged."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Read at whatever validity it carries: an index only lags, so a lapsed row settles less."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 50
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "collectSpotBorrowLendFees",
        "docs": [
          "Permissionless. The amount is the market's whole-atom protocol fee and the recipient is the configured destination, so there is nothing for the caller to choose."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "mint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "feeDestinationAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Must equal `globalConfig.feeDestinationAuthority`; owns the destination ATA."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "feeDestination",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The authority's ATA for `mint`; created by this instruction if absent."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "crossMarginInsuranceFund",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "insuranceFundDestination",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The insurance fund's ATA for `mint`, opened by `createSpotMarket` and required to exist here. Receives `globalConfig.ifBorrowLendFeeShares` of the fee, and nothing when that share is zero."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "vault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "tokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "associatedTokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 22
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "collectLinearPerpFees",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerp",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "mint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "feeDestinationAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "feeDestination",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "crossMarginInsuranceFund",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "insuranceFundDestination",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "vault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "tokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "associatedTokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 43
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "minCollectTicks",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "settleRealisedPnl",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerp",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "mint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 42
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "minSettleTicks",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "backstop",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Supplies the backstop line (`backstop_mm_ratio`)."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": true,
            "docs": [
              "Required when the signer is not the trader owner."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "liquidatee",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 14
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "percent",
            "docs": [
              "Fraction of every spot and linear-perp position the backstopper takes;",
              "4294967295 is the whole book. A partial take may not leave the liquidatee",
              "under $500 of equity; a full take may empty it."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "socializeLoss",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "liquidatee",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "mint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "crossMarginInsuranceFund",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "insuranceFundSource",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The insurance fund's ATA for `mint`, opened by `createSpotMarket` and required to exist here. The write-off draws it into the vault, capped by the fund's `borrowLendSocializeLossMaxDraw` and by the debt forgiven, and haircuts the deposit price only for the residue."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "vault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "tokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 15
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "updateGlobalConfig",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 16
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "update",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "globalConfigUpdate"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "updateLinearPerpConfig",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerp",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 44
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "update",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "linearPerpConfigUpdate"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "updateInsuranceFundConfig",
        "docs": [
          "Sets one field of the insurance fund's config (admin-gated); currently only",
          "the ceiling on what a single `socializeLoss` may draw out of it."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "crossMarginInsuranceFund",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 27
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "update",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "insuranceFundConfigUpdate"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "proposeSpotMarketUpdate",
        "docs": [
          "Announces one config field change and starts its notice period, as a new",
          "proposal account. Authority is per operation: the admin for anything, plus the",
          "hot pause key for a flag change that only disables — which is how the emergency",
          "stop works, since that tier has a zero notice period. Takes no timestamp. The",
          "PDA is seeded by the field being changed, so at most one change per field can be",
          "pending; replacing one is cancel then propose."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": [
              "The admin, or the `pauseAdmin` when the update only disables operations."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Read-only: a proposal writes nothing to the market."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "updateProposal",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 23
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "update",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "spotMarketConfigUpdate"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "applySpotMarketUpdate",
        "docs": [
          "Lands a matured proposal and closes it. Permissionless — no signer at all: the",
          "change was announced by the admin and has been readable on chain for its whole",
          "notice period. Reverts before `effectiveTs` and after the grace window that",
          "follows it. No arguments: passing the proposal is naming which change to land."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "updateProposal",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentRecipient",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The proposal's recorded `rentPayer`; the close refunds there."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 24
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "cancelSpotMarketUpdate",
        "docs": [
          "Withdraws an announced change, closing the proposal. Not timelocked itself,",
          "and the only way to stop a pending change — `applySpotMarketUpdate` is",
          "permissionless, so withholding it achieves nothing. Also how the rent on an",
          "expired proposal is reclaimed."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "updateProposal",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentRecipient",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The proposal's recorded `rentPayer`; the close refunds there."
            ]
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 25
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "claimAdmin",
        "docs": [
          "Step two of the admin handover: the key nominated by `updateGlobalConfig(PendingAdmin)` signs."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "pendingAdmin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 20
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "globalPauseSpotMarket",
        "docs": [
          "The emergency stop on every spot market: clears bits in `globalConfig.spotMarketFlags`, which the ops intersect with each market's own. Re-opening is `updateGlobalConfig(SpotMarketFlags)`, one operation at a time."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 26
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "pause",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "spotMarketPause"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "liquidateSpot",
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": true,
            "docs": [
              "Required when the signer is not the trader owner."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "liquidatee",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "collateralMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "collateralMint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "collateralVault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "liquidatorTokenAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "tokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 19
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "borrowAsset",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "softMaxBorrowRepaid",
            "type": {
              "kind": "optionTypeNode",
              "fixed": false,
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "u96"
              },
              "prefix": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "minBorrowCollateralRate",
            "type": {
              "kind": "optionTypeNode",
              "fixed": false,
              "item": {
                "kind": "numberTypeNode",
                "format": "u128",
                "endian": "le"
              },
              "prefix": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "withdrawCollateralLiquidated",
            "type": {
              "kind": "booleanTypeNode",
              "size": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "liquidatePerp",
        "docs": [
          "Closes part of a liquidatable account down to its maintenance deficit,",
          "priced inside the contract's band around the mark. Append every enabled",
          "maker except the liquidatee's, writable and strictly ascending by trader id,",
          "after the event authority and program accounts. The size and the price are",
          "the contract's, not the caller's."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "traderAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "delegateTraderAccount",
            "isWritable": false,
            "isSigner": false,
            "isOptional": true,
            "docs": [
              "Required when the signer is not the trader owner."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "liquidatee",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerp",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "quoting",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "orderBook",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 46
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "minFillLots",
            "docs": [
              "Reject the whole liquidation if fewer lots than this cross. `0` imposes no minimum, but an unfilled close is refused regardless."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "bookScan",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "orderBookScan"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "prunePerpOrders",
        "docs": [
          "Append writable trader accounts after the event accounts. Removes their expired orders permissionlessly."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "orderBook",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 58
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "forceCancelPerpOrders",
        "docs": [
          "Permissionlessly removes margin-reserving orders when the trader is under initial margin."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "trader",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotProductCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "orderBook",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 59
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "proposeLinearPerpUpdate",
        "docs": [
          "Announces one config field change and starts its notice period. Takes no",
          "timestamp: the notice period is per field, and zero for the funding flag and",
          "the two measurement knobs. The PDA is seeded by the field, so at most one",
          "change per field can be pending; replacing one is cancel then propose."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": [
              "Whichever role the announced field requires."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerp",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Read-only: a proposal writes nothing to the contract."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "updateProposal",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 51
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "update",
            "type": {
              "kind": "definedTypeLinkNode",
              "name": "linearPerpUpdate"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "applyLinearPerpUpdate",
        "docs": [
          "Lands a matured proposal and closes it. Permissionless, like its spot",
          "counterpart. Reverts before `effectiveTs` and after the grace window."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "linearPerp",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "linearPerpCache",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Carries the row's funding to the clock under the old parameters first."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "updateProposal",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentRecipient",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The proposal's recorded `rentPayer`; the close refunds there."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 52
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "cancelLinearPerpUpdate",
        "docs": [
          "Withdraws an announced change, closing the proposal. Not timelocked itself,",
          "and the only way to stop a pending change."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "updateProposal",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentRecipient",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The proposal's recorded `rentPayer`; the close refunds there."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "eventAuthority",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "pdaValueNode",
              "pda": {
                "kind": "pdaLinkNode",
                "name": "eventAuthority"
              }
            }
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "defaultValue": {
              "kind": "programIdValueNode"
            }
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 53
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "initializeOracles",
        "docs": [
          "Creates byte-identical compact published and working price caches and seeds both",
          "tier tables with the compiled defaults. Separate from",
          "`initializeProgram`, which knows nothing about these seeds, so the oracle stack",
          "can be brought up on a deployment that is already live. Rejects a cache that is",
          "already seeded."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCacheWorking",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 31
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "setOracleTiers",
        "docs": [
          "Replaces all four tier parameter blocks at once on the working cache. Entries on",
          "a changed tier become dirty and must be synced before publication.",
          "Taken whole because a partial edit would leave two tiers validated under",
          "different rules."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCacheWorking",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 32
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "tiers",
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "tierParams"
              },
              "count": {
                "kind": "fixedCountNode",
                "value": 4
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "assignOracleTier",
        "docs": [
          "Moves one registered entry to another tier on the working cache and invalidates",
          "its staged prices until the next sync. The spot product cache is not in the",
          "account list."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCacheWorking",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 33
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "oracleId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "tier",
            "docs": [
              "`0..=3`; an out-of-range byte is rejected."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "configureOracleSources",
        "docs": [
          "Binds one registered entry's four slots and writes the rich configuration",
          "that keeper sync uses to materialize the compact price projection. Feed identities",
          "are not in the payload —",
          "they arrive as the `slot0Feed`..`slot3Feed` metas and are authenticated by the",
          "sealed adapters, so a caller cannot name a feed the adapter did not check. A",
          "disabled slot uses provider kind `0` and the System Program",
          "`11111111111111111111111111111111` as its sentinel. A Lazer slot passes the",
          "sentinel too and names its feed in `lazerFeeds` instead.",
          "No price is read and no quorum is required: the entry stays unavailable until",
          "its first sync, and the row's published image is zeroed with the write.",
          "Validated against the tier the entry sits on now, and never re-validated."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCacheWorking",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleIngest",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The entry's keeper-private ingest, seeded by `oracleId`."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "slot0Feed",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "slot1Feed",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "slot2Feed",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "slot3Feed",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 34
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "oracleId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "configuredMask",
            "docs": [
              "Which of the four slots are in use; the other two masks are subsets of it."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "votingMask",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "soloAuthorityMask",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "providerKinds",
            "docs": [
              "`0` disabled, `1` Pyth pull, `2` Chainlink OCR2, `5` Pyth Lazer, `255` development oracle in development builds. The kind decides",
              "which adapter parses the slot; the slot position itself is anonymous."
            ],
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              },
              "count": {
                "kind": "fixedCountNode",
                "value": 4
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "pairFreshnessSeconds",
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              },
              "count": {
                "kind": "fixedCountNode",
                "value": 4
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "soloFreshnessSeconds",
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              },
              "count": {
                "kind": "fixedCountNode",
                "value": 4
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "futureToleranceSeconds",
            "docs": [
              "Instruction-width on purpose, though the row stores 16 bits: narrowing before",
              "the ceiling check would fold an out-of-range tolerance onto an accepted one."
            ],
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              },
              "count": {
                "kind": "fixedCountNode",
                "value": 4
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "maxTwapObservationGapSeconds",
            "type": {
              "kind": "numberTypeNode",
              "format": "u16",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "lazerFeeds",
            "docs": [
              "The feed each Lazer slot reads; zero on every other slot."
            ],
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "lazerFeedArgs"
              },
              "count": {
                "kind": "fixedCountNode",
                "value": 4
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "syncOracleSources",
        "docs": [
          "Reads each named entry's bound feeds and stages the image its next publication",
          "will copy. Permissionless: the feeds are pinned by the entry's own bindings, so",
          "a caller chooses which entries to pay for and nothing else.",
          "Append `[oracleIngest, slot0Feed, slot1Feed, slot2Feed, slot3Feed]` per id, in",
          "the order the ids appear, with `withRemainingAccounts`."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "oracleCacheWorking",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Writable compact staging cache: sync reads the tier table and writes only the materialized price row."
            ]
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 35
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "oracleIds",
            "docs": [
              "Strictly ascending, non-empty, at most 4 — enforced at decode, so the",
              "handler's cost is bounded before it runs."
            ],
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "syncLazerReport",
        "docs": [
          "Refreshes one entry's Lazer slot from a publisher-signed report and stages it on",
          "the working cache. Permissionless; the signature covers the payload bytes carried",
          "inside this instruction. The slot metas are the entry's bound feeds as",
          "`syncOracleSources` takes them; every report or disabled slot passes the sentinel.",
          "The ed25519 precompile built by `syncLazerReportEd25519InstructionData` must be",
          "the instruction immediately before."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "oracleCacheWorking",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleIngest",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The entry's keeper-private ingest, seeded by `oracleId`."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "slot0Feed",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "slot1Feed",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "slot2Feed",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "slot3Feed",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "reportPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false,
            "docs": [
              "Pays the verifier's per-update fee; above 10,000 lamports the sync is refused."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "lazerStorage",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The verifier's `Storage` PDA, `3rdJbqfnagQ4yx9HXJViD4zc4xpiSqmFsKpPuSCQVyQL`."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "lazerTreasury",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The treasury `lazerStorage` names at bytes 40..72. It differs per cluster, so",
              "read it there rather than hard-coding one."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "ixsSysvar",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The Instructions sysvar."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "lazerProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Pyth Lazer's verifier, `pytd2yyk641x7ak7mkaasSJVXh6YYZnC7wTmtgAyxPt`."
            ]
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 62
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "oracleId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "reportSlot",
            "docs": [
              "The Lazer slot the report refreshes."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "message",
            "docs": [
              "The signed Lazer message verbatim, 1..=512 bytes. Last, so it always starts at",
              "data byte 10, where the precompile's offsets point."
            ],
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "publishOracles",
        "docs": [
          "An already-published revision is rejected. Otherwise, requires the working cache",
          "to be clean, then copies its header, length, and every compact price row over the",
          "byte-identical published cache. Permissionless and argument-free."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "The publisher's only writable account."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCacheWorking",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Everything the admin and the keeper have written since the last publication."
            ]
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 36
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "registerOracleEntry",
        "docs": [
          "Registers an entry at the registry's dense tail, appending the row to both",
          "caches and creating its per-entry ingest PDA in the same fail-atomic",
          "instruction. Both caches grow so the pair stays the same length, which is what",
          "`publishOracles` requires."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "globalConfig",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "rentPayer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCacheWorking",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleCache",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false
          },
          {
            "kind": "instructionAccountNode",
            "name": "oracleIngest",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Created zeroed at the claimed `oracleId`; derive it with `findOracleIngestPda`."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 37
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "oracleId",
            "docs": [
              "The dense id this entry claims: the registry length before the append. Read it",
              "off chain to derive the ingest PDA seed; the handler rejects the registration",
              "unless the id it allocates matches, so a racing register cannot bind the PDA to",
              "the wrong entry."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "profile",
            "docs": [
              "`0` quorum (two or more voting sources), `1` single-source. Sealed here and",
              "never edited."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "unitDecimals",
            "docs": [
              "Decimals of the whole asset unit the entry's price is quoted per; cross-checked",
              "against the mint when a market binds to the entry."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "tier",
            "docs": [
              "Starting tier (`0..=3`). Explicit rather than defaulted: zero is the long-tail",
              "tier, and an entry that landed there silently would price under the widest band."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      }
    ],
    "definedTypes": [
      {
        "kind": "definedTypeNode",
        "name": "u96",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "low",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "high",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "flowCapConfig",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "capDeposit",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "capWithdraw",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxDeposit",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxWithdraw",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "perSecondRetention",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "createFundingArgs",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "impactNotionalAtoms",
              "docs": [
                "Depth the impact bid/ask are averaged over, in PnL-currency atoms. Zero quotes no book at all, leaving the carry as the whole rate."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "carryPerHour",
              "docs": [
                "Signed Q0.63 fraction of mark the premium is pulled toward."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "carryClamp",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxRatePerHour",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxRateMarginFactor",
              "docs": [
                "`k` in the second ceiling, `k * (imf - mmf)`. At least one."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxLevelDivergenceBps",
              "docs": [
                "At most 10000."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "ratePerSecondRetention",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxHoldSecs",
              "docs": [
                "Longest span one crank may charge. At least one second."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "fundingActive",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "depositAmount",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "atoms",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "numberTypeNode",
                    "format": "u64",
                    "endian": "le"
                  }
                ]
              }
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "coverDebt"
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "redeemAmount",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "atoms",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "numberTypeNode",
                    "format": "u64",
                    "endian": "le"
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "shares",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "structTypeNode",
                    "fields": [
                      {
                        "kind": "structFieldTypeNode",
                        "name": "low",
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u64",
                          "endian": "le"
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "high",
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u32",
                          "endian": "le"
                        }
                      }
                    ]
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "repayAmount",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "atoms",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "numberTypeNode",
                    "format": "u64",
                    "endian": "le"
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "shares",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "structTypeNode",
                    "fields": [
                      {
                        "kind": "structFieldTypeNode",
                        "name": "low",
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u64",
                          "endian": "le"
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "high",
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u32",
                          "endian": "le"
                        }
                      }
                    ]
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "globalConfigUpdate",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumStructVariantTypeNode",
              "name": "pendingAdmin",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "key",
                    "type": {
                      "kind": "fixedSizeTypeNode",
                      "size": 32,
                      "type": {
                        "kind": "bytesTypeNode"
                      }
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "pauseAdmin",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "key",
                    "type": {
                      "kind": "fixedSizeTypeNode",
                      "size": 32,
                      "type": {
                        "kind": "bytesTypeNode"
                      }
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "backstopMmRatio",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "flashloanEnabled",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "enabled",
                    "type": {
                      "kind": "booleanTypeNode",
                      "size": {
                        "kind": "numberTypeNode",
                        "format": "u8",
                        "endian": "le"
                      }
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "feeDestinationAuthority",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "key",
                    "type": {
                      "kind": "fixedSizeTypeNode",
                      "size": 32,
                      "type": {
                        "kind": "bytesTypeNode"
                      }
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "ifBorrowLendFeeShares",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "spotMarketFlags",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "definedTypeLinkNode",
                    "name": "spotMarketFlagUpdate"
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "maxSpotPositions",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u16",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "passkeyDomain",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "domain",
                    "type": {
                      "kind": "fixedSizeTypeNode",
                      "size": 64,
                      "type": {
                        "kind": "stringTypeNode",
                        "encoding": "utf8"
                      }
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "maxLinearPerpPositions",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u16",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "ifPerpFeeShares",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "insuranceFundConfigUpdate",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumStructVariantTypeNode",
              "name": "borrowLendSocializeLossMaxDraw",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotOp",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "deposit"
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "withdraw"
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "lend"
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "borrow"
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "redeem"
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "delegateOp",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "trade"
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "withdraw"
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "borrowLend"
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "quote"
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotMarketPause",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "op",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "definedTypeLinkNode",
                    "name": "spotOp"
                  }
                ]
              }
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "all"
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotMarketFlagUpdate",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumStructVariantTypeNode",
              "name": "op",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "op",
                    "type": {
                      "kind": "definedTypeLinkNode",
                      "name": "spotOp"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "enabled",
                    "type": {
                      "kind": "booleanTypeNode",
                      "size": {
                        "kind": "numberTypeNode",
                        "format": "u8",
                        "endian": "le"
                      }
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "disableAll"
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotMarketConfigUpdate",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumStructVariantTypeNode",
              "name": "depositWeight",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "borrowImf",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "borrowMmf",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "liquidationBonus",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "throttleRedeemUtilisation",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "throttleBorrowUtilisation",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "depositLimit",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "borrowLimit",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "flowCap",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "structTypeNode",
                    "fields": [
                      {
                        "kind": "structFieldTypeNode",
                        "name": "capDeposit",
                        "type": {
                          "kind": "booleanTypeNode",
                          "size": {
                            "kind": "numberTypeNode",
                            "format": "u8",
                            "endian": "le"
                          }
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "capWithdraw",
                        "type": {
                          "kind": "booleanTypeNode",
                          "size": {
                            "kind": "numberTypeNode",
                            "format": "u8",
                            "endian": "le"
                          }
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "maxDeposit",
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u64",
                          "endian": "le"
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "maxWithdraw",
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u64",
                          "endian": "le"
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "perSecondRetention",
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u64",
                          "endian": "le"
                        }
                      }
                    ]
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "flags",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "definedTypeLinkNode",
                    "name": "spotMarketFlagUpdate"
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "lendingRateFee",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "targetUtilisation",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpConfigUpdate",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumStructVariantTypeNode",
              "name": "maxOpenInterestLots",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "lots",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "liquidationFee",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "fee",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "liquidatorShare",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "share",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "maxLiquidationBand",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "band",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "liquidationNotional",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "minUsd",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "maxUsd",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "maxPositionLots",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "lots",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpFlagUpdate",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumStructVariantTypeNode",
              "name": "fundingActive",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "enabled",
                    "type": {
                      "kind": "booleanTypeNode",
                      "size": {
                        "kind": "numberTypeNode",
                        "format": "u8",
                        "endian": "le"
                      }
                    }
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpUpdate",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumStructVariantTypeNode",
              "name": "imf",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "mmf",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "unplWeight",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "impactNotional",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "atoms",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "maxRatePerHour",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "maxRateMarginFactor",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u16",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "carry",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "perHour",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "i64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "carryClamp",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "maxLevelDivergenceBps",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "value",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u16",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "rateRetention",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "perSecond",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "maxHold",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "secs",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "flags",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "definedTypeLinkNode",
                    "name": "linearPerpFlagUpdate"
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "podEnum",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "tag",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "data",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 64,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "delegateCredential",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "tag",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "data",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 448,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "solanaSignerCredential",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "signer",
              "type": {
                "kind": "publicKeyTypeNode"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "passkeyCredential",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "publicKey",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 33,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "rpIdHash",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 32,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "credentialId",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 255,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "origin",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 96,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "credentialIdLen",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "originLen",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "productInfo",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "id",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "flags",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "name",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 32,
                "type": {
                  "kind": "stringTypeNode",
                  "encoding": "utf8"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "details",
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "tag",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u8",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "data",
                    "type": {
                      "kind": "fixedSizeTypeNode",
                      "size": 64,
                      "type": {
                        "kind": "bytesTypeNode"
                      }
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotProductInfo",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "imf",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "mmf",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "depositWeight",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "liquidationBonus",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sharePrices",
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "deposit",
                    "type": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "low",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u64",
                            "endian": "le"
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "high",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u32",
                            "endian": "le"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "borrow",
                    "type": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "low",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u64",
                            "endian": "le"
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "high",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u32",
                            "endian": "le"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotProductInfoEntry",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "productId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "oracleId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "info",
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "imf",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "mmf",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "depositWeight",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "liquidationBonus",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "sharePrices",
                    "type": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "deposit",
                          "type": {
                            "kind": "structTypeNode",
                            "fields": [
                              {
                                "kind": "structFieldTypeNode",
                                "name": "low",
                                "type": {
                                  "kind": "numberTypeNode",
                                  "format": "u64",
                                  "endian": "le"
                                }
                              },
                              {
                                "kind": "structFieldTypeNode",
                                "name": "high",
                                "type": {
                                  "kind": "numberTypeNode",
                                  "format": "u32",
                                  "endian": "le"
                                }
                              }
                            ]
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "borrow",
                          "type": {
                            "kind": "structTypeNode",
                            "fields": [
                              {
                                "kind": "structFieldTypeNode",
                                "name": "low",
                                "type": {
                                  "kind": "numberTypeNode",
                                  "format": "u64",
                                  "endian": "le"
                                }
                              },
                              {
                                "kind": "structFieldTypeNode",
                                "name": "high",
                                "type": {
                                  "kind": "numberTypeNode",
                                  "format": "u32",
                                  "endian": "le"
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "staticValidUntil",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "fundingParams",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "impactNotionalAtoms",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "carryPerHour",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "carryClamp",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxRatePerHour",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxRateMarginFactor",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxLevelDivergenceBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "ratePerSecondRetention",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxHoldSecs",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "fundingPeriod",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "start",
              "type": {
                "kind": "numberTypeNode",
                "format": "i128",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "heldRate",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "startedAt",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "observedAt",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "fundingState",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "longIndex",
              "type": {
                "kind": "numberTypeNode",
                "format": "i128",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "shortIndex",
              "type": {
                "kind": "numberTypeNode",
                "format": "i128",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "period",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "fundingPeriod"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lastAdvancedAt",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "fundingCheckpoint",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "index",
              "type": {
                "kind": "numberTypeNode",
                "format": "i128",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "stampedAt",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "dust",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpInfo",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "imf",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "mmf",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "unplWeight",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "pnlCurrency",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "underlyingOracleId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "markPrice",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "tickSize",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "funding",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "fundingState"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpInfoEntry",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "productId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "info",
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "imf",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "mmf",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "unplWeight",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "pnlCurrency",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "underlyingOracleId",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "markPrice",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "tickSize",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "funding",
                    "type": {
                      "kind": "definedTypeLinkNode",
                      "name": "fundingState"
                    }
                  }
                ]
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "validUntil",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpPosition",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "entryContractLots",
              "type": {
                "kind": "numberTypeNode",
                "format": "i32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "entryTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "realisedPnlTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "fundingTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "feeTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "funding",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "fundingCheckpoint"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "openBidLots",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "openAskLots",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "openOrderCount",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "takerBound",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "limit",
              "docs": [
                "Worst level crossed: at or below it going long, at or above going short. Never zero."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "average",
              "docs": [
                "Worst fill VWAP in ticks per lot, fees excluded. Never zero."
              ],
              "type": {
                "kind": "optionTypeNode",
                "fixed": false,
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                },
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "perpOrderKind",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumStructVariantTypeNode",
              "name": "gtc",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "limit",
                    "docs": [
                      "Rest the remainder here until cancelled. Never zero."
                    ],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "postOnly",
                    "docs": [
                      "Refused if any of it crosses the makers passed."
                    ],
                    "type": {
                      "kind": "booleanTypeNode",
                      "size": {
                        "kind": "numberTypeNode",
                        "format": "u8",
                        "endian": "le"
                      }
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "gtd",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "limit",
                    "docs": [
                      "Never zero."
                    ],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "postOnly",
                    "docs": [
                      "Refused if any of it crosses the makers passed."
                    ],
                    "type": {
                      "kind": "booleanTypeNode",
                      "size": {
                        "kind": "numberTypeNode",
                        "format": "u8",
                        "endian": "le"
                      }
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "expiresAtSlot",
                    "docs": [
                      "The remainder rests until this slot; already past is refused."
                    ],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "ioc",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "bound",
                    "type": {
                      "kind": "definedTypeLinkNode",
                      "name": "takerBound"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "minFillLots",
                    "docs": [
                      "Refused below this many lots, or if nothing crosses."
                    ],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "fok",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "bound",
                    "type": {
                      "kind": "definedTypeLinkNode",
                      "name": "takerBound"
                    }
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "makerSide",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "buy"
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "sell"
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "orderBookScan",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "maxOrders",
              "docs": [
                "Orders read, including skipped ones. Zero skips the book; 4,294,967,295 is uncapped."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "fixedOptionU32",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "isSome",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "value",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "fixedOptionBool",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "isSome",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "value",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "fixedOptionU64",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "isSome",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "value",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "redBlackTreeHead",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "root",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "min",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "max",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "free",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "len",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "orderKey",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "rank",
              "docs": [
                "Ascending rank is best price first: inverse price for bids, price for asks."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "traderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "restingOrder",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "quantity",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "clientOrderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "reduceOnly",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "expiry",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "prev",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "next",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "traderOrders",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "bids",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "asks",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "len",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "quotingStrategyKind",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "orderList"
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "density"
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "relativeDensity"
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "quoteStream",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "order"
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "fair"
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "traderAuth",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "wallet"
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "passkey",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "nonce",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "validUntilSlot",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "clientDataJson",
                    "type": {
                      "kind": "arrayTypeNode",
                      "item": {
                        "kind": "numberTypeNode",
                        "format": "u8",
                        "endian": "le"
                      },
                      "count": {
                        "kind": "prefixedCountNode",
                        "prefix": {
                          "kind": "numberTypeNode",
                          "format": "u32",
                          "endian": "le"
                        }
                      }
                    }
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "direction",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "long"
            },
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "short"
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "orderListLevel",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "price",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "quantity",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "orderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "slotExpiry",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "densityFair",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "slot",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bidFair",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "askFair",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "densityBandOffset",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "density",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "startOffset",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "endOffset",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "slotDeltaExpiry",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "densityBandRelative",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "density",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "startOffset",
              "docs": [
                "Fraction of fair scaled by 2^32 - 1."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "endOffset",
              "docs": [
                "Fraction of fair scaled by 2^32 - 1."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "slotDeltaExpiry",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "orderListUpdate",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "sequence",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bids",
              "type": {
                "kind": "optionTypeNode",
                "fixed": false,
                "item": {
                  "kind": "arrayTypeNode",
                  "item": {
                    "kind": "definedTypeLinkNode",
                    "name": "orderListLevel"
                  },
                  "count": {
                    "kind": "prefixedCountNode",
                    "prefix": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                },
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "asks",
              "type": {
                "kind": "optionTypeNode",
                "fixed": false,
                "item": {
                  "kind": "arrayTypeNode",
                  "item": {
                    "kind": "definedTypeLinkNode",
                    "name": "orderListLevel"
                  },
                  "count": {
                    "kind": "prefixedCountNode",
                    "prefix": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                },
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "densityBandsUpdate",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "sequence",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bids",
              "type": {
                "kind": "optionTypeNode",
                "fixed": false,
                "item": {
                  "kind": "arrayTypeNode",
                  "item": {
                    "kind": "definedTypeLinkNode",
                    "name": "densityBandOffset"
                  },
                  "count": {
                    "kind": "prefixedCountNode",
                    "prefix": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                },
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "asks",
              "type": {
                "kind": "optionTypeNode",
                "fixed": false,
                "item": {
                  "kind": "arrayTypeNode",
                  "item": {
                    "kind": "definedTypeLinkNode",
                    "name": "densityBandOffset"
                  },
                  "count": {
                    "kind": "prefixedCountNode",
                    "prefix": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                },
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "relativeDensityBandsUpdate",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "sequence",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bids",
              "type": {
                "kind": "optionTypeNode",
                "fixed": false,
                "item": {
                  "kind": "arrayTypeNode",
                  "item": {
                    "kind": "definedTypeLinkNode",
                    "name": "densityBandRelative"
                  },
                  "count": {
                    "kind": "prefixedCountNode",
                    "prefix": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                },
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "asks",
              "type": {
                "kind": "optionTypeNode",
                "fixed": false,
                "item": {
                  "kind": "arrayTypeNode",
                  "item": {
                    "kind": "definedTypeLinkNode",
                    "name": "densityBandRelative"
                  },
                  "count": {
                    "kind": "prefixedCountNode",
                    "prefix": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                },
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "fairUpdate",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "sequence",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "fair",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "densityFair"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "quotingUpdate",
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "keep"
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "reset",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "definedTypeLinkNode",
                    "name": "quotingStrategyKind"
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "orderList",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "definedTypeLinkNode",
                    "name": "orderListUpdate"
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "densityFair",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "definedTypeLinkNode",
                    "name": "fairUpdate"
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "densityBands",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "definedTypeLinkNode",
                    "name": "densityBandsUpdate"
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "relativeDensityBands",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "definedTypeLinkNode",
                    "name": "relativeDensityBandsUpdate"
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "densityFairUpdate",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "entryIndex",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sequence",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "fair",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "densityFair"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "quotingSequenceReset",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "entryIndex",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "stream",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "quoteStream"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "expectedSequence",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "orderListSideUpdate",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "offset",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "count",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "orderListEntryUpdate",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "entryIndex",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sequence",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bids",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "orderListSideUpdate"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "asks",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "orderListSideUpdate"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "quotingStrategy",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "tag",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "data",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 1024,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "quotingEntry",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "traderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "flags",
              "docs": [
                "Bit 0 enabled; bit 1 released and available for another maker. A released slot carries 2, not a boolean."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "strategy",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "quotingStrategy"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotMarketAssetInfo",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "mint",
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "vault",
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "name",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 32,
                "type": {
                  "kind": "stringTypeNode",
                  "encoding": "utf8"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "decimals",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "flowCap",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "maxDeposit",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxWithdraw",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "perSecondRetention",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "flags",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "netFlow",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "exemptInflow",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lastUpdate",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "shareManager",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "totalShares",
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "low",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "high",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sharePrice",
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "low",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "high",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotShares",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "borrow",
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "totalShares",
                    "type": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "low",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u64",
                            "endian": "le"
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "high",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u32",
                            "endian": "le"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "sharePrice",
                    "type": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "low",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u64",
                            "endian": "le"
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "high",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u32",
                            "endian": "le"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "deposit",
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "totalShares",
                    "type": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "low",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u64",
                            "endian": "le"
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "high",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u32",
                            "endian": "le"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "sharePrice",
                    "type": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "low",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u64",
                            "endian": "le"
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "high",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u32",
                            "endian": "le"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "borrowLendVault",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "shares",
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "borrow",
                    "type": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "totalShares",
                          "type": {
                            "kind": "structTypeNode",
                            "fields": [
                              {
                                "kind": "structFieldTypeNode",
                                "name": "low",
                                "type": {
                                  "kind": "numberTypeNode",
                                  "format": "u64",
                                  "endian": "le"
                                }
                              },
                              {
                                "kind": "structFieldTypeNode",
                                "name": "high",
                                "type": {
                                  "kind": "numberTypeNode",
                                  "format": "u32",
                                  "endian": "le"
                                }
                              }
                            ]
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "sharePrice",
                          "type": {
                            "kind": "structTypeNode",
                            "fields": [
                              {
                                "kind": "structFieldTypeNode",
                                "name": "low",
                                "type": {
                                  "kind": "numberTypeNode",
                                  "format": "u64",
                                  "endian": "le"
                                }
                              },
                              {
                                "kind": "structFieldTypeNode",
                                "name": "high",
                                "type": {
                                  "kind": "numberTypeNode",
                                  "format": "u32",
                                  "endian": "le"
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "deposit",
                    "type": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "totalShares",
                          "type": {
                            "kind": "structTypeNode",
                            "fields": [
                              {
                                "kind": "structFieldTypeNode",
                                "name": "low",
                                "type": {
                                  "kind": "numberTypeNode",
                                  "format": "u64",
                                  "endian": "le"
                                }
                              },
                              {
                                "kind": "structFieldTypeNode",
                                "name": "high",
                                "type": {
                                  "kind": "numberTypeNode",
                                  "format": "u32",
                                  "endian": "le"
                                }
                              }
                            ]
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "sharePrice",
                          "type": {
                            "kind": "structTypeNode",
                            "fields": [
                              {
                                "kind": "structFieldTypeNode",
                                "name": "low",
                                "type": {
                                  "kind": "numberTypeNode",
                                  "format": "u64",
                                  "endian": "le"
                                }
                              },
                              {
                                "kind": "structFieldTypeNode",
                                "name": "high",
                                "type": {
                                  "kind": "numberTypeNode",
                                  "format": "u32",
                                  "endian": "le"
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lendingRateFee",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "protocolFeeAtoms",
              "type": {
                "kind": "numberTypeNode",
                "format": "u128",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "interestCurve",
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "c",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "target",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lastAccrualTs",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "flags",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linkedListHead",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "firstIndex",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "len",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "capacity",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "balanceShares",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "depositShares",
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "low",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "high",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "borrowShares",
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "low",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "high",
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u32",
                      "endian": "le"
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotPosition",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "spotId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "isolatedDeposit",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "shares",
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "depositShares",
                    "type": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "low",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u64",
                            "endian": "le"
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "high",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u32",
                            "endian": "le"
                          }
                        }
                      ]
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "borrowShares",
                    "type": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "low",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u64",
                            "endian": "le"
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "high",
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u32",
                            "endian": "le"
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "tierParams",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "maxConfBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxMoveBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxSourceDivergenceBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxPublishTimeSkewSeconds",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "confCapBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "divergenceCapBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bandFloorBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "fallbackSlopeBpsPerSecond",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bandMaxBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "emaTauSeconds",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "emaMaxDeviationBps",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u16",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxPairFreshnessSeconds",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxSoloFreshnessSeconds",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "riskOffMaxAgeSeconds",
              "docs": [
                "Maximum age of the last accepted risk-off fair price, anchored to its selected source observation."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "entryMeta",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "oracleId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "profile",
              "docs": [
                "`0` quorum, `1` single-source."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "unitDecimals",
              "docs": [
                "Decimals of the whole asset unit the entry is quoted per; checked against a mint at listing."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "tier",
              "docs": [
                "Index into the header tier table (`0..=3`)."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "reserved",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 9,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "entryConfig",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "configuredMask",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "votingMask",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "soloAuthorityMask",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "pairFreshnessSeconds",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "soloFreshnessSeconds",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "futureToleranceSeconds",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u16",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maxTwapObservationGapSeconds",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "reserved",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 2,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "slotSample",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "price",
              "docs": [
                "Already scaled to risk atoms at sync, from the entry's sealed `unitDecimals`."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "publishTime",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "confBps",
              "docs": [
                "Zero when bit 1 of `valid` is set: the provider publishes no confidence of its own and the tier's cap is applied during materialization."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "valid",
              "docs": [
                "Bit 0 structural validity, bit 1 confidence substituted; the rest are write-only sync diagnostics."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "oracleSnapshot",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "slots",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "definedTypeLinkNode",
                  "name": "slotSample"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "mode",
              "docs": [
                "`0` unavailable, `1` quorum, `2` subquorum, `3` solo, `4` dispute."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "memberMask",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "authoritySlot",
              "docs": [
                "`255` when no slot holds authority."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "edges",
              "docs": [
                "Compatibility bits plus the coherent-cohort bit; diagnostic only."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "reserved",
              "docs": [
                "Reserved and required to be zero."
              ],
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 2,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "authorityDispersionBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "cliqueSpreadBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "twapDeviationBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "emaDeviationBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "boundary",
              "docs": [
                "Mode-tagged: the deviation lease end under quorum, the degradation start under solo and subquorum, invalid otherwise."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "evaluatedAt",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "revision",
              "docs": [
                "Write-only ops signal; nothing gates on it."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "causes",
              "docs": [
                "Write-only sync condition flags."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "riskOnQuote",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "fairPrice",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "evaluatedAt",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "authorityDeadline",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "evidenceDeadline",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "wideningStart",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "baseBandBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bandMaxBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "fallbackSlopeBpsPerSecond",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "schedule",
              "docs": [
                "`0` unavailable, `1` quorum, `2` fallback."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "reserved",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 1,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "riskOffQuote",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "fairPrice",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sourceObservationTime",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "acceptedAt",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "validUntil",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "availability",
              "docs": [
                "`0` unavailable, `1` available."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "reserved",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 3,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "oraclePrices",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "meta",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "entryMeta"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "definitionGeneration",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "projectionDefinitionGeneration",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "projectionTierGeneration",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "riskOn",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "riskOnQuote"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "riskOff",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "riskOffQuote"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "decimalPrice",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "mantissa",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "exponent",
              "type": {
                "kind": "numberTypeNode",
                "format": "i32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "sourceBinding",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "tag",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "data",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 66,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "lazerFeedArgs",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "feedId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "exponent",
              "docs": [
                "A wrong exponent leaves the slot dark: every report at another scale is refused."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "i16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "minPublishers",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "sourceCursor",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "publishTime",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sequence",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "payloadDigest",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 32,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "sourceObservation",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "price",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "decimalPrice"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "effectiveUncertaintyBps",
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "twapBucket",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "priceSeconds",
              "type": {
                "kind": "numberTypeNode",
                "format": "u128",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "emaState",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "values",
              "docs": [
                "Q32.32 accumulator per window; zero means no history."
              ],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u64",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "coverageStarted",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lastObservation",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "configuredTauSeconds",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "twapState",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "buckets",
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "definedTypeLinkNode",
                  "name": "twapBucket"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 10
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "readyPrice",
              "docs": [
                "Cached ten-bucket average, or zero until a full window exists."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "currentPriceSeconds",
              "type": {
                "kind": "numberTypeNode",
                "format": "u128",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lastPrice",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lastPublishTime",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "pairValidUntil",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "memberMask",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "completedBuckets",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "currentCompleteFromStart",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "ema",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "emaState"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "depositBorrowSharePrice",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "deposit",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "u96"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "borrow",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "u96"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotPositionState",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "isolated",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "depositShares",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "u96"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "borrowShares",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "u96"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotPositionChange",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "before",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "spotPositionState"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "after",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "spotPositionState"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotMarketState",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "isolated",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "depositShares",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "u96"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "borrowShares",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "u96"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sharePrices",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "depositBorrowSharePrice"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "levelSource",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "tag",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "data",
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 20,
                "type": {
                  "kind": "bytesTypeNode"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotBorrowLendVaultAccrualEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "spotId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "accrualTs",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "chargedUtilisation",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "chargedBorrowRate",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "feeBooked",
              "type": {
                "kind": "numberTypeNode",
                "format": "u128",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "curveCAfter",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sharePrices",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "depositBorrowSharePrice"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotOpEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "traderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "spotId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "origin",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "position",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "spotPositionChange"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "marketAfter",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "spotMarketState"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotSocializeLossEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "traderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "spotId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "position",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "spotPositionChange"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "loss",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "u96"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "insuranceDrawn",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "marketAfter",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "spotMarketState"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotBorrowLendFeesCollectedEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "spotId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "insuranceFundAtoms",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "destinationAtoms",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotMarketConfigUpdatedEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "spotId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "updateKind",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "depositWeight",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "borrowImf",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "borrowMmf",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "liquidationBonus",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "throttleRedeemUtilisation",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "throttleBorrowUtilisation",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lendingRateFee",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "targetUtilisation",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "depositLimit",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "borrowLimit",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "marketFlags",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "vaultFlags",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpTradeEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "makerId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "takerId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "priceTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lots",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "ticks",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "takerFeeTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerRebateTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "takerIsLong",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sequence",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "source",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "levelSource"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpFillEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "traderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lots",
              "type": {
                "kind": "numberTypeNode",
                "format": "i32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "ticks",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "realisedPnl",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "feeTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "reduceOnly",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpPnlSettledEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "traderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "pnlCurrency",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "settledTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "pnlSettlePoolTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpFeesCollectedEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "pnlCurrency",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "insuranceFundAtoms",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "destinationAtoms",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpLiquidatedEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "liquidateeId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "liquidatorId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lots",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "ticks",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "liquidationFeeTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "liquidatorTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "deficitBefore",
              "type": {
                "kind": "numberTypeNode",
                "format": "u128",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "deficitAfter",
              "type": {
                "kind": "numberTypeNode",
                "format": "u128",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpFundingUpdatedEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "at",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "mark",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "impactBid",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "impactAsk",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "premiumX32",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "heldRate",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "longIndex",
              "type": {
                "kind": "numberTypeNode",
                "format": "i128",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "advancedSecs",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "updateKind",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "flags",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpFundingSettledEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "traderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lots",
              "type": {
                "kind": "numberTypeNode",
                "format": "i32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "indexBefore",
              "type": {
                "kind": "numberTypeNode",
                "format": "i128",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "indexAfter",
              "type": {
                "kind": "numberTypeNode",
                "format": "i128",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "ticks",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpConfigUpdatedEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "updateKind",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "imf",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "mmf",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "unplWeight",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "flags",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "funding",
              "type": {
                "kind": "definedTypeLinkNode",
                "name": "fundingParams"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpFundingAdvancedEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "at",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "advancedSecs",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "heldRate",
              "type": {
                "kind": "numberTypeNode",
                "format": "i64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "longIndex",
              "type": {
                "kind": "numberTypeNode",
                "format": "i128",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpUpdateProposedEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "updateKind",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "effectiveTs",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpUpdateCancelledEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "updateKind",
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpOrderPostedEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "traderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "clientOrderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "priceTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lots",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "isBid",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "reduceOnly",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "expiresAtSlot",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpOrderCancelledEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "traderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "clientOrderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "priceTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "isBid",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "remainingLots",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearPerpOrderFilledEvent",
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "traderId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "linearPerpId",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "priceTicks",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "isBid",
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lots",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "remainingLots",
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      }
    ],
    "pdas": [
      {
        "kind": "pdaNode",
        "name": "globalConfig",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "global_config"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "productCatalog",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "product_catalog"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "spotProductCache",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "spot_product_cache"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "linearPerpCache",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "linear_perp_cache"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "crossMarginInsuranceFund",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "cross_margin_if"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "oracleCache",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "oracle_cache"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "oracleCacheWorking",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "oracle_cache_working"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "oracleIngest",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "oracle_ingest"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "oracleId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "linearPerp",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "linear_perp"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "quoting",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "quoting"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "orderBook",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "order_book"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "linearPerpId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "eventAuthority",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "__event_authority"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "spotMarket",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "spot_market"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "mint",
            "type": {
              "kind": "publicKeyTypeNode"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "traderAccount",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "trader_account"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "traderId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "delegateTraderAccount",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "delegate_trader"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "traderId",
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "delegate",
            "type": {
              "kind": "publicKeyTypeNode"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "spotMarketUpdateProposal",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "spot_market_update"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "spotMarket",
            "type": {
              "kind": "publicKeyTypeNode"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "updateKind",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "linearPerpUpdateProposal",
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "linear_perp_update"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "linearPerp",
            "type": {
              "kind": "publicKeyTypeNode"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "updateKind",
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          }
        ]
      }
    ],
    "errors": [
      {
        "kind": "errorNode",
        "name": "mathError",
        "code": 1,
        "message": "MathError"
      },
      {
        "kind": "errorNode",
        "name": "generic",
        "code": 2,
        "message": "Generic"
      },
      {
        "kind": "errorNode",
        "name": "healthCheckFailed",
        "code": 3,
        "message": "HealthCheckFailed"
      },
      {
        "kind": "errorNode",
        "name": "healthyAccountCantBeLiquidated",
        "code": 4,
        "message": "HealthyAccountCantBeLiquidated"
      },
      {
        "kind": "errorNode",
        "name": "liquidationDidNotDecreaseDeficit",
        "code": 5,
        "message": "LiquidationDidNotDecreaseDeficit"
      },
      {
        "kind": "errorNode",
        "name": "utilisationThrottled",
        "code": 6,
        "message": "UtilisationThrottled"
      },
      {
        "kind": "errorNode",
        "name": "utilisationOverflow",
        "code": 7,
        "message": "UtilisationOverflow"
      },
      {
        "kind": "errorNode",
        "name": "invalidClock",
        "code": 8,
        "message": "InvalidClock"
      },
      {
        "kind": "errorNode",
        "name": "flashloanDisabled",
        "code": 9,
        "message": "FlashloanDisabled"
      },
      {
        "kind": "errorNode",
        "name": "illegalFlashloan",
        "code": 10,
        "message": "IllegalFlashloan"
      },
      {
        "kind": "errorNode",
        "name": "redeemBelowMinimum",
        "code": 11,
        "message": "RedeemBelowMinimum"
      },
      {
        "kind": "errorNode",
        "name": "depositLimitExceeded",
        "code": 12,
        "message": "DepositLimitExceeded"
      },
      {
        "kind": "errorNode",
        "name": "borrowLimitExceeded",
        "code": 13,
        "message": "BorrowLimitExceeded"
      },
      {
        "kind": "errorNode",
        "name": "flowCapExceeded",
        "code": 14,
        "message": "FlowCapExceeded"
      },
      {
        "kind": "errorNode",
        "name": "operationDisabled",
        "code": 15,
        "message": "OperationDisabled"
      },
      {
        "kind": "errorNode",
        "name": "liquidationCapLeavesDustBorrow",
        "code": 16,
        "message": "LiquidationCapLeavesDustBorrow"
      },
      {
        "kind": "errorNode",
        "name": "selfPositionTransfer",
        "code": 17,
        "message": "SelfPositionTransfer"
      },
      {
        "kind": "errorNode",
        "name": "accountNotDistressed",
        "code": 18,
        "message": "AccountNotDistressed"
      },
      {
        "kind": "errorNode",
        "name": "invalidFeeDestination",
        "code": 19,
        "message": "InvalidFeeDestination"
      },
      {
        "kind": "errorNode",
        "name": "nothingToCollect",
        "code": 20,
        "message": "NothingToCollect"
      },
      {
        "kind": "errorNode",
        "name": "updateNotYetEffective",
        "code": 21,
        "message": "UpdateNotYetEffective"
      },
      {
        "kind": "errorNode",
        "name": "updateExpired",
        "code": 22,
        "message": "UpdateExpired"
      },
      {
        "kind": "errorNode",
        "name": "unsupportedMintExtension",
        "code": 23,
        "message": "UnsupportedMintExtension"
      },
      {
        "kind": "errorNode",
        "name": "vaultAlreadyInitialized",
        "code": 24,
        "message": "VaultAlreadyInitialized"
      },
      {
        "kind": "errorNode",
        "name": "sharePoolNotEmpty",
        "code": 25,
        "message": "SharePoolNotEmpty"
      },
      {
        "kind": "errorNode",
        "name": "lendingRateFeeTooHigh",
        "code": 26,
        "message": "LendingRateFeeTooHigh"
      },
      {
        "kind": "errorNode",
        "name": "targetUtilisationOutOfRange",
        "code": 27,
        "message": "TargetUtilisationOutOfRange"
      },
      {
        "kind": "errorNode",
        "name": "spotPositionLimitExceeded",
        "code": 28,
        "message": "SpotPositionLimitExceeded"
      },
      {
        "kind": "errorNode",
        "name": "invalidDelegateScope",
        "code": 29,
        "message": "InvalidDelegateScope"
      },
      {
        "kind": "errorNode",
        "name": "secp256r1InstructionMalformed",
        "code": 30,
        "message": "Secp256r1InstructionMalformed"
      },
      {
        "kind": "errorNode",
        "name": "passkeyNotTopLevel",
        "code": 31,
        "message": "PasskeyNotTopLevel"
      },
      {
        "kind": "errorNode",
        "name": "passkeyPrecompileMissing",
        "code": 32,
        "message": "PasskeyPrecompileMissing"
      },
      {
        "kind": "errorNode",
        "name": "passkeyIntrospectionFailed",
        "code": 33,
        "message": "PasskeyIntrospectionFailed"
      },
      {
        "kind": "errorNode",
        "name": "passkeyTooManyAccounts",
        "code": 34,
        "message": "PasskeyTooManyAccounts"
      },
      {
        "kind": "errorNode",
        "name": "passkeyCredentialMismatch",
        "code": 35,
        "message": "PasskeyCredentialMismatch"
      },
      {
        "kind": "errorNode",
        "name": "passkeyRpIdMismatch",
        "code": 36,
        "message": "PasskeyRpIdMismatch"
      },
      {
        "kind": "errorNode",
        "name": "passkeyUserNotVerified",
        "code": 37,
        "message": "PasskeyUserNotVerified"
      },
      {
        "kind": "errorNode",
        "name": "passkeyClientDataMismatch",
        "code": 38,
        "message": "PasskeyClientDataMismatch"
      },
      {
        "kind": "errorNode",
        "name": "passkeyIntentExpired",
        "code": 39,
        "message": "PasskeyIntentExpired"
      },
      {
        "kind": "errorNode",
        "name": "passkeyIntentLifetimeTooLong",
        "code": 40,
        "message": "PasskeyIntentLifetimeTooLong"
      },
      {
        "kind": "errorNode",
        "name": "passkeyNonceMismatch",
        "code": 41,
        "message": "PasskeyNonceMismatch"
      },
      {
        "kind": "errorNode",
        "name": "passkeyNotAuthorized",
        "code": 42,
        "message": "PasskeyNotAuthorized"
      },
      {
        "kind": "errorNode",
        "name": "passkeyCredentialInvalid",
        "code": 43,
        "message": "PasskeyCredentialInvalid"
      },
      {
        "kind": "errorNode",
        "name": "unknownDelegateCredential",
        "code": 44,
        "message": "UnknownDelegateCredential"
      },
      {
        "kind": "errorNode",
        "name": "passkeyDomainInvalid",
        "code": 45,
        "message": "PasskeyDomainInvalid"
      },
      {
        "kind": "errorNode",
        "name": "oracleIngestConfiguration",
        "code": 46,
        "message": "OracleIngestConfiguration"
      },
      {
        "kind": "errorNode",
        "name": "oracleTierConfiguration",
        "code": 47,
        "message": "OracleTierConfiguration"
      },
      {
        "kind": "errorNode",
        "name": "marketBankrupt",
        "code": 48,
        "message": "MarketBankrupt"
      },
      {
        "kind": "errorNode",
        "name": "oracleRevisionAlreadyPublished",
        "code": 49,
        "message": "OracleRevisionAlreadyPublished"
      },
      {
        "kind": "errorNode",
        "name": "perpOrderLotsExceedPositionWidth",
        "code": 50,
        "message": "PerpOrderLotsExceedPositionWidth"
      },
      {
        "kind": "errorNode",
        "name": "perpOrderAverageBeyondLimit",
        "code": 51,
        "message": "PerpOrderAverageBeyondLimit"
      },
      {
        "kind": "errorNode",
        "name": "perpOrderFilledBelowMinimum",
        "code": 52,
        "message": "PerpOrderFilledBelowMinimum"
      },
      {
        "kind": "errorNode",
        "name": "perpOrderUnfilled",
        "code": 53,
        "message": "PerpOrderUnfilled"
      },
      {
        "kind": "errorNode",
        "name": "linearPerpPositionLimitExceeded",
        "code": 54,
        "message": "LinearPerpPositionLimitExceeded"
      },
      {
        "kind": "errorNode",
        "name": "linearPerpOpenInterestCapExceeded",
        "code": 55,
        "message": "LinearPerpOpenInterestCapExceeded"
      },
      {
        "kind": "errorNode",
        "name": "linearPerpMarkExpired",
        "code": 56,
        "message": "LinearPerpMarkExpired"
      },
      {
        "kind": "errorNode",
        "name": "perpOrderNothingToReduce",
        "code": 57,
        "message": "PerpOrderNothingToReduce"
      },
      {
        "kind": "errorNode",
        "name": "perpOrderReducibleBelowMinimum",
        "code": 58,
        "message": "PerpOrderReducibleBelowMinimum"
      },
      {
        "kind": "errorNode",
        "name": "noRealisedPnlToSettle",
        "code": 59,
        "message": "NoRealisedPnlToSettle"
      },
      {
        "kind": "errorNode",
        "name": "pnlSettlePoolExhausted",
        "code": 60,
        "message": "PnlSettlePoolExhausted"
      },
      {
        "kind": "errorNode",
        "name": "linearPerpPnlCurrencyMismatch",
        "code": 61,
        "message": "LinearPerpPnlCurrencyMismatch"
      },
      {
        "kind": "errorNode",
        "name": "positionDoesntExist",
        "code": 62,
        "message": "PositionDoesntExist"
      },
      {
        "kind": "errorNode",
        "name": "insufficientIsolatedDeposit",
        "code": 63,
        "message": "InsufficientIsolatedDeposit"
      },
      {
        "kind": "errorNode",
        "name": "insufficientDepositToRepay",
        "code": 64,
        "message": "InsufficientDepositToRepay"
      },
      {
        "kind": "errorNode",
        "name": "noDebtToSocialize",
        "code": 65,
        "message": "NoDebtToSocialize"
      },
      {
        "kind": "errorNode",
        "name": "socializedAccountHoldsCollateral",
        "code": 66,
        "message": "SocializedAccountHoldsCollateral"
      },
      {
        "kind": "errorNode",
        "name": "liquidationPairMismatch",
        "code": 67,
        "message": "LiquidationPairMismatch"
      },
      {
        "kind": "errorNode",
        "name": "liquidationTransferredNothing",
        "code": 68,
        "message": "LiquidationTransferredNothing"
      },
      {
        "kind": "errorNode",
        "name": "liquidationExchangeUnfair",
        "code": 69,
        "message": "LiquidationExchangeUnfair"
      },
      {
        "kind": "errorNode",
        "name": "liquidationCollateralBelowMinimum",
        "code": 70,
        "message": "LiquidationCollateralBelowMinimum"
      },
      {
        "kind": "errorNode",
        "name": "liquidationDebtAboveMaximum",
        "code": 71,
        "message": "LiquidationDebtAboveMaximum"
      },
      {
        "kind": "errorNode",
        "name": "backstopGivesDebt",
        "code": 72,
        "message": "BackstopGivesDebt"
      },
      {
        "kind": "errorNode",
        "name": "backstopAssetNotHeld",
        "code": 73,
        "message": "BackstopAssetNotHeld"
      },
      {
        "kind": "errorNode",
        "name": "backstopExchangeUnfair",
        "code": 74,
        "message": "BackstopExchangeUnfair"
      },
      {
        "kind": "errorNode",
        "name": "settlementExceedsPendingTicks",
        "code": 75,
        "message": "SettlementExceedsPendingTicks"
      },
      {
        "kind": "errorNode",
        "name": "perpOrderSelfMatch",
        "code": 76,
        "message": "PerpOrderSelfMatch"
      },
      {
        "kind": "errorNode",
        "name": "perpOrderMakersUnordered",
        "code": 77,
        "message": "PerpOrderMakersUnordered"
      },
      {
        "kind": "errorNode",
        "name": "spotProductNotCached",
        "code": 78,
        "message": "SpotProductNotCached"
      },
      {
        "kind": "errorNode",
        "name": "linearPerpNotCached",
        "code": 79,
        "message": "LinearPerpNotCached"
      },
      {
        "kind": "errorNode",
        "name": "settlementBelowMinimum",
        "code": 80,
        "message": "SettlementBelowMinimum"
      },
      {
        "kind": "errorNode",
        "name": "feeCollectionBelowMinimum",
        "code": 81,
        "message": "FeeCollectionBelowMinimum"
      },
      {
        "kind": "errorNode",
        "name": "perpLiquidationNothingToClose",
        "code": 82,
        "message": "PerpLiquidationNothingToClose"
      },
      {
        "kind": "errorNode",
        "name": "perpLiquidationMakersIncomplete",
        "code": 83,
        "message": "PerpLiquidationMakersIncomplete"
      },
      {
        "kind": "errorNode",
        "name": "backstopPerpNotHeld",
        "code": 84,
        "message": "BackstopPerpNotHeld"
      },
      {
        "kind": "errorNode",
        "name": "backstopTakeNothing",
        "code": 85,
        "message": "BackstopTakeNothing"
      },
      {
        "kind": "errorNode",
        "name": "backstopLeftoverBelowMinimum",
        "code": 86,
        "message": "BackstopLeftoverBelowMinimum"
      },
      {
        "kind": "errorNode",
        "name": "accountLeverageExceeded",
        "code": 87,
        "message": "AccountLeverageExceeded"
      },
      {
        "kind": "errorNode",
        "name": "perpOrderWouldCross",
        "code": 88,
        "message": "PerpOrderWouldCross"
      },
      {
        "kind": "errorNode",
        "name": "perpOrderNotFound",
        "code": 89,
        "message": "PerpOrderNotFound"
      },
      {
        "kind": "errorNode",
        "name": "perpOpenOrderLimitExceeded",
        "code": 90,
        "message": "PerpOpenOrderLimitExceeded"
      },
      {
        "kind": "errorNode",
        "name": "linearPerpPositionSizeExceeded",
        "code": 91,
        "message": "LinearPerpPositionSizeExceeded"
      },
      {
        "kind": "errorNode",
        "name": "perpOrderExpired",
        "code": 92,
        "message": "PerpOrderExpired"
      },
      {
        "kind": "errorNode",
        "name": "perpNothingToPrune",
        "code": 93,
        "message": "PerpNothingToPrune"
      },
      {
        "kind": "errorNode",
        "name": "perpOrderMinimumUnreachable",
        "code": 94,
        "message": "PerpOrderMinimumUnreachable"
      },
      {
        "kind": "errorNode",
        "name": "perpForceCancelMarginMet",
        "code": 95,
        "message": "PerpForceCancelMarginMet"
      },
      {
        "kind": "errorNode",
        "name": "perpForceCancelNothingReserved",
        "code": 96,
        "message": "PerpForceCancelNothingReserved"
      }
    ]
  }
}
