{
  "kind": "rootNode",
  "standard": "codama",
  "version": "1.7.0",
  "program": {
    "kind": "programNode",
    "name": "sweetspot",
    "publicKey": "FLiNTXPwppyoJabCoxc2uiiRygAHpmMXajiDXo2Ub1z",
    "version": "1.0.0",
    "docs": [],
    "accounts": [
      {
        "kind": "accountNode",
        "name": "globalMarket",
        "docs": [],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "docs": [],
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "1f7a1a4b9ebd64a9",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bump",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "quoteDecimals",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "marketStatus",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "quoteTokenProgramKind",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "nextSpotId",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "nextMakerId",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "name",
              "docs": [],
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 32,
                "type": {
                  "kind": "stringTypeNode",
                  "encoding": "utf8"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "admin",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "quoteCurrency",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "quoteVault",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "balancesLen",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "feeHbps",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "registeredSpotMarket",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "publicKeyTypeNode"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 64
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "collectedFees",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "feeDestination",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "reserved",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 32
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "balances",
              "docs": [
                "One Balance per maker, indexed by makerId. Truncate to the header `balancesLen`."
              ],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "structTypeNode",
                  "fields": [
                    {
                      "kind": "structFieldTypeNode",
                      "name": "balance",
                      "docs": [],
                      "type": {
                        "kind": "numberTypeNode",
                        "format": "u64",
                        "endian": "le"
                      }
                    },
                    {
                      "kind": "structFieldTypeNode",
                      "name": "softMaxBalance",
                      "docs": [],
                      "type": {
                        "kind": "numberTypeNode",
                        "format": "u64",
                        "endian": "le"
                      }
                    }
                  ]
                },
                "count": {
                  "kind": "remainderCountNode"
                }
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "globalMarket"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "spotMarket",
        "docs": [],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "docs": [],
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "81a205295000c838",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "fastFairEntries",
              "docs": [
                "Per-maker cached fast-fair write offsets (family-tagged u32)."
              ],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 64
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "decimals",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bump",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "spotIndex",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "tokenProgramKind",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "marketStatus",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "pad",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 2
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "feeHbps",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "pad2",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "name",
              "docs": [],
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 32,
                "type": {
                  "kind": "stringTypeNode",
                  "encoding": "utf8"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "mint",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "vault",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "collectedFees",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "atomsPerContractLots",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "microBooksLen",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerSequence",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "reserved",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 64
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "microBooks",
              "docs": [
                "One SpotMakerMicroBook per maker. Truncate to the header `microBooksLen`."
              ],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "structTypeNode",
                  "fields": [
                    {
                      "kind": "structFieldTypeNode",
                      "name": "enable",
                      "docs": [],
                      "type": {
                        "kind": "booleanTypeNode",
                        "size": {
                          "kind": "numberTypeNode",
                          "format": "u8",
                          "endian": "le"
                        }
                      }
                    },
                    {
                      "kind": "structFieldTypeNode",
                      "name": "adminDisabled",
                      "docs": [],
                      "type": {
                        "kind": "booleanTypeNode",
                        "size": {
                          "kind": "numberTypeNode",
                          "format": "u8",
                          "endian": "le"
                        }
                      }
                    },
                    {
                      "kind": "structFieldTypeNode",
                      "name": "makerId",
                      "docs": [],
                      "type": {
                        "kind": "numberTypeNode",
                        "format": "u16",
                        "endian": "le"
                      }
                    },
                    {
                      "kind": "structFieldTypeNode",
                      "name": "padding",
                      "docs": [],
                      "type": {
                        "kind": "arrayTypeNode",
                        "item": {
                          "kind": "numberTypeNode",
                          "format": "u8",
                          "endian": "le"
                        },
                        "count": {
                          "kind": "fixedCountNode",
                          "value": 4
                        }
                      }
                    },
                    {
                      "kind": "structFieldTypeNode",
                      "name": "orderSequence",
                      "docs": [],
                      "type": {
                        "kind": "numberTypeNode",
                        "format": "u64",
                        "endian": "le"
                      }
                    },
                    {
                      "kind": "structFieldTypeNode",
                      "name": "balance",
                      "docs": [],
                      "type": {
                        "kind": "structTypeNode",
                        "fields": [
                          {
                            "kind": "structFieldTypeNode",
                            "name": "balance",
                            "docs": [],
                            "type": {
                              "kind": "numberTypeNode",
                              "format": "u64",
                              "endian": "le"
                            }
                          },
                          {
                            "kind": "structFieldTypeNode",
                            "name": "softMaxBalance",
                            "docs": [],
                            "type": {
                              "kind": "numberTypeNode",
                              "format": "u64",
                              "endian": "le"
                            }
                          }
                        ]
                      }
                    },
                    {
                      "kind": "structFieldTypeNode",
                      "name": "crossParams",
                      "docs": [
                        "`OptionalU32NoneAsMax` per spot: u32::MAX (4294967295) = crossing disabled."
                      ],
                      "type": {
                        "kind": "arrayTypeNode",
                        "item": {
                          "kind": "numberTypeNode",
                          "format": "u32",
                          "endian": "le"
                        },
                        "count": {
                          "kind": "fixedCountNode",
                          "value": 64
                        }
                      }
                    },
                    {
                      "kind": "structFieldTypeNode",
                      "name": "quoting",
                      "docs": [],
                      "type": {
                        "kind": "structTypeNode",
                        "fields": [
                          {
                            "kind": "structFieldTypeNode",
                            "name": "kind",
                            "docs": [],
                            "type": {
                              "kind": "numberTypeNode",
                              "format": "u32",
                              "endian": "le"
                            }
                          },
                          {
                            "kind": "structFieldTypeNode",
                            "name": "data",
                            "docs": [
                              "Opaque strategy union; interpret by `kind`."
                            ],
                            "type": {
                              "kind": "fixedSizeTypeNode",
                              "size": 1400,
                              "type": {
                                "kind": "bytesTypeNode"
                              }
                            }
                          }
                        ]
                      }
                    }
                  ]
                },
                "count": {
                  "kind": "remainderCountNode"
                }
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "spotMarket"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "accountNode",
        "name": "maker",
        "docs": [],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "discriminator",
              "defaultValueStrategy": "omitted",
              "docs": [],
              "type": {
                "kind": "fixedSizeTypeNode",
                "size": 8,
                "type": {
                  "kind": "bytesTypeNode"
                }
              },
              "defaultValue": {
                "kind": "bytesValueNode",
                "data": "878c240fd717f39d",
                "encoding": "base16"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerId",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "admin",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "withdrawAuthority",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "quotingAuthorities",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "publicKeyTypeNode"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 32
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "reserved",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 64
                }
              }
            }
          ]
        },
        "pda": {
          "kind": "pdaLinkNode",
          "name": "maker"
        },
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      }
    ],
    "instructions": [
      {
        "kind": "instructionNode",
        "name": "updateOracleFair",
        "docs": [
          "Fast-path oracle-offset fair update (tag 0, subTag 0). One writable",
          "spot-market account is appended as a remaining account per entry; the",
          "handler requires exact arity."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "maker",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 0
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "subTag",
            "defaultValueStrategy": "omitted",
            "docs": [
              "0 = oracleFair entries."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 0
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "padding",
            "defaultValueStrategy": "omitted",
            "docs": [
              "Reserved, always 0."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u16",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 0
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "entries",
            "docs": [],
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "oracleFair"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          },
          {
            "kind": "fieldDiscriminatorNode",
            "name": "subTag",
            "offset": 1
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "updateLinearDistributionFair",
        "docs": [
          "Fast-path linear-distribution fair update (tag 0, subTag 1). One writable",
          "spot-market account is appended as a remaining account per entry."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "maker",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 0
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "subTag",
            "defaultValueStrategy": "omitted",
            "docs": [
              "1 = linearDistributionFair entries."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 1
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "padding",
            "defaultValueStrategy": "omitted",
            "docs": [
              "Reserved, always 0."
            ],
            "type": {
              "kind": "numberTypeNode",
              "format": "u16",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 0
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "entries",
            "docs": [],
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "linearDistributionFair"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          },
          {
            "kind": "fieldDiscriminatorNode",
            "name": "subTag",
            "offset": 1
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "createSpot",
        "docs": [],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "payer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "mint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "vault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "tokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "associatedTokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "This program (used as a no-op placeholder in some account slots)."
            ]
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 1
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "name",
            "docs": [],
            "type": {
              "kind": "fixedSizeTypeNode",
              "size": 32,
              "type": {
                "kind": "stringTypeNode",
                "encoding": "utf8"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "atomsPerContractLots",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "createMaker",
        "docs": [],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "payer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": true,
            "docs": [
              "Funding payer. When absent the admin funds and this slot is this program id."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "maker",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "This program (used as a no-op placeholder in some account slots)."
            ]
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 2
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "admin",
            "docs": [],
            "type": {
              "kind": "publicKeyTypeNode"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "withdrawAuthority",
            "docs": [],
            "type": {
              "kind": "publicKeyTypeNode"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "addMicroBook",
        "docs": [],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "maker",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "payer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": true,
            "docs": [
              "Funding payer. When equal to admin the admin funds."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "This program (used as a no-op placeholder in some account slots)."
            ]
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 3
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "softMaxBalance",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "manageMaker",
        "docs": [],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "maker",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 4
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "actions",
            "docs": [],
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "manageMakerAction"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u64",
                  "endian": "le"
                }
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "depositWithdraw",
        "docs": [
          "Followed by remaining accounts: the mint (Token-2022 only), any transfer-hook",
          "accounts, the SPL token program, and this program id."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "authority",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "maker",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "userTokenAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "vault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 5
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "spotIndex",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u16",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "indexHint",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "isDeposit",
            "docs": [],
            "type": {
              "kind": "booleanTypeNode",
              "size": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "amount",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "softMaxBalance",
            "docs": [],
            "type": {
              "kind": "optionTypeNode",
              "fixed": false,
              "item": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              },
              "prefix": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "swap",
        "docs": [
          "Spot-to-spot (cross) swap.",
          "Followed by remaining accounts: the mint (Token-2022 only), any transfer-hook",
          "accounts, the SPL token program, and this program id."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "taker",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "instructionsSysvar",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Instructions sysvar."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "baseSpotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "quoteSpotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "takerBaseTokenAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "baseVault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "takerQuoteTokenAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "quoteVault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 6
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "atomsIn",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "baseHookAccountsLen",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "updateQuotingParams",
        "docs": [
          "One writable spot-market account is appended as a remaining account per entry."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "signer",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "maker",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 7
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "params",
            "docs": [],
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "updateQuotingParamsInput"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u64",
                  "endian": "le"
                }
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "createGlobalAdmin",
        "docs": [],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "payer",
            "isWritable": true,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "quoteMint",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "vault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "tokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "systemProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "associatedTokenProgram",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "This program (used as a no-op placeholder in some account slots)."
            ]
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 9
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "admin",
            "docs": [],
            "type": {
              "kind": "publicKeyTypeNode"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "name",
            "docs": [],
            "type": {
              "kind": "fixedSizeTypeNode",
              "size": 32,
              "type": {
                "kind": "stringTypeNode",
                "encoding": "utf8"
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "depositWithdrawQuote",
        "docs": [
          "Followed by remaining accounts: the mint (Token-2022 only), any transfer-hook",
          "accounts, the SPL token program, and this program id."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "authority",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "maker",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "userTokenAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "vault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 10
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "isDeposit",
            "docs": [],
            "type": {
              "kind": "booleanTypeNode",
              "size": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "amount",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "softMaxBalance",
            "docs": [],
            "type": {
              "kind": "optionTypeNode",
              "fixed": false,
              "item": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              },
              "prefix": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "globalSwap",
        "docs": [
          "Base-to-quote (global) swap.",
          "Followed by remaining accounts: the mint (Token-2022 only), any transfer-hook",
          "accounts, the SPL token program, and this program id."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "taker",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "instructionsSysvar",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "Instructions sysvar."
            ]
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "takerBaseTokenAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "baseVault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "takerQuoteTokenAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "quoteVault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 11
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "atomsIn",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "takerBuy",
            "docs": [],
            "type": {
              "kind": "booleanTypeNode",
              "size": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "baseHookAccountsLen",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "updateMarketConfig",
        "docs": [],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 12
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "global",
            "docs": [],
            "type": {
              "kind": "optionTypeNode",
              "fixed": false,
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "marketConfigUpdate"
              },
              "prefix": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "spots",
            "docs": [],
            "type": {
              "kind": "arrayTypeNode",
              "item": {
                "kind": "definedTypeLinkNode",
                "name": "marketConfigUpdate"
              },
              "count": {
                "kind": "prefixedCountNode",
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u64",
                  "endian": "le"
                }
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "crossOrCancelMaker",
        "docs": [],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "program",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": [
              "This program (used as a no-op placeholder in some account slots)."
            ]
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 13
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "withdrawSpotFees",
        "docs": [
          "Followed by remaining accounts: the mint (Token-2022 only), any transfer-hook",
          "accounts, the SPL token program, and this program id."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalMarket",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "recipientTokenAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "vault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 14
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "amount",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "withdrawGlobalFees",
        "docs": [
          "Followed by remaining accounts: the mint (Token-2022 only), any transfer-hook",
          "accounts, the SPL token program, and this program id."
        ],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "recipientTokenAccount",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "vault",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 15
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "amount",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u64",
              "endian": "le"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "setMakerDisabled",
        "docs": [],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalMarket",
            "isWritable": false,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "spotMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 16
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "makerId",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u16",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "indexHint",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u32",
              "endian": "le"
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "disabled",
            "docs": [],
            "type": {
              "kind": "booleanTypeNode",
              "size": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      },
      {
        "kind": "instructionNode",
        "name": "updateFeeRouting",
        "docs": [],
        "optionalAccountStrategy": "programId",
        "accounts": [
          {
            "kind": "instructionAccountNode",
            "name": "admin",
            "isWritable": false,
            "isSigner": true,
            "isOptional": false,
            "docs": []
          },
          {
            "kind": "instructionAccountNode",
            "name": "globalMarket",
            "isWritable": true,
            "isSigner": false,
            "isOptional": false,
            "docs": []
          }
        ],
        "arguments": [
          {
            "kind": "instructionArgumentNode",
            "name": "discriminator",
            "defaultValueStrategy": "omitted",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u8",
              "endian": "le"
            },
            "defaultValue": {
              "kind": "numberValueNode",
              "number": 17
            }
          },
          {
            "kind": "instructionArgumentNode",
            "name": "feeDestination",
            "docs": [
              "Wallet owning destination ATAs for permissionless fee withdrawals.",
              "Pass the default pubkey to disable (admin-only mode)."
            ],
            "type": {
              "kind": "publicKeyTypeNode"
            }
          }
        ],
        "discriminators": [
          {
            "kind": "fieldDiscriminatorNode",
            "name": "discriminator",
            "offset": 0
          }
        ]
      }
    ],
    "definedTypes": [
      {
        "kind": "definedTypeNode",
        "name": "marketConfigUpdate",
        "docs": [],
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "marketStatus",
              "docs": [],
              "type": {
                "kind": "optionTypeNode",
                "fixed": false,
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "feeHbps",
              "docs": [],
              "type": {
                "kind": "optionTypeNode",
                "fixed": false,
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                },
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "manageMakerAction",
        "docs": [],
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "addQuoter",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "publicKeyTypeNode"
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "removeQuoter",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "publicKeyTypeNode"
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "setAdmin",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "publicKeyTypeNode"
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "setWithdrawAuthority",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "publicKeyTypeNode"
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u8",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "oracleFair",
        "docs": [],
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "lastOracleSlot",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "oracleSequenceNumber",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "buyFair",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sellFair",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "linearDistributionFair",
        "docs": [],
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "lastOracleSlot",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "oracleSequenceNumber",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "buyStartPrice",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "buyEndPrice",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sellStartPrice",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sellEndPrice",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "spotOffsetOrderWithStaleness",
        "docs": [],
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "lots",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "priceOffsetDelta",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "staleness",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "clientOrderId",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "postOnly",
              "docs": [],
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "riskParamsUpdate",
        "docs": [],
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "perSlotDecayFactor",
              "docs": [],
              "type": {
                "kind": "optionTypeNode",
                "fixed": false,
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                },
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "riskReduceFactor",
              "docs": [],
              "type": {
                "kind": "optionTypeNode",
                "fixed": false,
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                },
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerVolumeToSaturation",
              "docs": [],
              "type": {
                "kind": "optionTypeNode",
                "fixed": false,
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u64",
                  "endian": "le"
                },
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerVolumeBackoffAtSaturation",
              "docs": [],
              "type": {
                "kind": "optionTypeNode",
                "fixed": false,
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                },
                "prefix": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "clientOrderListEntry",
        "docs": [],
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "expireSlot",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "id",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "price",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "lots",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "postOnly",
              "docs": [],
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "orderListUpdate",
        "docs": [],
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "cancelAll"
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "cancelId",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "numberTypeNode",
                    "format": "u64",
                    "endian": "le"
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "place",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "structTypeNode",
                    "fields": [
                      {
                        "kind": "structFieldTypeNode",
                        "name": "expireSlot",
                        "docs": [],
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u64",
                          "endian": "le"
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "id",
                        "docs": [],
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u64",
                          "endian": "le"
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "price",
                        "docs": [],
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u32",
                          "endian": "le"
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "lots",
                        "docs": [],
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u32",
                          "endian": "le"
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "postOnly",
                        "docs": [],
                        "type": {
                          "kind": "booleanTypeNode",
                          "size": {
                            "kind": "numberTypeNode",
                            "format": "u8",
                            "endian": "le"
                          }
                        }
                      }
                    ]
                  }
                ]
              }
            },
            {
              "kind": "enumTupleVariantTypeNode",
              "name": "placeAndPop",
              "tuple": {
                "kind": "tupleTypeNode",
                "items": [
                  {
                    "kind": "structTypeNode",
                    "fields": [
                      {
                        "kind": "structFieldTypeNode",
                        "name": "expireSlot",
                        "docs": [],
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u64",
                          "endian": "le"
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "id",
                        "docs": [],
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u64",
                          "endian": "le"
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "price",
                        "docs": [],
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u32",
                          "endian": "le"
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "lots",
                        "docs": [],
                        "type": {
                          "kind": "numberTypeNode",
                          "format": "u32",
                          "endian": "le"
                        }
                      },
                      {
                        "kind": "structFieldTypeNode",
                        "name": "postOnly",
                        "docs": [],
                        "type": {
                          "kind": "booleanTypeNode",
                          "size": {
                            "kind": "numberTypeNode",
                            "format": "u8",
                            "endian": "le"
                          }
                        }
                      }
                    ]
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u32",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "crossSpreadUpdate",
        "docs": [],
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "spotIndex",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "spread",
              "docs": [
                "`OptionalU32NoneAsMax`: u32::MAX (4294967295) means none."
              ],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "updateQuotingParamsKind",
        "docs": [],
        "type": {
          "kind": "enumTypeNode",
          "variants": [
            {
              "kind": "enumEmptyVariantTypeNode",
              "name": "none"
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "oracleOffset",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "risk",
                    "docs": [],
                    "type": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "perSlotDecayFactor",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "numberTypeNode",
                              "format": "u32",
                              "endian": "le"
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "riskReduceFactor",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "numberTypeNode",
                              "format": "u32",
                              "endian": "le"
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "makerVolumeToSaturation",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "numberTypeNode",
                              "format": "u64",
                              "endian": "le"
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "makerVolumeBackoffAtSaturation",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "numberTypeNode",
                              "format": "u32",
                              "endian": "le"
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        }
                      ]
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "buyOrders",
                    "docs": [],
                    "type": {
                      "kind": "optionTypeNode",
                      "fixed": false,
                      "item": {
                        "kind": "arrayTypeNode",
                        "item": {
                          "kind": "structTypeNode",
                          "fields": [
                            {
                              "kind": "structFieldTypeNode",
                              "name": "lots",
                              "docs": [],
                              "type": {
                                "kind": "numberTypeNode",
                                "format": "u32",
                                "endian": "le"
                              }
                            },
                            {
                              "kind": "structFieldTypeNode",
                              "name": "priceOffsetDelta",
                              "docs": [],
                              "type": {
                                "kind": "numberTypeNode",
                                "format": "u32",
                                "endian": "le"
                              }
                            },
                            {
                              "kind": "structFieldTypeNode",
                              "name": "staleness",
                              "docs": [],
                              "type": {
                                "kind": "numberTypeNode",
                                "format": "u8",
                                "endian": "le"
                              }
                            },
                            {
                              "kind": "structFieldTypeNode",
                              "name": "clientOrderId",
                              "docs": [],
                              "type": {
                                "kind": "numberTypeNode",
                                "format": "u64",
                                "endian": "le"
                              }
                            },
                            {
                              "kind": "structFieldTypeNode",
                              "name": "postOnly",
                              "docs": [],
                              "type": {
                                "kind": "booleanTypeNode",
                                "size": {
                                  "kind": "numberTypeNode",
                                  "format": "u8",
                                  "endian": "le"
                                }
                              }
                            }
                          ]
                        },
                        "count": {
                          "kind": "prefixedCountNode",
                          "prefix": {
                            "kind": "numberTypeNode",
                            "format": "u64",
                            "endian": "le"
                          }
                        }
                      },
                      "prefix": {
                        "kind": "numberTypeNode",
                        "format": "u8",
                        "endian": "le"
                      }
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "sellOrders",
                    "docs": [],
                    "type": {
                      "kind": "optionTypeNode",
                      "fixed": false,
                      "item": {
                        "kind": "arrayTypeNode",
                        "item": {
                          "kind": "structTypeNode",
                          "fields": [
                            {
                              "kind": "structFieldTypeNode",
                              "name": "lots",
                              "docs": [],
                              "type": {
                                "kind": "numberTypeNode",
                                "format": "u32",
                                "endian": "le"
                              }
                            },
                            {
                              "kind": "structFieldTypeNode",
                              "name": "priceOffsetDelta",
                              "docs": [],
                              "type": {
                                "kind": "numberTypeNode",
                                "format": "u32",
                                "endian": "le"
                              }
                            },
                            {
                              "kind": "structFieldTypeNode",
                              "name": "staleness",
                              "docs": [],
                              "type": {
                                "kind": "numberTypeNode",
                                "format": "u8",
                                "endian": "le"
                              }
                            },
                            {
                              "kind": "structFieldTypeNode",
                              "name": "clientOrderId",
                              "docs": [],
                              "type": {
                                "kind": "numberTypeNode",
                                "format": "u64",
                                "endian": "le"
                              }
                            },
                            {
                              "kind": "structFieldTypeNode",
                              "name": "postOnly",
                              "docs": [],
                              "type": {
                                "kind": "booleanTypeNode",
                                "size": {
                                  "kind": "numberTypeNode",
                                  "format": "u8",
                                  "endian": "le"
                                }
                              }
                            }
                          ]
                        },
                        "count": {
                          "kind": "prefixedCountNode",
                          "prefix": {
                            "kind": "numberTypeNode",
                            "format": "u64",
                            "endian": "le"
                          }
                        }
                      },
                      "prefix": {
                        "kind": "numberTypeNode",
                        "format": "u8",
                        "endian": "le"
                      }
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "orderlist",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "bids",
                    "docs": [],
                    "type": {
                      "kind": "arrayTypeNode",
                      "item": {
                        "kind": "enumTypeNode",
                        "variants": [
                          {
                            "kind": "enumEmptyVariantTypeNode",
                            "name": "cancelAll"
                          },
                          {
                            "kind": "enumTupleVariantTypeNode",
                            "name": "cancelId",
                            "tuple": {
                              "kind": "tupleTypeNode",
                              "items": [
                                {
                                  "kind": "numberTypeNode",
                                  "format": "u64",
                                  "endian": "le"
                                }
                              ]
                            }
                          },
                          {
                            "kind": "enumTupleVariantTypeNode",
                            "name": "place",
                            "tuple": {
                              "kind": "tupleTypeNode",
                              "items": [
                                {
                                  "kind": "structTypeNode",
                                  "fields": [
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "expireSlot",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u64",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "id",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u64",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "price",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u32",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "lots",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u32",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "postOnly",
                                      "docs": [],
                                      "type": {
                                        "kind": "booleanTypeNode",
                                        "size": {
                                          "kind": "numberTypeNode",
                                          "format": "u8",
                                          "endian": "le"
                                        }
                                      }
                                    }
                                  ]
                                }
                              ]
                            }
                          },
                          {
                            "kind": "enumTupleVariantTypeNode",
                            "name": "placeAndPop",
                            "tuple": {
                              "kind": "tupleTypeNode",
                              "items": [
                                {
                                  "kind": "structTypeNode",
                                  "fields": [
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "expireSlot",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u64",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "id",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u64",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "price",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u32",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "lots",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u32",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "postOnly",
                                      "docs": [],
                                      "type": {
                                        "kind": "booleanTypeNode",
                                        "size": {
                                          "kind": "numberTypeNode",
                                          "format": "u8",
                                          "endian": "le"
                                        }
                                      }
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        ],
                        "size": {
                          "kind": "numberTypeNode",
                          "format": "u32",
                          "endian": "le"
                        }
                      },
                      "count": {
                        "kind": "prefixedCountNode",
                        "prefix": {
                          "kind": "numberTypeNode",
                          "format": "u64",
                          "endian": "le"
                        }
                      }
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "asks",
                    "docs": [],
                    "type": {
                      "kind": "arrayTypeNode",
                      "item": {
                        "kind": "enumTypeNode",
                        "variants": [
                          {
                            "kind": "enumEmptyVariantTypeNode",
                            "name": "cancelAll"
                          },
                          {
                            "kind": "enumTupleVariantTypeNode",
                            "name": "cancelId",
                            "tuple": {
                              "kind": "tupleTypeNode",
                              "items": [
                                {
                                  "kind": "numberTypeNode",
                                  "format": "u64",
                                  "endian": "le"
                                }
                              ]
                            }
                          },
                          {
                            "kind": "enumTupleVariantTypeNode",
                            "name": "place",
                            "tuple": {
                              "kind": "tupleTypeNode",
                              "items": [
                                {
                                  "kind": "structTypeNode",
                                  "fields": [
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "expireSlot",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u64",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "id",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u64",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "price",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u32",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "lots",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u32",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "postOnly",
                                      "docs": [],
                                      "type": {
                                        "kind": "booleanTypeNode",
                                        "size": {
                                          "kind": "numberTypeNode",
                                          "format": "u8",
                                          "endian": "le"
                                        }
                                      }
                                    }
                                  ]
                                }
                              ]
                            }
                          },
                          {
                            "kind": "enumTupleVariantTypeNode",
                            "name": "placeAndPop",
                            "tuple": {
                              "kind": "tupleTypeNode",
                              "items": [
                                {
                                  "kind": "structTypeNode",
                                  "fields": [
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "expireSlot",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u64",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "id",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u64",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "price",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u32",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "lots",
                                      "docs": [],
                                      "type": {
                                        "kind": "numberTypeNode",
                                        "format": "u32",
                                        "endian": "le"
                                      }
                                    },
                                    {
                                      "kind": "structFieldTypeNode",
                                      "name": "postOnly",
                                      "docs": [],
                                      "type": {
                                        "kind": "booleanTypeNode",
                                        "size": {
                                          "kind": "numberTypeNode",
                                          "format": "u8",
                                          "endian": "le"
                                        }
                                      }
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        ],
                        "size": {
                          "kind": "numberTypeNode",
                          "format": "u32",
                          "endian": "le"
                        }
                      },
                      "count": {
                        "kind": "prefixedCountNode",
                        "prefix": {
                          "kind": "numberTypeNode",
                          "format": "u64",
                          "endian": "le"
                        }
                      }
                    }
                  }
                ]
              }
            },
            {
              "kind": "enumStructVariantTypeNode",
              "name": "linearDistribution",
              "struct": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "risk",
                    "docs": [],
                    "type": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "perSlotDecayFactor",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "numberTypeNode",
                              "format": "u32",
                              "endian": "le"
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "riskReduceFactor",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "numberTypeNode",
                              "format": "u32",
                              "endian": "le"
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "makerVolumeToSaturation",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "numberTypeNode",
                              "format": "u64",
                              "endian": "le"
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "makerVolumeBackoffAtSaturation",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "numberTypeNode",
                              "format": "u32",
                              "endian": "le"
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        }
                      ]
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "clientOrderId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "spreadBackoffPerSlot",
                    "docs": [],
                    "type": {
                      "kind": "optionTypeNode",
                      "fixed": false,
                      "item": {
                        "kind": "numberTypeNode",
                        "format": "u32",
                        "endian": "le"
                      },
                      "prefix": {
                        "kind": "numberTypeNode",
                        "format": "u8",
                        "endian": "le"
                      }
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "bidLotsPerLevel",
                    "docs": [],
                    "type": {
                      "kind": "optionTypeNode",
                      "fixed": false,
                      "item": {
                        "kind": "numberTypeNode",
                        "format": "u32",
                        "endian": "le"
                      },
                      "prefix": {
                        "kind": "numberTypeNode",
                        "format": "u8",
                        "endian": "le"
                      }
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "askLotsPerLevel",
                    "docs": [],
                    "type": {
                      "kind": "optionTypeNode",
                      "fixed": false,
                      "item": {
                        "kind": "numberTypeNode",
                        "format": "u32",
                        "endian": "le"
                      },
                      "prefix": {
                        "kind": "numberTypeNode",
                        "format": "u8",
                        "endian": "le"
                      }
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "bidPostOnly",
                    "docs": [],
                    "type": {
                      "kind": "optionTypeNode",
                      "fixed": false,
                      "item": {
                        "kind": "booleanTypeNode",
                        "size": {
                          "kind": "numberTypeNode",
                          "format": "u8",
                          "endian": "le"
                        }
                      },
                      "prefix": {
                        "kind": "numberTypeNode",
                        "format": "u8",
                        "endian": "le"
                      }
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "askPostOnly",
                    "docs": [],
                    "type": {
                      "kind": "optionTypeNode",
                      "fixed": false,
                      "item": {
                        "kind": "booleanTypeNode",
                        "size": {
                          "kind": "numberTypeNode",
                          "format": "u8",
                          "endian": "le"
                        }
                      },
                      "prefix": {
                        "kind": "numberTypeNode",
                        "format": "u8",
                        "endian": "le"
                      }
                    }
                  }
                ]
              }
            }
          ],
          "size": {
            "kind": "numberTypeNode",
            "format": "u32",
            "endian": "le"
          }
        }
      },
      {
        "kind": "definedTypeNode",
        "name": "updateQuotingParamsInput",
        "docs": [],
        "type": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "spotIndex",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "enable",
              "docs": [],
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "softMaxBalance",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "orderSequence",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "resetSequence",
              "docs": [],
              "type": {
                "kind": "booleanTypeNode",
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "crossSpreadUpdate",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "structTypeNode",
                  "fields": [
                    {
                      "kind": "structFieldTypeNode",
                      "name": "spotIndex",
                      "docs": [],
                      "type": {
                        "kind": "numberTypeNode",
                        "format": "u16",
                        "endian": "le"
                      }
                    },
                    {
                      "kind": "structFieldTypeNode",
                      "name": "spread",
                      "docs": [
                        "`OptionalU32NoneAsMax`: u32::MAX (4294967295) means none."
                      ],
                      "type": {
                        "kind": "numberTypeNode",
                        "format": "u32",
                        "endian": "le"
                      }
                    }
                  ]
                },
                "count": {
                  "kind": "prefixedCountNode",
                  "prefix": {
                    "kind": "numberTypeNode",
                    "format": "u64",
                    "endian": "le"
                  }
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "quoting",
              "docs": [],
              "type": {
                "kind": "enumTypeNode",
                "variants": [
                  {
                    "kind": "enumEmptyVariantTypeNode",
                    "name": "none"
                  },
                  {
                    "kind": "enumStructVariantTypeNode",
                    "name": "oracleOffset",
                    "struct": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "risk",
                          "docs": [],
                          "type": {
                            "kind": "structTypeNode",
                            "fields": [
                              {
                                "kind": "structFieldTypeNode",
                                "name": "perSlotDecayFactor",
                                "docs": [],
                                "type": {
                                  "kind": "optionTypeNode",
                                  "fixed": false,
                                  "item": {
                                    "kind": "numberTypeNode",
                                    "format": "u32",
                                    "endian": "le"
                                  },
                                  "prefix": {
                                    "kind": "numberTypeNode",
                                    "format": "u8",
                                    "endian": "le"
                                  }
                                }
                              },
                              {
                                "kind": "structFieldTypeNode",
                                "name": "riskReduceFactor",
                                "docs": [],
                                "type": {
                                  "kind": "optionTypeNode",
                                  "fixed": false,
                                  "item": {
                                    "kind": "numberTypeNode",
                                    "format": "u32",
                                    "endian": "le"
                                  },
                                  "prefix": {
                                    "kind": "numberTypeNode",
                                    "format": "u8",
                                    "endian": "le"
                                  }
                                }
                              },
                              {
                                "kind": "structFieldTypeNode",
                                "name": "makerVolumeToSaturation",
                                "docs": [],
                                "type": {
                                  "kind": "optionTypeNode",
                                  "fixed": false,
                                  "item": {
                                    "kind": "numberTypeNode",
                                    "format": "u64",
                                    "endian": "le"
                                  },
                                  "prefix": {
                                    "kind": "numberTypeNode",
                                    "format": "u8",
                                    "endian": "le"
                                  }
                                }
                              },
                              {
                                "kind": "structFieldTypeNode",
                                "name": "makerVolumeBackoffAtSaturation",
                                "docs": [],
                                "type": {
                                  "kind": "optionTypeNode",
                                  "fixed": false,
                                  "item": {
                                    "kind": "numberTypeNode",
                                    "format": "u32",
                                    "endian": "le"
                                  },
                                  "prefix": {
                                    "kind": "numberTypeNode",
                                    "format": "u8",
                                    "endian": "le"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "buyOrders",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "arrayTypeNode",
                              "item": {
                                "kind": "structTypeNode",
                                "fields": [
                                  {
                                    "kind": "structFieldTypeNode",
                                    "name": "lots",
                                    "docs": [],
                                    "type": {
                                      "kind": "numberTypeNode",
                                      "format": "u32",
                                      "endian": "le"
                                    }
                                  },
                                  {
                                    "kind": "structFieldTypeNode",
                                    "name": "priceOffsetDelta",
                                    "docs": [],
                                    "type": {
                                      "kind": "numberTypeNode",
                                      "format": "u32",
                                      "endian": "le"
                                    }
                                  },
                                  {
                                    "kind": "structFieldTypeNode",
                                    "name": "staleness",
                                    "docs": [],
                                    "type": {
                                      "kind": "numberTypeNode",
                                      "format": "u8",
                                      "endian": "le"
                                    }
                                  },
                                  {
                                    "kind": "structFieldTypeNode",
                                    "name": "clientOrderId",
                                    "docs": [],
                                    "type": {
                                      "kind": "numberTypeNode",
                                      "format": "u64",
                                      "endian": "le"
                                    }
                                  },
                                  {
                                    "kind": "structFieldTypeNode",
                                    "name": "postOnly",
                                    "docs": [],
                                    "type": {
                                      "kind": "booleanTypeNode",
                                      "size": {
                                        "kind": "numberTypeNode",
                                        "format": "u8",
                                        "endian": "le"
                                      }
                                    }
                                  }
                                ]
                              },
                              "count": {
                                "kind": "prefixedCountNode",
                                "prefix": {
                                  "kind": "numberTypeNode",
                                  "format": "u64",
                                  "endian": "le"
                                }
                              }
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "sellOrders",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "arrayTypeNode",
                              "item": {
                                "kind": "structTypeNode",
                                "fields": [
                                  {
                                    "kind": "structFieldTypeNode",
                                    "name": "lots",
                                    "docs": [],
                                    "type": {
                                      "kind": "numberTypeNode",
                                      "format": "u32",
                                      "endian": "le"
                                    }
                                  },
                                  {
                                    "kind": "structFieldTypeNode",
                                    "name": "priceOffsetDelta",
                                    "docs": [],
                                    "type": {
                                      "kind": "numberTypeNode",
                                      "format": "u32",
                                      "endian": "le"
                                    }
                                  },
                                  {
                                    "kind": "structFieldTypeNode",
                                    "name": "staleness",
                                    "docs": [],
                                    "type": {
                                      "kind": "numberTypeNode",
                                      "format": "u8",
                                      "endian": "le"
                                    }
                                  },
                                  {
                                    "kind": "structFieldTypeNode",
                                    "name": "clientOrderId",
                                    "docs": [],
                                    "type": {
                                      "kind": "numberTypeNode",
                                      "format": "u64",
                                      "endian": "le"
                                    }
                                  },
                                  {
                                    "kind": "structFieldTypeNode",
                                    "name": "postOnly",
                                    "docs": [],
                                    "type": {
                                      "kind": "booleanTypeNode",
                                      "size": {
                                        "kind": "numberTypeNode",
                                        "format": "u8",
                                        "endian": "le"
                                      }
                                    }
                                  }
                                ]
                              },
                              "count": {
                                "kind": "prefixedCountNode",
                                "prefix": {
                                  "kind": "numberTypeNode",
                                  "format": "u64",
                                  "endian": "le"
                                }
                              }
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        }
                      ]
                    }
                  },
                  {
                    "kind": "enumStructVariantTypeNode",
                    "name": "orderlist",
                    "struct": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "bids",
                          "docs": [],
                          "type": {
                            "kind": "arrayTypeNode",
                            "item": {
                              "kind": "enumTypeNode",
                              "variants": [
                                {
                                  "kind": "enumEmptyVariantTypeNode",
                                  "name": "cancelAll"
                                },
                                {
                                  "kind": "enumTupleVariantTypeNode",
                                  "name": "cancelId",
                                  "tuple": {
                                    "kind": "tupleTypeNode",
                                    "items": [
                                      {
                                        "kind": "numberTypeNode",
                                        "format": "u64",
                                        "endian": "le"
                                      }
                                    ]
                                  }
                                },
                                {
                                  "kind": "enumTupleVariantTypeNode",
                                  "name": "place",
                                  "tuple": {
                                    "kind": "tupleTypeNode",
                                    "items": [
                                      {
                                        "kind": "structTypeNode",
                                        "fields": [
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "expireSlot",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u64",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "id",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u64",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "price",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u32",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "lots",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u32",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "postOnly",
                                            "docs": [],
                                            "type": {
                                              "kind": "booleanTypeNode",
                                              "size": {
                                                "kind": "numberTypeNode",
                                                "format": "u8",
                                                "endian": "le"
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                },
                                {
                                  "kind": "enumTupleVariantTypeNode",
                                  "name": "placeAndPop",
                                  "tuple": {
                                    "kind": "tupleTypeNode",
                                    "items": [
                                      {
                                        "kind": "structTypeNode",
                                        "fields": [
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "expireSlot",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u64",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "id",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u64",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "price",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u32",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "lots",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u32",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "postOnly",
                                            "docs": [],
                                            "type": {
                                              "kind": "booleanTypeNode",
                                              "size": {
                                                "kind": "numberTypeNode",
                                                "format": "u8",
                                                "endian": "le"
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                }
                              ],
                              "size": {
                                "kind": "numberTypeNode",
                                "format": "u32",
                                "endian": "le"
                              }
                            },
                            "count": {
                              "kind": "prefixedCountNode",
                              "prefix": {
                                "kind": "numberTypeNode",
                                "format": "u64",
                                "endian": "le"
                              }
                            }
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "asks",
                          "docs": [],
                          "type": {
                            "kind": "arrayTypeNode",
                            "item": {
                              "kind": "enumTypeNode",
                              "variants": [
                                {
                                  "kind": "enumEmptyVariantTypeNode",
                                  "name": "cancelAll"
                                },
                                {
                                  "kind": "enumTupleVariantTypeNode",
                                  "name": "cancelId",
                                  "tuple": {
                                    "kind": "tupleTypeNode",
                                    "items": [
                                      {
                                        "kind": "numberTypeNode",
                                        "format": "u64",
                                        "endian": "le"
                                      }
                                    ]
                                  }
                                },
                                {
                                  "kind": "enumTupleVariantTypeNode",
                                  "name": "place",
                                  "tuple": {
                                    "kind": "tupleTypeNode",
                                    "items": [
                                      {
                                        "kind": "structTypeNode",
                                        "fields": [
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "expireSlot",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u64",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "id",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u64",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "price",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u32",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "lots",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u32",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "postOnly",
                                            "docs": [],
                                            "type": {
                                              "kind": "booleanTypeNode",
                                              "size": {
                                                "kind": "numberTypeNode",
                                                "format": "u8",
                                                "endian": "le"
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                },
                                {
                                  "kind": "enumTupleVariantTypeNode",
                                  "name": "placeAndPop",
                                  "tuple": {
                                    "kind": "tupleTypeNode",
                                    "items": [
                                      {
                                        "kind": "structTypeNode",
                                        "fields": [
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "expireSlot",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u64",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "id",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u64",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "price",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u32",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "lots",
                                            "docs": [],
                                            "type": {
                                              "kind": "numberTypeNode",
                                              "format": "u32",
                                              "endian": "le"
                                            }
                                          },
                                          {
                                            "kind": "structFieldTypeNode",
                                            "name": "postOnly",
                                            "docs": [],
                                            "type": {
                                              "kind": "booleanTypeNode",
                                              "size": {
                                                "kind": "numberTypeNode",
                                                "format": "u8",
                                                "endian": "le"
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                }
                              ],
                              "size": {
                                "kind": "numberTypeNode",
                                "format": "u32",
                                "endian": "le"
                              }
                            },
                            "count": {
                              "kind": "prefixedCountNode",
                              "prefix": {
                                "kind": "numberTypeNode",
                                "format": "u64",
                                "endian": "le"
                              }
                            }
                          }
                        }
                      ]
                    }
                  },
                  {
                    "kind": "enumStructVariantTypeNode",
                    "name": "linearDistribution",
                    "struct": {
                      "kind": "structTypeNode",
                      "fields": [
                        {
                          "kind": "structFieldTypeNode",
                          "name": "risk",
                          "docs": [],
                          "type": {
                            "kind": "structTypeNode",
                            "fields": [
                              {
                                "kind": "structFieldTypeNode",
                                "name": "perSlotDecayFactor",
                                "docs": [],
                                "type": {
                                  "kind": "optionTypeNode",
                                  "fixed": false,
                                  "item": {
                                    "kind": "numberTypeNode",
                                    "format": "u32",
                                    "endian": "le"
                                  },
                                  "prefix": {
                                    "kind": "numberTypeNode",
                                    "format": "u8",
                                    "endian": "le"
                                  }
                                }
                              },
                              {
                                "kind": "structFieldTypeNode",
                                "name": "riskReduceFactor",
                                "docs": [],
                                "type": {
                                  "kind": "optionTypeNode",
                                  "fixed": false,
                                  "item": {
                                    "kind": "numberTypeNode",
                                    "format": "u32",
                                    "endian": "le"
                                  },
                                  "prefix": {
                                    "kind": "numberTypeNode",
                                    "format": "u8",
                                    "endian": "le"
                                  }
                                }
                              },
                              {
                                "kind": "structFieldTypeNode",
                                "name": "makerVolumeToSaturation",
                                "docs": [],
                                "type": {
                                  "kind": "optionTypeNode",
                                  "fixed": false,
                                  "item": {
                                    "kind": "numberTypeNode",
                                    "format": "u64",
                                    "endian": "le"
                                  },
                                  "prefix": {
                                    "kind": "numberTypeNode",
                                    "format": "u8",
                                    "endian": "le"
                                  }
                                }
                              },
                              {
                                "kind": "structFieldTypeNode",
                                "name": "makerVolumeBackoffAtSaturation",
                                "docs": [],
                                "type": {
                                  "kind": "optionTypeNode",
                                  "fixed": false,
                                  "item": {
                                    "kind": "numberTypeNode",
                                    "format": "u32",
                                    "endian": "le"
                                  },
                                  "prefix": {
                                    "kind": "numberTypeNode",
                                    "format": "u8",
                                    "endian": "le"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "clientOrderId",
                          "docs": [],
                          "type": {
                            "kind": "numberTypeNode",
                            "format": "u64",
                            "endian": "le"
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "spreadBackoffPerSlot",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "numberTypeNode",
                              "format": "u32",
                              "endian": "le"
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "bidLotsPerLevel",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "numberTypeNode",
                              "format": "u32",
                              "endian": "le"
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "askLotsPerLevel",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "numberTypeNode",
                              "format": "u32",
                              "endian": "le"
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "bidPostOnly",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "booleanTypeNode",
                              "size": {
                                "kind": "numberTypeNode",
                                "format": "u8",
                                "endian": "le"
                              }
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        },
                        {
                          "kind": "structFieldTypeNode",
                          "name": "askPostOnly",
                          "docs": [],
                          "type": {
                            "kind": "optionTypeNode",
                            "fixed": false,
                            "item": {
                              "kind": "booleanTypeNode",
                              "size": {
                                "kind": "numberTypeNode",
                                "format": "u8",
                                "endian": "le"
                              }
                            },
                            "prefix": {
                              "kind": "numberTypeNode",
                              "format": "u8",
                              "endian": "le"
                            }
                          }
                        }
                      ]
                    }
                  }
                ],
                "size": {
                  "kind": "numberTypeNode",
                  "format": "u32",
                  "endian": "le"
                }
              }
            }
          ]
        }
      }
    ],
    "pdas": [
      {
        "kind": "pdaNode",
        "name": "globalMarket",
        "docs": [],
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "global_market"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "spotMarket",
        "docs": [],
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "spot_market"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "mint",
            "docs": [],
            "type": {
              "kind": "publicKeyTypeNode"
            }
          }
        ]
      },
      {
        "kind": "pdaNode",
        "name": "maker",
        "docs": [],
        "seeds": [
          {
            "kind": "constantPdaSeedNode",
            "type": {
              "kind": "stringTypeNode",
              "encoding": "utf8"
            },
            "value": {
              "kind": "stringValueNode",
              "string": "maker"
            }
          },
          {
            "kind": "variablePdaSeedNode",
            "name": "makerId",
            "docs": [],
            "type": {
              "kind": "numberTypeNode",
              "format": "u16",
              "endian": "le"
            }
          }
        ]
      }
    ],
    "events": [
      {
        "kind": "eventNode",
        "name": "matchEvent",
        "docs": [
          "SweetSpotEventKind discriminant 0."
        ],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "makerId",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerBuy",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerSell",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "padding",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 2
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "buyOrderId",
              "docs": [],
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "clientOrderId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "makerSequenceId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sellOrderId",
              "docs": [],
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "clientOrderId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "makerSequenceId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "baseLots",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "priceBuySide",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "priceSellSide",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "tradeIdx",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "eventNode",
        "name": "tradeSettlementEvent",
        "docs": [
          "SweetSpotEventKind discriminant 1."
        ],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "makerId",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerBuy",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerSell",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "padding",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 2
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerBuyAtoms",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerSellAtoms",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "eventNode",
        "name": "createSpotEvent",
        "docs": [
          "SweetSpotEventKind discriminant 2."
        ],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "spotIndex",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "padding",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 2
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "atomsPerContractLots",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "mint",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            }
          ]
        }
      },
      {
        "kind": "eventNode",
        "name": "createMakerEvent",
        "docs": [
          "SweetSpotEventKind discriminant 3."
        ],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "makerId",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "padding",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 6
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "admin",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "withdrawAuthority",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            }
          ]
        }
      },
      {
        "kind": "eventNode",
        "name": "addMicroBookEvent",
        "docs": [
          "SweetSpotEventKind discriminant 4."
        ],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "spotIndex",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerId",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "bookIndex",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "padding",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 2
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "softMaxBalance",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "eventNode",
        "name": "depositWithdrawEvent",
        "docs": [
          "SweetSpotEventKind discriminant 5."
        ],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "spotIndex",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerId",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "isDeposit",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "amount",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "balanceAfter",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "eventNode",
        "name": "createGlobalAdminEvent",
        "docs": [
          "SweetSpotEventKind discriminant 6."
        ],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "admin",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "mint",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            }
          ]
        }
      },
      {
        "kind": "eventNode",
        "name": "swapEvent",
        "docs": [
          "SweetSpotEventKind discriminant 7."
        ],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "takerBuy",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "takerSell",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "padding",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "takerBuyAtoms",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "takerSellAtoms",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "feeAtoms",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "eventNode",
        "name": "crossCancelEvent",
        "docs": [
          "SweetSpotEventKind discriminant 8."
        ],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "spotIndex",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerSide",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u8",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "maker",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "padding",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 3
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "cancelId",
              "docs": [],
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "clientOrderId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "makerSequenceId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "kind": "eventNode",
        "name": "crossFillEvent",
        "docs": [
          "SweetSpotEventKind discriminant 9."
        ],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "buyMaker",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sellMaker",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "spotIndex",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "padding",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 2
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "baseAtoms",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "quoteAtoms",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "buyPrice",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sellPrice",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "buyOrderId",
              "docs": [],
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "clientOrderId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "makerSequenceId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sellOrderId",
              "docs": [],
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "clientOrderId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "makerSequenceId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            }
          ]
        }
      },
      {
        "kind": "eventNode",
        "name": "withdrawFeesEvent",
        "docs": [
          "SweetSpotEventKind discriminant 10."
        ],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "spotIndex",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "padding",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 6
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "amount",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "remainingCollectedFees",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            }
          ]
        }
      },
      {
        "kind": "eventNode",
        "name": "setGlobalAdminEvent",
        "docs": [
          "SweetSpotEventKind discriminant 11."
        ],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "oldAdmin",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "newAdmin",
              "docs": [],
              "type": {
                "kind": "publicKeyTypeNode"
              }
            }
          ]
        }
      },
      {
        "kind": "eventNode",
        "name": "matchV2Event",
        "docs": [
          "SweetSpotEventKind discriminant 12."
        ],
        "data": {
          "kind": "structTypeNode",
          "fields": [
            {
              "kind": "structFieldTypeNode",
              "name": "makerId",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerBuy",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "makerSell",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u16",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "padding",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 2
                }
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "buyOrderId",
              "docs": [],
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "clientOrderId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "makerSequenceId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "sellOrderId",
              "docs": [],
              "type": {
                "kind": "structTypeNode",
                "fields": [
                  {
                    "kind": "structFieldTypeNode",
                    "name": "clientOrderId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  },
                  {
                    "kind": "structFieldTypeNode",
                    "name": "makerSequenceId",
                    "docs": [],
                    "type": {
                      "kind": "numberTypeNode",
                      "format": "u64",
                      "endian": "le"
                    }
                  }
                ]
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "baseAtoms",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "quoteAtoms",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u64",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "priceBuySide",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "priceSellSide",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "tradeIdx",
              "docs": [],
              "type": {
                "kind": "numberTypeNode",
                "format": "u32",
                "endian": "le"
              }
            },
            {
              "kind": "structFieldTypeNode",
              "name": "padding2",
              "docs": [],
              "type": {
                "kind": "arrayTypeNode",
                "item": {
                  "kind": "numberTypeNode",
                  "format": "u8",
                  "endian": "le"
                },
                "count": {
                  "kind": "fixedCountNode",
                  "value": 4
                }
              }
            }
          ]
        }
      }
    ],
    "errors": [
      {
        "kind": "errorNode",
        "name": "mathError",
        "code": 0,
        "message": "MathError",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "invalidWithdrawAuthority",
        "code": 1,
        "message": "InvalidWithdrawAuthority",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "invalidVault",
        "code": 2,
        "message": "InvalidVault",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "exhaustedLiquidity",
        "code": 3,
        "message": "ExhaustedLiquidity",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "tradingNotAllowed",
        "code": 4,
        "message": "TradingNotAllowed",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "depositNotAllowed",
        "code": 5,
        "message": "DepositNotAllowed",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "invalidSigner",
        "code": 6,
        "message": "InvalidSigner",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "invalidMaker",
        "code": 7,
        "message": "InvalidMaker",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "invalidHint",
        "code": 8,
        "message": "InvalidHint",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "spotIndexMismatch",
        "code": 9,
        "message": "SpotIndexMismatch",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "invalidQuotingStrategy",
        "code": 10,
        "message": "InvalidQuotingStrategy",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "invalidPda",
        "code": 11,
        "message": "InvalidPda",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "invalidMint",
        "code": 12,
        "message": "InvalidMint",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "zeroFillAmount",
        "code": 13,
        "message": "ZeroFillAmount",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "logNotSigner",
        "code": 14,
        "message": "LogNotSigner",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "logWrongOwner",
        "code": 15,
        "message": "LogWrongOwner",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "logUninitialized",
        "code": 16,
        "message": "LogUninitialized",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "logMissingAccount",
        "code": 17,
        "message": "LogMissingAccount",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "adjustedPriceUnfavorable",
        "code": 18,
        "message": "AdjustedPriceUnfavorable",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "missingAccount",
        "code": 19,
        "message": "MissingAccount",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "invalidAccountData",
        "code": 20,
        "message": "InvalidAccountData",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "invalidInstructionData",
        "code": 21,
        "message": "InvalidInstructionData",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "noFairUpdated",
        "code": 22,
        "message": "NoFairUpdated",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "context",
        "code": 23,
        "message": "Context",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "feeExceedsCap",
        "code": 24,
        "message": "FeeExceedsCap",
        "docs": []
      },
      {
        "kind": "errorNode",
        "name": "chainRestartCooldown",
        "code": 25,
        "message": "ChainRestartCooldown",
        "docs": []
      }
    ],
    "constants": []
  },
  "additionalPrograms": []
}
